Function at 0x51e5d0
Capabilities:
Decompress data using quicklz
Resolve function by parsing pe exports

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