def inflate_long(s, always_positive=False):
out = long(<NUM_LIT:0>)<EOL>negative = <NUM_LIT:0><EOL>if not always_positive and (len(s) > <NUM_LIT:0>) and (byte_ord(s[<NUM_LIT:0>]) >= <NUM_LIT>):<EOL><INDENT>negative = <NUM_LIT:1><EOL><DEDENT>if len(s) % <NUM_LIT:4>:<EOL><INDENT>filler = zero_byte<EOL>if negative:<EOL><INDENT>filler = max_byte<EOL><DEDENT>s = filler * (<NUM_LIT:4> - len(s) % <NUM_LIT:4>) + s<EOL><DEDENT>for i in range(<NUM_LIT:0>, len(s), <NUM_LIT:4>):<EOL><INDENT>out = (out << <NUM_LIT:32>) + struct.unpack("<STR_LIT>", s[i : i + <NUM_LIT:4>])[<NUM_LIT:0>]<EOL><DEDENT>if negative:<EOL><INDENT>out -= long(<NUM_LIT:1>) << (<NUM_LIT:8> * len(s))<EOL><DEDENT>return out<EOL>
turns a normalized byte string into a long-int
    (adapted from Crypto.Util.number)