Function at 0x5121f0
Capabilities:
Decompress data using quicklz

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd0
push ebx
push esi
push edi
mov esi, dword [ebp + 8]
movzx eax, byte [esi + 0x30]
cdq
shld edx, eax, 6
shl eax, 6
mov ebx, eax
movzx eax, byte [esi + 0x2f]
shr al, 2
movzx eax, al
cdq
movzx edx, byte [esi + 0x31]
or ebx, eax
and dl, 0x7f
movzx eax, dl
cdq
shld edx, eax, 0xe
shl eax, 0xe
xor ecx, ecx
or ecx, edx
and ebx, 0x1fffff
or ebx, eax
movzx eax, byte [esi + 0x34]
and al, 0xf
movzx eax, al
cdq
shld edx, eax, 8
shl eax, 8
mov dword [ebp - 0x6c], ecx
mov ecx, eax
movzx eax, byte [esi + 0x33]
mov edi, edx
cdq
and eax, 0xfff
or ecx, eax
movzx eax, byte [esi + 0x32]
xor edx, edx
or edi, edx
cdq
shld edx, eax, 1
shld edi, ecx, 9
mov dword [ebp - 4], edi
lea edi, [eax + eax]
movzx eax, byte [esi + 0x31]
shr al, 7
movzx eax, al
cdq
or edi, eax
mov eax, dword [ebp - 4]
shl ecx, 9
and edi, 0x1fffff
or ecx, edi
xor edx, edx
or eax, edx
mov dword [ebp - 0x50], ecx
movzx ecx, byte [esi + 0x37]
mov dword [ebp - 0x4c], eax
and cl, 1
movzx eax, cl
cdq
shld edx, eax, 8
shl eax, 8
mov ecx, eax
movzx eax, byte [esi + 0x36]
mov edi, edx
cdq
and eax, 0x1ff
or ecx, eax
movzx eax, byte [esi + 0x35]
xor edx, edx
or edi, edx
shld edi, ecx, 0xc
cdq
shld edx, eax, 4
shl ecx, 0xc
shl eax, 4
mov dword [ebp - 4], edi
mov dword [ebp - 0x70], ebx
mov edi, eax
movzx eax, byte [esi + 0x34]
shr al, 4
movzx eax, al
cdq
or edi, eax
mov eax, dword [ebp - 4]
xor edx, edx
or eax, edx
mov dword [ebp - 0xc], eax
movzx eax, byte [esi + 0x38]
cdq
shld edx, eax, 7
movzx edx, byte [esi + 0x37]
shl eax, 7
shr dl, 1
and edi, 0x1fffff
or ecx, edi
mov dword [ebp - 0x10], ecx
mov ecx, eax
movzx eax, dl
cdq
or ecx, eax
movzx eax, byte [esi + 0x39]
and al, 0x3f
movzx eax, al
cdq
shld edx, eax, 0xf
shl eax, 0xf
and ecx, 0x1fffff
or ecx, eax
mov dword [ebp - 0x40], ecx
movzx ecx, byte [esi + 0x3c]
and cl, 7
xor edi, edi
or edi, edx
movzx eax, cl
cdq
shld edx, eax, 8
shl eax, 8
mov ecx, eax
movzx eax, byte [esi + 0x3b]
mov dword [ebp - 0x3c], edi
mov edi, edx
cdq
and eax, 0x7ff
or ecx, eax
movzx eax, byte [esi + 0x3a]
xor edx, edx
or edi, edx
cdq
shld edx, eax, 2
add eax, eax
shld edi, ecx, 0xa
mov dword [ebp - 4], edi
lea edi, [eax + eax]
movzx eax, byte [esi + 0x39]
shr al, 6
movzx eax, al
cdq
or edi, eax
mov eax, dword [ebp - 4]
xor edx, edx
or eax, edx
mov dword [ebp - 0x24], eax
movzx eax, byte [esi + 0x3e]
cdq
shld edx, eax, 8
shl ecx, 0xa
and edi, 0x1fffff
or ecx, edi
shl eax, 8
mov dword [ebp - 0x28], ecx
mov ecx, eax
movzx eax, byte [esi + 0x3d]
mov edi, edx
cdq
or ecx, eax
movzx eax, byte [esi + 0x3f]
or edi, edx
and edi, 0xffffff
cdq
and edx, 0xff
shld edx, eax, 0x10
or edi, edx
movzx edx, byte [esi + 0x3c]
shl eax, 0x10
or ecx, eax
shld edi, ecx, 5
shr dl, 3
movzx eax, dl
cdq
or edi, edx
shl ecx, 5
or ecx, eax
movzx eax, byte [esi + 0x2c]
cdq
shld edx, eax, 8
shl eax, 8
mov dword [ebp - 0x30], ecx
mov ecx, eax
movzx eax, byte [esi + 0x2b]
mov dword [ebp - 0x2c], edi
mov edi, edx
cdq
or edi, edx
or ecx, eax
movzx eax, byte [esi + 0x2a]
mov edx, ecx
mov ecx, dword [ebp - 0x30]
shld edi, edx, 8
shl edx, 8
mov edi, edx
cdq
push 0
or edi, eax
mov eax, dword [ebp - 0x2c]
push 0xa6f7d
push eax
push ecx
and edi, 0x1fffff
mov dword [ebp - 4], 0
call fcn.00522d20
movzx ecx, byte [esi + 0x27]
sub edi, eax
mov eax, dword [ebp - 4]
sbb eax, edx
mov dword [ebp - 0xac], eax
and cl, 7
movzx eax, cl
cdq
shld edx, eax, 8
shl eax, 8
mov ecx, eax
movzx eax, byte [esi + 0x26]
mov dword [ebp - 0xb0], edi
mov edi, edx
cdq
and eax, 0x7ff
or eax, ecx
xor edx, edx
or edi, edx
mov ecx, edi
shld ecx, eax, 0xa
shl eax, 0xa
mov edi, eax
movzx eax, byte [esi + 0x25]
cdq
shld edx, eax, 2
movzx edx, byte [esi + 0x24]
add eax, eax
mov dword [ebp - 4], ecx
lea ecx, [eax + eax]
shr dl, 6
movzx eax, dl
cdq
or ecx, eax
xor eax, eax
and ecx, 0x1fffff
push eax
or edi, ecx
or dword [ebp - 4], eax
push 0xa6f7d
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
push ecx
push edx
call fcn.00522d20
mov ecx, dword [ebp - 0x30]
push 0
sub edi, eax
mov eax, dword [ebp - 0x2c]
sbb dword [ebp - 4], edx
push 0xf39ad
push eax
push ecx
call fcn.00522d20
sub edi, eax
sbb dword [ebp - 4], edx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
push 0
push 0x215d1
push edx
push eax
call fcn.00522d20
mov ecx, dword [ebp - 4]
add edi, eax
adc ecx, edx
movzx edx, byte [esi + 0x22]
and dl, 1
movzx eax, dl
cdq
shld edx, eax, 8
shl eax, 8
mov dword [ebp - 0xb4], ecx
mov ecx, eax
movzx eax, byte [esi + 0x21]
mov dword [ebp - 0xb8], edi
mov edi, edx
cdq
and eax, 0x1ff
or eax, ecx
xor edx, edx
or edi, edx
mov ecx, edi
shld ecx, eax, 0xc
shl eax, 0xc
mov edi, eax
movzx eax, byte [esi + 0x20]
cdq
shld edx, eax, 4
movzx edx, byte [esi + 0x1f]
mov dword [ebp - 0x1c], ecx
shl eax, 4
mov ecx, eax
shr dl, 4
movzx eax, dl
cdq
mov edx, dword [ebp - 0x28]
or ecx, eax
xor eax, eax
or dword [ebp - 0x1c], eax
and ecx, 0x1fffff
push eax
or edi, ecx
mov ecx, dword [ebp - 0x24]
push 0x9fb67
push ecx
push edx
call fcn.00522d20
mov ecx, dword [ebp - 0x50]
push 0
add edi, eax
mov eax, dword [ebp - 0x4c]
adc dword [ebp - 0x1c], edx
push 0xa6f7d
push eax
push ecx
call fcn.00522d20
sub edi, eax
sbb dword [ebp - 0x1c], edx
push 0
push 0xf39ad
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
push edx
push eax
call fcn.00522d20
mov ecx, dword [ebp - 0x2c]
push 0
sub edi, eax
sbb dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x30]
push 0x72d18
push ecx
push edx
call fcn.00522d20
mov ecx, dword [ebp - 0x10]
push 0
add edi, eax
mov eax, dword [ebp - 0xc]
adc dword [ebp - 0x1c], edx
push 0x215d1
push eax
push ecx
call fcn.00522d20
movzx ecx, byte [esi + 0x12]
add edi, eax
mov eax, dword [ebp - 0x1c]
adc eax, edx
mov dword [ebp - 0x14], eax
and cl, 7
movzx eax, cl
cdq
shld edx, eax, 8
shl eax, 8
mov ecx, eax
movzx eax, byte [esi + 0x11]
mov dword [ebp - 0x18], edi
mov edi, edx
cdq
and eax, 0x7ff
or eax, ecx
xor edx, edx
or edi, edx
mov ecx, edi
shld ecx, eax, 0xa
shl eax, 0xa
mov edi, eax
movzx eax, byte [esi + 0x10]
cdq
shld edx, eax, 2
movzx edx, byte [esi + 0xf]
mov dword [ebp - 4], ecx
add eax, eax
lea ecx, [eax + eax]
shr dl, 6
movzx eax, dl
cdq
or ecx, eax
xor eax, eax
or dword [ebp - 4], eax
and ecx, 0x1fffff
push eax
or edi, ecx
mov ecx, dword [ebp - 0x6c]
push 0xa2c13
push ecx
push ebx
call fcn.00522d20
add edi, eax
mov eax, dword [ebp - 4]
adc eax, edx
mov dword [ebp - 0x8c], eax
movzx eax, byte [esi + 0x17]
cdq
shld edx, eax, 8
shl eax, 8
mov ecx, eax
movzx eax, byte [esi + 0x16]
mov dword [ebp - 0x90], edi
mov edi, edx
cdq
or ecx, eax
movzx eax, byte [esi + 0x15]
or edi, edx
mov edx, ecx
shld edi, edx, 8
shl edx, 8
mov edi, edx
cdq
push 0
or edi, eax
mov eax, dword [ebp - 0x6c]
push 0x9fb67
push eax
push ebx
and edi, 0x1fffff
mov dword [ebp - 4], 0
call fcn.00522d20
mov ecx, dword [ebp - 0x4c]
push 0
add edi, eax
adc dword [ebp - 4], edx
mov edx, dword [ebp - 0x50]
push 0x72d18
push ecx
push edx
call fcn.00522d20
mov ecx, dword [ebp - 0x10]
push 0
add edi, eax
mov eax, dword [ebp - 0xc]
adc dword [ebp - 4], edx
push 0xa2c13
push eax
push ecx
call fcn.00522d20
add edi, eax
mov eax, dword [ebp - 4]
movzx ecx, byte [esi + 0x1a]
adc eax, edx
mov dword [ebp - 0x54], eax
movzx eax, byte [esi + 0x1b]
cdq
shld edx, eax, 6
shl eax, 6
shr cl, 2
mov dword [ebp - 0x58], edi
mov edi, eax
movzx eax, cl
cdq
movzx edx, byte [esi + 0x1c]
or edi, eax
and dl, 0x7f
movzx eax, dl
cdq
shld edx, eax, 0xe
xor ecx, ecx
shl eax, 0xe
push 0
and edi, 0x1fffff
or ecx, edx
or edi, eax
mov eax, dword [ebp - 0xc]
push 0x9fb67
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0x10]
push eax
push ecx
call fcn.00522d20
add edi, eax
adc dword [ebp - 4], edx
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x50]
push 0
push 0xf39ad
push edx
push eax
call fcn.00522d20
mov ecx, dword [ebp - 0x3c]
sub edi, eax
sbb dword [ebp - 4], edx
push 0
push 0x72d18
mov edx, dword [ebp - 0x40]
push ecx
push edx
call fcn.00522d20
mov ecx, dword [ebp - 0x28]
push 0
add edi, eax
mov eax, dword [ebp - 0x24]
adc dword [ebp - 4], edx
push 0xa2c13
push eax
push ecx
call fcn.00522d20
push 0
add edi, eax
adc dword [ebp - 4], edx
mov edx, dword [ebp - 0x6c]
push 0x215d1
push edx
push ebx
call fcn.00522d20
mov ecx, dword [ebp - 0x90]
add edi, eax
mov eax, dword [ebp - 4]
adc eax, edx
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x8c]
add ecx, 0x100000
adc eax, 0
shrd ecx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 0x9c], eax
movzx eax, byte [esi + 0x13]
cdq
shld edx, eax, 5
movzx edx, byte [esi + 0x12]
shl eax, 5
mov dword [ebp - 0xa0], ecx
mov ecx, eax
shr dl, 3
movzx eax, dl
cdq
or ecx, eax
movzx eax, byte [esi + 0x14]
cdq
shld edx, eax, 0xd
shl eax, 0xd
push 0
and ecx, 0x1fffff
or ecx, eax
mov eax, dword [ebp - 0x6c]
push 0x72d18
push eax
mov dword [ebp - 4], 0
or dword [ebp - 4], edx
push ebx
mov dword [ebp - 0x80], edi
mov dword [ebp - 8], ecx
call fcn.00522d20
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x4c]
push 0
add ebx, eax
adc dword [ebp - 4], edx
mov edx, dword [ebp - 0x50]
push 0xa2c13
push ecx
push edx
call fcn.00522d20
mov ecx, dword [ebp - 0x58]
add ebx, eax
mov eax, dword [ebp - 4]
adc eax, edx
add ebx, dword [ebp - 0xa0]
adc eax, dword [ebp - 0x9c]
add ecx, 0x100000
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x54]
adc eax, 0
mov dword [ebp - 0x78], ebx
shrd ecx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 0xcc], eax
movzx eax, byte [esi + 0x1a]
and al, 3
movzx eax, al
cdq
shld edx, eax, 8
shl eax, 8
mov dword [ebp - 0xd0], ecx
mov ecx, eax
movzx eax, byte [esi + 0x19]
mov ebx, edx
cdq
and eax, 0x3ff
or eax, ecx
xor edx, edx
or ebx, edx
mov ecx, ebx
shld ecx, eax, 0xb
shl eax, 0xb
mov ebx, eax
movzx eax, byte [esi + 0x18]
cdq
shld edx, eax, 3
movzx edx, byte [esi + 0x17]
add eax, eax
mov dword [ebp - 4], ecx
add eax, eax
lea ecx, [eax + eax]
shr dl, 5
movzx eax, dl
cdq
mov edx, dword [ebp - 0x50]
or ecx, eax
xor eax, eax
or dword [ebp - 4], eax
and ecx, 0x1fffff
push eax
or ebx, ecx
mov ecx, dword [ebp - 0x4c]
push 0x9fb67
push ecx
push edx
call fcn.00522d20
mov ecx, dword [ebp - 0x70]
push 0
add ebx, eax
mov eax, dword [ebp - 0x6c]
adc dword [ebp - 4], edx
push 0xf39ad
push eax
push ecx
call fcn.00522d20
sub ebx, eax
sbb dword [ebp - 4], edx
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
push 0
push 0x72d18
push edx
push eax
call fcn.00522d20
mov ecx, dword [ebp - 0x3c]
push 0
add ebx, eax
adc dword [ebp - 4], edx
mov edx, dword [ebp - 0x40]
push 0xa2c13
push ecx
push edx
call fcn.00522d20
add ebx, eax
mov eax, dword [ebp - 4]
adc eax, edx
add ebx, dword [ebp - 0xd0]
adc eax, dword [ebp - 0xcc]
add edi, 0x100000
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x98], ebx
adc eax, 0
mov ecx, edi
shrd ecx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 0xc4], eax
movzx eax, byte [esi + 0x1f]
and al, 0xf
movzx eax, al
cdq
shld edx, eax, 8
shl eax, 8
mov dword [ebp - 0xc8], ecx
mov ecx, eax
movzx eax, byte [esi + 0x1e]
mov ebx, edx
cdq
and eax, 0xfff
or eax, ecx
xor edx, edx
or ebx, edx
shld ebx, eax, 9
shl eax, 9
mov edi, eax
movzx eax, byte [esi + 0x1d]
cdq
shld edx, eax, 1
movzx edx, byte [esi + 0x1c]
lea ecx, [eax + eax]
shr dl, 7
movzx eax, dl
cdq
mov edx, dword [ebp - 0x40]
or ecx, eax
xor eax, eax
and ecx, 0x1fffff
push eax
or edi, ecx
mov ecx, dword [ebp - 0x3c]
push 0x9fb67
push ecx
push edx
or ebx, eax
call fcn.00522d20
mov ecx, dword [ebp - 0x70]
push 0
add edi, eax
mov eax, dword [ebp - 0x6c]
push 0xa6f7d
push eax
push ecx
adc ebx, edx
call fcn.00522d20
sub edi, eax
mov eax, dword [ebp - 0x10]
push 0
sbb ebx, edx
mov edx, dword [ebp - 0xc]
push 0xf39ad
push edx
push eax
call fcn.00522d20
mov ecx, dword [ebp - 0x24]
push 0
sub edi, eax
push 0x72d18
sbb ebx, edx
mov edx, dword [ebp - 0x28]
push ecx
push edx
call fcn.00522d20
mov ecx, dword [ebp - 0x30]
push 0
add edi, eax
mov eax, dword [ebp - 0x2c]
push 0xa2c13
push eax
push ecx
adc ebx, edx
call fcn.00522d20
add edi, eax
adc ebx, edx
push 0
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x50]
push 0x215d1
push edx
push eax
call fcn.00522d20
mov ecx, dword [ebp - 0x18]
add edi, eax
mov eax, dword [ebp - 0x14]
adc ebx, edx
add edi, dword [ebp - 0xc8]
push 0
adc ebx, dword [ebp - 0xc4]
add ecx, 0x100000
adc eax, 0
shrd ecx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 4], eax
movzx eax, byte [esi + 0x23]
cdq
shld edx, eax, 7
shl eax, 7
mov dword [ebp - 8], ecx
movzx ecx, byte [esi + 0x22]
mov dword [ebp - 0xc0], edi
mov edi, eax
shr cl, 1
movzx eax, cl
mov ecx, dword [ebp - 0x30]
cdq
movzx edx, byte [esi + 0x24]
or edi, eax
and dl, 0x3f
movzx eax, dl
cdq
shld edx, eax, 0xf
shl eax, 0xf
and edi, 0x1fffff
or edi, eax
mov eax, dword [ebp - 0x2c]
push 0x9fb67
mov dword [ebp - 0xbc], ebx
push eax
xor ebx, ebx
push ecx
or ebx, edx
call fcn.00522d20
add edi, eax
mov eax, dword [ebp - 0x10]
push 0
adc ebx, edx
mov edx, dword [ebp - 0xc]
push 0xa6f7d
push edx
push eax
call fcn.00522d20
mov ecx, dword [ebp - 0x24]
push 0
sub edi, eax
push 0xf39ad
sbb ebx, edx
mov edx, dword [ebp - 0x28]
push ecx
push edx
call fcn.00522d20
mov ecx, dword [ebp - 0x40]
push 0
sub edi, eax
mov eax, dword [ebp - 0x3c]
push 0x215d1
push eax
push ecx
sbb ebx, edx
call fcn.00522d20
mov ecx, dword [ebp - 0xb8]
add edi, eax
adc ebx, edx
add edi, dword [ebp - 8]
adc ebx, dword [ebp - 4]
add ecx, 0x100000
mov dword [ebp - 0xc], ebx
mov eax, dword [ebp - 0xb4]
adc eax, 0
shrd ecx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 0x6c], eax
movzx eax, byte [esi + 0x28]
cdq
shld edx, eax, 5
movzx edx, byte [esi + 0x27]
shl eax, 5
mov ebx, eax
shr dl, 3
movzx eax, dl
cdq
or ebx, eax
movzx eax, byte [esi + 0x29]
cdq
shld edx, eax, 0xd
mov dword [ebp - 0x70], ecx
xor ecx, ecx
shl eax, 0xd
push 0
and ebx, 0x1fffff
or ecx, edx
or ebx, eax
mov eax, dword [ebp - 0x24]
push 0xa6f7d
mov dword [ebp - 0xa4], ecx
mov ecx, dword [ebp - 0x28]
push eax
push ecx
call fcn.00522d20
sub ebx, eax
sbb dword [ebp - 0xa4], edx
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
push 0
push 0x215d1
push edx
push eax
call fcn.00522d20
add ebx, eax
mov eax, dword [ebp - 0xa4]
adc eax, edx
add ebx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0xb0]
adc eax, dword [ebp - 0x6c]
add ecx, 0x100000
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0xac]
adc eax, 0
shrd ecx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa8], ecx
movzx ecx, byte [esi + 0x2f]
and cl, 3
movzx eax, cl
cdq
shld edx, eax, 8
shl eax, 8
mov ecx, eax
movzx eax, byte [esi + 0x2e]
mov dword [ebp - 0x28], ebx
mov ebx, edx
cdq
and eax, 0x3ff
or ecx, eax
movzx eax, byte [esi + 0x2d]
xor edx, edx
or ebx, edx
cdq
shld edx, eax, 3
shld ebx, ecx, 0xb
add eax, eax
add eax, eax
mov dword [ebp - 0x1c], ebx
lea ebx, [eax + eax]
movzx eax, byte [esi + 0x2c]
shl ecx, 0xb
shr al, 5
movzx eax, al
cdq
or ebx, eax
mov eax, dword [ebp - 0x1c]
xor edx, edx
or eax, edx
and ebx, 0x1fffff
or ecx, ebx
mov ebx, dword [ebp - 0xa8]
add ecx, ebx
adc eax, dword [ebp - 0xa4]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x78]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x74]
add ecx, 0x100000
adc eax, edx
shrd ecx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x98]
add ecx, 0x100000
adc eax, edx
shrd ecx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0xc0]
add ecx, 0x100000
adc eax, edx
mov edx, dword [ebp - 4]
shrd ecx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 8]
shld edx, eax, 0x15
shl eax, 0x15
mov dword [ebp - 0x68], ecx
sub ecx, eax
mov eax, dword [ebp - 0x64]
sbb eax, edx
add dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x6c]
mov ecx, edi
adc dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xc]
add ecx, 0x100000
adc eax, 0
shrd ecx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x70]
shld edx, eax, 0x15
shl eax, 0x15
mov dword [ebp - 8], ecx
sub ecx, eax
mov eax, dword [ebp - 4]
sbb eax, edx
add dword [ebp - 0xb8], ecx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
adc dword [ebp - 0xb4], eax
push 0xffffffffffffffff
push 0xffe00000
push ecx
push edx
call fcn.00522d20
add edi, eax
adc dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x28]
mov edx, edi
add edx, 0x100000
adc eax, 0
shrd edx, eax, 0x15
mov dword [ebp - 8], edx
sar eax, 0x15
mov ecx, dword [ebp - 0xa4]
shld ecx, ebx, 0x15
shl ebx, 0x15
sub edx, ebx
push 0xffffffffffffffff
mov ebx, eax
sbb ebx, ecx
add dword [ebp - 0xb0], edx
mov edx, dword [ebp - 8]
push 0xffe00000
adc dword [ebp - 0xac], ebx
push eax
push edx
call fcn.00522d20
mov ecx, dword [ebp - 0x20]
push 0
add edi, eax
mov eax, dword [ebp - 0x1c]
adc dword [ebp - 0x24], edx
push 0xa6f7d
push eax
push ecx
mov dword [ebp - 0x28], edi
call fcn.00522d20
push 0xffffffffffffffff
mov ebx, edx
mov edx, dword [ebp - 0xc4]
push 0xffe00000
mov edi, eax
mov eax, dword [ebp - 0xc8]
push edx
push eax
call fcn.00522d20
mov ecx, dword [ebp - 0x24]
sub eax, edi
sbb edx, ebx
add eax, dword [ebp - 0x40]
push 0
adc edx, dword [ebp - 0x3c]
add dword [ebp - 0x80], eax
push 0xa6f7d
push ecx
adc dword [ebp - 0x7c], edx
mov edx, dword [ebp - 0x28]
push edx
call fcn.00522d20
mov ecx, dword [ebp - 0x20]
push 0xffffffffffffffff
mov edi, eax
mov eax, dword [ebp - 0x1c]
push 0xfff0c653
push eax
push ecx
mov ebx, edx
call fcn.00522d20
push 0
mov ecx, edx
mov edx, dword [ebp - 0xac]
push 0x215d1
sub eax, edi
push edx
mov edx, dword [ebp - 0xb0]
sbb ecx, ebx
push edx
mov edi, eax
mov ebx, ecx
call fcn.00522d20
mov ecx, dword [ebp - 0xcc]
add edi, eax
mov eax, dword [ebp - 0xd0]
adc ebx, edx
shld ecx, eax, 0x15
shl eax, 0x15
sub edi, eax
sbb ebx, ecx
add edi, dword [ebp - 0x50]
adc ebx, dword [ebp - 0x4c]
add dword [ebp - 0x58], edi
adc dword [ebp - 0x54], ebx
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xb0]
push 0
push 0x9fb67
push eax
push ecx
call fcn.00522d20
push 0
mov ebx, edx
mov edx, dword [ebp - 0xc]
push 0xa6f7d
mov edi, eax
mov eax, dword [ebp - 0x10]
push edx
push eax
call fcn.00522d20
mov ecx, dword [ebp - 0x24]
push 0
sub edi, eax
push 0xf39ad
sbb ebx, edx
mov edx, dword [ebp - 0x28]
push ecx
push edx
call fcn.00522d20
mov ecx, dword [ebp - 0x20]
push 0
sub edi, eax
mov eax, dword [ebp - 0x1c]
push 0x72d18
push eax
push ecx
sbb ebx, edx
call fcn.00522d20
add edi, eax
mov eax, dword [ebp - 0xb8]
push 0
adc ebx, edx
mov edx, dword [ebp - 0xb4]
push 0x215d1
push edx
push eax
call fcn.00522d20
mov ecx, dword [ebp - 0x9c]
add edi, eax
mov eax, dword [ebp - 0xa0]
adc ebx, edx
shld ecx, eax, 0x15
shl eax, 0x15
sub edi, eax
movzx eax, byte [esi + 2]
sbb ebx, ecx
add dword [ebp - 0x90], edi
cdq
adc dword [ebp - 0x8c], ebx
shld edx, eax, 8
shl eax, 8
mov ecx, eax
movzx eax, byte [esi + 1]
mov edi, edx
cdq
or edi, edx
or ecx, eax
movzx eax, byte [esi]
mov edx, ecx
mov ecx, dword [ebp - 0x18]
shld edi, edx, 8
shl edx, 8
mov edi, edx
cdq
xor ebx, ebx
push ebx
or edi, eax
mov eax, dword [ebp - 0x14]
push 0xa2c13
push eax
push ecx
and edi, 0x1fffff
call fcn.00522d20
add edi, eax
mov dword [ebp - 0x30], edi
adc ebx, edx
movzx edx, byte [esi + 5]
and dl, 3
movzx eax, dl
cdq
shld edx, eax, 8
shl eax, 8
mov ecx, eax
movzx eax, byte [esi + 4]
mov dword [ebp - 0x2c], ebx
mov ebx, edx
cdq
and eax, 0x3ff
or eax, ecx
xor edx, edx
or ebx, edx
shld ebx, eax, 0xb
shl eax, 0xb
mov edi, eax
movzx eax, byte [esi + 3]
cdq
shld edx, eax, 3
movzx edx, byte [esi + 2]
add eax, eax
add eax, eax
lea ecx, [eax + eax]
shr dl, 5
movzx eax, dl
cdq
mov edx, dword [ebp - 0x18]
or ecx, eax
xor eax, eax
and ecx, 0x1fffff
push eax
or edi, ecx
mov ecx, dword [ebp - 0x14]
push 0x72d18
push ecx
push edx
or ebx, eax
call fcn.00522d20
mov ecx, dword [ebp - 0x10]
push 0
add edi, eax
mov eax, dword [ebp - 0xc]
push 0xa2c13
push eax
push ecx
adc ebx, edx
call fcn.00522d20
add edi, eax
movzx eax, byte [esi + 6]
adc ebx, edx
cdq
shld edx, eax, 6
movzx edx, byte [esi + 5]
shl eax, 6
mov ecx, dword [ebp - 0x14]
shr dl, 2
mov dword [ebp - 0x38], edi
mov edi, eax
movzx eax, dl
cdq
or edi, eax
movzx eax, byte [esi + 7]
and al, 0x7f
movzx eax, al
cdq
shld edx, eax, 0xe
push 0
mov dword [ebp - 0x34], ebx
xor ebx, ebx
push 0x9fb67
or ebx, edx
mov edx, dword [ebp - 0x18]
push ecx
and edi, 0x1fffff
shl eax, 0xe
push edx
or edi, eax
call fcn.00522d20
mov ecx, dword [ebp - 0x10]
push 0
add edi, eax
mov eax, dword [ebp - 0xc]
push 0x72d18
push eax
push ecx
adc ebx, edx
call fcn.00522d20
add edi, eax
mov eax, dword [ebp - 0xb8]
push 0
adc ebx, edx
mov edx, dword [ebp - 0xb4]
push 0xa2c13
push edx
push eax
call fcn.00522d20
movzx ecx, byte [esi + 0xa]
add edi, eax
adc ebx, edx
and cl, 0xf
movzx eax, cl
cdq
shld edx, eax, 8
shl eax, 8
mov ecx, eax
movzx eax, byte [esi + 9]
mov dword [ebp - 0x84], ebx
mov ebx, edx
cdq
and eax, 0xfff
or eax, ecx
xor edx, edx
or ebx, edx
shld ebx, eax, 9
shl eax, 9
mov dword [ebp - 0x88], edi
mov edi, eax
movzx eax, byte [esi + 8]
cdq
shld edx, eax, 1
movzx edx, byte [esi + 7]
lea ecx, [eax + eax]
shr dl, 7
movzx eax, dl
cdq
mov edx, dword [ebp - 0x10]
or ecx, eax
xor eax, eax
and ecx, 0x1fffff
push eax
or edi, ecx
mov ecx, dword [ebp - 0xc]
push 0x9fb67
push ecx
push edx
or ebx, eax
call fcn.00522d20
mov ecx, dword [ebp - 0x18]
push 0
add edi, eax
mov eax, dword [ebp - 0x14]
push 0xf39ad
push eax
push ecx
adc ebx, edx
call fcn.00522d20
sub edi, eax
mov eax, dword [ebp - 0xb8]
push 0
sbb ebx, edx
mov edx, dword [ebp - 0xb4]
push 0x72d18
push edx
push eax
call fcn.00522d20
add edi, eax
push 0
adc ebx, edx
push 0xa2c13
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
push ecx
push edx
call fcn.00522d20
add edi, eax
movzx eax, byte [esi + 0xd]
adc ebx, edx
and al, 1
movzx eax, al
cdq
shld edx, eax, 8
shl eax, 8
mov ecx, eax
movzx eax, byte [esi + 0xc]
mov dword [ebp - 0x44], ebx
mov ebx, edx
cdq
and eax, 0x1ff
or eax, ecx
xor edx, edx
or ebx, edx
shld ebx, eax, 0xc
shl eax, 0xc
mov dword [ebp - 0x48], edi
mov edi, eax
movzx eax, byte [esi + 0xb]
cdq
shld edx, eax, 4
movzx edx, byte [esi + 0xa]
shl eax, 4
mov ecx, eax
shr dl, 4
movzx eax, dl
cdq
mov edx, dword [ebp - 0xb8]
or ecx, eax
xor eax, eax
and ecx, 0x1fffff
push eax
or edi, ecx
mov ecx, dword [ebp - 0xb4]
push 0x9fb67
push ecx
push edx
or ebx, eax
call fcn.00522d20
mov ecx, dword [ebp - 0x10]
push 0
add edi, eax
mov eax, dword [ebp - 0xc]
push 0xf39ad
push eax
push ecx
adc ebx, edx
call fcn.00522d20
sub edi, eax
mov eax, dword [ebp - 0x28]
push 0
sbb ebx, edx
mov edx, dword [ebp - 0x24]
push 0x72d18
push edx
push eax
call fcn.00522d20
mov ecx, dword [ebp - 0xac]
push 0
add edi, eax
push 0xa2c13
adc ebx, edx
mov edx, dword [ebp - 0xb0]
push ecx
push edx
call fcn.00522d20
mov ecx, dword [ebp - 0x18]
push 0
add edi, eax
mov eax, dword [ebp - 0x14]
push 0x215d1
adc ebx, edx
push eax
push ecx
call fcn.00522d20
add edi, eax
movzx eax, byte [esi + 0xe]
adc ebx, edx
cdq
shld edx, eax, 7
movzx edx, byte [esi + 0xd]
shl eax, 7
mov ecx, dword [ebp - 0x24]
shr dl, 1
mov dword [ebp - 0x60], edi
mov edi, eax
movzx eax, dl
cdq
or edi, eax
movzx eax, byte [esi + 0xf]
and al, 0x3f
movzx eax, al
cdq
shld edx, eax, 0xf
push 0
mov dword [ebp - 0x5c], ebx
push 0x9fb67
xor ebx, ebx
or ebx, edx
mov edx, dword [ebp - 0x28]
push ecx
shl eax, 0xf
and edi, 0x1fffff
push edx
or edi, eax
call fcn.00522d20
mov ecx, dword [ebp - 0x18]
push 0
add edi, eax
mov eax, dword [ebp - 0x14]
push 0xa6f7d
push eax
push ecx
adc ebx, edx
call fcn.00522d20
sub edi, eax
mov eax, dword [ebp - 0xb8]
push 0
sbb ebx, edx
mov edx, dword [ebp - 0xb4]
push 0xf39ad
push edx
push eax
call fcn.00522d20
mov ecx, dword [ebp - 0xac]
push 0
sub edi, eax
push 0x72d18
sbb ebx, edx
mov edx, dword [ebp - 0xb0]
push ecx
push edx
call fcn.00522d20
mov ecx, dword [ebp - 0x20]
push 0
add edi, eax
mov eax, dword [ebp - 0x1c]
push 0xa2c13
push eax
push ecx
adc ebx, edx
call fcn.00522d20
add edi, eax
mov eax, dword [ebp - 0x10]
push 0
adc ebx, edx
mov edx, dword [ebp - 0xc]
push 0x215d1
push edx
push eax
call fcn.00522d20
mov ecx, dword [ebp - 0x30]
add edi, eax
adc ebx, edx
mov eax, dword [ebp - 0x2c]
add ecx, 0x100000
adc eax, 0
shrd ecx, eax, 0x15
sar eax, 0x15
add dword [ebp - 0x38], ecx
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0x88]
adc dword [ebp - 0x34], eax
add ecx, 0x100000
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x84]
adc eax, 0
shrd ecx, eax, 0x15
sar eax, 0x15
add dword [ebp - 0x48], ecx
mov dword [ebp - 0xa8], ecx
mov ecx, dword [ebp - 0x60]
adc dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x5c]
add ecx, 0x100000
adc eax, 0
shrd ecx, eax, 0x15
sar eax, 0x15
add edi, ecx
mov dword [ebp - 0x70], ecx
mov ecx, dword [ebp - 0x90]
adc ebx, eax
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x8c]
add ecx, 0x100000
adc eax, 0
shrd ecx, eax, 0x15
push 0
mov dword [ebp - 0xa0], ecx
mov ecx, dword [ebp - 0x1c]
push 0x9fb67
push ecx
sar eax, 0x15
push edx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x9c], eax
call fcn.00522d20
mov ecx, dword [ebp - 0xb8]
push 0
mov edi, eax
mov eax, dword [ebp - 0xb4]
push 0xa6f7d
push eax
push ecx
mov ebx, edx
call fcn.00522d20
sub edi, eax
mov eax, dword [ebp - 0xb0]
push 0
sbb ebx, edx
mov edx, dword [ebp - 0xac]
push 0xf39ad
push edx
push eax
call fcn.00522d20
mov ecx, dword [ebp - 0x24]
push 0
sub edi, eax
push 0x215d1
sbb ebx, edx
mov edx, dword [ebp - 0x28]
push ecx
push edx
call fcn.00522d20
mov ecx, dword [ebp - 0x4c]
add edi, eax
mov eax, dword [ebp - 0x50]
adc ebx, edx
shld ecx, eax, 0x15
shl eax, 0x15
sub edi, eax
sbb ebx, ecx
add edi, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x58]
adc ebx, dword [ebp - 0x9c]
add dword [ebp - 0x78], edi
mov eax, dword [ebp - 0x54]
push 0
adc dword [ebp - 0x74], ebx
add ecx, 0x100000
adc eax, 0
shrd ecx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xac]
push 0xa6f7d
mov dword [ebp - 0xd0], ecx
mov ecx, dword [ebp - 0xb0]
push eax
push ecx
call fcn.00522d20
push 0
mov ebx, edx
mov edx, dword [ebp - 0x1c]
push 0x215d1
mov edi, eax
mov eax, dword [ebp - 0x20]
push edx
push eax
call fcn.00522d20
mov ecx, dword [ebp - 0x3c]
sub eax, edi
sbb edx, ebx
mov ebx, dword [ebp - 0x64]
mov edi, eax
mov eax, dword [ebp - 0x40]
shld ecx, eax, 0x15
shl eax, 0x15
sub edi, eax
mov eax, dword [ebp - 0xd0]
sbb edx, ecx
mov ecx, dword [ebp - 0x7c]
add edi, eax
adc edx, dword [ebp - 0xcc]
add dword [ebp - 0x98], edi
mov edi, dword [ebp - 0x80]
adc dword [ebp - 0x94], edx
mov edx, dword [ebp - 0x68]
add edi, 0x100000
adc ecx, 0
shrd edi, ecx, 0x15
sar ecx, 0x15
shld ebx, edx, 0x15
shl edx, 0x15
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xc8], edi
sub edi, edx
mov edx, dword [ebp - 0x38]
sbb ecx, ebx
add dword [ebp - 0xc0], edi
mov edi, dword [ebp - 0x18]
adc dword [ebp - 0xbc], ecx
mov ecx, dword [ebp - 0x34]
add edx, 0x100000
adc ecx, 0
shrd edx, ecx, 0x15
sar ecx, 0x15
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x44]
add edx, 0x100000
adc ecx, 0
shrd edx, ecx, 0x15
sar ecx, 0x15
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x14]
add edi, 0x100000
adc ecx, 0
shrd edi, ecx, 0x15
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x28], edi
mov edx, dword [ebp - 0xa0]
mov ebx, dword [ebp - 0x9c]
sar ecx, 0x15
shld ebx, edx, 0x15
shl edx, 0x15
sub edi, edx
mov edx, dword [ebp - 0x78]
mov dword [ebp - 0x24], ecx
sbb ecx, ebx
add dword [ebp - 0x90], edi
mov edi, dword [ebp - 0xcc]
push 0
adc dword [ebp - 0x8c], ecx
mov ecx, dword [ebp - 0x74]
add edx, 0x100000
adc ecx, 0
shld edi, eax, 0x15
shrd edx, ecx, 0x15
shl eax, 0x15
sar ecx, 0x15
mov dword [ebp - 0x50], edx
sub edx, eax
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x4c], ecx
sbb ecx, edi
add dword [ebp - 0x58], edx
mov edx, dword [ebp - 0x98]
mov edi, dword [ebp - 0xc4]
adc dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 0xc8]
add edx, 0x100000
adc eax, 0
shrd edx, eax, 0x15
shld edi, ecx, 0x15
sar eax, 0x15
shl ecx, 0x15
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], edx
sub edx, ecx
sbb eax, edi
add dword [ebp - 0x80], edx
mov edi, dword [ebp - 0xbc]
push 0xa2c13
adc dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0xc0]
add eax, 0x100000
adc edi, 0
shrd eax, edi, 0x15
sar edi, 0x15
push edi
push eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edi
call fcn.00522d20
mov ecx, dword [ebp - 4]
mov ebx, eax
mov eax, dword [ebp - 8]
shld ecx, eax, 0x15
shl eax, 0x15
push 0
sub ebx, eax
sbb edx, ecx
add dword [ebp - 0x30], ebx
mov ecx, dword [ebp - 0x68]
push 0x72d18
adc dword [ebp - 0x2c], edx
push edi
push ecx
call fcn.00522d20
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x1c]
shld ebx, ecx, 0x15
shl ecx, 0x15
sub eax, ecx
mov ecx, dword [ebp - 0xa4]
sbb edx, ebx
add dword [ebp - 0x38], eax
mov eax, dword [ebp - 0xa8]
adc dword [ebp - 0x34], edx
shld ecx, eax, 0x15
shl eax, 0x15
mov edx, dword [ebp - 0x68]
push 0
push 0x9fb67
push edi
push edx
mov ebx, eax
mov dword [ebp + 8], ecx
call fcn.00522d20
mov ecx, dword [ebp - 0x68]
sub eax, ebx
sbb edx, dword [ebp + 8]
add eax, dword [ebp - 0x20]
push 0
adc edx, dword [ebp - 0x1c]
add dword [ebp - 0x88], eax
push 0xf39ad
mov eax, edi
adc dword [ebp - 0x84], edx
push eax
push ecx
call fcn.00522d20
push 0xffffffffffffffff
mov ebx, edx
mov edx, dword [ebp - 0xc]
push 0xffe00000
mov edi, eax
mov eax, dword [ebp - 0x10]
push edx
push eax
call fcn.00522d20
mov ecx, dword [ebp - 0x64]
sub eax, edi
mov edi, dword [ebp - 0x68]
push 0
sbb edx, ebx
add dword [ebp - 0x48], eax
push 0x215d1
push ecx
adc dword [ebp - 0x44], edx
push edi
call fcn.00522d20
mov ecx, dword [ebp - 0x6c]
mov ebx, eax
mov eax, dword [ebp - 0x70]
shld ecx, eax, 0x15
shl eax, 0x15
sub ebx, eax
mov eax, dword [ebp - 0x28]
sbb edx, ecx
add ebx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x24]
adc edx, dword [ebp - 0xc]
add dword [ebp - 0x60], ebx
push 0xffffffffffffffff
push 0xfff59083
adc dword [ebp - 0x5c], edx
mov edx, dword [ebp - 0x64]
shld ecx, eax, 0x15
push edx
shl eax, 0x15
push edi
mov ebx, eax
mov dword [ebp + 8], ecx
call fcn.00522d20
mov edi, dword [ebp - 0x34]
sub eax, ebx
mov ebx, dword [ebp - 0x30]
mov ecx, edx
sbb ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
add edx, eax
adc dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x38]
shrd ebx, eax, 0x15
sar eax, 0x15
add ecx, ebx
adc edi, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], edi
mov eax, edi
shrd ecx, eax, 0x15
mov edi, dword [ebp - 0x88]
sar eax, 0x15
add edi, ecx
adc dword [ebp - 0x84], eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x84]
mov ecx, edi
shrd ecx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0x88], edi
mov edi, dword [ebp - 0x48]
add edi, ecx
adc dword [ebp - 0x44], eax
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x44]
mov ecx, edi
shrd ecx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x48], edi
mov edi, dword [ebp - 0x60]
add edi, ecx
adc dword [ebp - 0x5c], eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x5c]
mov ecx, edi
shrd ecx, eax, 0x15
sar eax, 0x15
add edx, ecx
mov dword [ebp - 0x70], ecx
mov ecx, dword [ebp - 0x14]
adc ecx, eax
mov dword [ebp - 0x6c], eax
mov eax, ecx
mov dword [ebp - 0x18], edx
shrd edx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x90]
add ecx, edx
mov dword [ebp - 0x60], edi
mov edi, dword [ebp - 0x8c]
adc edi, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], edx
mov edx, ecx
mov dword [ebp - 0x90], ecx
mov ecx, dword [ebp - 0x50]
mov eax, edi
shrd edx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 0x8c], edi
mov edi, dword [ebp - 0x4c]
shld edi, ecx, 0x15
shl ecx, 0x15
mov dword [ebp - 0xa0], edx
sub edx, ecx
mov ecx, dword [ebp - 0x78]
mov dword [ebp - 0x9c], eax
sbb eax, edi
add ecx, edx
mov edx, dword [ebp - 0x58]
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x74]
adc eax, dword [ebp + 8]
mov dword [ebp - 0x78], ecx
shrd ecx, eax, 0x15
mov dword [ebp - 0x74], eax
sar eax, 0x15
add edx, ecx
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x54]
adc ecx, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x54], ecx
mov eax, ecx
mov ecx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x3c]
shrd edx, eax, 0x15
shld edi, ecx, 0x15
sar eax, 0x15
shl ecx, 0x15
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xd0], edx
sub edx, ecx
mov ecx, dword [ebp - 0x98]
sbb eax, edi
mov edi, dword [ebp - 0x64]
add ecx, edx
mov edx, dword [ebp - 0x80]
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x94]
adc eax, dword [ebp + 8]
mov dword [ebp - 0x98], ecx
shrd ecx, eax, 0x15
mov dword [ebp - 0x94], eax
sar eax, 0x15
add edx, ecx
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x7c]
adc ecx, eax
mov dword [ebp - 0x3c], eax
mov eax, ecx
mov dword [ebp - 0x7c], ecx
mov ecx, dword [ebp - 0x68]
shld edi, ecx, 0x15
mov dword [ebp - 0x80], edx
shrd edx, eax, 0x15
sar eax, 0x15
shl ecx, 0x15
mov dword [ebp - 0xc8], edx
sub edx, ecx
mov ecx, eax
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xc0]
sbb ecx, edi
mov edi, dword [ebp - 0xbc]
add eax, edx
adc edi, ecx
push 0
mov dword [ebp - 0xc0], eax
shrd eax, edi, 0x15
push 0xa2c13
mov dword [ebp - 0xbc], edi
sar edi, 0x15
push edi
push eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edi
call fcn.00522d20
mov ecx, eax
mov eax, dword [ebp - 4]
shld eax, ebx, 0x15
shl ebx, 0x15
sub ecx, ebx
sbb edx, eax
mov eax, dword [ebp - 0x30]
add eax, ecx
mov ecx, dword [ebp - 0x2c]
adc ecx, edx
mov edx, eax
mov dword [ebp - 0x30], eax
mov eax, ecx
shrd edx, eax, 0x15
push 0
push 0x72d18
mov dword [ebp - 8], edx
mov edx, dword [ebp - 0x68]
push edi
sar eax, 0x15
push edx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 4], eax
call fcn.00522d20
mov ecx, dword [ebp - 0x1c]
mov ebx, eax
mov eax, dword [ebp - 0x20]
shld ecx, eax, 0x15
shl eax, 0x15
sub ebx, eax
mov eax, dword [ebp - 8]
sbb edx, ecx
mov ecx, dword [ebp - 4]
add ebx, eax
adc edx, dword [ebp - 4]
push 0xffffffffffffffff
mov dword [ebp + 8], ebx
mov ebx, dword [ebp - 0x38]
add ebx, dword [ebp + 8]
push 0xffe00000
adc dword [ebp - 0x34], edx
push ecx
push eax
mov dword [ebp - 0x38], ebx
call fcn.00522d20
add dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0xa4]
adc dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x68]
shrd ebx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0xa8]
push 0
shld ecx, eax, 0x15
push 0x9fb67
push edi
shl eax, 0x15
mov dword [ebp - 0x20], ebx
push edx
mov ebx, eax
mov dword [ebp + 8], ecx
call fcn.00522d20
mov ecx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x88]
sub eax, ebx
sbb edx, dword [ebp + 8]
mov ebx, eax
mov eax, dword [ebp - 0x20]
add ebx, eax
push 0xffffffffffffffff
adc edx, ecx
add edi, ebx
mov ebx, dword [ebp - 0x84]
push 0xffe00000
push ecx
adc ebx, edx
push eax
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x84], ebx
call fcn.00522d20
add dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x68]
mov eax, ebx
adc dword [ebp - 0x34], edx
shrd edi, eax, 0x15
sar eax, 0x15
push 0
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x64]
push 0xf39ad
push eax
push ecx
mov dword [ebp - 0xa8], edi
call fcn.00522d20
push 0xffffffffffffffff
mov ebx, edx
mov edx, dword [ebp - 0xc]
push 0xffe00000
mov edi, eax
mov eax, dword [ebp - 0x10]
push edx
push eax
call fcn.00522d20
sub eax, edi
mov ecx, dword [ebp - 0xa4]
mov edi, dword [ebp - 0x48]
sbb edx, ebx
mov ebx, eax
mov eax, dword [ebp - 0xa8]
add ebx, eax
push 0xffffffffffffffff
adc edx, ecx
push 0xffe00000
add edi, ebx
mov ebx, dword [ebp - 0x44]
push ecx
adc ebx, edx
push eax
mov dword [ebp - 0x44], ebx
call fcn.00522d20
add dword [ebp - 0x88], eax
mov eax, ebx
mov ecx, edi
adc dword [ebp - 0x84], edx
mov edx, dword [ebp - 0x68]
shrd ecx, eax, 0x15
push 0
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x64]
push 0x215d1
push ecx
sar eax, 0x15
push edx
mov dword [ebp - 0xc], eax
call fcn.00522d20
mov ecx, dword [ebp - 0x6c]
mov ebx, eax
mov eax, dword [ebp - 0x70]
shld ecx, eax, 0x15
shl eax, 0x15
sub ebx, eax
mov eax, dword [ebp - 0x10]
sbb edx, ecx
mov ecx, dword [ebp - 0xc]
add ebx, eax
adc edx, dword [ebp - 0xc]
push 0xffffffffffffffff
mov dword [ebp + 8], ebx
mov ebx, dword [ebp - 0x60]
add ebx, dword [ebp + 8]
push 0xffe00000
adc dword [ebp - 0x5c], edx
push ecx
push eax
mov dword [ebp - 0x60], ebx
call fcn.00522d20
add edi, eax
adc dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x64]
shrd ebx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x70], ebx
mov ebx, dword [ebp - 0x24]
push 0xffffffffffffffff
shld ebx, eax, 0x15
shl eax, 0x15
push 0xfff59083
mov dword [ebp - 0x48], edi
mov edi, eax
mov eax, dword [ebp - 0x68]
push edx
push eax
call fcn.00522d20
mov ecx, dword [ebp - 0x6c]
sub eax, edi
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x70]
sbb edx, ebx
mov ebx, dword [ebp + 8]
add ebx, eax
mov edi, dword [ebp - 0x18]
push 0xffffffffffffffff
adc edx, ecx
add edi, ebx
mov ebx, dword [ebp - 0x14]
push 0xffe00000
push ecx
adc ebx, edx
push eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], ebx
call fcn.00522d20
add dword [ebp - 0x60], eax
mov eax, dword [ebp - 0xa0]
mov ecx, ebx
adc dword [ebp - 0x5c], edx
mov edx, edi
mov edi, dword [ebp - 0x9c]
shrd edx, ecx, 0x15
shld edi, eax, 0x15
shl eax, 0x15
sar ecx, 0x15
mov ebx, edx
sub ebx, eax
push 0xffffffffffffffff
mov eax, ecx
sbb eax, edi
mov edi, dword [ebp - 0x8c]
mov dword [ebp + 8], ebx
mov ebx, dword [ebp - 0x90]
add ebx, dword [ebp + 8]
push 0xffe00000
push ecx
push edx
adc edi, eax
call fcn.00522d20
add dword [ebp - 0x18], eax
mov eax, edi
mov ecx, ebx
adc dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x4c]
shrd ecx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x50]
shld edx, eax, 0x15
shl eax, 0x15
mov dword [ebp - 0xa0], ecx
sub ecx, eax
mov eax, dword [ebp - 0x9c]
sbb eax, edx
add dword [ebp - 0x78], ecx
mov ecx, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xa0]
adc dword [ebp - 0x74], eax
push 0xffffffffffffffff
push 0xffe00000
push ecx
push edx
call fcn.00522d20
mov ecx, dword [ebp - 0x74]
add ebx, eax
mov eax, dword [ebp - 0xd0]
adc edi, edx
mov edx, dword [ebp - 0x78]
shrd edx, ecx, 0x15
mov dword [ebp - 0x90], ebx
mov ebx, dword [ebp - 0xcc]
shld ebx, eax, 0x15
shl eax, 0x15
sar ecx, 0x15
mov dword [ebp - 0x50], edx
sub edx, eax
mov eax, ecx
sbb eax, ebx
mov ebx, dword [ebp - 0x58]
add ebx, edx
adc dword [ebp - 0x54], eax
push 0xffffffffffffffff
mov dword [ebp - 0x58], ebx
push 0xffe00000
push ecx
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.00522d20
add dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x40]
adc dword [ebp - 0x74], edx
mov edx, ebx
mov ebx, dword [ebp - 0x3c]
shrd edx, ecx, 0x15
shld ebx, eax, 0x15
sar ecx, 0x15
shl eax, 0x15
mov dword [ebp - 0xd0], edx
sub edx, eax
push 0xffffffffffffffff
mov eax, ecx
sbb eax, ebx
add dword [ebp - 0x98], edx
mov ebx, dword [ebp - 0x94]
push 0xffe00000
push ecx
mov ecx, dword [ebp - 0xd0]
push ecx
adc ebx, eax
call fcn.00522d20
add dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x98]
mov eax, ebx
adc dword [ebp - 0x54], edx
mov edx, dword [ebp - 0xc4]
shrd ecx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0xc8]
shld edx, eax, 0x15
shl eax, 0x15
mov dword [ebp - 0x40], ecx
sub ecx, eax
mov eax, dword [ebp - 0x3c]
sbb eax, edx
add dword [ebp - 0x80], ecx
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
adc dword [ebp - 0x7c], eax
push 0xffffffffffffffff
push 0xffe00000
push ecx
push edx
call fcn.00522d20
add dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x80]
adc ebx, edx
mov edx, dword [ebp - 0x64]
shrd ecx, eax, 0x15
sar eax, 0x15
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x68]
shld edx, eax, 0x15
shl eax, 0x15
mov dword [ebp - 0xc8], ecx
sub ecx, eax
mov eax, dword [ebp - 0xc4]
sbb eax, edx
add dword [ebp - 0xc0], ecx
mov ecx, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xc8]
adc dword [ebp - 0xbc], eax
push 0xffffffffffffffff
push 0xffe00000
push ecx
push edx
call fcn.00522d20
add dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x30]
adc eax, edx
mov edx, dword [ebp - 0x2c]
mov byte [esi], cl
shrd ecx, edx, 8
mov byte [esi + 1], cl
mov ecx, dword [ebp - 0x2c]
sar edx, 8
mov edx, dword [ebp - 0x30]
shrd edx, ecx, 0x10
sar ecx, 0x10
movzx ecx, byte [ebp - 0x38]
shl cl, 5
or dl, cl
mov ecx, dword [ebp - 0x34]
mov byte [esi + 2], dl
mov edx, dword [ebp - 0x38]
shrd edx, ecx, 3
sar ecx, 3
mov ecx, dword [ebp - 0x34]
mov byte [esi + 3], dl
mov edx, dword [ebp - 0x38]
shrd edx, ecx, 0xb
sar ecx, 0xb
mov ecx, dword [ebp - 0x34]
mov byte [esi + 4], dl
mov edx, dword [ebp - 0x38]
shrd edx, ecx, 0x13
sar ecx, 0x13
movzx ecx, byte [ebp - 0x88]
add cl, cl
add cl, cl
or dl, cl
mov ecx, dword [ebp - 0x84]
mov byte [esi + 5], dl
mov edx, dword [ebp - 0x88]
shrd edx, ecx, 6
sar ecx, 6
mov ecx, dword [ebp - 0x84]
mov byte [esi + 6], dl
mov edx, dword [ebp - 0x88]
shrd edx, ecx, 0xe
sar ecx, 0xe
movzx ecx, byte [ebp - 0x48]
shl cl, 7
or dl, cl
mov ecx, dword [ebp - 0x44]
mov byte [esi + 7], dl
mov edx, dword [ebp - 0x48]
shrd edx, ecx, 1
sar ecx, 1
mov ecx, dword [ebp - 0x44]
mov byte [esi + 8], dl
mov edx, dword [ebp - 0x48]
shrd edx, ecx, 9
sar ecx, 9
mov ecx, dword [ebp - 0x44]
mov byte [esi + 9], dl
mov edx, dword [ebp - 0x48]
shrd edx, ecx, 0x11
sar ecx, 0x11
movzx ecx, byte [ebp - 0x60]
shl cl, 4
or dl, cl
mov ecx, dword [ebp - 0x5c]
mov byte [esi + 0xa], dl
mov edx, dword [ebp - 0x60]
shrd edx, ecx, 4
sar ecx, 4
mov ecx, dword [ebp - 0x5c]
mov byte [esi + 0xb], dl
mov edx, dword [ebp - 0x60]
shrd edx, ecx, 0xc
sar ecx, 0xc
mov ecx, dword [ebp - 0x5c]
mov byte [esi + 0xc], dl
mov edx, dword [ebp - 0x60]
shrd edx, ecx, 0x14
sar ecx, 0x14
movzx ecx, byte [ebp - 0x18]
add cl, cl
or dl, cl
mov ecx, dword [ebp - 0x14]
mov byte [esi + 0xd], dl
mov edx, dword [ebp - 0x18]
shrd edx, ecx, 7
sar ecx, 7
mov ecx, dword [ebp - 0x14]
mov byte [esi + 0xe], dl
mov edx, dword [ebp - 0x18]
shrd edx, ecx, 0xf
sar ecx, 0xf
movzx ecx, byte [ebp - 0x90]
shl cl, 6
or dl, cl
mov byte [esi + 0xf], dl
mov edx, dword [ebp - 0x90]
mov ecx, edi
shrd edx, ecx, 2
mov byte [esi + 0x10], dl
mov edx, dword [ebp - 0x90]
sar ecx, 2
mov ecx, edi
shrd edx, ecx, 0xa
mov byte [esi + 0x11], dl
movzx edx, byte [ebp - 0x78]
sar ecx, 0xa
mov ecx, dword [ebp - 0x90]
shrd ecx, edi, 0x12
add dl, dl
add dl, dl
add dl, dl
or cl, dl
sar edi, 0x12
mov edi, dword [ebp - 0x74]
mov byte [esi + 0x12], cl
mov ecx, dword [ebp - 0x78]
mov edx, edi
shrd ecx, edx, 5
mov byte [esi + 0x13], cl
mov ecx, dword [ebp - 0x78]
shrd ecx, edi, 0xd
sar edx, 5
sar edi, 0xd
mov edi, dword [ebp - 0x54]
mov byte [esi + 0x14], cl
mov ecx, dword [ebp - 0x58]
mov edx, edi
mov byte [esi + 0x15], cl
shrd ecx, edx, 8
sar edx, 8
movzx edx, byte [ebp - 0x98]
mov byte [esi + 0x16], cl
mov ecx, dword [ebp - 0x58]
shrd ecx, edi, 0x10
shl dl, 5
or cl, dl
sar edi, 0x10
mov byte [esi + 0x17], cl
mov ecx, dword [ebp - 0x98]
mov edi, ebx
mov edx, ecx
shrd edx, edi, 3
sar edi, 3
mov byte [esi + 0x18], dl
mov edi, ebx
mov edx, ecx
shrd edx, edi, 0xb
shrd ecx, ebx, 0x13
mov byte [esi + 0x19], dl
mov dl, cl
mov ecx, dword [ebp - 0x80]
sar ebx, 0x13
mov bl, cl
add bl, bl
add bl, bl
or dl, bl
sar edi, 0xb
mov byte [esi + 0x1a], dl
mov edx, ecx
mov edi, eax
shrd edx, edi, 6
sar edi, 6
shrd ecx, eax, 0xe
mov byte [esi + 0x1b], dl
sar eax, 0xe
mov dl, cl
mov ecx, dword [ebp - 0xc0]
mov al, cl
shl al, 7
or dl, al
mov eax, dword [ebp - 0xbc]
mov byte [esi + 0x1c], dl
mov edx, ecx
mov edi, eax
shrd edx, edi, 1
sar edi, 1
mov byte [esi + 0x1d], dl
mov edx, ecx
mov edi, eax
shrd edx, edi, 9
shrd ecx, eax, 0x11
sar edi, 9
pop edi
mov byte [esi + 0x1e], dl
mov byte [esi + 0x1f], cl
pop esi
sar eax, 0x11
pop ebx
mov esp, ebp
pop ebp
ret