Function at 0x48ade0
Capabilities:
Encrypt data using curve25519
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x40c
lea eax, [esp + 0x1c8]
mov esi, dword [esp + 0x424]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x42c]
lea ebx, [esp + 0x328]
mov dword [esp + 4], 0x20
mov edi, dword [esp + 0x428]
lea ebp, [esp + 0x208]
mov dword [esp], eax
call dbg.SHA512
movzx eax, byte [esp + 0x1e7]
mov dword [esp], ebx
and byte [esp + 0x1c8], 0xf8
and eax, 0x3f
or eax, 0x40
mov byte [esp + 0x1e7], al
call sym.adb.exe_SHA512_Init
lea eax, [esp + 0x1e8]
mov dword [esp], ebx
mov dword [esp + 8], 0x20
mov dword [esp + 4], eax
call dbg.SHA512_Update
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
call dbg.SHA512_Update
mov dword [esp + 4], ebx
mov dword [esp], ebp
call dbg.SHA512_Final
mov dword [esp], ebp
call dbg.x25519_sc_reduce
mov dword [esp + 4], ebp
lea ebp, [esp + 0x288]
mov dword [esp], ebp
mov dword [esp + 8], 0x57aa20
call dbg.x25519_ge_scalarmult_small_precomp
mov eax, dword [esp + 0x420]
mov edx, ebp
call dbg.ge_p3_tobytes
mov dword [esp], ebx
call sym.adb.exe_SHA512_Init
mov eax, dword [esp + 0x420]
mov dword [esp], ebx
mov dword [esp + 8], 0x20
mov dword [esp + 4], eax
call dbg.SHA512_Update
mov eax, dword [esp + 0x42c]
mov dword [esp], ebx
mov dword [esp + 8], 0x20
lea ebp, [eax + 0x20]
mov dword [esp + 4], ebp
call dbg.SHA512_Update
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
call dbg.SHA512_Update
mov dword [esp + 4], ebx
lea ebx, [esp + 0x248]
mov dword [esp], ebx
call dbg.SHA512_Final
mov dword [esp], ebx
xor ebx, ebx
call dbg.x25519_sc_reduce
movzx ebp, byte [esp + 0x24a]
movzx eax, byte [esp + 0x249]
movzx ecx, byte [esp + 0x24b]
movzx edx, byte [esp + 0x248]
mov edi, ebp
shl edi, 0x10
mov dword [esp + 0x50], edi
shl eax, 8
or dword [esp + 0x50], eax
movzx eax, byte [esp + 0x24c]
shld ebx, ecx, 8
or dword [esp + 0x50], edx
xor edx, edx
shl ecx, 8
mov edi, ebx
mov esi, ecx
shld edx, eax, 0x10
shl eax, 0x10
or edi, edx
or esi, eax
xor edx, edx
or esi, ebp
movzx ebp, byte [esp + 0x24d]
and dword [esp + 0x50], 0x1fffff
mov eax, ebp
shld edx, ebp, 0x18
xor ebx, ebx
shl eax, 0x18
or edi, edx
or esi, eax
xor edx, edx
mov ecx, esi
shrd ecx, edi, 5
movzx edi, byte [esp + 0x24f]
mov eax, ecx
movzx ecx, byte [esp + 0x24e]
and eax, 0x1fffff
mov dword [esp + 0xe8], eax
mov eax, edi
shld edx, edi, 0x10
shl eax, 0x10
mov dword [esp + 0x24], edx
shld ebx, ecx, 8
mov edx, eax
shl ecx, 8
or edx, ecx
mov ecx, dword [esp + 0x24]
mov eax, edx
xor edx, edx
or eax, ebp
movzx ebp, byte [esp + 0x252]
mov esi, eax
movzx eax, byte [esp + 0x251]
or ecx, ebx
xor ebx, ebx
shrd esi, ecx, 2
movzx ecx, byte [esp + 0x250]
mov dword [esp + 0x18], edi
mov edi, esi
shld edx, eax, 0x10
and edi, 0x1fffff
shl eax, 0x10
shld ebx, ecx, 8
shl ecx, 8
or ebx, edx
or ecx, eax
mov eax, ebp
or ecx, dword [esp + 0x18]
xor edx, edx
shl eax, 0x18
shld edx, ebp, 0x18
or ecx, eax
movzx eax, byte [esp + 0x254]
or ebx, edx
mov esi, ecx
movzx ecx, byte [esp + 0x253]
shrd esi, ebx, 7
and esi, 0x1fffff
xor ebx, ebx
xor edx, edx
shld edx, eax, 0x10
shld ebx, ecx, 8
shl eax, 0x10
or ebx, edx
shl ecx, 8
xor edx, edx
or ecx, eax
or ecx, ebp
movzx ebp, byte [esp + 0x255]
mov dword [esp + 0xc0], esi
mov dword [esp + 0xb8], edi
mov eax, ebp
shl eax, 0x18
shld edx, ebp, 0x18
or ecx, eax
or ebx, edx
mov esi, ecx
movzx edx, byte [esp + 0x257]
shrd esi, ebx, 4
xor ebx, ebx
mov ecx, esi
and ecx, 0x1fffff
mov dword [esp + 0xd0], ecx
movzx ecx, byte [esp + 0x256]
mov eax, edx
mov dword [esp + 0x18], edx
xor edx, edx
shld edx, eax, 0x10
shl eax, 0x10
shld ebx, ecx, 8
mov dword [esp + 0x24], edx
shl ecx, 8
mov edx, eax
or edx, ecx
mov eax, edx
or eax, ebp
mov ebp, dword [esp + 0x24]
mov esi, eax
or ebp, ebx
xor ebx, ebx
shrd esi, ebp, 1
mov edx, esi
and edx, 0x1fffff
mov dword [esp + 0xc8], edx
movzx ecx, byte [esp + 0x258]
xor edx, edx
movzx eax, byte [esp + 0x259]
movzx ebp, byte [esp + 0x25a]
shld ebx, ecx, 8
shl ecx, 8
mov edi, ebx
shld edx, eax, 0x10
mov esi, ecx
shl eax, 0x10
mov ecx, ebp
or esi, eax
xor ebx, ebx
or esi, dword [esp + 0x18]
or edi, edx
shl ecx, 0x18
xor edx, edx
shld ebx, ebp, 0x18
or esi, ecx
or edi, ebx
movzx ecx, byte [esp + 0x25b]
mov eax, esi
shrd eax, edi, 6
mov ebx, eax
movzx eax, byte [esp + 0x25c]
and ebx, 0x1fffff
mov dword [esp + 0xa0], ebx
xor ebx, ebx
shld ebx, ecx, 8
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x1c], edx
shl ecx, 8
mov edx, eax
or edx, ecx
movzx ecx, byte [esp + 0x260]
mov eax, edx
movzx edx, byte [esp + 0x25d]
or eax, ebp
mov ebp, dword [esp + 0x1c]
mov esi, eax
movzx eax, byte [esp + 0x25e]
or ebp, ebx
xor ebx, ebx
shrd esi, ebp, 3
mov edi, ebp
movzx ebp, byte [esp + 0x25f]
shr edi, 3
mov dword [esp + 0x2c], edi
shl eax, 8
shld ebx, ecx, 8
mov edi, ebp
shl edi, 0x10
mov dword [esp + 0x38], edi
shl ecx, 8
or dword [esp + 0x38], eax
mov edi, ecx
movzx eax, byte [esp + 0x261]
or dword [esp + 0x38], edx
xor edx, edx
and dword [esp + 0x38], 0x1fffff
shld edx, eax, 0x10
shl eax, 0x10
or edi, eax
mov dword [esp + 0x28], esi
mov esi, edi
mov edi, ebx
or edi, edx
or esi, ebp
movzx ebp, byte [esp + 0x262]
xor edx, edx
xor ebx, ebx
mov eax, ebp
shl eax, 0x18
shld edx, ebp, 0x18
or esi, eax
or edi, edx
mov ecx, esi
movzx esi, byte [esp + 0x263]
shrd ecx, edi, 5
movzx edi, byte [esp + 0x264]
xor edx, edx
mov eax, ecx
and eax, 0x1fffff
mov dword [esp + 0xf0], eax
mov eax, edi
mov dword [esp + 0x18], edi
shld edx, eax, 0x10
xor edi, edi
shl eax, 0x10
shld edi, esi, 8
mov ecx, eax
shl esi, 8
or ecx, esi
mov dword [esp + 0x24], edx
or ecx, ebp
mov ebp, dword [esp + 0x24]
mov eax, ecx
movzx ecx, byte [esp + 0x265]
xor edx, edx
or ebp, edi
shrd eax, ebp, 2
mov ebp, eax
movzx eax, byte [esp + 0x266]
shld ebx, ecx, 8
and ebp, 0x1fffff
shl ecx, 8
mov esi, ecx
mov ecx, ebx
shld edx, eax, 0x10
xor ebx, ebx
or ecx, edx
mov edi, ecx
movzx ecx, byte [esp + 0x267]
shl eax, 0x10
or esi, eax
or esi, dword [esp + 0x18]
shld ebx, ecx, 0x18
shl ecx, 0x18
or esi, ecx
or edi, ebx
mov eax, esi
mov edx, edi
shrd eax, edi, 7
xor ebx, ebx
mov dword [esp + 0xfc], ebp
shr edx, 7
mov dword [esp + 0x30], eax
movzx ebp, byte [esp + 0x1ca]
movzx eax, byte [esp + 0x1c9]
movzx ecx, byte [esp + 0x1cb]
mov dword [esp + 0x34], edx
movzx edx, byte [esp + 0x1c8]
mov edi, ebp
shl edi, 0x10
mov dword [esp + 0x40], edi
shl eax, 8
or dword [esp + 0x40], eax
movzx eax, byte [esp + 0x1cc]
shld ebx, ecx, 8
or dword [esp + 0x40], edx
xor edx, edx
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
xor edx, edx
or esi, ebp
movzx ebp, byte [esp + 0x1cd]
and dword [esp + 0x40], 0x1fffff
mov eax, ebp
shl eax, 0x18
shld edx, ebp, 0x18
or esi, eax
or edi, edx
mov ecx, esi
shrd ecx, edi, 5
xor edx, edx
mov edi, ecx
movzx ecx, byte [esp + 0x1cf]
and edi, 0x1fffff
mov dword [esp + 0x60], edi
mov dword [esp + 0x18], ecx
mov eax, ecx
movzx ecx, byte [esp + 0x1ce]
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x24], edx
mov edx, eax
movzx eax, byte [esp + 0x1d1]
shld ebx, ecx, 8
shl ecx, 8
or edx, ecx
or edx, ebp
movzx ebp, byte [esp + 0x1d2]
mov esi, edx
mov edx, dword [esp + 0x24]
or edx, ebx
shrd esi, edx, 2
xor ebx, ebx
mov ecx, esi
xor edx, edx
and ecx, 0x1fffff
mov dword [esp + 0x68], ecx
movzx ecx, byte [esp + 0x1d0]
shld edx, eax, 0x10
shl eax, 0x10
shld ebx, ecx, 8
shl ecx, 8
mov edi, ebx
mov esi, ecx
or edi, edx
or esi, eax
mov eax, ebp
or esi, dword [esp + 0x18]
xor edx, edx
shl eax, 0x18
xor ebx, ebx
shld edx, ebp, 0x18
or esi, eax
or edi, edx
movzx eax, byte [esp + 0x1d4]
mov ecx, esi
shrd ecx, edi, 7
mov edx, ecx
movzx ecx, byte [esp + 0x1d3]
and edx, 0x1fffff
mov dword [esp + 0x70], edx
xor edx, edx
shld edx, eax, 0x10
shld ebx, ecx, 8
shl ecx, 8
mov edi, ebx
shl eax, 0x10
mov esi, ecx
or esi, eax
or edi, edx
or esi, ebp
movzx ebp, byte [esp + 0x1d5]
xor edx, edx
mov eax, ebp
shl eax, 0x18
shld edx, ebp, 0x18
or esi, eax
or edi, edx
mov ecx, esi
movzx esi, byte [esp + 0x1d7]
shrd ecx, edi, 4
mov ebx, ecx
movzx ecx, byte [esp + 0x1d6]
and ebx, 0x1fffff
xor edx, edx
mov eax, esi
shld edx, esi, 0x10
mov dword [esp + 0x78], ebx
shl eax, 0x10
xor ebx, ebx
shld ebx, ecx, 8
mov dword [esp + 0x18], esi
shl ecx, 8
mov dword [esp + 0x24], edx
mov edx, eax
or edx, ecx
movzx ecx, byte [esp + 0x1d8]
mov eax, edx
xor edx, edx
or eax, ebp
mov ebp, dword [esp + 0x24]
mov esi, eax
movzx eax, byte [esp + 0x1d9]
or ebp, ebx
xor ebx, ebx
shrd esi, ebp, 1
mov ebp, esi
and ebp, 0x1fffff
shld ebx, ecx, 8
mov dword [esp + 0x80], ebp
shl ecx, 8
movzx ebp, byte [esp + 0x1da]
shld edx, eax, 0x10
mov edi, ecx
shl eax, 0x10
or edi, eax
mov esi, edi
mov eax, ebp
or esi, dword [esp + 0x18]
mov edi, ebx
or edi, edx
xor edx, edx
shl eax, 0x18
xor ebx, ebx
shld edx, ebp, 0x18
or esi, eax
movzx eax, byte [esp + 0x1dc]
or edi, edx
mov ecx, esi
shrd ecx, edi, 6
xor edx, edx
mov edi, ecx
movzx ecx, byte [esp + 0x1db]
and edi, 0x1fffff
shld edx, eax, 0x10
mov dword [esp + 0x1c], edx
shld ebx, ecx, 8
shl ecx, 8
shl eax, 0x10
mov edx, eax
or edx, ecx
mov ecx, dword [esp + 0x1c]
mov eax, edx
movzx edx, byte [esp + 0x1dd]
or eax, ebp
mov dword [esp + 0x88], edi
mov edi, eax
movzx eax, byte [esp + 0x1de]
or ecx, ebx
xor ebx, ebx
mov ebp, ecx
shr ebp, 3
mov dword [esp + 0x24], ebp
movzx ebp, byte [esp + 0x1df]
shrd edi, ecx, 3
movzx ecx, byte [esp + 0x1e0]
shl eax, 8
mov dword [esp + 0x20], edi
mov esi, ebp
shl esi, 0x10
mov dword [esp + 0x48], esi
shld ebx, ecx, 8
or dword [esp + 0x48], eax
movzx eax, byte [esp + 0x1e1]
shl ecx, 8
or dword [esp + 0x48], edx
xor edx, edx
mov esi, ecx
mov ecx, ebx
and dword [esp + 0x48], 0x1fffff
shld edx, eax, 0x10
shl eax, 0x10
or ecx, edx
or esi, eax
mov edi, ecx
or esi, ebp
movzx ebp, byte [esp + 0x1e2]
xor edx, edx
mov eax, ebp
shl eax, 0x18
or esi, eax
shld edx, ebp, 0x18
mov ecx, esi
mov esi, edi
xor edi, edi
or esi, edx
xor edx, edx
shrd ecx, esi, 5
mov esi, ecx
movzx ecx, byte [esp + 0x1e4]
and esi, 0x1fffff
mov dword [esp + 0x90], esi
movzx esi, byte [esp + 0x1e3]
mov eax, ecx
shl eax, 0x10
mov dword [esp + 0x18], ecx
shld edi, esi, 8
shld edx, ecx, 0x10
mov ecx, eax
shl esi, 8
or ecx, esi
mov ebx, ecx
movzx ecx, byte [esp + 0x1e5]
mov dword [esp + 0x5c], edx
or ebx, ebp
mov ebp, dword [esp + 0x5c]
mov eax, ebx
xor ebx, ebx
xor edx, edx
shld ebx, ecx, 8
or ebp, edi
shrd eax, ebp, 2
mov ebp, eax
movzx eax, byte [esp + 0x1e6]
shl ecx, 8
and ebp, 0x1fffff
mov esi, ecx
movzx ecx, byte [esp + 0x1e7]
mov dword [esp + 0x98], ebp
mov ebp, ebx
xor ebx, ebx
shld edx, eax, 0x10
shl eax, 0x10
or ebp, edx
or esi, eax
or esi, dword [esp + 0x18]
shld ebx, ecx, 0x18
shl ecx, 0x18
or ebp, ebx
or esi, ecx
mov edx, ebp
mov eax, esi
xor ebx, ebx
shrd eax, ebp, 7
mov dword [esp + 0x18], eax
movzx esi, byte [esp + 0x20a]
shr edx, 7
movzx ecx, byte [esp + 0x208]
movzx eax, byte [esp + 0x209]
mov dword [esp + 0x1c], edx
xor edx, edx
movzx edi, byte [esp + 0x20f]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x118], ecx
mov ecx, esi
shl ecx, 0x10
mov dword [esp + 0xb0], ecx
movzx ecx, byte [esp + 0x20b]
shl eax, 8
or dword [esp + 0xb0], eax
movzx eax, byte [esp + 0x20c]
mov dword [esp + 0x58], edi
shld ebx, ecx, 8
shl ecx, 8
shld edx, eax, 0x10
mov ebp, ecx
shl eax, 0x10
mov ecx, ebx
or ebp, eax
or ecx, edx
movzx eax, byte [esp + 0x20e]
movzx edx, byte [esp + 0x20d]
mov dword [esp + 0x100], ebp
or dword [esp + 0x100], esi
xor ebx, ebx
shld ebx, eax, 8
mov dword [esp + 0x198], ecx
mov ecx, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x120], edx
shl ecx, 8
mov dword [esp + 0x128], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], ebx
mov ebx, ecx
movzx ecx, byte [esp + 0x210]
mov dword [esp + 0x12c], 0
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x58], eax
movzx eax, byte [esp + 0x211]
or ebx, dword [esp + 0x58]
mov dword [esp + 0x5c], edx
xor edx, edx
mov dword [esp + 0x19c], ebx
xor ebx, ebx
shld ebx, ecx, 8
shl ecx, 8
shld edx, eax, 0x10
mov esi, ecx
shl eax, 0x10
or esi, eax
mov dword [esp + 0x108], esi
mov esi, ebx
xor ebx, ebx
or esi, edx
xor edx, edx
mov dword [esp + 0x1a0], esi
movzx ecx, byte [esp + 0x213]
movzx eax, byte [esp + 0x214]
or dword [esp + 0x108], edi
movzx edi, byte [esp + 0x212]
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 [esp + 0x216]
xor ecx, ecx
mov dword [esp + 0x110], esi
xor esi, esi
or dword [esp + 0x110], edi
mov dword [esp + 0x178], edi
movzx edi, byte [esp + 0x215]
shld ecx, eax, 8
mov dword [esp + 0x1a4], ebx
mov edx, eax
movzx eax, byte [esp + 0x219]
shl edx, 8
mov dword [esp + 0x154], ecx
movzx ecx, byte [esp + 0x218]
mov dword [esp + 0x158], edi
mov dword [esp + 0x180], edi
movzx edi, byte [esp + 0x217]
mov dword [esp + 0x150], edx
mov dword [esp + 0x17c], 0
mov dword [esp + 0x184], 0
mov ebx, edi
shl ebx, 0x10
mov dword [esp + 0xe0], ebx
xor ebx, ebx
or edx, dword [esp + 0xe0]
shld esi, edi, 0x10
shld ebx, ecx, 8
mov dword [esp + 0x1a8], edx
shl ecx, 8
xor edx, edx
shld edx, eax, 0x10
mov dword [esp + 0xe4], esi
shl eax, 0x10
mov esi, ecx
or esi, eax
movzx eax, byte [esp + 0x21b]
mov dword [esp + 0x140], esi
mov esi, ebx
xor ebx, ebx
or esi, edx
xor edx, edx
mov dword [esp + 0x1ac], esi
movzx esi, byte [esp + 0x21a]
or dword [esp + 0x140], edi
xor edi, edi
shld edi, eax, 8
mov dword [esp + 0x18c], 0
mov dword [esp + 0x15c], esi
mov dword [esp + 0x188], esi
mov esi, eax
movzx eax, byte [esp + 0x21c]
shl esi, 8
mov dword [esp + 0x160], esi
mov dword [esp + 0x164], edi
mov edi, esi
mov ecx, eax
shl ecx, 0x10
mov dword [esp + 0x138], ecx
shld ebx, eax, 0x10
movzx eax, byte [esp + 0x21d]
or edi, dword [esp + 0x138]
mov dword [esp + 0x13c], ebx
movzx ecx, byte [esp + 0x220]
mov dword [esp + 0x194], 0
mov dword [esp + 0x1b0], edi
movzx edi, byte [esp + 0x21f]
mov dword [esp + 0x168], eax
movzx eax, byte [esp + 0x21e]
mov ebx, edi
shl ebx, 0x10
mov dword [esp + 0xd8], ebx
shl eax, 8
xor ebx, ebx
or dword [esp + 0xd8], eax
movzx eax, byte [esp + 0x221]
shld ebx, ecx, 8
shl ecx, 8
mov esi, ecx
xor ecx, ecx
shld edx, eax, 0x10
shl eax, 0x10
or ebx, edx
or esi, eax
movzx eax, byte [esp + 0x222]
mov dword [esp + 0x1b4], ebx
movzx ebx, byte [esp + 0x224]
mov dword [esp + 0x144], esi
or dword [esp + 0x144], edi
xor edi, edi
mov dword [esp + 0x16c], eax
mov dword [esp + 0x190], eax
movzx eax, byte [esp + 0x223]
mov dword [esp + 0xa8], ebx
mov esi, dword [esp + 0xa8]
mov edx, eax
shl edx, 8
shld ecx, eax, 8
mov eax, edx
shld edi, esi, 0x10
shl esi, 0x10
or eax, esi
xor ebx, ebx
mov dword [esp + 0x174], ecx
movzx ecx, byte [esp + 0x225]
mov dword [esp + 0x1b8], eax
movzx eax, byte [esp + 0x226]
mov dword [esp + 0x170], edx
xor edx, edx
shld ebx, ecx, 8
shld edx, eax, 0x10
shl ecx, 8
or ebx, edx
shl eax, 0x10
mov ebp, ecx
or ebp, eax
mov dword [esp + 0x1bc], ebx
mov ebx, dword [esp + 0x118]
mov esi, ebp
or esi, dword [esp + 0xa8]
or dword [esp + 0xb0], ebx
mov ebx, dword [esp + 0xb0]
mov eax, dword [esp + 0x50]
mul dword [esp + 0x40]
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
and ebx, 0x1fffff
mov ebp, dword [esp + 0x100]
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x134], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x130], eax
add dword [esp + 0x130], edx
adc dword [esp + 0x134], ecx
mov edx, dword [esp + 0x128]
mov ecx, dword [esp + 0x12c]
mov dword [esp + 0xac], 0
shld ecx, edx, 0x18
shl edx, 0x18
mov eax, edx
mov edx, ecx
or ebp, eax
mov eax, dword [esp + 0x50]
mov ecx, ebp
mov ebp, dword [esp + 0x198]
or ebp, edx
mul dword [esp + 0x60]
shrd ecx, ebp, 5
mov ebx, ecx
mov ecx, dword [esp + 0xac]
and ebx, 0x1fffff
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x12c], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0xe8]
add dword [esp + 0x128], edx
adc dword [esp + 0x12c], ecx
mul dword [esp + 0x40]
add dword [esp + 0x128], eax
mov ebp, dword [esp + 0x19c]
adc dword [esp + 0x12c], edx
mov ecx, dword [esp + 0x14c]
or ebp, dword [esp + 0x120]
or ecx, dword [esp + 0x5c]
mov dword [esp + 0x5c], 0
mov eax, ebp
shrd eax, ecx, 2
mov ecx, eax
mov eax, dword [esp + 0x50]
mul dword [esp + 0x68]
and ecx, 0x1fffff
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x124], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0xe8]
add dword [esp + 0x120], edx
adc dword [esp + 0x124], ecx
mul dword [esp + 0x60]
add dword [esp + 0x120], eax
mov eax, dword [esp + 0xb8]
adc dword [esp + 0x124], edx
mul dword [esp + 0x40]
add dword [esp + 0x120], eax
adc dword [esp + 0x124], edx
mov ecx, dword [esp + 0x178]
mov ebx, dword [esp + 0x17c]
mov ebp, dword [esp + 0x108]
mov eax, dword [esp + 0x50]
mul dword [esp + 0x70]
shld ebx, ecx, 0x18
shl ecx, 0x18
or ebp, ecx
mov ecx, ebp
mov ebp, dword [esp + 0x1a0]
mov dword [esp + 0x11c], edx
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x5c], 0
or ebp, ebx
shrd ecx, ebp, 7
and ecx, 0x1fffff
mov dword [esp + 0x58], ecx
mov edx, dword [esp + 0x58]
add dword [esp + 0x118], edx
mov ecx, dword [esp + 0x5c]
adc dword [esp + 0x11c], ecx
mul dword [esp + 0x68]
add dword [esp + 0x118], eax
mov eax, dword [esp + 0xb8]
adc dword [esp + 0x11c], edx
mul dword [esp + 0x60]
add dword [esp + 0x118], eax
mov eax, dword [esp + 0xc0]
adc dword [esp + 0x11c], edx
mul dword [esp + 0x40]
add dword [esp + 0x118], eax
mov ecx, dword [esp + 0x180]
mov ebx, dword [esp + 0x184]
mov ebp, dword [esp + 0x110]
adc dword [esp + 0x11c], edx
mov eax, dword [esp + 0x50]
shld ebx, ecx, 0x18
shl ecx, 0x18
or ebp, ecx
mov ecx, ebp
mov ebp, dword [esp + 0x1a4]
mul dword [esp + 0x78]
mov dword [esp + 0x5c], 0
or ebp, ebx
shrd ecx, ebp, 4
and ecx, 0x1fffff
mov dword [esp + 0x114], edx
mov dword [esp + 0x58], ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x110], eax
mov ecx, dword [esp + 0x5c]
add dword [esp + 0x110], edx
mov eax, dword [esp + 0xe8]
adc dword [esp + 0x114], ecx
mul dword [esp + 0x70]
add dword [esp + 0x110], eax
mov eax, dword [esp + 0xb8]
adc dword [esp + 0x114], edx
mul dword [esp + 0x68]
add dword [esp + 0x110], eax
adc dword [esp + 0x114], edx
mov eax, dword [esp + 0xc0]
mul dword [esp + 0x60]
add dword [esp + 0x110], eax
mov eax, dword [esp + 0xd0]
adc dword [esp + 0x114], edx
mul dword [esp + 0x40]
add dword [esp + 0x110], eax
mov ebp, dword [esp + 0x1a8]
adc dword [esp + 0x114], edx
or ebp, dword [esp + 0x158]
mov edx, dword [esp + 0x154]
or edx, dword [esp + 0xe4]
mov eax, dword [esp + 0x50]
mov ecx, ebp
mov dword [esp + 0x5c], 0
shrd ecx, edx, 1
mul dword [esp + 0x80]
and ecx, 0x1fffff
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x10c], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0xe8]
add dword [esp + 0x108], edx
adc dword [esp + 0x10c], ecx
mul dword [esp + 0x78]
add dword [esp + 0x108], eax
mov eax, dword [esp + 0xb8]
adc dword [esp + 0x10c], edx
mul dword [esp + 0x70]
add dword [esp + 0x108], eax
mov eax, dword [esp + 0xc0]
adc dword [esp + 0x10c], edx
mul dword [esp + 0x68]
add dword [esp + 0x108], eax
mov eax, dword [esp + 0xd0]
adc dword [esp + 0x10c], edx
mul dword [esp + 0x60]
add dword [esp + 0x108], eax
mov eax, dword [esp + 0xc8]
adc dword [esp + 0x10c], edx
mul dword [esp + 0x40]
add dword [esp + 0x108], eax
adc dword [esp + 0x10c], edx
mov ecx, dword [esp + 0x18c]
mov edx, dword [esp + 0x188]
mov ebp, dword [esp + 0x140]
shld ecx, edx, 0x18
shl edx, 0x18
mov eax, edx
mov edx, ecx
or ebp, eax
mov ecx, ebp
mov ebp, dword [esp + 0x1ac]
or ebp, edx
shrd ecx, ebp, 6
mov edx, ecx
and edx, 0x1fffff
mov dword [esp + 0x58], edx
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0xe8]
mov dword [esp + 0x5c], 0
mov eax, ecx
mul dword [esp + 0x88]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x58]
add dword [esp + 0x100], eax
mov eax, ebx
mov dword [esp + 0x104], edx
mov edx, dword [esp + 0x5c]
adc dword [esp + 0x104], edx
mul dword [esp + 0x80]
add dword [esp + 0x100], eax
mov eax, dword [esp + 0xb8]
adc dword [esp + 0x104], edx
mul dword [esp + 0x78]
add dword [esp + 0x100], eax
mov eax, dword [esp + 0xc0]
adc dword [esp + 0x104], edx
mul dword [esp + 0x70]
add dword [esp + 0x100], eax
mov eax, dword [esp + 0xd0]
adc dword [esp + 0x104], edx
mul dword [esp + 0x68]
add dword [esp + 0x100], eax
mov eax, dword [esp + 0xc8]
adc dword [esp + 0x104], edx
mul dword [esp + 0x60]
add dword [esp + 0x100], eax
mov eax, dword [esp + 0xa0]
adc dword [esp + 0x104], edx
mul dword [esp + 0x40]
add dword [esp + 0x100], eax
mov ebp, dword [esp + 0x1b0]
adc dword [esp + 0x104], edx
or ebp, dword [esp + 0x15c]
mov eax, ebp
mov ebp, dword [esp + 0x164]
or ebp, dword [esp + 0x13c]
mov edx, ebp
shr edx, 3
mov dword [esp + 0xe4], edx
mov edx, dword [esp + 0x24]
shrd eax, ebp, 3
mov ebp, ecx
mov dword [esp + 0xe0], eax
mov eax, ebp
imul edx, ecx
mov ecx, edx
mul dword [esp + 0x20]
add edx, ecx
add dword [esp + 0xe0], eax
mov eax, ebx
adc dword [esp + 0xe4], edx
mul dword [esp + 0x88]
add dword [esp + 0xe0], eax
adc dword [esp + 0xe4], edx
mov eax, dword [esp + 0xb8]
mul dword [esp + 0x80]
add dword [esp + 0xe0], eax
mov eax, dword [esp + 0xc0]
adc dword [esp + 0xe4], edx
mul dword [esp + 0x78]
add dword [esp + 0xe0], eax
mov eax, dword [esp + 0xd0]
adc dword [esp + 0xe4], edx
mul dword [esp + 0x70]
add dword [esp + 0xe0], eax
mov eax, dword [esp + 0xc8]
adc dword [esp + 0xe4], edx
mul dword [esp + 0x68]
add dword [esp + 0xe0], eax
mov eax, dword [esp + 0xa0]
adc dword [esp + 0xe4], edx
mul dword [esp + 0x60]
add dword [esp + 0xe0], eax
adc dword [esp + 0xe4], edx
mov ebp, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x44], 0
imul ecx, ebp
mul ebp
add edx, ecx
mov ecx, dword [esp + 0x168]
add dword [esp + 0xe0], eax
adc dword [esp + 0xe4], edx
or dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0xd8]
mov eax, dword [esp + 0x50]
mul dword [esp + 0x48]
and ecx, 0x1fffff
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x40]
add dword [esp + 0xd8], eax
mov eax, ebx
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0x44]
adc dword [esp + 0xdc], edx
mul dword [esp + 0x20]
imul ecx, ebx
add edx, ecx
add dword [esp + 0xd8], eax
mov eax, dword [esp + 0xb8]
adc dword [esp + 0xdc], edx
mul dword [esp + 0x88]
add dword [esp + 0xd8], eax
mov eax, dword [esp + 0xc0]
adc dword [esp + 0xdc], edx
mul dword [esp + 0x80]
add dword [esp + 0xd8], eax
mov eax, dword [esp + 0xd0]
adc dword [esp + 0xdc], edx
mul dword [esp + 0x78]
add dword [esp + 0xd8], eax
mov eax, dword [esp + 0xc8]
adc dword [esp + 0xdc], edx
mul dword [esp + 0x70]
add dword [esp + 0xd8], eax
mov eax, dword [esp + 0xa0]
adc dword [esp + 0xdc], edx
mul dword [esp + 0x68]
add dword [esp + 0xd8], eax
mov ebx, dword [esp + 0x60]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
adc dword [esp + 0xdc], edx
imul ecx, ebx
mul ebx
add edx, ecx
add dword [esp + 0xd8], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x190]
mov ebx, dword [esp + 0x194]
adc dword [esp + 0xdc], edx
mul ebp
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x144]
add dword [esp + 0xd8], eax
adc dword [esp + 0xdc], edx
shld ebx, ecx, 0x18
mov eax, dword [esp + 0x50]
shl ecx, 0x18
or ebp, ecx
mov ecx, ebp
mov ebp, dword [esp + 0x1b4]
mul dword [esp + 0x90]
mov dword [esp + 0x5c], 0
or ebp, ebx
shrd ecx, ebp, 5
and ecx, 0x1fffff
mov dword [esp + 0xb0], eax
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x58]
add dword [esp + 0xb0], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0x5c]
adc dword [esp + 0xb4], edx
mul dword [esp + 0x48]
add dword [esp + 0xb0], eax
adc dword [esp + 0xb4], edx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x24]
mov eax, ebx
imul ecx, ebx
mul dword [esp + 0x20]
add edx, ecx
add dword [esp + 0xb0], eax
mov eax, dword [esp + 0xc0]
adc dword [esp + 0xb4], edx
mul dword [esp + 0x88]
add dword [esp + 0xb0], eax
mov eax, dword [esp + 0xd0]
adc dword [esp + 0xb4], edx
mul dword [esp + 0x80]
add dword [esp + 0xb0], eax
mov eax, dword [esp + 0xc8]
adc dword [esp + 0xb4], edx
mul dword [esp + 0x78]
add dword [esp + 0xb0], eax
mov eax, dword [esp + 0xa0]
adc dword [esp + 0xb4], edx
mul dword [esp + 0x70]
add dword [esp + 0xb0], eax
adc dword [esp + 0xb4], edx
mov ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x1b8]
imul ecx, ebx
mul ebx
add edx, ecx
add dword [esp + 0xb0], eax
mov eax, dword [esp + 0x38]
adc dword [esp + 0xb4], edx
mul dword [esp + 0x60]
add dword [esp + 0xb0], eax
mov eax, dword [esp + 0xf0]
adc dword [esp + 0xb4], edx
mul dword [esp + 0x40]
add dword [esp + 0xb0], eax
adc dword [esp + 0xb4], edx
mov edx, dword [esp + 0x174]
or ebp, dword [esp + 0x16c]
mov eax, dword [esp + 0x50]
or edx, edi
mov ecx, ebp
shrd ecx, edx, 2
xor ebp, ebp
mov edx, ecx
and edx, 0x1fffff
mov edi, edx
mul dword [esp + 0x98]
mov dword [esp + 0xa8], eax
add dword [esp + 0xa8], edi
mov dword [esp + 0xac], edx
adc dword [esp + 0xac], ebp
mov eax, dword [esp + 0xe8]
mul dword [esp + 0x90]
mov edi, dword [esp + 0xc0]
mov ecx, dword [esp + 0x24]
add dword [esp + 0xa8], eax
mov eax, dword [esp + 0xb8]
adc dword [esp + 0xac], edx
mul dword [esp + 0x48]
add dword [esp + 0xa8], eax
mov eax, edi
adc dword [esp + 0xac], edx
mul dword [esp + 0x20]
imul ecx, edi
mov ebp, dword [esp + 0xd0]
add edx, ecx
add dword [esp + 0xa8], eax
mov eax, ebp
adc dword [esp + 0xac], edx
mul dword [esp + 0x88]
add dword [esp + 0xa8], eax
mov eax, dword [esp + 0xc8]
adc dword [esp + 0xac], edx
mul dword [esp + 0x80]
add dword [esp + 0xa8], eax
adc dword [esp + 0xac], edx
mov eax, dword [esp + 0xa0]
mul dword [esp + 0x78]
add dword [esp + 0xa8], eax
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
adc dword [esp + 0xac], edx
imul ecx, edi
mul edi
add edx, ecx
add dword [esp + 0xa8], eax
mov eax, dword [esp + 0x38]
adc dword [esp + 0xac], edx
mul dword [esp + 0x68]
add dword [esp + 0xa8], eax
mov eax, dword [esp + 0xf0]
adc dword [esp + 0xac], edx
mul dword [esp + 0x60]
add dword [esp + 0xa8], eax
mov eax, dword [esp + 0xfc]
adc dword [esp + 0xac], edx
mul dword [esp + 0x40]
add dword [esp + 0xa8], eax
adc dword [esp + 0xac], edx
xor edx, edx
movzx eax, byte [esp + 0x227]
shld edx, eax, 0x18
shl eax, 0x18
or esi, eax
mov ecx, esi
mov esi, dword [esp + 0x1bc]
or esi, edx
mov ebx, esi
mov esi, ecx
mov edi, ebx
shr edi, 7
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x1c]
shrd esi, ebx, 7
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x58], esi
mov ecx, edi
mov edi, dword [esp + 0x24]
imul ecx, ebx
mov eax, ebx
mov ebx, dword [esp + 0xe8]
mul dword [esp + 0x18]
add edx, ecx
mov ecx, edi
add dword [esp + 0x58], eax
mov eax, ebx
adc dword [esp + 0x5c], edx
mul dword [esp + 0x98]
add dword [esp + 0x58], eax
mov eax, dword [esp + 0xb8]
adc dword [esp + 0x5c], edx
mul dword [esp + 0x90]
add dword [esp + 0x58], eax
mov eax, dword [esp + 0xc0]
adc dword [esp + 0x5c], edx
mul dword [esp + 0x48]
add dword [esp + 0x58], eax
mov eax, ebp
adc dword [esp + 0x5c], edx
imul ecx, ebp
mul dword [esp + 0x20]
add edx, ecx
add dword [esp + 0x58], eax
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0xc8]
adc dword [esp + 0x5c], edx
mov ebp, dword [esp + 0x78]
mul dword [esp + 0x88]
mov ecx, edi
add dword [esp + 0x58], eax
mov eax, dword [esp + 0xa0]
adc dword [esp + 0x5c], edx
mul dword [esp + 0x80]
add dword [esp + 0x58], eax
mov eax, esi
adc dword [esp + 0x5c], edx
imul ecx, ebp
mul ebp
add edx, ecx
add dword [esp + 0x58], eax
mov eax, dword [esp + 0x38]
adc dword [esp + 0x5c], edx
mul dword [esp + 0x70]
add dword [esp + 0x58], eax
mov eax, dword [esp + 0xf0]
adc dword [esp + 0x5c], edx
mul dword [esp + 0x68]
add dword [esp + 0x58], eax
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0xfc]
adc dword [esp + 0x5c], edx
mul dword [esp + 0x60]
add dword [esp + 0x58], eax
mov eax, edi
adc dword [esp + 0x5c], edx
mul dword [esp + 0x30]
imul ecx, edi
mov edi, dword [esp + 0x1c]
add edx, ecx
mov ecx, edi
add dword [esp + 0x58], eax
mov eax, ebx
adc dword [esp + 0x5c], edx
mul dword [esp + 0x18]
imul ecx, ebx
mov ebx, dword [esp + 0xb8]
mov esi, eax
mov edi, edx
mov eax, ebx
add edi, ecx
mul dword [esp + 0x98]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xc0]
add dword [esp + 0x40], esi
mov dword [esp + 0x44], edx
adc dword [esp + 0x44], edi
mul dword [esp + 0x90]
add dword [esp + 0x40], eax
adc dword [esp + 0x44], edx
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0xc8]
mov eax, dword [esp + 0xd0]
mul dword [esp + 0x48]
add dword [esp + 0x40], eax
mov ecx, edi
adc dword [esp + 0x44], edx
mov eax, ebp
imul ecx, ebp
mov esi, dword [esp + 0x28]
mul dword [esp + 0x20]
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x80]
add edx, ecx
add dword [esp + 0x40], eax
mov ecx, edi
mov eax, dword [esp + 0xa0]
adc dword [esp + 0x44], edx
mul dword [esp + 0x88]
add dword [esp + 0x40], eax
mov eax, esi
adc dword [esp + 0x44], edx
imul ecx, ebp
mul ebp
add edx, ecx
add dword [esp + 0x40], eax
mov eax, dword [esp + 0x38]
adc dword [esp + 0x44], edx
mul dword [esp + 0x78]
add dword [esp + 0x40], eax
mov eax, dword [esp + 0xf0]
adc dword [esp + 0x44], edx
mov edi, dword [esp + 0x60]
mul dword [esp + 0x70]
mov ecx, dword [esp + 0x34]
add dword [esp + 0x40], eax
mov eax, dword [esp + 0xfc]
adc dword [esp + 0x44], edx
mul dword [esp + 0x68]
add dword [esp + 0x40], eax
mov eax, edi
adc dword [esp + 0x44], edx
mul dword [esp + 0x30]
imul ecx, edi
mov edi, dword [esp + 0x1c]
add edx, ecx
mov ecx, edi
add dword [esp + 0x40], eax
mov eax, ebx
adc dword [esp + 0x44], edx
mul dword [esp + 0x18]
imul ecx, ebx
mov ebx, dword [esp + 0xc0]
mov esi, eax
mov edi, edx
mov eax, ebx
add edi, ecx
mul dword [esp + 0x98]
mov dword [esp + 0x50], eax
add dword [esp + 0x50], esi
mov dword [esp + 0x54], edx
adc dword [esp + 0x54], edi
mov eax, dword [esp + 0xd0]
mul dword [esp + 0x90]
mov edi, dword [esp + 0xa0]
mov ecx, dword [esp + 0x24]
add dword [esp + 0x50], eax
mov eax, dword [esp + 0xc8]
adc dword [esp + 0x54], edx
mul dword [esp + 0x48]
add dword [esp + 0x50], eax
mov eax, edi
adc dword [esp + 0x54], edx
mov esi, dword [esp + 0x28]
imul ecx, edi
mul dword [esp + 0x20]
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x88]
add edx, ecx
add dword [esp + 0x50], eax
mov ecx, edi
mov eax, esi
adc dword [esp + 0x54], edx
imul ecx, ebp
mul ebp
add edx, ecx
add dword [esp + 0x50], eax
mov eax, dword [esp + 0x38]
adc dword [esp + 0x54], edx
mul dword [esp + 0x80]
add dword [esp + 0x50], eax
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0xf0]
adc dword [esp + 0x54], edx
mov ebp, dword [esp + 0x68]
mul dword [esp + 0x78]
mov ecx, edi
add dword [esp + 0x50], eax
mov eax, dword [esp + 0xfc]
adc dword [esp + 0x54], edx
mul dword [esp + 0x70]
add dword [esp + 0x50], eax
mov eax, ebp
adc dword [esp + 0x54], edx
mov edi, dword [esp + 0x1c]
imul ecx, ebp
mul dword [esp + 0x30]
add edx, ecx
mov ecx, edi
add dword [esp + 0x50], eax
mov eax, ebx
adc dword [esp + 0x54], edx
mul dword [esp + 0x18]
imul ecx, ebx
mov ebx, dword [esp + 0xd0]
mov esi, eax
mov edi, edx
mov eax, ebx
add edi, ecx
mul dword [esp + 0x98]
mov dword [esp + 0x60], eax
add dword [esp + 0x60], esi
mov dword [esp + 0x64], edx
adc dword [esp + 0x64], edi
mov eax, dword [esp + 0xc8]
mul dword [esp + 0x90]
add dword [esp + 0x60], eax
mov eax, dword [esp + 0xa0]
adc dword [esp + 0x64], edx
mul dword [esp + 0x48]
add dword [esp + 0x60], eax
adc dword [esp + 0x64], edx
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x20]
mov esi, ebp
mov ecx, edx
imul esi, eax
imul ecx, edi
mov edi, eax
mov eax, edi
mul dword [esp + 0x20]
add ecx, esi
add edx, ecx
add dword [esp + 0x60], eax
mov eax, dword [esp + 0x38]
adc dword [esp + 0x64], edx
mul dword [esp + 0x88]
add dword [esp + 0x60], eax
mov eax, dword [esp + 0xf0]
adc dword [esp + 0x64], edx
mul dword [esp + 0x80]
add dword [esp + 0x60], eax
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0xfc]
adc dword [esp + 0x64], edx
mul dword [esp + 0x78]
add dword [esp + 0x60], eax
mov eax, edi
adc dword [esp + 0x64], edx
mul dword [esp + 0x30]
imul ecx, edi
mov edi, dword [esp + 0x1c]
add edx, ecx
mov ecx, edi
add dword [esp + 0x60], eax
mov eax, ebx
adc dword [esp + 0x64], edx
mul dword [esp + 0x18]
imul ecx, ebx
mov ebx, dword [esp + 0xc8]
mov esi, eax
mov edi, edx
mov eax, ebx
add edi, ecx
mul dword [esp + 0x98]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xa0]
add dword [esp + 0x68], esi
mov dword [esp + 0x6c], edx
adc dword [esp + 0x6c], edi
mul dword [esp + 0x90]
add dword [esp + 0x68], eax
adc dword [esp + 0x6c], edx
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x48]
mov eax, esi
mov esi, dword [esp + 0x38]
mov ecx, edi
mov edi, dword [esp + 0x78]
imul ecx, ebp
mul ebp
mov ebp, dword [esp + 0x24]
add edx, ecx
mov ecx, ebp
mov ebp, dword [esp + 0xfc]
add dword [esp + 0x68], eax
mov eax, esi
adc dword [esp + 0x6c], edx
mul dword [esp + 0x20]
imul ecx, esi
add edx, ecx
mov ecx, dword [esp + 0x34]
add dword [esp + 0x68], eax
mov eax, dword [esp + 0xf0]
adc dword [esp + 0x6c], edx
mul dword [esp + 0x88]
add dword [esp + 0x68], eax
mov eax, ebp
adc dword [esp + 0x6c], edx
mul dword [esp + 0x80]
add dword [esp + 0x68], eax
mov eax, edi
adc dword [esp + 0x6c], edx
imul ecx, edi
mul dword [esp + 0x30]
add edx, ecx
add dword [esp + 0x68], eax
mov eax, ebx
adc dword [esp + 0x6c], edx
mov edi, dword [esp + 0x1c]
mul dword [esp + 0x18]
mov ecx, edi
mov esi, eax
mov eax, dword [esp + 0xa0]
mov edi, edx
imul ecx, ebx
mov ebx, dword [esp + 0x90]
mul dword [esp + 0x98]
add edi, ecx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x28]
add dword [esp + 0x70], esi
mov dword [esp + 0x74], edx
adc dword [esp + 0x74], edi
mov edi, dword [esp + 0x2c]
mul ebx
imul edi, ebx
mov ebx, dword [esp + 0xf0]
add edx, edi
mov edi, dword [esp + 0x24]
add dword [esp + 0x70], eax
mov eax, dword [esp + 0x38]
adc dword [esp + 0x74], edx
mul dword [esp + 0x48]
add dword [esp + 0x70], eax
mov eax, ebx
adc dword [esp + 0x74], edx
imul edi, ebx
mul dword [esp + 0x20]
add edx, edi
add dword [esp + 0x70], eax
mov eax, ebp
mov ebx, dword [esp + 0x80]
mov edi, dword [esp + 0x34]
adc dword [esp + 0x74], edx
mul dword [esp + 0x88]
add dword [esp + 0x70], eax
mov eax, ebx
adc dword [esp + 0x74], edx
mul dword [esp + 0x30]
imul edi, ebx
mov ebx, dword [esp + 0x1c]
add edx, edi
mov edi, dword [esp + 0xa0]
add dword [esp + 0x70], eax
mov eax, ebx
adc dword [esp + 0x74], edx
mov ebx, dword [esp + 0x28]
imul eax, edi
mov esi, eax
mov eax, edi
mov edi, dword [esp + 0x98]
mul dword [esp + 0x18]
mov dword [esp + 0x7c], edx
add dword [esp + 0x7c], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x78], eax
mov eax, ebx
mul dword [esp + 0x98]
imul edi, esi
mov esi, eax
add edx, edi
mov edi, edx
add esi, dword [esp + 0x78]
adc edi, dword [esp + 0x7c]
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], edi
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0x38]
mul dword [esp + 0x90]
mov edi, dword [esp + 0x24]
add dword [esp + 0x78], eax
mov eax, ebx
adc dword [esp + 0x7c], edx
mul dword [esp + 0x48]
add dword [esp + 0x78], eax
mov eax, ebp
adc dword [esp + 0x7c], edx
mul dword [esp + 0x20]
imul edi, ebp
mov esi, dword [esp + 0x88]
add edx, edi
mov edi, dword [esp + 0x34]
add dword [esp + 0x78], eax
mov eax, esi
adc dword [esp + 0x7c], edx
mul dword [esp + 0x30]
imul edi, esi
add edx, edi
mov edi, dword [esp + 0x18]
add dword [esp + 0x78], eax
adc dword [esp + 0x7c], edx
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
imul edi, edx
mul dword [esp + 0x18]
mov ecx, edi
mov edi, dword [esp + 0x1c]
imul edi, dword [esp + 0x28]
mov esi, eax
mov eax, dword [esp + 0x38]
add ecx, edi
mov edi, edx
mul dword [esp + 0x98]
add edi, ecx
mov dword [esp + 0x80], eax
mov eax, ebx
add dword [esp + 0x80], esi
mov esi, dword [esp + 0x20]
mov dword [esp + 0x84], edx
adc dword [esp + 0x84], edi
mul dword [esp + 0x90]
add dword [esp + 0x80], eax
mov eax, ebp
mov ebp, dword [esp + 0x48]
adc dword [esp + 0x84], edx
mov edi, dword [esp + 0x24]
mul ebp
add dword [esp + 0x80], eax
adc dword [esp + 0x84], edx
mov edx, dword [esp + 0x34]
imul edi, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
mov ecx, edx
imul ecx, esi
mul dword [esp + 0x30]
add ecx, edi
mov edi, dword [esp + 0x38]
add edx, ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x80], eax
adc dword [esp + 0x84], edx
mov eax, edi
mul dword [esp + 0x18]
imul ecx, edi
mov esi, eax
mov edi, edx
mov eax, ebx
add edi, ecx
mul dword [esp + 0x98]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xfc]
add dword [esp + 0x88], esi
mov dword [esp + 0x8c], edx
adc dword [esp + 0x8c], edi
mov edi, dword [esp + 0x34]
mul dword [esp + 0x90]
add dword [esp + 0x88], eax
mov eax, ebp
adc dword [esp + 0x8c], edx
mov ecx, edi
mov edi, dword [esp + 0x1c]
mul dword [esp + 0x30]
imul ecx, ebp
mov ebp, dword [esp + 0x34]
add edx, ecx
mov ecx, edi
add dword [esp + 0x88], eax
mov eax, ebx
adc dword [esp + 0x8c], edx
mul dword [esp + 0x18]
imul ecx, ebx
mov ebx, dword [esp + 0x90]
mov esi, eax
mov eax, dword [esp + 0xfc]
mov edi, edx
mul dword [esp + 0x98]
add edi, ecx
mov dword [esp + 0x20], eax
mov eax, ebx
add dword [esp + 0x20], esi
mov dword [esp + 0x24], edx
adc dword [esp + 0x24], edi
mov edi, dword [esp + 0x34]
imul edi, ebx
mov ecx, edi
mov edi, dword [esp + 0x30]
mul edi
add edx, ecx
add dword [esp + 0x20], eax
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0xfc]
adc dword [esp + 0x24], edx
mov eax, ebx
imul eax, esi
mov dword [esp + 0x28], eax
mov eax, esi
mov esi, dword [esp + 0x28]
mul dword [esp + 0x18]
mov ebx, eax
mov eax, dword [esp + 0x98]
add esi, edx
imul eax, ebp
mov ecx, eax
mov eax, dword [esp + 0x98]
mul edi
add edx, ecx
add eax, ebx
adc edx, esi
mov ebx, edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0xc4], edx
mov edx, ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0xc0], eax
imul edx, edi
mov eax, ebp
mov ebp, dword [esp + 0x134]
imul eax, ebx
lea ecx, [edx + eax]
mov eax, ebx
mul edi
mov edi, dword [esp + 0x130]
mov ebx, ebp
add edx, ecx
mov ecx, edi
add ecx, 0x100000
adc ebx, 0
shrd ecx, ebx, 0x15
sar ebx, 0x15
add dword [esp + 0x128], ecx
adc dword [esp + 0x12c], ebx
shld ebx, ecx, 0x15
shl ecx, 0x15
sub edi, ecx
sbb ebp, ebx
mov dword [esp + 0xe8], edi
mov edi, dword [esp + 0x120]
mov dword [esp + 0xec], ebp
mov ebp, dword [esp + 0x124]
mov ecx, edi
add ecx, 0x100000
mov ebx, ebp
adc ebx, 0
shrd ecx, ebx, 0x15
sar ebx, 0x15
add dword [esp + 0x118], ecx
adc dword [esp + 0x11c], ebx
shld ebx, ecx, 0x15
shl ecx, 0x15
sub edi, ecx
sbb ebp, ebx
mov dword [esp + 0xa0], edi
mov edi, dword [esp + 0x110]
mov dword [esp + 0xa4], ebp
mov ebp, dword [esp + 0x114]
mov ecx, edi
add ecx, 0x100000
mov ebx, ebp
adc ebx, 0
shrd ecx, ebx, 0x15
sar ebx, 0x15
add dword [esp + 0x108], ecx
adc dword [esp + 0x10c], ebx
shld ebx, ecx, 0x15
shl ecx, 0x15
sub edi, ecx
sbb ebp, ebx
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x100]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x104]
mov ecx, edi
add ecx, 0x100000
mov ebx, ebp
adc ebx, 0
shrd ecx, ebx, 0x15
sar ebx, 0x15
add dword [esp + 0xe0], ecx
adc dword [esp + 0xe4], ebx
shld ebx, ecx, 0x15
shl ecx, 0x15
sub edi, ecx
sbb ebp, ebx
mov dword [esp + 0xb8], edi
mov edi, dword [esp + 0xd8]
mov dword [esp + 0xbc], ebp
mov ebp, dword [esp + 0xdc]
mov ecx, edi
add ecx, 0x100000
mov ebx, ebp
adc ebx, 0
shrd ecx, ebx, 0x15
sar ebx, 0x15
add dword [esp + 0xb0], ecx
adc dword [esp + 0xb4], ebx
shld ebx, ecx, 0x15
shl ecx, 0x15
sub edi, ecx
sbb ebp, ebx
mov dword [esp + 0x98], edi
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x9c], ebp
mov ebp, dword [esp + 0xac]
mov ecx, edi
add ecx, 0x100000
mov ebx, ebp
adc ebx, 0
shrd ecx, ebx, 0x15
sar ebx, 0x15
add dword [esp + 0x58], ecx
adc dword [esp + 0x5c], ebx
shld ebx, ecx, 0x15
shl ecx, 0x15
sub edi, ecx
sbb ebp, ebx
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x34], ebp
mov ebp, dword [esp + 0x44]
mov ecx, edi
add ecx, 0x100000
mov ebx, ebp
adc ebx, 0
shrd ecx, ebx, 0x15
sar ebx, 0x15
add dword [esp + 0x50], ecx
adc dword [esp + 0x54], ebx
shld ebx, ecx, 0x15
shl ecx, 0x15
sub edi, ecx
sbb ebp, ebx
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x60]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x64]
mov ecx, edi
add ecx, 0x100000
mov ebx, ebp
adc ebx, 0
shrd ecx, ebx, 0x15
sar ebx, 0x15
add dword [esp + 0x68], ecx
adc dword [esp + 0x6c], ebx
shld ebx, ecx, 0x15
shl ecx, 0x15
sub edi, ecx
sbb ebp, ebx
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x70]
mov dword [esp + 0x94], ebp
mov ebp, dword [esp + 0x74]
mov ecx, edi
add ecx, 0x100000
mov ebx, ebp
adc ebx, 0
shrd ecx, ebx, 0x15
sar ebx, 0x15
add dword [esp + 0x78], ecx
adc dword [esp + 0x7c], ebx
shld ebx, ecx, 0x15
shl ecx, 0x15
sub edi, ecx
sbb ebp, ebx
mov dword [esp + 0xa8], edi
mov edi, dword [esp + 0x80]
mov dword [esp + 0xac], ebp
mov ebp, dword [esp + 0x84]
mov ecx, edi
add ecx, 0x100000
mov ebx, ebp
adc ebx, 0
shrd ecx, ebx, 0x15
sar ebx, 0x15
add dword [esp + 0x88], ecx
adc dword [esp + 0x8c], ebx
shld ebx, ecx, 0x15
shl ecx, 0x15
sub edi, ecx
sbb ebp, ebx
mov dword [esp + 0xc8], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0xcc], ebp
mov ebp, dword [esp + 0x24]
mov ecx, edi
add ecx, 0x100000
mov ebx, ebp
adc ebx, 0
shrd ecx, ebx, 0x15
sar ebx, 0x15
add dword [esp + 0xc0], ecx
adc dword [esp + 0xc4], ebx
shld ebx, ecx, 0x15
mov esi, dword [esp + 0x12c]
shl ecx, 0x15
sub edi, ecx
mov ecx, eax
sbb ebp, ebx
add ecx, 0x100000
mov ebx, edx
adc ebx, 0
shrd ecx, ebx, 0x15
sar ebx, 0x15
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], ebx
shld ebx, ecx, 0x15
shl ecx, 0x15
sub eax, ecx
sbb edx, ebx
mov ebx, dword [esp + 0x128]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], edx
mov edx, esi
mov dword [esp + 0xd0], edi
mov eax, ebx
add eax, 0x100000
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add dword [esp + 0xa0], eax
adc dword [esp + 0xa4], edx
shld edx, eax, 0x15
shl eax, 0x15
sub ebx, eax
sbb esi, edx
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 0x118]
mov dword [esp + 0x84], esi
mov esi, dword [esp + 0x11c]
mov dword [esp + 0xd4], ebp
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 + 0x60], ebx
mov ebx, dword [esp + 0x108]
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x10c]
mov eax, ebx
add eax, 0x100000
mov edx, esi
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add dword [esp + 0xb8], eax
adc dword [esp + 0xbc], edx
shld edx, eax, 0x15
shl eax, 0x15
sub ebx, eax
sbb esi, edx
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0xe0]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0xe4]
mov eax, ebx
add eax, 0x100000
mov edx, esi
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add dword [esp + 0x98], eax
adc dword [esp + 0x9c], edx
shld edx, eax, 0x15
shl eax, 0x15
sub ebx, eax
sbb esi, edx
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0xb4]
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 + 0x40], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x5c]
mov eax, ebx
add eax, 0x100000
mov edx, esi
adc edx, 0
mov edi, esi
shrd eax, edx, 0x15
mov esi, ebx
mov ebx, dword [esp + 0x50]
sar edx, 0x15
add dword [esp + 0x28], eax
adc dword [esp + 0x2c], edx
shld edx, eax, 0x15
shl eax, 0x15
sub esi, eax
mov eax, ebx
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x54]
sbb edi, edx
add eax, 0x100000
mov dword [esp + 0x1c], edi
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 + 0x48], ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x6c]
mov eax, ebx
add eax, 0x100000
mov edx, esi
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add dword [esp + 0xa8], eax
adc dword [esp + 0xac], edx
shld edx, eax, 0x15
shl eax, 0x15
sub ebx, eax
sbb esi, edx
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x7c]
mov eax, ebx
add eax, 0x100000
mov edx, esi
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add dword [esp + 0xc8], eax
adc dword [esp + 0xcc], edx
shld edx, eax, 0x15
shl eax, 0x15
sub ebx, eax
sbb esi, edx
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x8c]
mov eax, ebx
add eax, 0x100000
mov edx, esi
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add dword [esp + 0xd0], eax
adc dword [esp + 0xd4], edx
shld edx, eax, 0x15
shl eax, 0x15
sub ebx, eax
sbb esi, edx
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0xc4]
mov eax, ebx
add eax, 0x100000
mov edx, esi
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add dword [esp + 0xd8], eax
adc dword [esp + 0xdc], edx
mov edi, dword [esp + 0xf0]
shld edx, eax, 0x15
mov ebp, dword [esp + 0xf4]
shl eax, 0x15
sub ebx, eax
mov eax, 0xa2c13
sbb esi, edx
mul edi
imul ecx, ebp, 0xa2c13
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], esi
add edx, ecx
add dword [esp + 0x18], eax
mov eax, 0x72d18
adc dword [esp + 0x1c], edx
imul ecx, ebp, 0x72d18
mul edi
add edx, ecx
add dword [esp + 0x28], eax
mov eax, 0x9fb67
adc dword [esp + 0x2c], edx
imul ecx, ebp, 0x9fb67
mul edi
add edx, ecx
mov ecx, edi
add dword [esp + 0x48], eax
mov eax, 0xfff0c653
adc dword [esp + 0x4c], edx
neg ecx
imul ebx, ebp, 0xfff0c653
mul edi
add ebx, ecx
add edx, ebx
add dword [esp + 0x90], eax
mov eax, 0x215d1
adc dword [esp + 0x94], edx
imul ebx, ebp, 0x215d1
mul edi
add edx, ebx
mov ebx, 0xfff59083
add dword [esp + 0x68], eax
adc dword [esp + 0x6c], edx
imul eax, ebp, 0xfff59083
add ecx, eax
mov eax, edi
mul ebx
add edx, ecx
add dword [esp + 0xa8], eax
mov eax, 0xa2c13
adc dword [esp + 0xac], edx
mov esi, dword [esp + 0xd8]
mov edi, dword [esp + 0xdc]
mul esi
imul ecx, edi, 0xa2c13
add edx, ecx
add dword [esp + 0x30], eax
mov eax, 0x72d18
adc dword [esp + 0x34], edx
imul ecx, edi, 0x72d18
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 + 0x48], eax
mov eax, 0x215d1
adc dword [esp + 0x4c], edx
imul ebx, edi, 0x215d1
mul esi
add edx, ebx
mov ebx, 0xfff59083
add dword [esp + 0x90], eax
adc dword [esp + 0x94], edx
imul eax, edi, 0xfff59083
mov edi, dword [esp + 0x5c]
add ecx, eax
mov eax, esi
mov esi, dword [esp + 0x58]
mul ebx
add edx, ecx
add dword [esp + 0x68], eax
mov eax, 0xa2c13
adc dword [esp + 0x6c], edx
imul ecx, edi, 0xa2c13
mul esi
add edx, ecx
add dword [esp + 0x40], eax
mov eax, 0x72d18
adc dword [esp + 0x44], edx
imul ecx, edi, 0x72d18
mul esi
add edx, ecx
add dword [esp + 0x30], eax
mov eax, 0x9fb67
adc dword [esp + 0x34], edx
imul ecx, edi, 0x9fb67
mul esi
add edx, ecx
mov ecx, esi
add dword [esp + 0x18], eax
mov eax, 0xfff0c653
adc dword [esp + 0x1c], edx
neg ecx
imul ebx, edi, 0xfff0c653
mul esi
add ebx, ecx
add edx, ebx
add dword [esp + 0x28], eax
mov eax, 0x215d1
adc dword [esp + 0x2c], edx
imul ebx, edi, 0x215d1
mul esi
add edx, ebx
mov ebx, 0xfff59083
add dword [esp + 0x48], eax
adc dword [esp + 0x4c], edx
imul eax, edi, 0xfff59083
mov edi, dword [esp + 0xd4]
add ecx, eax
mov eax, esi
mov esi, dword [esp + 0xd0]
mul ebx
add edx, ecx
add dword [esp + 0x90], eax
mov eax, 0xa2c13
adc dword [esp + 0x94], edx
imul ecx, edi, 0xa2c13
mul esi
add edx, ecx
add dword [esp + 0x98], eax
mov eax, 0x72d18
adc dword [esp + 0x9c], edx
imul ecx, edi, 0x72d18
mul esi
add edx, ecx
add dword [esp + 0x40], eax
mov eax, 0x9fb67
adc dword [esp + 0x44], edx
imul ecx, edi, 0x9fb67
mul esi
add edx, ecx
mov ecx, esi
add dword [esp + 0x30], eax
mov eax, 0xfff0c653
adc dword [esp + 0x34], edx
neg ecx
imul ebx, edi, 0xfff0c653
mul esi
add ebx, ecx
add edx, ebx
add dword [esp + 0x18], eax
mov eax, 0x215d1
adc dword [esp + 0x1c], edx
imul ebx, edi, 0x215d1
mul esi
add edx, ebx
mov ebx, 0xfff59083
add dword [esp + 0x28], eax
adc dword [esp + 0x2c], edx
imul eax, edi, 0xfff59083
mov edi, dword [esp + 0x54]
add ecx, eax
mov eax, esi
mov esi, dword [esp + 0x50]
mul ebx
add edx, ecx
add dword [esp + 0x48], eax
mov eax, 0xa2c13
adc dword [esp + 0x4c], edx
imul ecx, edi, 0xa2c13
mul esi
add edx, ecx
add dword [esp + 0x70], eax
mov eax, 0x72d18
adc dword [esp + 0x74], edx
imul ecx, edi, 0x72d18
mul esi
add edx, ecx
add dword [esp + 0x98], eax
mov eax, 0x9fb67
adc dword [esp + 0x9c], edx
imul ecx, edi, 0x9fb67
mul esi
add edx, ecx
mov ecx, esi
add dword [esp + 0x40], eax
mov eax, 0xfff0c653
adc dword [esp + 0x44], 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
mov ebx, 0xfff59083
add dword [esp + 0x18], eax
adc dword [esp + 0x1c], edx
imul eax, edi, 0xfff59083
mov edi, dword [esp + 0xcc]
add ecx, eax
mov eax, esi
mov esi, dword [esp + 0xc8]
mul ebx
add edx, ecx
add dword [esp + 0x28], eax
mov eax, 0xa2c13
adc dword [esp + 0x2c], edx
imul ecx, edi, 0xa2c13
mul esi
add edx, ecx
add dword [esp + 0xb8], eax
mov eax, 0x72d18
adc dword [esp + 0xbc], edx
imul ecx, edi, 0x72d18
mul esi
add edx, ecx
add dword [esp + 0x70], eax
mov eax, 0x9fb67
adc dword [esp + 0x74], edx
imul ecx, edi, 0x9fb67
mul esi
add edx, ecx
mov ecx, esi
add dword [esp + 0x98], eax
mov eax, 0xfff0c653
adc dword [esp + 0x9c], edx
neg ecx
imul ebx, edi, 0xfff0c653
mul esi
add ebx, ecx
add edx, ebx
add dword [esp + 0x40], eax
mov eax, 0x215d1
adc dword [esp + 0x44], edx
imul ebx, edi, 0x215d1
mul esi
add edx, ebx
mov ebx, 0xfff59083
add dword [esp + 0x30], eax
adc dword [esp + 0x34], edx
imul eax, edi, 0xfff59083
add ecx, eax
mov eax, esi
mov esi, dword [esp + 0xbc]
mul ebx
mov ebx, dword [esp + 0xb8]
add edx, ecx
add dword [esp + 0x18], eax
mov eax, ebx
adc dword [esp + 0x1c], edx
add eax, 0x100000
mov edx, esi
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add dword [esp + 0x70], eax
adc dword [esp + 0x74], edx
shld edx, eax, 0x15
shl eax, 0x15
sub ebx, eax
sbb esi, edx
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x98]
mov dword [esp + 0x54], 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 + 0x40], eax
adc dword [esp + 0x44], edx
shld edx, eax, 0x15
shl eax, 0x15
sub ebx, eax
sbb esi, edx
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x34]
mov eax, ebx
add eax, 0x100000
mov edx, esi
adc edx, 0
shrd eax, edx, 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 + 0x88], ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x8c], 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 + 0x48], eax
adc dword [esp + 0x4c], edx
shld edx, eax, 0x15
shl eax, 0x15
sub ebx, eax
sbb esi, edx
mov dword [esp + 0x98], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x9c], esi
mov esi, dword [esp + 0x94]
mov eax, ebx
add eax, 0x100000
mov edx, esi
adc edx, 0
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 ebx, eax
sbb esi, edx
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x94], esi
mov esi, dword [esp + 0xac]
mov eax, ebx
add eax, 0x100000
mov edx, esi
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add dword [esp + 0x78], eax
adc dword [esp + 0x7c], edx
shld edx, eax, 0x15
mov edi, dword [esp + 0x74]
shl eax, 0x15
mov ecx, dword [esp + 0x40]
sub ebx, eax
sbb esi, edx
mov dword [esp + 0xac], esi
mov esi, dword [esp + 0x70]
mov edx, edi
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0x44]
mov eax, esi
add eax, 0x100000
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 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 + 0x88], eax
adc dword [esp + 0x8c], edx
shld edx, eax, 0x15
shl eax, 0x15
sub ecx, eax
sbb ebx, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], 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
shld edx, eax, 0x15
shl eax, 0x15
sub ecx, eax
sbb ebx, edx
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x4c]
mov eax, ecx
add eax, 0x100000
mov edx, ebx
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add dword [esp + 0x90], eax
adc dword [esp + 0x94], edx
shld edx, eax, 0x15
mov ebp, dword [esp + 0x7c]
shl eax, 0x15
mov edi, dword [esp + 0x78]
sub ecx, eax
sbb ebx, edx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x6c]
mov eax, ecx
add eax, 0x100000
mov edx, ebx
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add dword [esp + 0xa8], eax
adc dword [esp + 0xac], edx
shld edx, eax, 0x15
shl eax, 0x15
sub ecx, eax
mov eax, 0xa2c13
sbb ebx, edx
mov dword [esp + 0x18], ecx
mul edi
imul ecx, ebp, 0xa2c13
mov dword [esp + 0x1c], ebx
add edx, ecx
add dword [esp + 0x20], eax
mov eax, 0x72d18
adc dword [esp + 0x24], edx
imul ecx, ebp, 0x72d18
mul edi
add edx, ecx
add dword [esp + 0x50], eax
mov eax, 0x9fb67
adc dword [esp + 0x54], edx
imul ecx, ebp, 0x9fb67
mul edi
add edx, ecx
add dword [esp + 0x28], eax
mov eax, 0xfff0c653
adc dword [esp + 0x2c], edx
neg edi
imul ebx, ebp, 0xfff0c653
mov ecx, edi
mov ebp, dword [esp + 0x7c]
add ebx, edi
mov edi, dword [esp + 0x78]
mul edi
add edx, ebx
add dword [esp + 0x58], eax
mov eax, 0x215d1
adc dword [esp + 0x5c], edx
imul ebx, ebp, 0x215d1
mul edi
add edx, ebx
mov ebx, 0xfff59083
add dword [esp + 0x30], eax
adc dword [esp + 0x34], edx
imul eax, ebp, 0xfff59083
mov ebp, dword [esp + 0xac]
add ecx, eax
mov eax, edi
mov edi, dword [esp + 0xa8]
mul ebx
mov esi, edi
add edx, ecx
add dword [esp + 0x88], eax
mov eax, 0xa2c13
adc dword [esp + 0x8c], edx
imul ecx, ebp, 0xa2c13
mul edi
add edx, ecx
add dword [esp + 0x38], eax
mov eax, 0x72d18
adc dword [esp + 0x3c], edx
imul ecx, ebp, 0x72d18
mul edi
add edx, ecx
add dword [esp + 0x20], eax
mov eax, 0x9fb67
adc dword [esp + 0x24], edx
imul ecx, ebp, 0x9fb67
mul edi
add edx, ecx
add dword [esp + 0x50], eax
mov eax, 0xfff0c653
adc dword [esp + 0x54], edx
neg esi
imul ebx, ebp, 0xfff0c653
mov ecx, esi
mul edi
add ebx, esi
add edx, ebx
add dword [esp + 0x28], eax
mov eax, 0x215d1
adc dword [esp + 0x2c], edx
imul ebx, ebp, 0x215d1
mul edi
add edx, ebx
mov ebx, 0xfff59083
add dword [esp + 0x58], eax
adc dword [esp + 0x5c], edx
imul eax, ebp, 0xfff59083
mov esi, dword [esp + 0x18]
add ecx, eax
mov eax, edi
mov edi, dword [esp + 0x1c]
mul ebx
add edx, ecx
add dword [esp + 0x30], eax
mov eax, 0xa2c13
adc dword [esp + 0x34], edx
imul ecx, edi, 0xa2c13
mul esi
add edx, ecx
add dword [esp + 0x60], eax
mov eax, 0x72d18
adc dword [esp + 0x64], edx
imul ecx, edi, 0x72d18
mul esi
add edx, ecx
add dword [esp + 0x38], eax
mov eax, 0x9fb67
adc dword [esp + 0x3c], edx
imul ecx, edi, 0x9fb67
mul esi
add edx, ecx
add dword [esp + 0x20], eax
mov eax, 0xfff0c653
adc dword [esp + 0x24], edx
imul ebx, edi, 0xfff0c653
mov edi, esi
mov esi, dword [esp + 0x18]
neg edi
mov ecx, edi
mul esi
add ebx, edi
mov edi, dword [esp + 0x1c]
add edx, ebx
add dword [esp + 0x50], eax
mov eax, 0x215d1
adc dword [esp + 0x54], edx
imul ebx, edi, 0x215d1
mul esi
add edx, ebx
mov ebx, 0xfff59083
add dword [esp + 0x28], eax
adc dword [esp + 0x2c], edx
imul eax, edi, 0xfff59083
mov ebp, dword [esp + 0x94]
mov edi, dword [esp + 0x90]
add ecx, eax
mov eax, esi
mul ebx
mov esi, edi
add edx, ecx
add dword [esp + 0x58], eax
mov eax, 0xa2c13
adc dword [esp + 0x5c], edx
imul ecx, ebp, 0xa2c13
mul edi
add edx, ecx
add dword [esp + 0xa0], eax
mov eax, 0x72d18
adc dword [esp + 0xa4], edx
imul ecx, ebp, 0x72d18
mul edi
add edx, ecx
add dword [esp + 0x60], eax
mov eax, 0x9fb67
adc dword [esp + 0x64], edx
imul ecx, ebp, 0x9fb67
mul edi
add edx, ecx
add dword [esp + 0x38], eax
mov eax, 0xfff0c653
adc dword [esp + 0x3c], edx
neg esi
imul ebx, ebp, 0xfff0c653
mov ecx, esi
mul edi
add ebx, esi
add edx, ebx
add dword [esp + 0x20], eax
mov eax, 0x215d1
adc dword [esp + 0x24], edx
imul ebx, ebp, 0x215d1
mul edi
add edx, ebx
mov ebx, 0xfff59083
add dword [esp + 0x50], eax
adc dword [esp + 0x54], edx
imul eax, ebp, 0xfff59083
mov esi, dword [esp + 0x40]
add ecx, eax
mov eax, edi
mov edi, dword [esp + 0x44]
mul ebx
add edx, ecx
add dword [esp + 0x28], eax
mov eax, 0xa2c13
adc dword [esp + 0x2c], edx
imul ecx, edi, 0xa2c13
mul esi
add edx, ecx
add dword [esp + 0x80], eax
mov eax, 0x72d18
adc dword [esp + 0x84], edx
imul ecx, edi, 0x72d18
mul esi
add edx, ecx
add dword [esp + 0xa0], eax
mov eax, 0x9fb67
adc dword [esp + 0xa4], edx
imul ecx, edi, 0x9fb67
mul esi
add edx, ecx
mov ecx, esi
add dword [esp + 0x60], eax
mov eax, 0xfff0c653
adc dword [esp + 0x64], edx
neg ecx
imul ebx, edi, 0xfff0c653
mul esi
add ebx, ecx
add edx, ebx
add dword [esp + 0x38], eax
mov eax, 0x215d1
adc dword [esp + 0x3c], edx
imul ebx, edi, 0x215d1
mul esi
add edx, ebx
mov ebx, 0xfff59083
add dword [esp + 0x20], eax
adc dword [esp + 0x24], edx
imul eax, edi, 0xfff59083
add ecx, eax
mov eax, esi
mul ebx
add edx, ecx
add dword [esp + 0x50], eax
mov eax, 0xa2c13
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x9c]
adc dword [esp + 0x54], edx
mul esi
imul ecx, edi, 0xa2c13
add edx, ecx
add dword [esp + 0xe8], eax
mov eax, 0x72d18
adc dword [esp + 0xec], edx
imul ecx, edi, 0x72d18
mul esi
add edx, ecx
add dword [esp + 0x80], eax
mov eax, 0x9fb67
adc dword [esp + 0x84], edx
imul ecx, edi, 0x9fb67
mul esi
add edx, ecx
mov ecx, esi
add dword [esp + 0xa0], eax
mov eax, 0xfff0c653
adc dword [esp + 0xa4], edx
neg ecx
imul ebx, edi, 0xfff0c653
mul esi
add ebx, ecx
add edx, ebx
add dword [esp + 0x60], eax
mov eax, 0x215d1
adc dword [esp + 0x64], edx
imul ebx, edi, 0x215d1
mul esi
add edx, ebx
mov ebx, 0xfff59083
add dword [esp + 0x38], eax
adc dword [esp + 0x3c], edx
imul eax, edi, 0xfff59083
add ecx, eax
mov eax, esi
mul ebx
add edx, ecx
add dword [esp + 0x20], eax
adc dword [esp + 0x24], edx
mov ecx, dword [esp + 0xe8]
mov ebx, dword [esp + 0xec]
mov edi, dword [esp + 0x50]
mov ebp, dword [esp + 0x54]
mov eax, ecx
add eax, 0x100000
mov edx, ebx
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add dword [esp + 0x80], eax
adc dword [esp + 0x84], edx
shld edx, eax, 0x15
shl eax, 0x15
sub ecx, eax
sbb ebx, edx
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0xa4]
mov eax, ecx
add eax, 0x100000
mov edx, ebx
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add dword [esp + 0x60], eax
adc dword [esp + 0x64], edx
shld edx, eax, 0x15
shl eax, 0x15
sub ecx, eax
sbb ebx, edx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x3c]
mov eax, ecx
add eax, 0x100000
mov edx, ebx
adc edx, 0
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 ecx, eax
mov eax, edi
sbb ebx, edx
add eax, 0x100000
mov edx, ebp
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 edi, eax
mov dword [esp + 0x50], edi
sbb ebp, edx
mov edi, dword [esp + 0x58]
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x5c]
mov eax, edi
add eax, 0x100000
mov edx, ebp
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 edi, eax
sbb ebp, edx
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x88]
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x8c]
mov eax, edi
add eax, 0x100000
mov edx, ebp
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add dword [esp + 0x70], eax
adc dword [esp + 0x74], edx
shld edx, eax, 0x15
shl eax, 0x15
sub edi, eax
sbb ebp, edx
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x80]
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x84]
mov eax, edi
add eax, 0x100000
mov edx, ebp
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 edi, eax
sbb ebp, edx
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x60]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x64]
mov eax, edi
add eax, 0x100000
mov edx, ebp
adc edx, 0
shrd eax, edx, 0x15
sar edx, 0x15
add ecx, eax
adc ebx, edx
shld edx, eax, 0x15
shl eax, 0x15
sub edi, eax
sbb ebp, edx
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x24]
mov eax, edi
add eax, 0x100000
mov edx, ebp
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 edi, eax
sbb ebp, edx
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x2c]
mov eax, edi
mov esi, edi
add eax, 0x100000
mov edx, ebp
adc edx, 0
mov edi, ebp
mov ebp, dword [esp + 0x34]
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 edx, ebp
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x60], esi
mov eax, edi
add eax, 0x100000
adc edx, 0
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 edi, eax
mov eax, dword [esp + 0x70]
sbb ebp, edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], ebp
add eax, 0x100000
adc edx, 0
mov esi, eax
mov edi, edx
sar edi, 0x15
shrd esi, edx, 0x15
mov edx, edi
mov dword [esp + 0x18], esi
shld edx, esi, 0x15
mov eax, esi
mov esi, dword [esp + 0x70]
shl eax, 0x15
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x74]
mov ebp, dword [esp + 0x1c]
sub esi, eax
mov eax, 0xa2c13
sbb edi, edx
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x70], esi
imul esi, ebp, 0xa2c13
mul edi
add edx, esi
add dword [esp + 0x78], eax
mov eax, 0x72d18
adc dword [esp + 0x7c], edx
imul esi, ebp, 0x72d18
mul edi
add edx, esi
add dword [esp + 0x38], eax
mov eax, 0x9fb67
adc dword [esp + 0x3c], edx
imul esi, ebp, 0x9fb67
mul edi
add edx, esi
add dword [esp + 0x40], eax
mov eax, edi
adc dword [esp + 0x44], edx
mov esi, eax
imul edi, ebp, 0xfff0c653
mov eax, 0xfff0c653
mov ebp, dword [esp + 0x1c]
mul dword [esp + 0x18]
neg esi
add edi, esi
add edx, edi
add dword [esp + 0x48], eax
mov eax, 0x215d1
adc dword [esp + 0x4c], edx
imul edi, dword [esp + 0x1c], 0x215d1
mul dword [esp + 0x18]
add edx, edi
add ecx, eax
mov edi, dword [esp + 0x18]
adc ebx, edx
imul eax, ebp, 0xfff59083
mov ebp, dword [esp + 0x7c]
add esi, eax
mov eax, edi
mov edi, 0xfff59083
mul edi
mov edi, dword [esp + 0x78]
add edx, esi
add dword [esp + 0x20], eax
mov eax, edi
adc dword [esp + 0x24], edx
mov edx, ebp
shrd eax, ebp, 0x15
sar edx, 0x15
add dword [esp + 0x38], eax
adc dword [esp + 0x3c], edx
shld edx, eax, 0x15
shl eax, 0x15
sub edi, eax
sbb ebp, edx
mov dword [esp + 0x78], edi
mov edi, dword [esp + 0x38]
mov dword [esp + 0x7c], ebp
mov ebp, dword [esp + 0x3c]
mov eax, edi
mov edx, ebp
shrd eax, ebp, 0x15
sar edx, 0x15
add dword [esp + 0x40], eax
adc dword [esp + 0x44], edx
shld edx, eax, 0x15
shl eax, 0x15
sub edi, eax
sbb ebp, edx
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x44]
mov eax, edi
mov edx, ebp
shrd eax, ebp, 0x15
sar edx, 0x15
add dword [esp + 0x48], eax
adc dword [esp + 0x4c], edx
shld edx, eax, 0x15
shl eax, 0x15
sub edi, eax
sbb ebp, edx
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x4c]
mov eax, edi
shrd eax, ebp, 0x15
mov edx, ebp
sar edx, 0x15
add ecx, eax
adc ebx, edx
shld edx, eax, 0x15
shl eax, 0x15
sub edi, eax
mov eax, ecx
sbb ebp, edx
mov edx, ebx
shrd eax, ebx, 0x15
sar edx, 0x15
add dword [esp + 0x20], eax
adc dword [esp + 0x24], edx
shld edx, eax, 0x15
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x20]
shl eax, 0x15
mov dword [esp + 0x34], ebp
mov ebp, dword [esp + 0x24]
sub ecx, eax
sbb ebx, edx
mov dword [esp + 0x38], ecx
mov eax, edi
mov edx, ebp
shrd eax, ebp, 0x15
mov dword [esp + 0x3c], ebx
sar edx, 0x15
add dword [esp + 0x50], eax
adc dword [esp + 0x54], edx
shld edx, eax, 0x15
shl eax, 0x15
sub edi, eax
sbb ebp, edx
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x54]
mov eax, edi
mov edx, ebp
shrd eax, ebp, 0x15
sar edx, 0x15
add dword [esp + 0x60], eax
adc dword [esp + 0x64], edx
shld edx, eax, 0x15
shl eax, 0x15
sub edi, eax
sbb ebp, edx
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0x60]
mov dword [esp + 0x8c], ebp
mov ebp, dword [esp + 0x64]
mov eax, edi
mov edx, ebp
shrd eax, ebp, 0x15
sar edx, 0x15
add dword [esp + 0x58], eax
adc dword [esp + 0x5c], edx
shld edx, eax, 0x15
shl eax, 0x15
sub edi, eax
sbb ebp, edx
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x58]
mov dword [esp + 0x64], ebp
mov ebp, dword [esp + 0x5c]
mov eax, edi
mov edx, ebp
shrd eax, ebp, 0x15
sar edx, 0x15
add dword [esp + 0x80], eax
adc dword [esp + 0x84], edx
shld edx, eax, 0x15
shl eax, 0x15
sub edi, eax
sbb ebp, edx
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x80]
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x84]
mov eax, edi
mov edx, ebp
shrd eax, ebp, 0x15
sar edx, 0x15
add dword [esp + 0x68], eax
adc dword [esp + 0x6c], edx
shld edx, eax, 0x15
mov esi, dword [esp + 0x68]
shl eax, 0x15
sub edi, eax
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0x6c]
sbb ebp, edx
mov eax, esi
mov dword [esp + 0x84], ebp
mov edx, edi
shrd eax, edi, 0x15
sar edx, 0x15
add dword [esp + 0x70], eax
adc dword [esp + 0x74], edx
shld edx, eax, 0x15
shl eax, 0x15
sub esi, eax
sbb edi, edx
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x74]
mov ecx, esi
shrd ecx, edi, 0x15
mov ebx, edi
sar ebx, 0x15
mov eax, ecx
mov edx, ebx
shl eax, 0x15
shld edx, ecx, 0x15
sub esi, eax
mov eax, 0xa2c13
sbb edi, edx
mov dword [esp + 0x70], esi
mul ecx
imul esi, ebx, 0xa2c13
mov dword [esp + 0x74], edi
add edx, esi
add dword [esp + 0x78], eax
mov eax, 0x72d18
adc dword [esp + 0x7c], edx
imul esi, ebx, 0x72d18
mul ecx
add edx, esi
add dword [esp + 0x18], eax
mov eax, 0x9fb67
adc dword [esp + 0x1c], edx
imul esi, ebx, 0x9fb67
mul ecx
add edx, esi
mov esi, ecx
add dword [esp + 0x28], eax
mov eax, 0xfff0c653
adc dword [esp + 0x2c], edx
neg esi
imul edi, ebx, 0xfff0c653
mul ecx
add edi, esi
add edx, edi
add dword [esp + 0x30], eax
mov eax, 0x215d1
adc dword [esp + 0x34], edx
imul edi, ebx, 0x215d1
mov ebp, dword [esp + 0x7c]
mul ecx
add edx, edi
mov edi, dword [esp + 0x78]
add dword [esp + 0x38], eax
adc dword [esp + 0x3c], edx
imul eax, ebx, 0xfff59083
mov ebx, 0xfff59083
add esi, eax
mov eax, ecx
mul ebx
add edx, esi
add dword [esp + 0x40], eax
mov eax, edi
adc dword [esp + 0x44], edx
mov edx, ebp
shrd eax, ebp, 0x15
sar edx, 0x15
add dword [esp + 0x18], eax
adc dword [esp + 0x1c], edx
shld edx, eax, 0x15
mov esi, dword [esp + 0x18]
shl eax, 0x15
sub edi, eax
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x1c]
sbb ebp, edx
mov eax, esi
mov dword [esp + 0x24], ebp
mov edx, edi
shrd eax, edi, 0x15
sar edx, 0x15
add dword [esp + 0x28], eax
adc dword [esp + 0x2c], edx
shld edx, eax, 0x15
mov ebp, dword [esp + 0x2c]
shl eax, 0x15
sub esi, eax
sbb edi, edx
mov eax, esi
mov edx, edi
mov edi, dword [esp + 0x28]
mov ebx, ebp
sar ebx, 0x15
mov ecx, edi
shrd ecx, ebp, 0x15
add dword [esp + 0x30], ecx
adc dword [esp + 0x34], ebx
shld ebx, ecx, 0x15
shl ecx, 0x15
sub edi, ecx
sbb ebp, ebx
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x34]
mov ecx, edi
mov ebx, ebp
shrd ecx, ebp, 0x15
sar ebx, 0x15
add dword [esp + 0x38], ecx
adc dword [esp + 0x3c], ebx
shld ebx, ecx, 0x15
shl ecx, 0x15
sub edi, ecx
sbb ebp, ebx
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x38]
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x3c]
mov ebx, edi
mov esi, ebp
shrd ebx, ebp, 0x15
sar esi, 0x15
mov ecx, ebx
mov ebx, esi
add dword [esp + 0x40], ecx
adc dword [esp + 0x44], esi
mov esi, edi
shld ebx, ecx, 0x15
mov edi, ebp
mov ebp, dword [esp + 0x44]
shl ecx, 0x15
sub esi, ecx
sbb edi, ebx
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x50], esi
mov esi, ebp
sar esi, 0x15
mov ebx, edi
shrd ebx, ebp, 0x15
mov ecx, ebx
mov ebx, esi
add dword [esp + 0x88], ecx
adc dword [esp + 0x8c], esi
mov esi, edi
shld ebx, ecx, 0x15
mov edi, ebp
mov ebp, dword [esp + 0x8c]
shl ecx, 0x15
sub esi, ecx
sbb edi, ebx
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x88]
mov dword [esp + 0x30], esi
mov esi, ebp
sar esi, 0x15
mov ebx, edi
shrd ebx, ebp, 0x15
mov ecx, ebx
mov ebx, esi
add dword [esp + 0x60], ecx
adc dword [esp + 0x64], esi
shld ebx, ecx, 0x15
shl ecx, 0x15
sub edi, ecx
sbb ebp, ebx
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x60]
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x64]
mov ebx, edi
mov esi, ebp
shrd ebx, ebp, 0x15
sar esi, 0x15
mov ecx, ebx
mov ebx, esi
add dword [esp + 0x58], ecx
adc dword [esp + 0x5c], esi
mov esi, edi
shld ebx, ecx, 0x15
mov edi, ebp
mov ebp, dword [esp + 0x5c]
shl ecx, 0x15
sub esi, ecx
sbb edi, ebx
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x58]
mov dword [esp + 0x60], esi
mov esi, ebp
sar esi, 0x15
mov ebx, edi
shrd ebx, ebp, 0x15
mov ecx, ebx
mov ebx, esi
add dword [esp + 0x80], ecx
adc dword [esp + 0x84], esi
mov esi, edi
shld ebx, ecx, 0x15
mov edi, ebp
mov ebp, dword [esp + 0x84]
shl ecx, 0x15
sub esi, ecx
sbb edi, ebx
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x80]
mov dword [esp + 0x38], esi
mov esi, ebp
sar esi, 0x15
mov ebx, edi
shrd ebx, ebp, 0x15
mov ecx, ebx
mov ebx, esi
add dword [esp + 0x68], ecx
adc dword [esp + 0x6c], esi
mov esi, edi
shld ebx, ecx, 0x15
mov edi, ebp
mov ebp, dword [esp + 0x6c]
shl ecx, 0x15
sub esi, ecx
sbb edi, ebx
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x68]
mov ebx, ebp
sar ebx, 0x15
mov dword [esp + 0x18], esi
mov ecx, edi
shrd ecx, ebp, 0x15
add dword [esp + 0x70], ecx
adc dword [esp + 0x74], ebx
shld ebx, ecx, 0x15
mov esi, dword [esp + 0x24]
shl ecx, 0x15
sub edi, ecx
mov ecx, dword [esp + 0x420]
sbb ebp, ebx
movzx ebx, byte [esp + 0x20]
mov byte [ecx + 0x20], bl
mov ebx, dword [esp + 0x20]
shrd ebx, esi, 8
mov esi, dword [esp + 0x420]
mov byte [esi + 0x21], bl
mov ebx, eax
mov esi, edx
shld esi, eax, 5
shl ebx, 5
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x24]
shrd ebx, esi, 0x10
mov esi, dword [esp + 0x420]
mov ecx, ebx
mov ebx, dword [esp + 0x420]
or cl, byte [esp + 0x58]
mov byte [ebx + 0x22], cl
mov ecx, dword [esp + 0x28]
mov ebx, eax
shrd ebx, edx, 3
mov byte [esi + 0x23], bl
mov esi, dword [esp + 0x420]
mov ebx, eax
shrd eax, edx, 0x13
shl ecx, 2
or eax, ecx
mov ecx, dword [esp + 0x48]
shrd ebx, edx, 0xb
mov edx, dword [esp + 0x2c]
mov byte [esi + 0x25], al
mov eax, dword [esp + 0x28]
mov byte [esi + 0x24], bl
mov ebx, dword [esp + 0x4c]
shl ecx, 7
shrd eax, edx, 6
mov edx, dword [esp + 0x2c]
mov byte [esi + 0x26], al
mov eax, dword [esp + 0x28]
shrd eax, edx, 0xe
mov edx, ebx
or eax, ecx
mov ecx, dword [esp + 0x48]
mov byte [esi + 0x27], al
mov eax, ecx
shrd eax, edx, 1
mov edx, ebx
mov byte [esi + 0x28], al
mov eax, ecx
shrd eax, edx, 9
mov byte [esi + 0x29], al
mov eax, dword [esp + 0x50]
shrd ecx, ebx, 0x11
shl eax, 4
or eax, ecx
mov byte [esi + 0x2a], al
mov ebx, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, ebx
mov eax, ecx
shrd eax, edx, 4
mov edx, ebx
mov byte [esi + 0x2b], al
mov eax, ecx
shrd eax, edx, 0xc
mov edx, dword [esp + 0x34]
mov byte [esi + 0x2c], al
mov eax, dword [esp + 0x30]
shrd ecx, ebx, 0x14
mov ebx, dword [esp + 0x44]
add eax, eax
or eax, ecx
mov ecx, dword [esp + 0x40]
mov byte [esi + 0x2d], al
mov eax, dword [esp + 0x30]
shl ecx, 6
shrd eax, edx, 7
mov edx, dword [esp + 0x34]
mov byte [esi + 0x2e], al
mov eax, dword [esp + 0x30]
shrd eax, edx, 0xf
mov edx, ebx
or eax, ecx
mov ecx, dword [esp + 0x40]
mov byte [esi + 0x2f], al
mov eax, ecx
shrd eax, edx, 2
mov edx, ebx
mov byte [esi + 0x30], al
mov eax, ecx
shrd eax, edx, 0xa
mov byte [esi + 0x31], al
mov eax, dword [esp + 0x60]
shrd ecx, ebx, 0x12
mov ebx, dword [esp + 0x64]
shl eax, 3
or eax, ecx
mov ecx, dword [esp + 0x60]
mov edx, ebx
mov byte [esi + 0x32], al
mov eax, ecx
shrd eax, edx, 5
mov edx, dword [esp + 0x3c]
mov byte [esi + 0x33], al
mov eax, ecx
mov ecx, esi
shrd eax, ebx, 0xd
mov ebx, dword [esp + 0x38]
mov byte [esi + 0x34], al
mov esi, dword [esp + 0x3c]
mov eax, ebx
shrd eax, esi, 8
mov esi, ecx
mov byte [ecx + 0x35], bl
mov byte [ecx + 0x36], al
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
shl ecx, 5
shrd eax, edx, 0x10
mov edx, dword [esp + 0x1c]
or eax, ecx
mov byte [esi + 0x37], al
mov eax, dword [esp + 0x18]
shrd eax, edx, 3
mov byte [esi + 0x38], al
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
shrd eax, edx, 0xb
mov byte [esi + 0x39], al
mov eax, edi
shrd ecx, ebx, 0x13
shl eax, 2
or eax, ecx
mov ecx, edi
mov byte [esi + 0x3a], al
mov eax, edi
mov edi, dword [esp + 0x70]
shrd eax, ebp, 6
mov byte [esi + 0x3b], al
shrd ecx, ebp, 0xe
mov ebp, dword [esp + 0x74]
mov eax, edi
shl eax, 7
or eax, ecx
mov byte [esi + 0x3c], al
mov eax, edi
shrd eax, ebp, 1
mov byte [esi + 0x3d], al
mov eax, edi
shrd eax, ebp, 9
mov byte [esi + 0x3e], al
mov eax, edi
shrd eax, ebp, 0x11
mov byte [esi + 0x3f], al
add esp, 0x40c
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret