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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2d0
mov eax, dword [0x586420]
xor eax, esp
mov dword [esp + 0x2cc], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push edi
mov edi, dword [esi + 0x80]
mov ecx, 0x80
sub ecx, edi
mov dword [esp + 0x15c], eax
mov dword [esp + 0x10], edi
cmp ebx, ecx
jae 0x40b468
push ebx
push eax
lea edx, [esi + edi]
push edx
call fcn.0052acbc
add esp, 0xc
add edi, ebx
mov dword [esi + 0x80], edi
pop edi
pop ebx
mov ecx, dword [esp + 0x2cc]
xor ecx, esp
call fcn.0052abef
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x8c]
mov eax, dword [esi + 0x88]
mov edx, dword [esi + 0x90]
mov dword [esp + 0xb4], ecx
mov ecx, dword [esi + 0x98]
mov dword [esp + 0x98], ecx
mov ecx, dword [esi + 0xa4]
mov ebx, dword [esi + 0xe8]
mov edi, dword [esi + 0xec]
mov dword [esp + 0xb0], eax
mov eax, dword [esi + 0x94]
mov dword [esp + 0xf4], ecx
mov ecx, dword [esi + 0xb0]
mov dword [esp + 0xd0], edx
mov edx, dword [esi + 0x9c]
mov dword [esp + 0xd4], eax
mov eax, dword [esi + 0xa0]
mov dword [esp + 0xe0], ecx
mov ecx, dword [esi + 0xbc]
mov dword [esp + 0x9c], edx
mov edx, dword [esi + 0xa8]
mov dword [esp + 0xf0], eax
mov eax, dword [esi + 0xac]
mov dword [esp + 0xa4], ecx
mov ecx, dword [esi + 0xc8]
mov dword [esp + 0xc0], edx
mov edx, dword [esi + 0xb4]
mov dword [esp + 0xc4], eax
mov eax, dword [esi + 0xb8]
mov dword [esp + 0xb8], ecx
mov ecx, dword [esi + 0xd4]
mov dword [esp + 0xe4], edx
mov edx, dword [esi + 0xc0]
mov dword [esp + 0xa0], eax
mov eax, dword [esi + 0xc4]
mov dword [esp + 0xcc], ecx
mov ecx, dword [esi + 0xe0]
mov dword [esp + 0xa8], edx
mov edx, dword [esi + 0xcc]
mov dword [esp + 0xac], eax
mov eax, dword [esi + 0xd0]
mov dword [esp + 0xe8], ecx
mov ecx, dword [esi + 0xf4]
mov dword [esp + 0xbc], edx
mov edx, dword [esi + 0xd8]
mov dword [esp + 0xc8], eax
mov eax, dword [esi + 0xdc]
mov dword [esp + 0xfc], ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0xd8], edx
mov edx, dword [esi + 0xe4]
mov dword [esp + 0xdc], eax
mov eax, dword [esi + 0xf0]
mov dword [esp + 0xec], edx
mov dword [esp + 0xf8], eax
test ecx, ecx
je 0x40d161
jmp 0x40b5d6
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0x80
sub eax, edx
mov dword [esp + 0x14], eax
cmp eax, ecx
jbe 0x40b5ef
mov dword [esp + 0x14], ecx
mov eax, ecx
push eax
mov eax, dword [esp + 0x160]
push eax
lea ecx, [esi + edx]
push ecx
call fcn.0052acbc
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x168], eax
sub dword [ebp + 0xc], eax
add ecx, eax
add esp, 0xc
mov dword [esp + 0x10], ecx
cmp ecx, 0x80
jne 0x40d157
add ebx, 0x400
adc edi, 0
mov dword [esp + 0x208], ebx
mov dword [esp + 0x20c], edi
test edi, edi
ja 0x40b65d
jb 0x40b64d
cmp ebx, 0x400
jae 0x40b65d
add dword [esp + 0xf8], 1
adc dword [esp + 0xfc], 0
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xb8]
xor eax, 0x85a308d3
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xbc]
xor eax, 0x243f6a88
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xc8]
xor eax, 0x3707344
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xcc]
xor eax, 0x13198a2e
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xb4]
xor eax, 0x299f31d0
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xdc]
xor eax, 0xa4093822
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xe8]
xor eax, 0xec4e6c89
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xec]
xor eax, 0x82efa98
mov dword [esp + 0x54], eax
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0xf4]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0xc4]
mov eax, ebx
xor eax, 0x38d01377
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0xb0]
mov eax, edi
xor eax, 0x452821e6
mov dword [esp + 0x7c], eax
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0xe4]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xa4]
mov eax, ebx
xor eax, 0x34e90c6c
mov dword [esp + 0x58], eax
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0xac]
mov eax, edi
mov edi, dword [esp + 0xfc]
xor eax, 0xbe5466cf
mov dword [esp + 0x5c], eax
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0xf8]
mov eax, edx
xor eax, 0xc97c50dd
mov dword [esp + 0x70], eax
mov eax, edi
xor eax, 0xc0ac29b7
mov dword [esp + 0x74], eax
mov eax, edi
xor edx, 0xb5470917
xor eax, 0x3f84d5b5
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], eax
xor edi, edi
or edi, dword [esi]
xor ebx, ebx
or ebx, dword [esi + 4]
mov dword [esp + 0x150], edi
mov dword [esp + 0x14c], ebx
mov eax, ebx
mov edx, edi
shld edi, ebx, 0x10
shrd eax, edx, 0x10
shl ebx, 0x10
xor eax, ebx
mov ebx, dword [esp + 0x150]
shr edx, 0x10
xor edx, edi
mov edi, dword [esp + 0x14c]
shld ebx, edi, 0x10
shl edi, 0x10
and eax, 0xffff
xor eax, edi
and edx, 0xffff
xor edx, ebx
mov edi, eax
mov ebx, edx
shrd edi, ebx, 8
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], edx
shld edx, eax, 8
shr ebx, 8
xor ebx, edx
mov edx, dword [esp + 0x150]
shl eax, 8
xor edi, eax
mov eax, dword [esp + 0x14c]
shld edx, eax, 8
and ebx, 0xff00ff
xor ebx, edx
and edi, 0xff00ff
shl eax, 8
xor edi, eax
mov dword [esp + 0x254], ebx
mov dword [esp + 0x250], edi
xor ebx, ebx
or ebx, dword [esi + 0xc]
xor edi, edi
or edi, dword [esi + 8]
mov dword [esp + 0x11c], ebx
mov eax, ebx
mov dword [esp + 0x120], edi
mov edx, edi
shld edi, ebx, 0x10
shrd eax, edx, 0x10
shl ebx, 0x10
xor eax, ebx
mov ebx, dword [esp + 0x120]
shr edx, 0x10
xor edx, edi
mov edi, dword [esp + 0x11c]
shld ebx, edi, 0x10
shl edi, 0x10
and eax, 0xffff
xor eax, edi
and edx, 0xffff
xor edx, ebx
mov edi, eax
mov ebx, edx
shrd edi, ebx, 8
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], edx
shld edx, eax, 8
shl eax, 8
shr ebx, 8
xor edi, eax
mov eax, dword [esp + 0x11c]
xor ebx, edx
mov edx, dword [esp + 0x120]
shld edx, eax, 8
and edi, 0xff00ff
shl eax, 8
and ebx, 0xff00ff
xor edi, eax
xor ebx, edx
mov dword [esp + 0x25c], ebx
xor ebx, ebx
or ebx, dword [esi + 0x14]
mov dword [esp + 0x258], edi
xor edi, edi
or edi, dword [esi + 0x10]
mov dword [esp + 0x168], ebx
mov eax, ebx
mov dword [esp + 0x16c], edi
mov edx, edi
shld edi, ebx, 0x10
shrd eax, edx, 0x10
shl ebx, 0x10
xor eax, ebx
mov ebx, dword [esp + 0x16c]
shr edx, 0x10
xor edx, edi
mov edi, dword [esp + 0x168]
shld ebx, edi, 0x10
shl edi, 0x10
and eax, 0xffff
xor eax, edi
and edx, 0xffff
xor edx, ebx
mov edi, eax
mov ebx, edx
shrd edi, ebx, 8
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], edx
shld edx, eax, 8
shr ebx, 8
xor ebx, edx
mov edx, dword [esp + 0x16c]
shl eax, 8
xor edi, eax
mov eax, dword [esp + 0x168]
shld edx, eax, 8
and ebx, 0xff00ff
xor ebx, edx
and edi, 0xff00ff
shl eax, 8
xor edi, eax
mov dword [esp + 0x264], ebx
xor ebx, ebx
or ebx, dword [esi + 0x1c]
mov dword [esp + 0x260], edi
xor edi, edi
or edi, dword [esi + 0x18]
mov dword [esp + 0x12c], ebx
mov eax, ebx
mov dword [esp + 0x130], edi
mov edx, edi
shld edi, ebx, 0x10
shrd eax, edx, 0x10
shl ebx, 0x10
xor eax, ebx
mov ebx, dword [esp + 0x130]
shr edx, 0x10
xor edx, edi
mov edi, dword [esp + 0x12c]
shld ebx, edi, 0x10
shl edi, 0x10
and eax, 0xffff
xor eax, edi
and edx, 0xffff
xor edx, ebx
mov edi, eax
mov ebx, edx
shrd edi, ebx, 8
mov dword [esp + 0x12c], eax
mov dword [esp + 0x130], edx
shld edx, eax, 8
shr ebx, 8
shl eax, 8
xor edi, eax
mov eax, dword [esp + 0x12c]
xor ebx, edx
mov edx, dword [esp + 0x130]
and edi, 0xff00ff
and ebx, 0xff00ff
shld edx, eax, 8
xor ebx, edx
mov dword [esp + 0x26c], ebx
shl eax, 8
xor edi, eax
xor ebx, ebx
or ebx, dword [esi + 0x24]
mov dword [esp + 0x268], edi
xor edi, edi
or edi, dword [esi + 0x20]
mov dword [esp + 0x104], ebx
mov eax, ebx
mov dword [esp + 0x108], edi
mov edx, edi
shld edi, ebx, 0x10
shrd eax, edx, 0x10
shl ebx, 0x10
xor eax, ebx
mov ebx, dword [esp + 0x108]
shr edx, 0x10
xor edx, edi
mov edi, dword [esp + 0x104]
shld ebx, edi, 0x10
shl edi, 0x10
and eax, 0xffff
xor eax, edi
and edx, 0xffff
xor edx, ebx
mov edi, eax
mov ebx, edx
shrd edi, ebx, 8
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], edx
shld edx, eax, 8
shr ebx, 8
xor ebx, edx
mov edx, dword [esp + 0x108]
shl eax, 8
xor edi, eax
mov eax, dword [esp + 0x104]
shld edx, eax, 8
and ebx, 0xff00ff
xor ebx, edx
and edi, 0xff00ff
shl eax, 8
xor edi, eax
mov dword [esp + 0x274], ebx
mov dword [esp + 0x270], edi
xor ebx, ebx
or ebx, dword [esi + 0x2c]
xor edi, edi
or edi, dword [esi + 0x28]
mov dword [esp + 0x13c], ebx
mov eax, ebx
mov dword [esp + 0x140], edi
mov edx, edi
shld edi, ebx, 0x10
shrd eax, edx, 0x10
shl ebx, 0x10
xor eax, ebx
mov ebx, dword [esp + 0x140]
shr edx, 0x10
xor edx, edi
mov edi, dword [esp + 0x13c]
shld ebx, edi, 0x10
shl edi, 0x10
and eax, 0xffff
xor eax, edi
and edx, 0xffff
xor edx, ebx
mov edi, eax
mov dword [esp + 0x13c], eax
mov ebx, edx
shrd edi, ebx, 8
mov dword [esp + 0x140], edx
shld edx, eax, 8
shl eax, 8
shr ebx, 8
xor edi, eax
xor ebx, edx
and edi, 0xff00ff
and ebx, 0xff00ff
mov eax, dword [esp + 0x13c]
mov edx, dword [esp + 0x140]
shld edx, eax, 8
xor ebx, edx
shl eax, 8
xor edi, eax
mov dword [esp + 0x27c], ebx
xor ebx, ebx
or ebx, dword [esi + 0x34]
mov dword [esp + 0x278], edi
xor edi, edi
or edi, dword [esi + 0x30]
mov dword [esp + 0x178], ebx
mov eax, ebx
mov dword [esp + 0x17c], edi
mov edx, edi
shld edi, ebx, 0x10
shrd eax, edx, 0x10
shl ebx, 0x10
xor eax, ebx
mov ebx, dword [esp + 0x17c]
shr edx, 0x10
xor edx, edi
mov edi, dword [esp + 0x178]
shld ebx, edi, 0x10
shl edi, 0x10
and eax, 0xffff
xor eax, edi
and edx, 0xffff
xor edx, ebx
mov edi, eax
mov ebx, edx
shrd edi, ebx, 8
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], edx
shld edx, eax, 8
shr ebx, 8
xor ebx, edx
mov edx, dword [esp + 0x17c]
shl eax, 8
xor edi, eax
mov eax, dword [esp + 0x178]
shld edx, eax, 8
and ebx, 0xff00ff
xor ebx, edx
and edi, 0xff00ff
shl eax, 8
xor edi, eax
mov dword [esp + 0x284], ebx
mov dword [esp + 0x280], edi
xor ebx, ebx
or ebx, dword [esi + 0x3c]
xor edi, edi
or edi, dword [esi + 0x38]
mov dword [esp + 0x10c], ebx
mov eax, ebx
mov dword [esp + 0x110], edi
mov edx, edi
shld edi, ebx, 0x10
shrd eax, edx, 0x10
shl ebx, 0x10
xor eax, ebx
mov ebx, dword [esp + 0x110]
shr edx, 0x10
xor edx, edi
mov edi, dword [esp + 0x10c]
shld ebx, edi, 0x10
and eax, 0xffff
shl edi, 0x10
xor eax, edi
and edx, 0xffff
xor edx, ebx
mov edi, eax
mov dword [esp + 0x10c], eax
mov ebx, edx
mov dword [esp + 0x110], edx
shld edx, eax, 8
shrd edi, ebx, 8
shl eax, 8
shr ebx, 8
xor edi, eax
xor ebx, edx
mov eax, dword [esp + 0x10c]
mov edx, dword [esp + 0x110]
shld edx, eax, 8
and ebx, 0xff00ff
xor ebx, edx
and edi, 0xff00ff
mov dword [esp + 0x28c], ebx
shl eax, 8
xor edi, eax
xor ebx, ebx
or ebx, dword [esi + 0x44]
mov dword [esp + 0x288], edi
xor edi, edi
or edi, dword [esi + 0x40]
mov dword [esp + 0x114], ebx
mov eax, ebx
mov dword [esp + 0x118], edi
mov edx, edi
shld edi, ebx, 0x10
shrd eax, edx, 0x10
shl ebx, 0x10
xor eax, ebx
mov ebx, dword [esp + 0x118]
shr edx, 0x10
xor edx, edi
mov edi, dword [esp + 0x114]
shld ebx, edi, 0x10
shl edi, 0x10
and eax, 0xffff
xor eax, edi
and edx, 0xffff
xor edx, ebx
mov edi, eax
mov ebx, edx
shrd edi, ebx, 8
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], edx
shld edx, eax, 8
shr ebx, 8
xor ebx, edx
mov edx, dword [esp + 0x118]
shl eax, 8
xor edi, eax
mov eax, dword [esp + 0x114]
shld edx, eax, 8
and ebx, 0xff00ff
xor ebx, edx
and edi, 0xff00ff
shl eax, 8
xor edi, eax
mov dword [esp + 0x294], ebx
mov dword [esp + 0x290], edi
xor ebx, ebx
or ebx, dword [esi + 0x4c]
xor edi, edi
or edi, dword [esi + 0x48]
mov dword [esp + 0x124], ebx
mov eax, ebx
mov dword [esp + 0x128], edi
mov edx, edi
shld edi, ebx, 0x10
shrd eax, edx, 0x10
shl ebx, 0x10
xor eax, ebx
mov ebx, dword [esp + 0x128]
shr edx, 0x10
xor edx, edi
mov edi, dword [esp + 0x124]
shld ebx, edi, 0x10
shl edi, 0x10
and eax, 0xffff
and edx, 0xffff
xor eax, edi
xor edx, ebx
mov edi, eax
mov ebx, edx
shrd edi, ebx, 8
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], edx
shr ebx, 8
shld edx, eax, 8
xor ebx, edx
mov edx, dword [esp + 0x128]
shl eax, 8
xor edi, eax
mov eax, dword [esp + 0x124]
shld edx, eax, 8
and ebx, 0xff00ff
xor ebx, edx
and edi, 0xff00ff
shl eax, 8
xor edi, eax
mov dword [esp + 0x29c], ebx
xor ebx, ebx
or ebx, dword [esi + 0x54]
mov dword [esp + 0x298], edi
xor edi, edi
or edi, dword [esi + 0x50]
mov dword [esp + 0x134], ebx
mov eax, ebx
mov dword [esp + 0x138], edi
mov edx, edi
shld edi, ebx, 0x10
shrd eax, edx, 0x10
shl ebx, 0x10
xor eax, ebx
mov ebx, dword [esp + 0x138]
shr edx, 0x10
xor edx, edi
mov edi, dword [esp + 0x134]
shld ebx, edi, 0x10
shl edi, 0x10
and eax, 0xffff
xor eax, edi
and edx, 0xffff
xor edx, ebx
mov edi, eax
mov ebx, edx
shrd edi, ebx, 8
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], edx
shld edx, eax, 8
shr ebx, 8
xor ebx, edx
mov edx, dword [esp + 0x138]
shl eax, 8
xor edi, eax
mov eax, dword [esp + 0x134]
shld edx, eax, 8
and edi, 0xff00ff
and ebx, 0xff00ff
xor ebx, edx
shl eax, 8
xor edi, eax
mov dword [esp + 0x2a0], edi
mov dword [esp + 0x2a4], ebx
xor edi, edi
or edi, dword [esi + 0x58]
xor ebx, ebx
or ebx, dword [esi + 0x5c]
mov dword [esp + 0x148], edi
mov dword [esp + 0x144], ebx
mov eax, ebx
mov edx, edi
shld edi, ebx, 0x10
shrd eax, edx, 0x10
shl ebx, 0x10
shr edx, 0x10
xor eax, ebx
mov ebx, dword [esp + 0x148]
xor edx, edi
mov edi, dword [esp + 0x144]
shld ebx, edi, 0x10
shl edi, 0x10
and eax, 0xffff
xor eax, edi
and edx, 0xffff
xor edx, ebx
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], edx
mov edi, eax
mov ebx, edx
shrd edi, ebx, 8
shld edx, eax, 8
shr ebx, 8
xor ebx, edx
mov edx, dword [esp + 0x148]
shl eax, 8
xor edi, eax
mov eax, dword [esp + 0x144]
shld edx, eax, 8
and ebx, 0xff00ff
xor ebx, edx
and edi, 0xff00ff
shl eax, 8
xor edi, eax
mov dword [esp + 0x2ac], ebx
xor ebx, ebx
or ebx, dword [esi + 0x64]
mov dword [esp + 0x2a8], edi
xor edi, edi
or edi, dword [esi + 0x60]
mov dword [esp + 0x154], ebx
mov eax, ebx
mov dword [esp + 0x158], edi
mov edx, edi
shld edi, ebx, 0x10
shrd eax, edx, 0x10
shl ebx, 0x10
xor eax, ebx
mov ebx, dword [esp + 0x158]
shr edx, 0x10
xor edx, edi
mov edi, dword [esp + 0x154]
shld ebx, edi, 0x10
shl edi, 0x10
and eax, 0xffff
xor eax, edi
and edx, 0xffff
xor edx, ebx
mov edi, eax
mov ebx, edx
shrd edi, ebx, 8
mov dword [esp + 0x154], eax
mov dword [esp + 0x158], edx
shld edx, eax, 8
shr ebx, 8
xor ebx, edx
mov edx, dword [esp + 0x158]
shl eax, 8
xor edi, eax
mov eax, dword [esp + 0x154]
shld edx, eax, 8
and ebx, 0xff00ff
xor ebx, edx
and edi, 0xff00ff
shl eax, 8
xor edi, eax
mov dword [esp + 0x2b4], ebx
mov dword [esp + 0x2b0], edi
xor ebx, ebx
or ebx, dword [esi + 0x6c]
xor edi, edi
or edi, dword [esi + 0x68]
mov dword [esp + 0x160], ebx
mov eax, ebx
mov edx, edi
shrd eax, edx, 0x10
mov dword [esp + 0x164], edi
shld edi, ebx, 0x10
shl ebx, 0x10
shr edx, 0x10
xor eax, ebx
mov ebx, dword [esp + 0x164]
xor edx, edi
mov edi, dword [esp + 0x160]
shld ebx, edi, 0x10
and eax, 0xffff
shl edi, 0x10
and edx, 0xffff
xor eax, edi
mov dword [esp + 0x160], eax
xor edx, ebx
mov ebx, edx
mov dword [esp + 0x164], edx
mov edi, eax
shrd edi, ebx, 8
shld edx, eax, 8
shr ebx, 8
xor ebx, edx
mov edx, dword [esp + 0x164]
shl eax, 8
xor edi, eax
mov eax, dword [esp + 0x160]
shld edx, eax, 8
and ebx, 0xff00ff
xor ebx, edx
and edi, 0xff00ff
shl eax, 8
xor edi, eax
mov dword [esp + 0x2bc], ebx
mov ebx, dword [esi + 0x74]
xor edx, edx
or ebx, edx
mov dword [esp + 0x2b8], edi
xor edi, edi
or edi, dword [esi + 0x70]
mov dword [esp + 0x170], ebx
mov eax, ebx
mov dword [esp + 0x174], edi
mov edx, edi
shld edi, ebx, 0x10
shrd eax, edx, 0x10
shl ebx, 0x10
xor eax, ebx
mov ebx, dword [esp + 0x174]
shr edx, 0x10
xor edx, edi
mov edi, dword [esp + 0x170]
shld ebx, edi, 0x10
and eax, 0xffff
and edx, 0xffff
xor edx, ebx
shl edi, 0x10
xor eax, edi
mov ebx, edx
mov edi, eax
shrd edi, ebx, 8
mov dword [esp + 0x174], edx
mov dword [esp + 0x170], eax
shld edx, eax, 8
shr ebx, 8
xor ebx, edx
mov edx, dword [esp + 0x174]
shl eax, 8
xor edi, eax
mov eax, dword [esp + 0x170]
shld edx, eax, 8
and ebx, 0xff00ff
xor ebx, edx
shl eax, 8
and edi, 0xff00ff
xor edi, eax
mov dword [esp + 0x2c4], ebx
mov ebx, dword [esi + 0x7c]
xor edx, edx
or ebx, edx
mov dword [esp + 0x2c0], edi
xor edi, edi
or edi, dword [esi + 0x78]
mov eax, ebx
mov dword [esp + 0x180], ebx
mov dword [esp + 0x184], edi
mov edx, edi
shrd eax, edx, 0x10
shld edi, ebx, 0x10
shl ebx, 0x10
shr edx, 0x10
xor eax, ebx
mov ebx, dword [esp + 0x184]
xor edx, edi
and eax, 0xffff
and edx, 0xffff
mov edi, dword [esp + 0x180]
shld ebx, edi, 0x10
xor edx, ebx
shl edi, 0x10
xor eax, edi
mov edi, eax
mov dword [esp + 0x180], eax
mov ebx, edx
shrd edi, ebx, 8
mov dword [esp + 0x184], edx
shld edx, eax, 8
shr ebx, 8
shl eax, 8
xor edi, eax
mov eax, dword [esp + 0x180]
xor ebx, edx
mov edx, dword [esp + 0x184]
shld edx, eax, 8
and edi, 0xff00ff
and ebx, 0xff00ff
shl eax, 8
xor edi, eax
xor ebx, edx
mov dword [esp + 0x2c8], edi
mov dword [esp + 0x2cc], ebx
xor eax, eax
jmp 0x40c2a7
mov ecx, dword [esp + 0x90]
mov edi, dword [eax + 0x57aa5c]
mov edx, dword [eax + 0x57aa58]
add edi, edi
add edi, edi
mov ebx, dword [edi + edi + 0x57ae58]
add edi, edi
add edx, edx
add edx, edx
add edx, edx
xor ebx, dword [esp + edx + 0x250]
mov dword [esp + 0x10], edi
mov edi, dword [edi + 0x57ae5c]
xor edi, dword [esp + edx + 0x254]
add ebx, dword [esp + 0x30]
mov dword [esp + 0xc], edx
adc edi, dword [esp + 0x34]
mov edx, dword [esp + 0x78]
add ecx, ebx
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x94]
adc edi, dword [esp + 0x14]
xor edx, ecx
mov dword [esp + 0x200], edx
mov edx, dword [esp + 0x7c]
xor edx, edi
mov dword [esp + 0x94], edi
xor edi, edi
or edi, dword [esp + 0x200]
xor ebx, ebx
or edx, ebx
mov ebx, dword [esp + 0x38]
add ebx, edx
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x3c]
adc edx, edi
mov dword [esp + 0x7c], edi
mov edi, ebx
xor edi, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
xor edx, dword [esp + 0x34]
mov dword [esp + 0x1cc], edi
shl dword [esp + 0x1cc], 7
shrd edi, edx, 0x19
mov dword [esp + 0x38], ebx
shr edx, 0x19
mov dword [esp + 0x1c8], 0
mov ebx, dword [esp + 0x1c8]
or ebx, edi
mov edi, dword [esp + 0x1cc]
or edi, edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + edi + 0x250]
xor ebx, dword [edx + 0x57ae58]
mov edi, dword [esp + edi + 0x254]
xor edi, dword [edx + 0x57ae5c]
add ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x7c]
adc edi, dword [esp + 0x34]
add ecx, ebx
mov ebx, dword [esp + 0x94]
adc ebx, edi
mov edi, dword [esp + 0x78]
xor edx, ebx
xor edi, ecx
mov dword [esp + 0x94], ebx
mov ebx, edi
shl ebx, 0x10
mov dword [esp + 0x200], edi
mov dword [esp + 0x22c], ebx
mov ebx, dword [esp + 0x200]
shrd ebx, edx, 0x10
shr edx, 0x10
xor edi, edi
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x22c]
or edi, ebx
or edx, dword [esp + 0xc]
mov dword [esp + 0x78], edi
mov ebx, dword [esp + 0x38]
add ebx, edi
adc dword [esp + 0x3c], edx
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x3c]
xor edx, dword [esp + 0x34]
mov edi, ebx
xor edi, dword [esp + 0x30]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x19c], edi
shrd edi, edx, 0xb
shl dword [esp + 0x19c], 0x15
shr edx, 0xb
mov dword [esp + 0x198], 0
mov ebx, dword [esp + 0x198]
or ebx, edi
mov edi, dword [esp + 0x19c]
or edi, edx
mov edx, dword [eax + 0x57aa60]
mov dword [esp + 0x34], edi
mov edi, dword [eax + 0x57aa64]
add edi, edi
add edi, edi
add edi, edi
add edx, edx
add edx, edx
add edx, edx
mov dword [esp + 0x30], ebx
mov ebx, dword [edi + 0x57ae58]
xor ebx, dword [esp + edx + 0x250]
mov dword [esp + 0x14], edi
mov edi, dword [edi + 0x57ae5c]
xor edi, dword [esp + edx + 0x254]
add ebx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
adc edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x58]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x60]
add edi, ebx
mov ebx, dword [esp + 0x64]
adc ebx, dword [esp + 0xc]
xor edx, edi
mov dword [esp + 0x1e8], edx
mov edx, dword [esp + 0x5c]
xor edx, ebx
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], ebx
xor edi, edi
or edi, dword [esp + 0x1e8]
xor ebx, ebx
or edx, ebx
mov ebx, dword [esp + 0x48]
add ebx, edx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x4c]
adc edx, edi
mov edi, ebx
xor edi, dword [esp + 0x18]
mov dword [esp + 0x4c], edx
xor edx, dword [esp + 0x1c]
mov dword [esp + 0x1dc], edi
shl dword [esp + 0x1dc], 7
shrd edi, edx, 0x19
mov dword [esp + 0x48], ebx
mov dword [esp + 0x1d8], 0
mov ebx, dword [esp + 0x1d8]
or ebx, edi
mov edi, dword [esp + 0x1dc]
shr edx, 0x19
or edi, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + edi + 0x250]
xor ebx, dword [edx + 0x57ae58]
mov edi, dword [esp + edi + 0x254]
xor edi, dword [edx + 0x57ae5c]
add ebx, dword [esp + 0x18]
adc edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x60]
add edi, ebx
mov ebx, dword [esp + 0x64]
adc ebx, dword [esp + 0xc]
mov dword [esp + 0x60], edi
xor edi, dword [esp + 0x58]
xor edx, ebx
mov dword [esp + 0x64], ebx
mov ebx, edi
mov dword [esp + 0x1e8], edi
shl ebx, 0x10
mov dword [esp + 0x23c], ebx
mov ebx, dword [esp + 0x1e8]
shrd ebx, edx, 0x10
xor edi, edi
or edi, ebx
mov ebx, dword [esp + 0x48]
shr edx, 0x10
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x23c]
or edx, dword [esp + 0xc]
add ebx, edi
adc dword [esp + 0x4c], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x4c]
xor edx, dword [esp + 0x1c]
mov edi, ebx
xor edi, dword [esp + 0x18]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x1ac], edi
shl dword [esp + 0x1ac], 0x15
shrd edi, edx, 0xb
shr edx, 0xb
mov dword [esp + 0x1a8], 0
mov ebx, dword [esp + 0x1a8]
or ebx, edi
mov edi, dword [esp + 0x1ac]
or edi, edx
mov edx, dword [eax + 0x57aa68]
mov dword [esp + 0x1c], edi
mov edi, dword [eax + 0x57aa6c]
add edi, edi
add edx, edx
add edi, edi
add edi, edi
add edx, edx
add edx, edx
mov dword [esp + 0x18], ebx
mov ebx, dword [edi + 0x57ae58]
xor ebx, dword [esp + edx + 0x250]
mov dword [esp + 0x14], edi
mov edi, dword [edi + 0x57ae5c]
xor edi, dword [esp + edx + 0x254]
add ebx, dword [esp + 0x28]
mov dword [esp + 0x10], edx
adc edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x70]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x68]
add edi, ebx
mov ebx, dword [esp + 0x6c]
adc ebx, dword [esp + 0xc]
xor edx, edi
mov dword [esp + 0x1f0], edx
mov edx, dword [esp + 0x74]
xor edx, ebx
mov dword [esp + 0x6c], ebx
xor ebx, ebx
mov dword [esp + 0x68], edi
or edx, ebx
mov ebx, dword [esp + 0x40]
xor edi, edi
or edi, dword [esp + 0x1f0]
add ebx, edx
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], edx
mov dword [esp + 0x40], ebx
mov edx, dword [esp + 0x44]
adc edx, edi
mov edi, ebx
xor edi, dword [esp + 0x28]
mov dword [esp + 0x44], edx
xor edx, dword [esp + 0x2c]
mov dword [esp + 0x18c], edi
shrd edi, edx, 0x19
shl dword [esp + 0x18c], 7
shr edx, 0x19
mov dword [esp + 0x188], 0
mov ebx, dword [esp + 0x188]
or ebx, edi
mov edi, dword [esp + 0x18c]
or edi, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + edi + 0x250]
xor ebx, dword [edx + 0x57ae58]
mov edi, dword [esp + edi + 0x254]
xor edi, dword [edx + 0x57ae5c]
add ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x74]
adc edi, dword [esp + 0x2c]
mov dword [esp + 0x1b8], 0
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x68]
add edi, ebx
mov ebx, dword [esp + 0x6c]
adc ebx, dword [esp + 0xc]
mov dword [esp + 0x68], edi
xor edi, dword [esp + 0x70]
xor edx, ebx
mov dword [esp + 0x6c], ebx
mov ebx, edi
mov dword [esp + 0x1f0], edi
shl ebx, 0x10
mov dword [esp + 0x214], ebx
mov ebx, dword [esp + 0x1f0]
shrd ebx, edx, 0x10
xor edi, edi
or edi, ebx
mov ebx, dword [esp + 0x40]
shr edx, 0x10
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x214]
or edx, dword [esp + 0xc]
add ebx, edi
adc dword [esp + 0x44], edx
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x44]
xor edx, dword [esp + 0x2c]
mov edi, ebx
xor edi, dword [esp + 0x28]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x1b8]
mov dword [esp + 0x1bc], edi
shl dword [esp + 0x1bc], 0x15
shrd edi, edx, 0xb
or ebx, edi
mov edi, dword [esp + 0x1bc]
shr edx, 0xb
or edi, edx
mov edx, dword [eax + 0x57aa70]
mov dword [esp + 0x2c], edi
mov edi, dword [eax + 0x57aa74]
add edi, edi
add edx, edx
add edi, edi
add edi, edi
add edx, edx
mov dword [esp + 0x28], ebx
mov ebx, dword [edi + 0x57ae58]
add edx, edx
xor ebx, dword [esp + edx + 0x250]
mov dword [esp + 0x14], edi
mov edi, dword [edi + 0x57ae5c]
mov dword [esp + 0x10], edx
xor edi, dword [esp + edx + 0x254]
add ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x80]
adc edi, dword [esp + 0x24]
mov dword [esp + 0x190], 0
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x88]
add edi, ebx
mov ebx, dword [esp + 0x8c]
adc ebx, dword [esp + 0xc]
xor edx, edi
mov dword [esp + 0x1f8], edx
mov edx, dword [esp + 0x84]
xor edx, ebx
mov dword [esp + 0x88], edi
xor edi, edi
or edi, dword [esp + 0x1f8]
mov dword [esp + 0x8c], ebx
xor ebx, ebx
or edx, ebx
mov ebx, dword [esp + 0x50]
add ebx, edx
mov dword [esp + 0x84], edi
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x54]
adc edx, edi
mov edi, ebx
xor edi, dword [esp + 0x20]
mov dword [esp + 0x54], edx
xor edx, dword [esp + 0x24]
mov dword [esp + 0x194], edi
shl dword [esp + 0x194], 7
shrd edi, edx, 0x19
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x190]
or ebx, edi
mov edi, dword [esp + 0x194]
shr edx, 0x19
or edi, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + edi + 0x250]
xor ebx, dword [edx + 0x57ae58]
mov edi, dword [esp + edi + 0x254]
xor edi, dword [edx + 0x57ae5c]
add ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x80]
adc edi, dword [esp + 0x24]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x88]
add edi, ebx
mov ebx, dword [esp + 0x8c]
adc ebx, dword [esp + 0xc]
xor edx, edi
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0x84]
xor edi, ebx
mov dword [esp + 0x8c], ebx
mov ebx, edx
shl ebx, 0x10
mov dword [esp + 0x1f8], edx
mov dword [esp + 0x24c], ebx
mov ebx, dword [esp + 0x1f8]
shrd ebx, edi, 0x10
shr edi, 0x10
xor edx, edx
or edx, ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x24c]
or edi, dword [esp + 0xc]
add ebx, edx
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x54]
adc edx, edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], edx
mov edi, ebx
xor edi, dword [esp + 0x20]
xor edx, dword [esp + 0x24]
mov dword [esp + 0x1a4], edi
shrd edi, edx, 0xb
shl dword [esp + 0x1a4], 0x15
shr edx, 0xb
mov dword [esp + 0x1a0], 0
mov ebx, dword [esp + 0x1a0]
or ebx, edi
mov edi, dword [esp + 0x1a4]
or edi, edx
mov edx, dword [eax + 0x57aa78]
mov dword [esp + 0x24], edi
mov edi, dword [eax + 0x57aa7c]
add edi, edi
add edi, edi
add edi, edi
add edx, edx
add edx, edx
add edx, edx
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], ebx
mov ebx, dword [edi + 0x57ae58]
xor ebx, dword [esp + edx + 0x250]
mov edi, dword [edi + 0x57ae5c]
xor edi, dword [esp + edx + 0x254]
add ebx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
adc edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x94]
add ecx, ebx
adc edi, dword [esp + 0xc]
xor edx, ecx
mov dword [esp + 0x94], edi
xor edi, dword [esp + 0x84]
xor ebx, ebx
or edi, ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x218], edx
xor edx, edx
or edx, dword [esp + 0x218]
add ebx, edi
adc dword [esp + 0x44], edx
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x44]
xor edx, dword [esp + 0x1c]
mov edi, ebx
xor edi, dword [esp + 0x18]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x1b4], edi
shl dword [esp + 0x1b4], 7
shrd edi, edx, 0x19
shr edx, 0x19
mov dword [esp + 0x1b0], 0
mov ebx, dword [esp + 0x1b0]
or ebx, edi
mov edi, dword [esp + 0x1b4]
or edi, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + edi + 0x250]
xor ebx, dword [edx + 0x57ae58]
mov edi, dword [esp + edi + 0x254]
xor edi, dword [edx + 0x57ae5c]
add ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x80]
adc edi, dword [esp + 0x1c]
add ecx, ebx
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x94]
adc edi, dword [esp + 0xc]
mov dword [esp + 0x90], ecx
xor edx, ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x94], edi
xor ecx, edi
mov edi, edx
shrd edx, ecx, 0x10
shl edi, 0x10
xor ebx, ebx
or ebx, edx
mov edx, dword [esp + 0x40]
shr ecx, 0x10
or edi, ecx
mov ecx, ebx
add edx, ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x44]
adc ecx, edi
xor edx, dword [esp + 0x18]
mov dword [esp + 0x84], edi
mov edi, edx
mov dword [esp + 0x44], ecx
xor ecx, dword [esp + 0x1c]
xor ebx, ebx
shrd edx, ecx, 0xb
or ebx, edx
mov edx, dword [eax + 0x57aa84]
add edx, edx
shl edi, 0x15
add edx, edx
add edx, edx
shr ecx, 0xb
or edi, ecx
mov ecx, dword [eax + 0x57aa80]
mov dword [esp + 0xc], edx
mov dword [esp + 0x18], ebx
mov ebx, dword [edx + 0x57ae58]
mov edx, dword [edx + 0x57ae5c]
add ecx, ecx
add ecx, ecx
add ecx, ecx
xor edx, dword [esp + ecx + 0x254]
xor ebx, dword [esp + ecx + 0x250]
mov dword [esp + 0x1c], edi
add ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x60]
adc edx, dword [esp + 0x2c]
add edi, ebx
mov ebx, dword [esp + 0x64]
adc ebx, edx
mov edx, dword [esp + 0x78]
xor edx, edi
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x7c]
xor edi, ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x220], edx
xor edx, edx
or edx, dword [esp + 0x220]
xor ebx, ebx
or edi, ebx
mov ebx, dword [esp + 0x50]
add ebx, edi
adc dword [esp + 0x54], edx
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x54]
xor edx, dword [esp + 0x2c]
mov edi, ebx
xor edi, dword [esp + 0x28]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x1c4], edi
shl dword [esp + 0x1c4], 7
shrd edi, edx, 0x19
shr edx, 0x19
mov ebx, edx
mov dword [esp + 0x1c0], 0
mov edx, dword [esp + 0x1c0]
or edx, edi
mov edi, dword [esp + 0x1c4]
or edi, ebx
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + edi + 0x250]
mov dword [esp + 0x28], edx
xor ebx, dword [ecx + 0x57ae58]
mov edi, dword [esp + edi + 0x254]
xor edi, dword [ecx + 0x57ae5c]
add ebx, edx
adc edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x60]
add edx, ebx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x64]
adc edi, dword [esp + 0xc]
mov dword [esp + 0x60], edx
xor edx, dword [esp + 0x78]
xor ecx, edi
mov dword [esp + 0x64], edi
mov edi, edx
shrd edx, ecx, 0x10
xor ebx, ebx
or ebx, edx
mov edx, dword [esp + 0x50]
shr ecx, 0x10
shl edi, 0x10
or edi, ecx
mov ecx, ebx
add edx, ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x54]
adc ecx, edi
xor edx, dword [esp + 0x28]
mov dword [esp + 0x7c], edi
mov edi, edx
mov dword [esp + 0x54], ecx
xor ecx, dword [esp + 0x2c]
xor ebx, ebx
shrd edx, ecx, 0xb
or ebx, edx
mov edx, dword [eax + 0x57aa8c]
add edx, edx
shl edi, 0x15
shr ecx, 0xb
or edi, ecx
mov ecx, dword [eax + 0x57aa88]
add edx, edx
add edx, edx
add ecx, ecx
mov dword [esp + 0x28], ebx
mov ebx, dword [edx + 0x57ae58]
add ecx, ecx
mov dword [esp + 0xc], edx
mov edx, dword [edx + 0x57ae5c]
add ecx, ecx
xor ebx, dword [esp + ecx + 0x250]
xor edx, dword [esp + ecx + 0x254]
add ebx, dword [esp + 0x20]
mov dword [esp + 0x2c], edi
adc edx, dword [esp + 0x24]
mov edi, dword [esp + 0x68]
add edi, ebx
mov ebx, dword [esp + 0x6c]
adc ebx, edx
mov edx, dword [esp + 0x58]
xor edx, edi
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x5c]
xor edi, ebx
mov dword [esp + 0x6c], ebx
xor ebx, ebx
or edi, ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x230], edx
xor edx, edx
or edx, dword [esp + 0x230]
add ebx, edi
adc dword [esp + 0x3c], edx
mov dword [esp + 0x58], edi
mov edi, ebx
xor edi, dword [esp + 0x20]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x38], ebx
xor edx, dword [esp + 0x24]
mov dword [esp + 0x1d4], edi
shrd edi, edx, 0x19
shl dword [esp + 0x1d4], 7
shr edx, 0x19
mov ebx, edx
mov dword [esp + 0x1d0], 0
mov edx, dword [esp + 0x1d0]
or edx, edi
mov edi, dword [esp + 0xc]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x1d4]
or edx, ebx
mov ebx, dword [esp + edi + 0x250]
xor ebx, dword [ecx + 0x57ae58]
mov edi, dword [esp + edi + 0x254]
xor edi, dword [ecx + 0x57ae5c]
add ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x5c]
adc edi, edx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x68]
add edx, ebx
mov dword [esp + 0x68], edx
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x6c]
adc edi, dword [esp + 0xc]
xor edx, dword [esp + 0x58]
xor ecx, edi
mov dword [esp + 0x6c], edi
mov edi, edx
shrd edx, ecx, 0x10
shr ecx, 0x10
xor ebx, ebx
or ebx, edx
mov edx, dword [esp + 0x38]
shl edi, 0x10
or edi, ecx
mov ecx, ebx
add edx, ecx
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x3c]
adc ecx, edi
mov dword [esp + 0x38], edx
xor edx, dword [esp + 0x20]
mov dword [esp + 0x3c], ecx
xor ecx, dword [esp + 0x24]
mov dword [esp + 0x5c], edi
mov edi, edx
shrd edx, ecx, 0xb
xor ebx, ebx
or ebx, edx
mov edx, dword [eax + 0x57aa94]
shr ecx, 0xb
add edx, edx
shl edi, 0x15
or edi, ecx
mov ecx, dword [eax + 0x57aa90]
add edx, edx
add edx, edx
add ecx, ecx
mov dword [esp + 0x20], ebx
mov ebx, dword [edx + 0x57ae58]
add ecx, ecx
add ecx, ecx
xor ebx, dword [esp + ecx + 0x250]
mov dword [esp + 0xc], edx
mov edx, dword [edx + 0x57ae5c]
xor edx, dword [esp + ecx + 0x254]
add ebx, dword [esp + 0x30]
mov dword [esp + 0x24], edi
adc edx, dword [esp + 0x34]
mov edi, dword [esp + 0x88]
add edi, ebx
mov ebx, dword [esp + 0x8c]
adc ebx, edx
mov edx, dword [esp + 0x70]
xor edx, edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x240], edx
mov edi, dword [esp + 0x74]
xor edi, ebx
xor edx, edx
or edx, dword [esp + 0x240]
xor ebx, ebx
or edi, ebx
mov ebx, dword [esp + 0x48]
add ebx, edi
adc dword [esp + 0x4c], edx
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x4c]
xor edx, dword [esp + 0x34]
mov dword [esp + 0x70], edi
mov edi, ebx
xor edi, dword [esp + 0x30]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x1e4], edi
shl dword [esp + 0x1e4], 7
shrd edi, edx, 0x19
shr edx, 0x19
mov ebx, edx
mov dword [esp + 0x1e0], 0
mov edx, dword [esp + 0x1e0]
or edx, edi
mov edi, dword [esp + 0xc]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x1e4]
or edx, ebx
mov ebx, dword [esp + edi + 0x250]
xor ebx, dword [ecx + 0x57ae58]
mov edi, dword [esp + edi + 0x254]
xor edi, dword [ecx + 0x57ae5c]
add ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x74]
adc edi, edx
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x88]
add edx, ebx
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x8c]
adc edi, dword [esp + 0xc]
mov dword [esp + 0x88], edx
xor edx, dword [esp + 0x70]
xor ecx, edi
mov dword [esp + 0x8c], edi
mov edi, edx
shrd edx, ecx, 0x10
shr ecx, 0x10
xor ebx, ebx
or ebx, edx
mov edx, dword [esp + 0x48]
shl edi, 0x10
or edi, ecx
mov ecx, ebx
add edx, ecx
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x4c]
adc ecx, edi
mov dword [esp + 0x48], edx
xor edx, dword [esp + 0x30]
mov dword [esp + 0x4c], ecx
xor ecx, dword [esp + 0x34]
mov dword [esp + 0x74], edi
mov edi, edx
shrd edx, ecx, 0xb
shr ecx, 0xb
xor ebx, ebx
shl edi, 0x15
or ebx, edx
or edi, ecx
add eax, 0x40
mov ecx, ebx
mov edx, edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
cmp eax, 0x400
jb 0x40c2a0
mov eax, dword [esp + 0x38]
xor eax, dword [esp + 0x90]
mov edi, dword [esp + 0x3c]
xor eax, dword [esp + 0xb8]
xor edi, dword [esp + 0x94]
xor dword [esp + 0xb0], eax
mov eax, dword [esp + 0x48]
xor eax, dword [esp + 0x60]
xor edi, dword [esp + 0xbc]
xor eax, dword [esp + 0xc8]
xor dword [esp + 0xb4], edi
xor dword [esp + 0xd0], eax
mov eax, dword [esp + 0x40]
xor eax, dword [esp + 0x68]
mov edi, dword [esp + 0x4c]
xor eax, dword [esp + 0xd8]
xor edi, dword [esp + 0x64]
xor dword [esp + 0x98], eax
mov eax, dword [esp + 0x50]
xor eax, dword [esp + 0x88]
xor edi, dword [esp + 0xcc]
xor eax, dword [esp + 0xe8]
xor dword [esp + 0xd4], edi
xor dword [esp + 0xf0], eax
mov eax, dword [esp + 0x78]
xor eax, ecx
xor eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x7c]
xor dword [esp + 0xc0], eax
mov eax, dword [esp + 0x58]
xor eax, dword [esp + 0x18]
mov edi, dword [esp + 0x44]
xor eax, dword [esp + 0xc8]
xor edi, dword [esp + 0x6c]
xor dword [esp + 0xe0], eax
xor edi, dword [esp + 0xdc]
mov eax, dword [esp + 0x70]
xor eax, dword [esp + 0x28]
xor dword [esp + 0x9c], edi
xor eax, dword [esp + 0xd8]
xor ecx, edx
xor ecx, dword [esp + 0xbc]
xor dword [esp + 0xa0], eax
xor dword [esp + 0xc4], ecx
mov ecx, dword [esp + 0x5c]
xor ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x54]
xor ecx, dword [esp + 0xcc]
xor edi, dword [esp + 0x8c]
xor dword [esp + 0xe4], ecx
mov ecx, dword [esp + 0x74]
xor ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x80]
xor ecx, dword [esp + 0xdc]
xor eax, dword [esp + 0x20]
xor dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x84]
xor ecx, dword [esp + 0x24]
xor edi, dword [esp + 0xec]
xor eax, dword [esp + 0xe8]
xor ecx, dword [esp + 0xec]
xor dword [esp + 0xf4], edi
xor dword [esp + 0xa8], eax
xor dword [esp + 0xac], ecx
mov edi, dword [esp + 0x20c]
mov ebx, dword [esp + 0x208]
mov dword [esp + 0x10], 0
cmp dword [ebp + 0xc], 0
ja 0x40b5d3
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0xd0]
mov dword [esi + 0x8c], ecx
mov ecx, dword [esp + 0x98]
mov dword [esi + 0x98], ecx
mov ecx, dword [esp + 0xf4]
mov dword [esi + 0x88], eax
mov eax, dword [esp + 0xd4]
mov dword [esi + 0x90], edx
mov edx, dword [esp + 0x9c]
mov dword [esi + 0xa4], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esi + 0x94], eax
mov eax, dword [esp + 0xf0]
mov dword [esi + 0x9c], edx
mov edx, dword [esp + 0xc0]
mov dword [esi + 0xb0], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esi + 0xa0], eax
mov eax, dword [esp + 0xc4]
mov dword [esi + 0xa8], edx
mov edx, dword [esp + 0xe4]
mov dword [esi + 0xbc], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esi + 0xac], eax
mov eax, dword [esp + 0xa0]
mov dword [esi + 0xb4], edx
mov edx, dword [esp + 0xa8]
mov dword [esi + 0xc8], ecx
mov ecx, dword [esp + 0xcc]
mov dword [esi + 0xb8], eax
mov eax, dword [esp + 0xac]
mov dword [esi + 0xc0], edx
mov edx, dword [esp + 0xbc]
mov dword [esi + 0xd4], ecx
mov ecx, dword [esp + 0xe8]
mov dword [esi + 0xc4], eax
mov eax, dword [esp + 0xc8]
mov dword [esi + 0xcc], edx
mov edx, dword [esp + 0xd8]
mov dword [esi + 0xe0], ecx
mov ecx, dword [esp + 0xfc]
mov dword [esi + 0xd0], eax
mov eax, dword [esp + 0xdc]
mov dword [esi + 0xd8], edx
mov edx, dword [esp + 0xec]
mov dword [esi + 0xec], edi
mov dword [esi + 0xf4], ecx
mov ecx, dword [esp + 0x2d4]
pop edi
mov dword [esi + 0xe8], ebx
mov dword [esi + 0xdc], eax
mov eax, dword [esp + 0xf4]
mov dword [esi + 0xe4], edx
mov edx, dword [esp + 0xc]
pop ebx
xor ecx, esp
mov dword [esi + 0xf0], eax
mov dword [esi + 0x80], edx
call fcn.0052abef
mov esp, ebp
pop ebp
ret