Function at 0x5a4d40
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, eax
xor edx, edx
push edi
push esi
push ebx
xor ebx, ebx
sub esp, 0xbc
movzx eax, byte [eax]
movzx ecx, byte [ebp + 2]
mov dword [esp + 0x3c], edx
xor edx, edx
mov esi, eax
movzx eax, byte [ebp + 1]
shl ecx, 0x10
shl eax, 8
or eax, ecx
movzx ecx, byte [ebp + 6]
or eax, esi
xor esi, esi
and eax, 0x1fffff
shld ebx, ecx, 8
mov dword [esp + 0x4c], esi
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 2]
shl ecx, 8
shrd eax, edx, 5
xor edx, edx
and eax, 0x1fffff
mov dword [esp + 0x44], edx
xor edx, edx
mov dword [esp + 0x40], eax
movzx eax, byte [ebp + 7]
shld edx, eax, 0x10
shl eax, 0x10
or eax, ecx
movzx ecx, byte [ebp + 5]
or edx, ebx
xor ebx, ebx
or edx, ebx
or eax, ecx
movzx ecx, byte [ebp + 0xe]
shrd eax, edx, 2
xor edx, edx
mov ebx, eax
mov eax, dword [ebp + 7]
and ebx, 0x1fffff
shrd eax, edx, 7
xor edx, edx
mov dword [esp + 0x48], ebx
and eax, 0x1fffff
mov dword [esp + 0x54], edx
xor edx, edx
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0xa]
mov esi, eax
movzx eax, byte [ebp + 0xf]
shrd esi, edx, 4
and esi, 0x1fffff
xor edi, edi
xor ebx, ebx
xor edx, edx
shld ebx, ecx, 8
shld edx, eax, 0x10
mov dword [esp + 0x58], esi
xor esi, esi
shl ecx, 8
shl eax, 0x10
or edx, ebx
xor ebx, ebx
or eax, ecx
movzx ecx, byte [ebp + 0xd]
or edx, ebx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x2c], esi
xor edi, edi
or eax, ecx
mov ecx, edx
mov edx, eax
mov eax, dword [ebp + 0xf]
shrd edx, ecx, 1
xor ecx, ecx
and edx, 0x1fffff
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], edx
xor edx, edx
shrd eax, edx, 6
xor edx, edx
mov ebx, eax
and ebx, 0x1fffff
mov dword [esp + 0x28], ebx
movzx eax, byte [ebp + 0x15]
xor ebx, ebx
movzx ecx, byte [ebp + 0x17]
mov dword [esp + 0x6c], ebx
xor ebx, ebx
mov esi, eax
movzx eax, byte [ebp + 0x16]
mov dword [esp + 0x34], edi
shl ecx, 0x10
shl eax, 8
or eax, ecx
or eax, esi
mov esi, eax
mov eax, dword [ebp + 0x17]
and esi, 0x1fffff
shrd eax, edx, 5
mov dword [esp + 0x30], esi
mov ecx, eax
movzx eax, byte [ebp + 0x1c]
and ecx, 0x1fffff
mov dword [esp + 0x68], ecx
movzx ecx, byte [ebp + 0x1b]
shld ebx, ecx, 8
shl ecx, 8
xor edx, edx
xor esi, esi
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x84], esi
or eax, ecx
movzx ecx, byte [ebp + 0x1a]
or edx, ebx
xor ebx, ebx
or edx, ebx
or eax, ecx
xor ecx, ecx
shrd eax, edx, 2
xor edx, edx
and eax, 0x1fffff
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
mov eax, dword [ebp + 0x1c]
mov edx, eax
mov eax, dword [ebp + 0x1f]
shrd edx, ecx, 7
xor ecx, ecx
and edx, 0x1fffff
mov dword [esp + 0x7c], ecx
movzx ecx, byte [ebp + 0x23]
mov dword [esp + 0x78], edx
xor edx, edx
shrd eax, edx, 4
xor edx, edx
mov ebx, eax
movzx eax, byte [ebp + 0x24]
and ebx, 0x1fffff
mov dword [esp + 0x80], ebx
xor ebx, ebx
shld edx, eax, 0x10
shld ebx, ecx, 8
shl eax, 0x10
shl ecx, 8
or edx, ebx
xor ebx, ebx
or eax, ecx
movzx ecx, byte [ebp + 0x22]
or edx, ebx
or eax, ecx
shrd eax, edx, 1
mov ecx, eax
mov eax, dword [ebp + 0x24]
and ecx, 0x1fffff
xor ebx, ebx
xor edx, edx
shrd eax, edx, 6
mov dword [esp + 0x88], ecx
xor ecx, ecx
mov edx, eax
movzx eax, byte [ebp + 0x2a]
mov dword [esp + 0x94], ecx
movzx ecx, byte [ebp + 0x2c]
and edx, 0x1fffff
mov dword [esp + 0x8c], ebx
xor ebx, ebx
mov esi, eax
movzx eax, byte [ebp + 0x2b]
mov dword [esp + 0x90], edx
xor edx, edx
shl ecx, 0x10
mov dword [esp + 0x9c], edx
xor edx, edx
shl eax, 8
or eax, ecx
or eax, esi
and eax, 0x1fffff
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 0x2c]
movzx ecx, byte [ebp + 0x30]
shrd eax, edx, 5
xor edx, edx
and eax, 0x1fffff
mov dword [esp + 0xa4], edx
xor edx, edx
shld ebx, ecx, 8
mov dword [esp + 0xa0], eax
movzx eax, byte [ebp + 0x31]
mov edi, edx
shl ecx, 8
mov esi, eax
shld edi, eax, 0x10
shl esi, 0x10
mov edx, edi
mov eax, esi
or edx, ebx
xor ebx, ebx
or eax, ecx
movzx ecx, byte [ebp + 0x2f]
or edx, ebx
or eax, ecx
mov ebx, eax
shrd ebx, edx, 2
xor edx, edx
mov eax, ebx
mov dword [esp + 0x1c], edx
xor edx, edx
and eax, 0x1fffff
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x31]
mov esi, eax
mov eax, dword [ebp + 0x34]
shrd esi, edx, 7
and esi, 0x1fffff
mov edx, eax
xor edi, edi
xor ecx, ecx
movzx eax, byte [ebp + 0x39]
shrd edx, ecx, 4
xor ecx, ecx
mov dword [esp + 8], esi
and edx, 0x1fffff
mov dword [esp + 0x24], ecx
movzx ecx, byte [ebp + 0x38]
xor ebx, ebx
mov dword [esp + 0x20], edx
mov esi, eax
xor edx, edx
mov dword [esp + 0xc], edi
shl esi, 0x10
mov edi, edx
shld ebx, ecx, 8
shld edi, eax, 0x10
shl ecx, 8
mov eax, esi
xor esi, esi
or eax, ecx
movzx ecx, byte [ebp + 0x37]
mov edx, edi
mov dword [esp + 0x14], esi
or edx, ebx
xor ebx, ebx
xor edi, edi
or eax, ecx
or edx, ebx
mov ebx, eax
mov eax, dword [ebp + 0x39]
shrd ebx, edx, 1
xor edx, edx
mov esi, eax
and ebx, 0x1fffff
shrd esi, edx, 6
xor edx, edx
mov dword [esp + 0x10], ebx
mov eax, esi
mov esi, dword [ebp + 0x3c]
mov dword [esp + 4], edx
and eax, 0x1fffff
shrd esi, edi, 3
mov dword [esp], eax
shr edi, 3
mov eax, 0xa2c13
mul esi
imul ecx, edi, 0xa2c13
add edx, ecx
mov ecx, edx
mov edx, eax
mov eax, 0x72d18
add edx, dword [esp + 0x78]
adc ecx, dword [esp + 0x7c]
mov dword [esp + 0x78], edx
mul esi
mov dword [esp + 0x7c], ecx
imul ecx, edi, 0x72d18
add edx, ecx
mov ecx, edx
mov edx, eax
mov eax, 0x9fb67
add edx, dword [esp + 0x80]
adc ecx, dword [esp + 0x84]
mov dword [esp + 0x80], edx
mul esi
mov dword [esp + 0x84], ecx
imul ecx, edi, 0x9fb67
add edx, ecx
mov ecx, eax
add ecx, dword [esp + 0x88]
mov eax, 0xfff0c653
mov dword [esp + 0x88], ecx
mov ebx, edx
adc ebx, dword [esp + 0x8c]
imul ecx, edi, 0xfff0c653
mov dword [esp + 0x8c], ebx
mov ebx, esi
mul esi
neg ebx
mov dword [esp + 0xb4], ebx
add ecx, ebx
add edx, ecx
mov ecx, eax
movzx eax, byte [ebp + 0x28]
add ecx, dword [esp + 0x90]
mov dword [esp + 0x90], ecx
mov ebx, edx
adc ebx, dword [esp + 0x94]
xor ecx, ecx
mov edx, eax
shld ecx, eax, 8
mov dword [esp + 0x94], ebx
xor ebx, ebx
shl edx, 8
mov eax, edx
mov edx, ecx
movzx ecx, byte [ebp + 0x29]
shld ebx, ecx, 0x10
shl ecx, 0x10
or ecx, eax
or ebx, edx
movzx eax, byte [ebp + 0x27]
xor edx, edx
or ebx, edx
imul edx, edi, 0x215d1
or ecx, eax
mov eax, 0x215d1
shrd ecx, ebx, 3
shr ebx, 3
mov dword [esp + 0xa8], ecx
mov ecx, edx
mul esi
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0xac]
add edx, ecx
mov ecx, dword [esp + 0xa8]
add ecx, eax
mov eax, 0xfff59083
adc ebx, edx
mov dword [esp + 0xa8], ecx
imul ecx, edi, 0xfff59083
mov edi, dword [esp + 4]
mul esi
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0xb4]
mov esi, dword [esp + 0x70]
add ecx, ebx
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x98]
mov eax, 0xa2c13
adc ecx, dword [esp + 0x9c]
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], ecx
mul dword [esp]
imul ecx, edi, 0xa2c13
mov edi, dword [esp + 0x74]
add edx, ecx
add esi, eax
mov eax, 0x72d18
adc edi, edx
imul ecx, dword [esp + 4], 0x72d18
mul dword [esp]
add edx, ecx
add eax, dword [esp + 0x78]
adc edx, dword [esp + 0x7c]
mov dword [esp + 0x70], eax
imul ecx, dword [esp + 4], 0x9fb67
mov eax, 0x9fb67
mov dword [esp + 0x74], edx
mul dword [esp]
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x80]
mov eax, dword [esp]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 4]
adc ecx, dword [esp + 0x84]
mov ebx, eax
mov eax, 0xfff0c653
mov dword [esp + 0x7c], ecx
imul ecx, edx, 0xfff0c653
neg ebx
mul dword [esp]
add ecx, ebx
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x88]
mov eax, 0x215d1
adc ecx, dword [esp + 0x8c]
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], ecx
mul dword [esp]
imul ecx, dword [esp + 4], 0x215d1
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x90]
mov eax, 0xfff59083
adc ecx, dword [esp + 0x94]
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], ecx
imul ecx, dword [esp + 4], 0xfff59083
mul dword [esp]
add ecx, ebx
add edx, ecx
add eax, dword [esp + 0xa8]
adc edx, dword [esp + 0xac]
mov dword [esp + 0x90], eax
imul ecx, dword [esp + 0x14], 0xa2c13
mov eax, 0xa2c13
mov dword [esp + 0x94], edx
mul dword [esp + 0x10]
add edx, ecx
mov ecx, eax
add ecx, dword [esp + 0x68]
mov eax, 0x72d18
mov dword [esp + 0x68], ecx
mov ebx, edx
adc ebx, dword [esp + 0x6c]
imul ecx, dword [esp + 0x14], 0x72d18
mov dword [esp + 0x6c], ebx
mul dword [esp + 0x10]
add edx, ecx
add esi, eax
mov eax, 0x9fb67
adc edi, edx
mul dword [esp + 0x10]
imul ecx, dword [esp + 0x14], 0x9fb67
add edx, ecx
mov ecx, eax
mov eax, dword [esp + 0x10]
add ecx, dword [esp + 0x70]
mov ebx, edx
mov edx, dword [esp + 0x14]
adc ebx, dword [esp + 0x74]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ebx
mov ebx, eax
mov eax, 0xfff0c653
imul ecx, edx, 0xfff0c653
neg ebx
mul dword [esp + 0x10]
add ecx, ebx
add edx, ecx
add eax, dword [esp + 0x78]
adc edx, dword [esp + 0x7c]
mov dword [esp + 0x78], eax
imul ecx, dword [esp + 0x14], 0x215d1
mov eax, 0x215d1
mov dword [esp + 0x7c], edx
mul dword [esp + 0x10]
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x80]
mov eax, 0xfff59083
adc ecx, dword [esp + 0x84]
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], ecx
imul ecx, dword [esp + 0x14], 0xfff59083
mul dword [esp + 0x10]
add ecx, ebx
add edx, ecx
add eax, dword [esp + 0x88]
adc edx, dword [esp + 0x8c]
mov dword [esp], eax
imul ecx, dword [esp + 0x24], 0xa2c13
mov eax, 0xa2c13
mov dword [esp + 4], edx
mul dword [esp + 0x20]
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x30]
adc ecx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
mov eax, 0x72d18
mul dword [esp + 0x20]
mov dword [esp + 0x14], ecx
imul ecx, dword [esp + 0x24], 0x72d18
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x68]
adc ecx, dword [esp + 0x6c]
mov dword [esp + 0x30], edx
mov eax, 0x9fb67
mul dword [esp + 0x20]
mov dword [esp + 0x34], ecx
imul ecx, dword [esp + 0x24], 0x9fb67
add edx, ecx
mov ecx, eax
mov eax, 0xfff0c653
add ecx, esi
mov ebx, edx
mov esi, dword [esp + 0x20]
adc ebx, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x68], ecx
mul esi
mov dword [esp + 0x6c], ebx
mov ebx, esi
imul ecx, edi, 0xfff0c653
neg ebx
add ecx, ebx
add edx, ecx
mov ecx, edx
mov edx, eax
mov eax, 0x215d1
add edx, dword [esp + 0x70]
adc ecx, dword [esp + 0x74]
mov dword [esp + 0x20], edx
mul esi
mov dword [esp + 0x24], ecx
imul ecx, edi, 0x215d1
add edx, ecx
mov ecx, edx
mov edx, eax
mov eax, 0xfff59083
add edx, dword [esp + 0x78]
adc ecx, dword [esp + 0x7c]
mov dword [esp + 0x70], edx
mul esi
mov dword [esp + 0x74], ecx
imul ecx, edi, 0xfff59083
add ecx, ebx
mov ebx, eax
movzx eax, byte [ebp + 0x13]
add edx, ecx
add ebx, dword [esp + 0x80]
movzx ecx, byte [ebp + 0x14]
mov dword [esp + 0x78], ebx
mov esi, edx
mov ebx, eax
adc esi, dword [esp + 0x84]
xor edx, edx
mov dword [esp + 0x7c], esi
shl ebx, 8
mov esi, edx
xor edx, edx
shld esi, eax, 8
mov eax, ebx
xor ebx, ebx
shld ebx, ecx, 0x10
shl ecx, 0x10
or ecx, eax
movzx eax, byte [ebp + 0x12]
or ebx, esi
or ebx, edx
imul esi, dword [esp + 0xc], 0xa2c13
or ecx, eax
mov eax, 0xa2c13
mul dword [esp + 8]
shrd ecx, ebx, 3
shr ebx, 3
mov edi, ebx
add edx, esi
mov esi, ecx
add esi, eax
mov eax, 0x72d18
adc edi, edx
mul dword [esp + 8]
imul ecx, dword [esp + 0xc], 0x72d18
add edx, ecx
mov ecx, eax
add ecx, dword [esp + 0x10]
mov eax, 0x9fb67
mov dword [esp + 0x10], ecx
mov ebx, edx
adc ebx, dword [esp + 0x14]
mul dword [esp + 8]
mov dword [esp + 0x14], ebx
imul ecx, dword [esp + 0xc], 0x9fb67
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x30]
mov eax, dword [esp + 8]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0xc]
adc ecx, dword [esp + 0x34]
mov ebx, eax
mov eax, 0xfff0c653
mov dword [esp + 0x34], ecx
imul ecx, edx, 0xfff0c653
neg ebx
mul dword [esp + 8]
add ecx, ebx
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x68]
adc ecx, dword [esp + 0x6c]
mov dword [esp + 0x68], edx
mov eax, 0x215d1
mul dword [esp + 8]
mov dword [esp + 0x6c], ecx
imul ecx, dword [esp + 0xc], 0x215d1
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x20]
adc ecx, dword [esp + 0x24]
mov dword [esp + 0x84], ecx
imul ecx, dword [esp + 0xc], 0xfff59083
mov eax, 0xfff59083
mov dword [esp + 0x80], edx
mul dword [esp + 8]
add ecx, ebx
add edx, ecx
mov ecx, eax
add ecx, dword [esp + 0x70]
mov eax, 0xa2c13
mov dword [esp + 0x70], ecx
mov ebx, edx
adc ebx, dword [esp + 0x74]
mul dword [esp + 0x18]
mov dword [esp + 0x74], ebx
imul ecx, dword [esp + 0x1c], 0xa2c13
mov ebx, dword [esp + 0x18]
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x28]
adc ecx, dword [esp + 0x2c]
mov dword [esp + 8], edx
mov eax, 0x72d18
mul dword [esp + 0x18]
mov dword [esp + 0xc], ecx
imul ecx, dword [esp + 0x1c], 0x72d18
add edx, ecx
mov ecx, edx
mov edx, eax
mov eax, 0x9fb67
add edx, esi
mov esi, dword [esp + 0x1c]
adc ecx, edi
mov dword [esp + 0x28], edx
mul ebx
mov edi, ebx
mov dword [esp + 0x2c], ecx
imul ecx, esi, 0x9fb67
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x10]
adc ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov eax, 0xfff0c653
imul ecx, esi, 0xfff0c653
neg edi
mov dword [esp + 0x10], edx
mul ebx
add ecx, edi
add edx, ecx
add eax, dword [esp + 0x30]
adc edx, dword [esp + 0x34]
imul ebx, dword [esp + 0x1c], 0x215d1
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x30], eax
mov eax, 0x215d1
mov dword [esp + 0x34], edx
mul dword [esp + 0x18]
add edx, ebx
mov ebx, dword [esp + 0x6c]
add ecx, eax
mov eax, 0xfff59083
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x18]
adc ebx, edx
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x1c]
mul ecx
mov ecx, dword [esp + 8]
imul esi, ebx, 0xfff59083
mov ebx, dword [esp + 0xc]
add esi, edi
mov edi, dword [esp + 0x84]
add edx, esi
mov esi, dword [esp + 0x80]
add esi, eax
adc edi, edx
add ecx, 0x100000
mov dword [esp + 0x68], esi
adc ebx, 0
mov esi, ecx
mov dword [esp + 0x6c], edi
shrd esi, ebx, 0x15
mov edi, ebx
mov ebx, dword [esp + 0x28]
mov eax, esi
sar edi, 0x15
mov esi, dword [esp + 0x2c]
add ebx, eax
mov ecx, edi
mov edx, eax
adc esi, edi
shld ecx, eax, 0x15
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0xc]
shl edx, 0x15
mov dword [esp + 0x1c], esi
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 8]
sub ecx, eax
sbb ebx, edx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], ebx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x30]
add edx, 0x100000
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x6c]
adc ecx, 0
shrd edx, ecx, 0x15
sar ecx, 0x15
add ebx, edx
adc esi, ecx
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x10]
shld ecx, edx, 0x15
mov dword [esp + 0xc], esi
shl edx, 0x15
mov esi, dword [esp + 0x14]
sub ebx, edx
mov edx, dword [esp + 0x20]
sbb esi, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x10], ebx
add edx, 0x100000
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x68]
adc ecx, 0
shrd edx, ecx, 0x15
sar ecx, 0x15
add esi, edx
adc edi, ecx
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x20]
shld ecx, edx, 0x15
mov dword [esp + 0x6c], edi
shl edx, 0x15
mov edi, dword [esp + 0x24]
sub esi, edx
sbb edi, ecx
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x74]
mov ecx, esi
add ecx, 0x100000
mov ebx, edi
adc ebx, 0
mov eax, ecx
mov edx, eax
mov ecx, ebx
shrd edx, ebx, 0x15
sar ecx, 0x15
mov ebx, dword [esp + 0x7c]
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x78]
add ecx, eax
adc ebx, edx
mov dword [esp + 0x28], ecx
mov ecx, edx
mov edx, eax
shld ecx, eax, 0x15
shl edx, 0x15
mov eax, dword [esp]
mov dword [esp + 0x2c], ebx
sub esi, edx
mov edx, dword [esp + 4]
sbb edi, ecx
add eax, 0x100000
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x90]
adc edx, 0
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x94]
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x15
sar ecx, 0x15
add esi, edx
mov dword [esp + 0x30], esi
adc edi, ecx
mov esi, dword [esp]
shld ecx, edx, 0x15
mov dword [esp + 0x34], edi
shl edx, 0x15
mov edi, dword [esp + 4]
sub esi, edx
mov ebx, dword [esp + 0xa4]
sbb edi, ecx
mov dword [esp], esi
mov esi, dword [esp + 0x98]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x9c]
mov eax, esi
add eax, 0x100000
mov edx, edi
adc edx, 0
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x15
sar ecx, 0x15
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0xa0]
add ecx, eax
adc ebx, edx
mov dword [esp + 0x78], ecx
mov ecx, edx
mov edx, eax
shld ecx, eax, 0x15
shl edx, 0x15
mov dword [esp + 0x7c], ebx
mov ebx, edi
mov eax, edx
mov edx, ecx
mov ecx, esi
mov esi, dword [esp + 0x14]
sub ecx, eax
mov eax, dword [esp + 0x18]
sbb ebx, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x88], ecx
add eax, 0x100000
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x10]
adc edx, 0
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x15
sar ecx, 0x15
add ebx, edx
adc esi, ecx
shld ecx, edx, 0x15
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0x1c]
shl edx, 0x15
mov dword [esp + 0x94], esi
mov esi, dword [esp + 0x24]
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x18]
sub ecx, eax
mov eax, dword [esp + 8]
sbb ebx, edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x98], ecx
add eax, 0x100000
mov dword [esp + 0x9c], ebx
mov ebx, dword [esp + 0x20]
adc edx, 0
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x15
sar ecx, 0x15
add ebx, edx
adc esi, ecx
mov dword [esp + 0xa0], ebx
mov ebx, dword [esp + 8]
shld ecx, edx, 0x15
mov dword [esp + 0xa4], esi
shl edx, 0x15
mov esi, dword [esp + 0xc]
sub ebx, edx
sbb esi, ecx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], esi
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x74]
mov edx, esi
add edx, 0x100000
mov ecx, edi
adc ecx, 0
shrd edx, ecx, 0x15
sar ecx, 0x15
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x70]
add ecx, eax
adc ebx, edx
mov dword [esp + 0x20], ecx
mov ecx, edx
mov edx, eax
shld ecx, eax, 0x15
shl edx, 0x15
mov dword [esp + 0x24], ebx
mov ebx, edi
mov eax, edx
mov edx, ecx
mov ecx, esi
mov esi, dword [esp]
sub ecx, eax
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x30]
sbb ebx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x6c], ebx
add edx, 0x100000
mov ebx, dword [esp + 0x28]
adc ecx, 0
shrd edx, ecx, 0x15
sar ecx, 0x15
add esi, edx
adc edi, ecx
mov dword [esp + 0x10], esi
shld ecx, edx, 0x15
mov esi, dword [esp + 0x2c]
shl edx, 0x15
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x8c]
sub ebx, edx
mov edx, dword [esp + 0x34]
sbb esi, ecx
add eax, 0x100000
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x30]
adc edx, 0
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x88]
mov ecx, edx
mov edx, eax
mov eax, 0xa2c13
shrd edx, ecx, 0x15
sar ecx, 0x15
add esi, edx
adc edi, ecx
mov dword [esp], esi
shld ecx, edx, 0x15
mov esi, dword [esp + 0x34]
shl edx, 0x15
mov dword [esp + 4], edi
sub ebx, edx
sbb esi, ecx
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0xc], esi
mul ecx
imul esi, ebx, 0xa2c13
add edx, esi
add eax, dword [esp + 0x60]
adc edx, dword [esp + 0x64]
mov dword [esp + 0x30], eax
mov eax, 0x72d18
imul esi, ebx, 0x72d18
mov dword [esp + 0x34], edx
mul ecx
add edx, esi
add eax, dword [esp + 0x80]
adc edx, dword [esp + 0x84]
mov dword [esp + 0x60], eax
mov eax, 0x9fb67
imul esi, ebx, 0x9fb67
mov dword [esp + 0x64], edx
mul ecx
add edx, esi
mov esi, eax
add esi, dword [esp + 0x98]
mov eax, 0xfff0c653
mov dword [esp + 0x70], esi
mov edi, edx
adc edi, dword [esp + 0x9c]
imul esi, ebx, 0xfff0c653
mov dword [esp + 0x74], edi
mov edi, ecx
mul ecx
neg edi
add esi, edi
add edx, esi
add eax, dword [esp + 0x90]
adc edx, dword [esp + 0x94]
mov dword [esp + 0x78], eax
mov eax, 0x215d1
imul esi, ebx, 0x215d1
mov dword [esp + 0x7c], edx
mul ecx
add edx, esi
add eax, dword [esp + 0xa8]
adc edx, dword [esp + 0xac]
mov dword [esp + 0x80], eax
imul esi, ebx, 0xfff59083
mov ebx, dword [esp + 4]
mov eax, 0xfff59083
mov dword [esp + 0x84], edx
mul ecx
add esi, edi
add edx, esi
add eax, dword [esp + 0xa0]
adc edx, dword [esp + 0xa4]
mov dword [esp + 0x28], eax
imul esi, ebx, 0xa2c13
mov eax, 0xa2c13
mov dword [esp + 0x2c], edx
mul dword [esp]
add edx, esi
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x58]
adc ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 4]
mov dword [esp + 0x58], edx
mov eax, 0x72d18
mul dword [esp]
mov dword [esp + 0x5c], ecx
imul esi, ebx, 0x72d18
mov ebx, dword [esp + 4]
add edx, esi
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x30]
mov eax, 0x9fb67
adc ecx, dword [esp + 0x34]
mov dword [esp + 0x30], edx
imul esi, ebx, 0x9fb67
mul dword [esp]
mov ebx, dword [esp + 4]
mov dword [esp + 0x34], ecx
add edx, esi
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x60]
adc ecx, dword [esp + 0x64]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp]
imul esi, ebx, 0xfff0c653
mov eax, 0xfff0c653
mov dword [esp + 0x60], edx
mul dword [esp]
mov edi, ecx
neg edi
add esi, edi
mov ecx, eax
mov eax, 0x215d1
add edx, esi
add ecx, dword [esp + 0x70]
mov ebx, edx
adc ebx, dword [esp + 0x74]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 4]
mul dword [esp]
imul esi, ebx, 0x215d1
add edx, esi
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x78]
adc ecx, dword [esp + 0x7c]
mov dword [esp + 0x78], edx
mov eax, 0xfff59083
mov dword [esp + 0x7c], ecx
imul ebx, dword [esp + 4], 0xfff59083
mul dword [esp]
mov esi, dword [esp + 0xc]
add ebx, edi
add edx, ebx
mov ebx, dword [esp + 0x54]
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x80]
mov eax, 0xa2c13
adc ecx, dword [esp + 0x84]
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], ecx
mul dword [esp + 8]
imul ecx, esi, 0xa2c13
add edx, ecx
mov ecx, dword [esp + 0x50]
add ecx, eax
mov eax, 0x72d18
adc ebx, edx
mul dword [esp + 8]
mov esi, ecx
imul ecx, dword [esp + 0xc], 0x72d18
mov edi, ebx
add edx, ecx
add eax, dword [esp + 0x58]
adc edx, dword [esp + 0x5c]
mov dword [esp], eax
imul ecx, dword [esp + 0xc], 0x9fb67
mov eax, 0x9fb67
mov dword [esp + 4], edx
mul dword [esp + 8]
add edx, ecx
mov ecx, eax
mov eax, dword [esp + 8]
add ecx, dword [esp + 0x30]
mov ebx, edx
mov edx, dword [esp + 0xc]
adc ebx, dword [esp + 0x34]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
mov ebx, eax
mov eax, 0xfff0c653
imul ecx, edx, 0xfff0c653
neg ebx
mul dword [esp + 8]
add ecx, ebx
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x60]
adc ecx, dword [esp + 0x64]
mov dword [esp + 0x50], edx
mov eax, 0x215d1
mov dword [esp + 0x54], ecx
mul dword [esp + 8]
imul ecx, dword [esp + 0xc], 0x215d1
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x70]
adc ecx, dword [esp + 0x74]
mov dword [esp + 0x5c], ecx
imul ecx, dword [esp + 0xc], 0xfff59083
mov eax, 0xfff59083
mov dword [esp + 0x58], edx
mul dword [esp + 8]
add ecx, ebx
add edx, ecx
add eax, dword [esp + 0x78]
adc edx, dword [esp + 0x7c]
mov dword [esp + 8], eax
imul ecx, dword [esp + 0x14], 0xa2c13
mov eax, 0xa2c13
mov dword [esp + 0xc], edx
mul dword [esp + 0x10]
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x48]
adc ecx, dword [esp + 0x4c]
mov dword [esp + 0x48], edx
mov eax, 0x72d18
mul dword [esp + 0x10]
mov dword [esp + 0x4c], ecx
imul ecx, dword [esp + 0x14], 0x72d18
add edx, ecx
add esi, eax
mov eax, 0x9fb67
adc edi, edx
mul dword [esp + 0x10]
imul ecx, dword [esp + 0x14], 0x9fb67
add edx, ecx
mov ecx, eax
mov eax, dword [esp + 0x10]
add ecx, dword [esp]
mov ebx, edx
mov edx, dword [esp + 0x14]
adc ebx, dword [esp + 4]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov ebx, eax
mov eax, 0xfff0c653
imul ecx, edx, 0xfff0c653
neg ebx
mul dword [esp + 0x10]
add ecx, ebx
add edx, ecx
add eax, dword [esp + 0x30]
adc edx, dword [esp + 0x34]
mov dword [esp + 0x30], eax
imul ecx, dword [esp + 0x14], 0x215d1
mov eax, 0x215d1
mov dword [esp + 0x34], edx
mul dword [esp + 0x10]
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x50]
adc ecx, dword [esp + 0x54]
mov dword [esp + 0x54], ecx
imul ecx, dword [esp + 0x14], 0xfff59083
mov eax, 0xfff59083
mov dword [esp + 0x50], edx
mul dword [esp + 0x10]
add ecx, ebx
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x58]
adc ecx, dword [esp + 0x5c]
mov dword [esp + 0x10], edx
mov eax, 0xa2c13
mul dword [esp + 0x18]
mov dword [esp + 0x14], ecx
imul ecx, dword [esp + 0x1c], 0xa2c13
add edx, ecx
mov ecx, eax
add ecx, dword [esp + 0x40]
mov eax, 0x72d18
mov dword [esp + 0x40], ecx
mov ebx, edx
adc ebx, dword [esp + 0x44]
imul ecx, dword [esp + 0x1c], 0x72d18
mov dword [esp + 0x44], ebx
mul dword [esp + 0x18]
add edx, ecx
add eax, dword [esp + 0x48]
adc edx, dword [esp + 0x4c]
mov dword [esp + 0x48], eax
imul ecx, dword [esp + 0x1c], 0x9fb67
mov eax, 0x9fb67
mov dword [esp + 0x4c], edx
mul dword [esp + 0x18]
add edx, ecx
add esi, eax
mov eax, dword [esp + 0x18]
adc edi, edx
mov edx, dword [esp + 0x1c]
mov ebx, eax
mov eax, 0xfff0c653
imul ecx, edx, 0xfff0c653
neg ebx
mul dword [esp + 0x18]
add ecx, ebx
add edx, ecx
add eax, dword [esp]
adc edx, dword [esp + 4]
mov dword [esp + 0x58], eax
imul ecx, dword [esp + 0x1c], 0x215d1
mov eax, 0x215d1
mov dword [esp + 0x5c], edx
mul dword [esp + 0x18]
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x30]
adc ecx, dword [esp + 0x34]
mov dword [esp + 0x34], ecx
imul ecx, dword [esp + 0x1c], 0xfff59083
mov eax, 0xfff59083
mov dword [esp + 0x30], edx
mul dword [esp + 0x18]
add ecx, ebx
add edx, ecx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x50]
adc ecx, dword [esp + 0x54]
mov dword [esp], edx
mov eax, 0xa2c13
mul dword [esp + 0x20]
mov dword [esp + 4], ecx
imul ecx, dword [esp + 0x24], 0xa2c13
add edx, ecx
add eax, dword [esp + 0x38]
adc edx, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov eax, 0x72d18
mov dword [esp + 0x1c], edx
imul ecx, dword [esp + 0x24], 0x72d18
mul dword [esp + 0x20]
add edx, ecx
add eax, dword [esp + 0x40]
adc edx, dword [esp + 0x44]
mov dword [esp + 0x38], eax
imul ecx, dword [esp + 0x24], 0x9fb67
mov eax, 0x9fb67
mov dword [esp + 0x3c], edx
mul dword [esp + 0x20]
add edx, ecx
mov ecx, eax
mov eax, dword [esp + 0x20]
add ecx, dword [esp + 0x48]
mov ebx, edx
mov edx, dword [esp + 0x24]
adc ebx, dword [esp + 0x4c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ebx
mov ebx, eax
mov eax, 0xfff0c653
imul ecx, edx, 0xfff0c653
neg ebx
mul dword [esp + 0x20]
mov dword [esp + 0x50], ebx
add ecx, ebx
add edx, ecx
mov ecx, edx
mov edx, eax
mov eax, 0x215d1
add edx, esi
mov esi, dword [esp + 0x20]
adc ecx, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x48], edx
mul esi
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x58]
imul ebx, edi, 0x215d1
add edx, ebx
mov ebx, dword [esp + 0x5c]
add ecx, eax
mov eax, 0xfff59083
mov dword [esp + 0x20], ecx
mov ecx, esi
adc ebx, edx
imul esi, edi, 0xfff59083
mov edi, dword [esp + 0x50]
mul ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], ebx
add esi, edi
mov edi, dword [esp + 0x34]
add edx, esi
mov esi, dword [esp + 0x30]
add esi, eax
mov eax, ecx
adc edi, edx
mov dword [esp + 0x30], esi
add eax, 0x100000
mov dword [esp + 0x34], edi
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov edx, ebx
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add esi, eax
adc edi, edx
mov dword [esp + 0x18], esi
shld edx, eax, 0x15
mov esi, ebx
shl eax, 0x15
mov ebx, ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x1c], edi
sub ebx, eax
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x44]
mov eax, ecx
sbb esi, edx
add eax, 0x100000
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x48]
mov edx, ebx
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add esi, eax
adc edi, edx
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x20]
shld edx, eax, 0x15
mov dword [esp + 0x44], edi
shl eax, 0x15
mov edi, dword [esp + 0x24]
sub ecx, eax
mov eax, esi
sbb ebx, edx
add eax, 0x100000
mov edx, edi
mov dword [esp + 0x48], ecx
adc edx, 0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x4c], ebx
shrd eax, edx, 0x15
mov ebx, dword [esp + 0x34]
sar edx, 0x15
add ecx, eax
adc ebx, edx
mov dword [esp + 0x20], ecx
shld edx, eax, 0x15
mov ecx, esi
shl eax, 0x15
mov dword [esp + 0x24], ebx
mov ebx, edi
mov esi, dword [esp + 0x14]
sub ecx, eax
sbb ebx, edx
mov edx, dword [esp]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x34], ebx
add edx, 0x100000
mov ebx, dword [esp + 0x10]
adc ecx, 0
mov eax, edx
shrd eax, ecx, 0x15
mov edx, ecx
sar edx, 0x15
add ebx, eax
adc esi, edx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp]
shld edx, eax, 0x15
mov dword [esp + 0x14], esi
shl eax, 0x15
mov esi, dword [esp + 4]
sub ebx, eax
sbb esi, edx
mov dword [esp], ebx
mov dword [esp + 4], esi
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x80]
mov eax, ecx
mov edi, dword [esp + 0x84]
add eax, 0x100000
mov edx, ebx
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add esi, eax
adc edi, edx
shld edx, eax, 0x15
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x6c]
shl eax, 0x15
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x2c]
sub ecx, eax
mov eax, dword [esp + 0x28]
sbb ebx, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x58], ecx
add eax, 0x100000
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x68]
adc edx, 0
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x15
sar ecx, 0x15
add ebx, edx
adc esi, ecx
shld ecx, edx, 0x15
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x28]
shl edx, 0x15
sub esi, edx
sbb edi, ecx
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x1c]
mov eax, esi
mov ecx, dword [esp + 0x48]
add eax, 0x100000
mov edx, edi
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add ecx, eax
adc ebx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x40]
shld edx, eax, 0x15
mov dword [esp + 0x1c], ebx
shl eax, 0x15
mov ebx, dword [esp + 0x44]
sub esi, eax
mov eax, ecx
sbb edi, edx
add eax, 0x100000
mov edx, ebx
mov dword [esp + 0x48], esi
adc edx, 0
mov esi, dword [esp + 0x30]
mov dword [esp + 0x4c], edi
shrd eax, edx, 0x15
mov edi, dword [esp + 0x34]
sar edx, 0x15
add esi, eax
adc edi, edx
mov dword [esp + 0x30], esi
shld edx, eax, 0x15
mov esi, ebx
shl eax, 0x15
mov ebx, ecx
mov dword [esp + 0x34], edi
sub ebx, eax
mov dword [esp + 0x40], ebx
mov ecx, dword [esp + 0x20]
sbb esi, edx
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 4]
mov dword [esp + 0x44], esi
mov eax, ecx
mov esi, dword [esp]
add eax, 0x100000
mov edx, ebx
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add esi, eax
adc edi, edx
mov dword [esp + 0x20], esi
shld edx, eax, 0x15
mov esi, ecx
shl eax, 0x15
mov dword [esp + 0x24], edi
mov edi, ebx
mov ecx, dword [esp + 0x58]
sub esi, eax
mov ebx, dword [esp + 0x5c]
sbb edi, edx
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x14]
mov eax, esi
add eax, 0x100000
mov edx, edi
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add ecx, eax
adc ebx, edx
mov dword [esp + 0x10], ecx
shld edx, eax, 0x15
mov ecx, esi
shl eax, 0x15
mov dword [esp + 0x14], ebx
mov ebx, edi
mov esi, dword [esp + 0x28]
sub ecx, eax
mov edi, dword [esp + 0x2c]
sbb ebx, edx
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x54]
mov eax, ecx
add eax, 0x100000
mov edx, ebx
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add esi, eax
adc edi, edx
shld edx, eax, 0x15
mov dword [esp + 0x28], esi
shl eax, 0x15
mov dword [esp + 0x2c], edi
sub ecx, eax
mov eax, dword [esp + 8]
sbb ebx, edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x50], ecx
add eax, 0x100000
mov dword [esp + 0x54], ebx
adc edx, 0
mov ebx, eax
and eax, 0xffe00000
shrd ebx, edx, 0x15
mov esi, edx
mov dword [esp], ebx
sar esi, 0x15
mov ebx, dword [esp + 8]
mov dword [esp + 4], esi
mov esi, dword [esp + 0xc]
sub ebx, eax
mov eax, 0xa2c13
sbb esi, edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov ebx, dword [esp + 4]
mov ecx, dword [esp]
imul esi, ebx, 0xa2c13
mul ecx
add edx, esi
add eax, dword [esp + 0x38]
adc edx, dword [esp + 0x3c]
mov dword [esp + 0x38], eax
imul esi, ebx, 0x72d18
mov eax, 0x72d18
mov ebx, dword [esp + 4]
mov dword [esp + 0x3c], edx
mul dword [esp]
add edx, esi
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x48]
adc ecx, dword [esp + 0x4c]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp]
mov eax, 0x9fb67
imul esi, ebx, 0x9fb67
mov dword [esp + 0x48], edx
mul ecx
mov edi, ecx
add edx, esi
add eax, dword [esp + 0x18]
adc edx, dword [esp + 0x1c]
neg edi
imul esi, ebx, 0xfff0c653
mov dword [esp + 0x18], eax
mov eax, 0xfff0c653
mov ebx, dword [esp + 4]
mov dword [esp + 0x1c], edx
mul dword [esp]
add esi, edi
add edx, esi
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x40]
adc ecx, dword [esp + 0x44]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp]
mov eax, 0x215d1
imul esi, ebx, 0x215d1
mov dword [esp + 0x40], edx
mul ecx
add edx, esi
add eax, dword [esp + 0x30]
adc edx, dword [esp + 0x34]
mov dword [esp + 0x30], eax
mov eax, 0xfff59083
mov dword [esp + 0x34], edx
imul ebx, dword [esp + 4], 0xfff59083
mul dword [esp]
mov esi, dword [esp + 0x38]
add ebx, edi
mov edi, dword [esp + 0x3c]
add edx, ebx
mov ebx, dword [esp + 0x4c]
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x60]
adc ecx, dword [esp + 0x64]
mov dword [esp + 4], ecx
mov eax, esi
mov ecx, dword [esp + 0x48]
mov dword [esp], edx
shrd eax, edi, 0x15
mov edx, edi
sar edx, 0x15
add ecx, eax
adc ebx, edx
shld edx, eax, 0x15
shl eax, 0x15
sub esi, eax
mov eax, ecx
sbb edi, edx
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x18]
shrd eax, ebx, 0x15
mov dword [esp + 0x3c], edi
mov edx, ebx
mov edi, dword [esp + 0x1c]
sar edx, 0x15
add esi, eax
adc edi, edx
shld edx, eax, 0x15
shl eax, 0x15
sub ecx, eax
mov eax, esi
sbb ebx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x40]
shrd eax, edi, 0x15
mov dword [esp + 0x1c], ebx
mov edx, edi
mov ebx, dword [esp + 0x44]
sar edx, 0x15
add ecx, eax
adc ebx, edx
shld edx, eax, 0x15
shl eax, 0x15
sub esi, eax
mov eax, ecx
sbb edi, edx
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x30]
shrd eax, ebx, 0x15
mov dword [esp + 0x44], edi
mov edx, ebx
mov edi, dword [esp + 0x34]
sar edx, 0x15
add esi, eax
adc edi, edx
shld edx, eax, 0x15
shl eax, 0x15
sub ecx, eax
mov eax, esi
sbb ebx, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp]
shrd eax, edi, 0x15
mov dword [esp + 0x34], ebx
mov edx, edi
mov ebx, dword [esp + 4]
sar edx, 0x15
add ecx, eax
adc ebx, edx
shld edx, eax, 0x15
shl eax, 0x15
sub esi, eax
mov eax, ecx
sbb edi, edx
mov dword [esp], esi
mov esi, dword [esp + 0x20]
shrd eax, ebx, 0x15
mov dword [esp + 4], edi
mov edx, ebx
mov edi, dword [esp + 0x24]
sar edx, 0x15
add esi, eax
adc edi, edx
shld edx, eax, 0x15
shl eax, 0x15
sub ecx, eax
mov eax, esi
sbb ebx, edx
mov dword [esp + 0x20], ecx
shrd eax, edi, 0x15
mov edx, edi
mov dword [esp + 0x24], ebx
mov ecx, dword [esp + 0x58]
sar edx, 0x15
mov ebx, dword [esp + 0x5c]
add ecx, eax
adc ebx, edx
shld edx, eax, 0x15
shl eax, 0x15
sub esi, eax
mov eax, ecx
sbb edi, edx
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x10]
shrd eax, ebx, 0x15
mov dword [esp + 0x4c], edi
mov edx, ebx
mov edi, dword [esp + 0x14]
sar edx, 0x15
add esi, eax
adc edi, edx
shld edx, eax, 0x15
shl eax, 0x15
sub ecx, eax
mov eax, esi
sbb ebx, edx
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x50]
shrd eax, edi, 0x15
mov dword [esp + 0x5c], ebx
mov edx, edi
mov ebx, dword [esp + 0x54]
sar edx, 0x15
add ecx, eax
adc ebx, edx
shld edx, eax, 0x15
shl eax, 0x15
sub esi, eax
mov eax, ecx
sbb edi, edx
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x28]
shrd eax, ebx, 0x15
mov dword [esp + 0x54], edi
mov edx, ebx
mov edi, dword [esp + 0x2c]
sar edx, 0x15
add esi, eax
adc edi, edx
shld edx, eax, 0x15
shl eax, 0x15
sub ecx, eax
mov eax, esi
sbb ebx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 8]
shrd eax, edi, 0x15
mov dword [esp + 0x2c], ebx
mov edx, edi
mov ebx, dword [esp + 0xc]
sar edx, 0x15
add ecx, eax
adc ebx, edx
shld edx, eax, 0x15
shl eax, 0x15
sub esi, eax
mov eax, ecx
sbb edi, edx
shrd eax, ebx, 0x15
mov dword [esp + 0x60], esi
mov edx, ebx
mov esi, eax
mov eax, ecx
sar edx, 0x15
mov dword [esp + 0x64], edi
and eax, 0x1fffff
mov edi, edx
xor edx, edx
mov dword [esp + 0x68], eax
mov eax, 0xa2c13
imul ecx, edi, 0xa2c13
mov dword [esp + 0x6c], edx
mul esi
add edx, ecx
add eax, dword [esp + 0x38]
adc edx, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov eax, 0x72d18
imul ecx, edi, 0x72d18
mov dword [esp + 0xc], edx
mul esi
add edx, ecx
mov ecx, edx
mov edx, eax
mov eax, 0x9fb67
add edx, dword [esp + 0x18]
adc ecx, dword [esp + 0x1c]
mov dword [esp + 0x10], edx
mul esi
mov dword [esp + 0x14], ecx
imul ecx, edi, 0x9fb67
add edx, ecx
add eax, dword [esp + 0x40]
adc edx, dword [esp + 0x44]
imul ecx, edi, 0xfff0c653
mov dword [esp + 0x1c], edx
mov edx, esi
mov dword [esp + 0x18], eax
neg edx
mov eax, 0xfff0c653
mov ebx, edx
add ecx, edx
mul esi
add edx, ecx
add eax, dword [esp + 0x30]
adc edx, dword [esp + 0x34]
mov dword [esp + 0x30], eax
mov eax, 0x215d1
imul ecx, edi, 0x215d1
mov dword [esp + 0x34], edx
mul esi
add edx, ecx
add eax, dword [esp]
adc edx, dword [esp + 4]
mov dword [esp + 0x38], eax
imul ecx, edi, 0xfff59083
mov eax, 0xfff59083
mov dword [esp + 0x3c], edx
mul esi
mov esi, dword [esp + 0x14]
add ecx, ebx
mov ebx, dword [esp + 0x24]
add edx, ecx
mov ecx, dword [esp + 0x20]
add ecx, eax
adc ebx, edx
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x10]
shrd edx, ecx, 0x15
sar ecx, 0x15
add ebx, edx
adc esi, ecx
mov dword [esp], ebx
mov ebx, dword [esp + 8]
shld ecx, edx, 0x15
mov dword [esp + 4], esi
shl edx, 0x15
mov esi, dword [esp + 0xc]
sub ebx, edx
mov edi, dword [esp + 4]
sbb esi, ecx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], esi
mov esi, dword [esp]
mov ecx, edi
sar ecx, 0x15
mov edx, esi
shrd edx, edi, 0x15
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
add ecx, eax
adc ebx, edx
shld edx, eax, 0x15
mov dword [esp + 0x10], ecx
shl eax, 0x15
mov dword [esp + 0x14], ebx
sub esi, eax
sbb edi, edx
mov edx, ecx
mov ecx, ebx
mov dword [esp + 0x70], esi
shrd edx, ebx, 0x15
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
sar ecx, 0x15
mov dword [esp + 0x74], edi
add ebx, edx
adc esi, ecx
shld ecx, edx, 0x15
shl edx, 0x15
mov edi, esi
mov esi, ebx
mov ebx, dword [esp + 0x14]
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edi
sub ecx, eax
mov eax, esi
mov esi, dword [esp + 0x3c]
sbb ebx, edx
shrd eax, edi, 0x15
mov edx, edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x38]
sar edx, 0x15
mov ecx, edx
add ebx, eax
adc esi, edx
mov dword [esp + 8], ebx
mov edx, eax
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xc], esi
shl edx, 0x15
mov esi, dword [esp + 0x1c]
shld ecx, eax, 0x15
sub ebx, edx
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
sbb esi, ecx
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x20]
shrd eax, edx, 0x15
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x24]
sar edx, 0x15
add ebx, eax
mov ecx, edx
adc esi, edx
mov edx, eax
shld ecx, eax, 0x15
shl edx, 0x15
mov edi, esi
mov esi, ebx
mov ebx, dword [esp + 0xc]
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 8]
sub ecx, eax
mov eax, esi
sbb ebx, edx
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x48]
shrd eax, edi, 0x15
mov dword [esp + 0x7c], ebx
mov edx, edi
mov ebx, dword [esp + 0x4c]
sar edx, 0x15
add ecx, eax
mov dword [esp + 0x48], esi
adc ebx, edx
shld edx, eax, 0x15
mov dword [esp + 0x4c], edi
shl eax, 0x15
sub esi, eax
mov eax, ecx
sbb edi, edx
mov dword [esp + 0x80], esi
mov esi, dword [esp + 0x58]
mov edx, ebx
shrd eax, ebx, 0x15
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0x5c]
sar edx, 0x15
add esi, eax
mov dword [esp + 0x58], ecx
adc edi, edx
shld edx, eax, 0x15
mov dword [esp + 0x5c], ebx
shl eax, 0x15
sub ecx, eax
mov eax, esi
sbb ebx, edx
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x50]
mov edx, edi
shrd eax, edi, 0x15
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x54]
sar edx, 0x15
add ecx, eax
mov dword [esp + 0x50], esi
adc ebx, edx
shld edx, eax, 0x15
mov dword [esp + 0x54], edi
shl eax, 0x15
sub esi, eax
mov eax, ecx
sbb edi, edx
mov dword [esp + 0x90], esi
mov esi, dword [esp + 0x28]
mov edx, ebx
shrd eax, ebx, 0x15
mov dword [esp + 0x94], edi
mov edi, dword [esp + 0x2c]
sar edx, 0x15
add esi, eax
adc edi, edx
shld edx, eax, 0x15
mov dword [esp + 0x20], esi
shl eax, 0x15
mov dword [esp + 0x24], edi
sub ecx, eax
mov eax, esi
mov esi, dword [esp + 0x64]
sbb ebx, edx
shrd eax, edi, 0x15
mov edx, edi
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], ebx
mov ebx, dword [esp + 0x60]
sar edx, 0x15
mov ecx, edx
add ebx, eax
adc esi, edx
mov edx, eax
shld ecx, eax, 0x15
shl edx, 0x15
mov edi, esi
mov esi, ebx
mov ebx, dword [esp + 0x24]
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
sub ecx, eax
mov eax, esi
mov esi, dword [esp + 0x6c]
sbb ebx, edx
shrd eax, edi, 0x15
mov edx, edi
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x68]
sar edx, 0x15
mov ecx, edx
add ebx, eax
adc esi, edx
mov dword [esp + 0x68], ebx
mov edx, eax
shld ecx, eax, 0x15
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x28]
shl edx, 0x15
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x2c]
sub esi, edx
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x70]
mov dword [esp + 0xa0], esi
movzx esi, byte [esp]
sbb edi, ecx
mov word [ebp], ax
shrd eax, edx, 0x10
shl esi, 5
mov dword [esp + 0xa4], edi
movzx edi, byte [esp + 0x10]
or eax, esi
mov esi, dword [esp + 0x74]
mov byte [ebp + 2], al
mov eax, ebx
lea edx, [edi*4]
mov edi, dword [esp + 0x34]
shrd eax, esi, 3
mov byte [ebp + 3], al
mov eax, ebx
shrd eax, esi, 0xb
mov byte [ebp + 4], al
mov eax, ebx
shrd eax, esi, 0x13
mov esi, dword [esp + 0x30]
or edx, eax
mov eax, esi
mov byte [ebp + 5], dl
movzx edx, byte [esp + 0x18]
shrd eax, edi, 6
mov byte [ebp + 6], al
mov eax, esi
mov esi, dword [esp + 0x38]
shl edx, 7
shrd eax, edi, 0xe
mov edi, dword [esp + 0x3c]
or edx, eax
mov eax, esi
shrd eax, edi, 1
mov byte [ebp + 7], dl
movzx edx, byte [esp + 8]
mov byte [ebp + 8], al
mov eax, esi
shrd eax, edi, 9
shl edx, 4
mov byte [ebp + 9], al
mov eax, esi
mov esi, dword [esp + 0x78]
shrd eax, edi, 0x11
mov edi, dword [esp + 0x7c]
or edx, eax
mov eax, esi
shrd eax, edi, 4
mov byte [ebp + 0xa], dl
mov byte [ebp + 0xb], al
mov eax, esi
shrd eax, edi, 0xc
mov byte [ebp + 0xc], al
mov eax, esi
shrd eax, edi, 0x14
movzx edi, byte [esp + 0x48]
lea edx, [edi + edi]
or eax, edx
mov byte [ebp + 0xd], al
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
movzx edx, byte [esp + 0x58]
mov eax, ebx
mov edi, dword [esp + 0x8c]
shrd eax, esi, 7
shl edx, 6
mov byte [ebp + 0xe], al
mov eax, ebx
mov ebx, dword [esp + 0x60]
shrd eax, esi, 0xf
mov esi, dword [esp + 0x88]
or edx, eax
mov eax, esi
mov byte [ebp + 0xf], dl
shrd eax, edi, 2
mov byte [ebp + 0x10], al
mov eax, esi
shrd eax, edi, 0xa
mov byte [ebp + 0x11], al
mov eax, esi
mov esi, dword [esp + 0x90]
shrd eax, edi, 0x12
movzx edi, byte [esp + 0x50]
lea edx, [edi*8]
mov edi, dword [esp + 0x94]
or eax, edx
mov edx, dword [esp + 0x9c]
mov byte [ebp + 0x12], al
mov eax, esi
shrd esi, edi, 0xd
shrd eax, edi, 5
movzx edi, byte [esp + 0x28]
mov byte [ebp + 0x13], al
mov eax, esi
mov esi, dword [esp + 0x64]
mov byte [ebp + 0x14], al
mov eax, dword [esp + 0x98]
lea ecx, [edi*4]
mov edi, dword [esp + 0xa4]
mov word [ebp + 0x15], ax
shrd eax, edx, 0x10
movzx edx, byte [esp + 0x20]
shl edx, 5
or edx, eax
mov eax, ebx
shrd eax, esi, 3
mov byte [ebp + 0x17], dl
mov byte [ebp + 0x18], al
mov eax, ebx
shrd eax, esi, 0xb
mov byte [ebp + 0x19], al
mov eax, ebx
shrd eax, esi, 0x13
mov esi, dword [esp + 0xa0]
or ecx, eax
mov eax, esi
shrd esi, edi, 0xe
mov byte [ebp + 0x1a], cl
mov ecx, esi
mov esi, dword [esp + 0x68]
shrd eax, edi, 6
mov edi, dword [esp + 0x6c]
mov byte [ebp + 0x1b], al
mov eax, esi
shl eax, 7
or eax, ecx
mov byte [ebp + 0x1c], al
mov eax, esi
shrd eax, edi, 1
mov byte [ebp + 0x1d], al
mov eax, esi
shrd esi, edi, 0x11
shrd eax, edi, 9
mov byte [ebp + 0x1e], al
mov eax, esi
mov byte [ebp + 0x1f], al
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret