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

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