Function at 0x9a3330
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ecx, 6
push edi
push esi
push ebx
sub esp, 0x65c
mov edx, dword [esp + 0x670]
mov eax, edx
sar eax, 1
test dl, 0x40
mov dword [esp + 0x250], eax
jne 0x9a7149
add ecx, 1
mov eax, edx
sar eax, cl
test al, 1
je 0x9a335a
mov dword [esp + 0x518], 0xd
sub dword [esp + 0x518], ecx
movzx ecx, byte [esp + 0x518]
mov dword [esp + 0x650], 2
shl dword [esp + 0x650], cl
mov ebx, dword [esp + 0x650]
shl ebx, 2
mov dword [esp + 0x51c], ebx
mov eax, dword [esp + 0x250]
sar edx, 2
mov edi, dword [esp + 0x678]
mov esi, dword [esp + 0x250]
mov dword [esp + 0x254], 0xbf6040
add eax, edx
shl edx, 2
mov dword [esp + 0x520], edx
lea eax, [edi + eax*4]
add edx, dword [esp + 0x674]
mov dword [esp + 0x630], eax
mov eax, dword [esp + 0x51c]
shl esi, 2
mov dword [esp + 0x248], esi
mov edi, dword [esp + 0x630]
mov dword [esp + 0x64c], edx
mov edx, dword [esp + 0x51c]
add esi, dword [esp + 0x674]
add eax, eax
mov dword [esp + 0x588], eax
add edx, 0xbf6040
mov dword [esp + 0x24c], esi
mov ebp, edx
sub esi, 0x1c
mov dword [esp + 0x584], edx
mov ecx, dword [esp + 0x254]
sub edi, 0x10
mov ebx, dword [esi + 0x10]
mov eax, dword [ecx]
imul ebx
mov dword [esp + 0x128], eax
mov eax, dword [esi + 0x18]
mov dword [esp + 0x12c], edx
mov ebx, dword [esp + 0x12c]
imul dword [ecx + 4]
lea eax, [edx + ebx]
add eax, eax
mov dword [edi + 8], eax
mov ebx, dword [esi + 0x18]
mov eax, dword [ecx]
imul ebx
mov dword [esp + 0x120], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x124], edx
imul dword [ecx + 4]
mov eax, dword [esp + 0x124]
sub eax, edx
add eax, eax
mov dword [edi + 0xc], eax
mov ecx, dword [esi]
mov eax, dword [ebp]
imul ecx
mov eax, dword [esi + 8]
mov ebx, edx
imul dword [ebp + 4]
lea eax, [edx + ebx]
add eax, eax
mov dword [edi], eax
mov ecx, dword [esi + 8]
mov eax, dword [ebp]
imul ecx
mov eax, dword [esi]
sub esi, 0x20
mov ebx, edx
imul dword [ebp + 4]
mov eax, ebx
sub eax, edx
mov edx, dword [esp + 0x588]
add eax, eax
add dword [esp + 0x254], edx
add ebp, edx
cmp dword [esp + 0x64c], esi
mov dword [edi + 4], eax
jbe 0x9a3431
mov ecx, dword [esp + 0x51c]
mov ebx, dword [esp + 0x51c]
mov ebp, dword [esp + 0x254]
neg ecx
sub ecx, ebx
mov dword [esp + 0x5d0], ecx
sub ebp, ebx
mov ecx, dword [esp + 0x254]
sub edi, 0x10
mov ebx, dword [esi + 0x10]
mov eax, dword [ecx + 4]
imul ebx
mov dword [esp + 0x118], eax
mov eax, dword [esi + 0x18]
mov dword [esp + 0x11c], edx
mov ebx, dword [esp + 0x11c]
imul dword [ecx]
lea eax, [edx + ebx]
add eax, eax
mov dword [edi + 8], eax
mov ebx, dword [esi + 0x18]
mov eax, dword [ecx + 4]
imul ebx
mov dword [esp + 0x110], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x114], edx
imul dword [ecx]
mov eax, dword [esp + 0x114]
sub eax, edx
add eax, eax
mov dword [edi + 0xc], eax
mov ecx, dword [esi]
mov eax, dword [ebp + 4]
imul ecx
mov eax, dword [esi + 8]
mov ebx, edx
imul dword [ebp]
lea eax, [edx + ebx]
add eax, eax
mov dword [edi], eax
mov ecx, dword [esi + 8]
mov eax, dword [ebp + 4]
imul ecx
mov eax, dword [esi]
sub esi, 0x20
mov ebx, edx
imul dword [ebp]
mov eax, ebx
sub eax, edx
mov edx, dword [esp + 0x5d0]
add eax, eax
add dword [esp + 0x254], edx
add ebp, edx
cmp dword [esp + 0x674], esi
mov dword [edi + 4], eax
jbe 0x9a34fe
mov esi, dword [esp + 0x24c]
mov edi, dword [esp + 0x588]
mov ebp, dword [esp + 0x630]
sub esi, 0x20
add edi, 0xbf6040
mov ecx, dword [esp + 0x584]
mov ebx, dword [esi + 0x18]
mov dword [esp + 0x5d8], edi
mov eax, dword [ecx]
imul ebx
mov dword [esp + 0x108], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x10c], edx
imul dword [ecx + 4]
mov eax, dword [esp + 0x10c]
sub eax, edx
add eax, eax
mov dword [ebp], eax
mov ebx, dword [esi + 0x10]
mov eax, dword [ecx]
imul ebx
mov dword [esp + 0x100], eax
mov eax, dword [esi + 0x18]
mov dword [esp + 0x104], edx
imul dword [ecx + 4]
mov ecx, dword [esp + 0x104]
lea eax, [edx + ecx]
add eax, eax
mov dword [ebp + 4], eax
mov ecx, dword [esi + 8]
mov eax, dword [edi]
imul ecx
mov eax, dword [esi]
mov ebx, edx
imul dword [edi + 4]
mov eax, ebx
sub eax, edx
add eax, eax
mov dword [ebp + 8], eax
mov ecx, dword [esi]
mov eax, dword [edi]
imul ecx
mov eax, dword [esi + 8]
sub esi, 0x20
mov ebx, edx
imul dword [edi + 4]
add edi, dword [esp + 0x588]
lea eax, [edx + ebx]
mov edx, dword [esp + 0x588]
add eax, eax
mov dword [ebp + 0xc], eax
add ebp, 0x10
add dword [esp + 0x584], edx
cmp dword [esp + 0x64c], esi
jbe 0x9a35c7
mov eax, dword [esp + 0x5d8]
sub eax, dword [esp + 0x51c]
mov ecx, eax
mov edi, eax
sub ecx, dword [esp + 0x51c]
mov dword [esp + 0x580], ecx
mov ecx, dword [esi + 0x18]
mov eax, dword [edi + 4]
imul ecx
mov eax, dword [esi + 0x10]
mov ebx, edx
imul dword [edi]
mov eax, ebx
sub eax, edx
add eax, eax
mov dword [ebp], eax
mov ecx, dword [esi + 0x10]
mov eax, dword [edi + 4]
imul ecx
mov eax, dword [esi + 0x18]
mov ecx, dword [esp + 0x580]
mov ebx, edx
imul dword [edi]
lea eax, [edx + ebx]
add eax, eax
mov dword [ebp + 4], eax
mov ebx, dword [esi + 8]
mov eax, dword [ecx + 4]
imul ebx
mov dword [esp + 0xf8], eax
mov eax, dword [esi]
mov dword [esp + 0xfc], edx
imul dword [ecx]
mov eax, dword [esp + 0xfc]
sub eax, edx
add eax, eax
mov dword [ebp + 8], eax
mov ebx, dword [esi]
mov eax, dword [ecx + 4]
imul ebx
mov ebx, dword [esp + 0x5d0]
add dword [esp + 0x580], ebx
mov dword [esp + 0xf0], eax
mov eax, dword [esi + 8]
add edi, ebx
mov dword [esp + 0xf4], edx
sub esi, 0x20
imul dword [ecx]
mov ecx, dword [esp + 0xf4]
lea eax, [edx + ecx]
add eax, eax
mov dword [ebp + 0xc], eax
add ebp, 0x10
cmp dword [esp + 0x674], esi
jbe 0x9a369d
mov eax, dword [esp + 0x518]
mov esi, dword [esp + 0x248]
add esi, dword [esp + 0x678]
not eax
add eax, 8
test eax, eax
mov dword [esp + 0x62c], esi
mov dword [esp + 0x5f4], eax
jle 0x9a4fc3
mov dword [esp + 0x28c], 1
mov dword [esp + 0x288], 0
movzx ecx, byte [esp + 0x288]
mov edx, 4
mov eax, dword [esp + 0x250]
mov edi, dword [esp + 0x62c]
mov dword [esp + 0x284], 0
sar eax, cl
mov ecx, dword [esp + 0x288]
add ecx, dword [esp + 0x518]
lea ebx, [eax*4]
sar eax, 1
shl edx, cl
lea esi, [edx*4]
shl edx, 3
mov dword [esp + 0x134], edx
imul edx, esi, 0xfffffffc
lea eax, [edi + eax*4 - 0x40]
mov dword [esp + 0x578], eax
lea eax, [edi + ebx - 0x40]
mov dword [esp + 0x394], ebx
mov dword [esp + 0x648], esi
mov dword [esp + 0x5dc], eax
mov dword [esp + 0x130], edx
lea esi, [esi]
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x648]
add eax, dword [esp + 0x648]
mov ebx, dword [esp + 0x134]
mov esi, dword [esp + 0x5dc]
add ecx, eax
mov edi, dword [esp + 0x578]
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x648]
add ebx, 0xbf6040
mov dword [esp + 0x574], ebx
mov edx, esi
mov dword [esp + 0x5f0], ecx
mov ebx, edi
shl eax, 2
mov dword [esp + 0x57c], esi
mov dword [esp + 0x5ec], edi
mov dword [esp + 0x570], 0
mov dword [esp + 0x138], eax
mov ecx, dword [esp + 0x5ec]
mov esi, edx
mov ebp, dword [edx + 0x38]
mov ecx, dword [ecx + 0x38]
mov eax, ecx
add eax, ebp
mov dword [edx + 0x38], eax
mov edx, dword [edx + 0x3c]
mov dword [esp + 0x390], ecx
mov ecx, dword [ebx + 0x3c]
sub ebp, dword [esp + 0x390]
lea eax, [edx + ecx]
sub ecx, edx
mov edx, dword [esp + 0x570]
mov edi, ecx
sar edi, 0x1f
mov dword [esi + 0x3c], eax
mov dword [esp + 0x378], ecx
mov eax, dword [edx + 0xbf6040]
mov dword [esp + 0x37c], edi
mov ecx, dword [esp + 0x37c]
mov ebx, dword [esp + 0x378]
mov dword [esp + 0x370], ebp
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x378]
sar edi, 0x1f
imul ebx, edi
mul esi
mov esi, dword [esp + 0x570]
add ecx, ebx
mov ebx, dword [esp + 0x370]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x570]
mov edx, ebp
sar edx, 0x1f
mov dword [esp + 0x374], edx
mov eax, dword [ecx + 0xbf6044]
mov ecx, dword [esp + 0x374]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x370]
add ecx, ebx
mov ebx, dword [esp + 0x5ec]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x374]
lea eax, [edx + edi]
add eax, eax
mov dword [ebx + 0x38], eax
mov eax, dword [esi + 0xbf6040]
mov ebx, dword [esp + 0x370]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x370]
sar edi, 0x1f
imul ebx, edi
mul esi
add ecx, ebx
mov ebx, dword [esp + 0x378]
lea edi, [ecx + edx]
mov edx, dword [esp + 0x570]
mov ecx, dword [esp + 0x37c]
mov eax, dword [edx + 0xbf6044]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x378]
mov eax, edi
add ecx, ebx
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x5ec]
sub eax, edx
add eax, eax
mov dword [ecx + 0x3c], eax
mov ebx, dword [esp + 0x57c]
mov edi, dword [esp + 0x5ec]
mov ecx, dword [ebx + 0x30]
mov esi, dword [edi + 0x30]
lea eax, [esi + ecx]
mov dword [ebx + 0x30], eax
mov eax, dword [esp + 0x57c]
mov ebx, dword [edi + 0x34]
mov edi, dword [esp + 0x57c]
mov edx, dword [eax + 0x34]
lea eax, [edx + ebx]
sub ebx, edx
mov edx, dword [esp + 0x648]
mov dword [edi + 0x34], eax
mov eax, ebx
mov dword [esp + 0x368], ebx
mov ebx, dword [esp + 0x570]
sar eax, 0x1f
mov dword [esp + 0x36c], eax
mov eax, dword [edx + ebx + 0xbf6040]
mov ebx, dword [esp + 0x368]
mov edx, dword [esp + 0x36c]
mov ebp, eax
mov edi, eax
sar ebp, 0x1f
imul edx, eax
mov eax, dword [esp + 0x368]
imul ebx, ebp
add ebx, edx
sub ecx, esi
mov esi, dword [esp + 0x570]
mul edi
add edx, ebx
mov ebx, ecx
mov dword [esp + 0x244], edx
mov edx, dword [esp + 0x648]
sar ebx, 0x1f
mov dword [esp + 0x240], eax
mov edi, ebx
mov eax, dword [edx + esi + 0xbf6044]
mov edx, eax
sar edx, 0x1f
mov esi, edx
imul edi, eax
imul esi, ecx
mul ecx
add esi, edi
mov edi, dword [esp + 0x244]
lea edx, [esi + edx]
mov esi, dword [esp + 0x648]
lea eax, [edx + edi]
mov edx, dword [esp + 0x5ec]
mov edi, dword [esp + 0x570]
add eax, eax
mov dword [edx + 0x30], eax
mov edx, ebx
mov ebx, dword [esp + 0x36c]
mov eax, dword [esi + edi + 0xbf6040]
mov edi, eax
sar edi, 0x1f
mov ebp, edi
imul ebp, ecx
imul edx, eax
add ebp, edx
mul ecx
mov ecx, dword [esp + 0x570]
lea edi, [ebp + edx]
mov edx, dword [esp + 0x648]
mov eax, dword [edx + ecx + 0xbf6044]
mov ecx, dword [esp + 0x368]
mov edx, eax
sar edx, 0x1f
imul ebx, eax
imul ecx, edx
mul dword [esp + 0x368]
mov eax, edi
add ecx, ebx
mov ebx, dword [esp + 0x5ec]
lea edx, [ecx + edx]
sub eax, edx
add eax, eax
mov dword [ebx + 0x34], eax
mov esi, dword [esp + 0x57c]
mov edi, dword [ebx + 0x28]
mov ebp, dword [esi + 0x28]
mov eax, edi
mov edx, dword [esi + 0x2c]
mov dword [esp + 0x38c], edi
add eax, ebp
mov dword [esi + 0x28], eax
mov ecx, dword [ebx + 0x2c]
sub ebp, dword [esp + 0x38c]
lea eax, [edx + ecx]
sub ecx, edx
mov edx, dword [esp + 0x574]
mov dword [esi + 0x2c], eax
mov eax, ecx
sar eax, 0x1f
mov dword [esp + 0x360], ecx
mov ebx, dword [esp + 0x360]
mov dword [esp + 0x364], eax
mov eax, dword [edx]
mov ecx, dword [esp + 0x364]
mov dword [esp + 0x358], ebp
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x360]
sar edi, 0x1f
imul ebx, edi
mul esi
mov esi, dword [esp + 0x574]
add ecx, ebx
mov ebx, dword [esp + 0x358]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x574]
mov edx, ebp
sar edx, 0x1f
mov dword [esp + 0x35c], edx
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x35c]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x358]
add ecx, ebx
mov ebx, dword [esp + 0x5ec]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x35c]
lea eax, [edx + edi]
add eax, eax
mov dword [ebx + 0x28], eax
mov eax, dword [esi]
mov ebx, dword [esp + 0x358]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x358]
sar edi, 0x1f
imul ebx, edi
mul esi
add ecx, ebx
mov ebx, dword [esp + 0x360]
lea edi, [ecx + edx]
mov edx, dword [esp + 0x574]
mov ecx, dword [esp + 0x364]
mov eax, dword [edx + 4]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x360]
mov eax, edi
add ecx, ebx
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x5ec]
sub eax, edx
add eax, eax
mov dword [ecx + 0x2c], eax
mov ebx, dword [esp + 0x57c]
mov edi, dword [esp + 0x5ec]
mov ecx, dword [ebx + 0x20]
mov esi, dword [edi + 0x20]
lea eax, [esi + ecx]
sub ecx, esi
mov esi, dword [esp + 0x570]
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x57c]
mov ebx, dword [edi + 0x24]
mov edi, dword [esp + 0x57c]
mov edx, dword [eax + 0x24]
lea eax, [edx + ebx]
sub ebx, edx
mov edx, dword [esp + 0x13c]
mov dword [edi + 0x24], eax
mov eax, ebx
mov dword [esp + 0x350], ebx
mov ebx, dword [esp + 0x570]
sar eax, 0x1f
mov dword [esp + 0x354], eax
mov eax, dword [edx + ebx + 0xbf6040]
mov ebx, dword [esp + 0x350]
mov edx, dword [esp + 0x354]
mov ebp, eax
mov edi, eax
sar ebp, 0x1f
imul edx, eax
mov eax, dword [esp + 0x350]
imul ebx, ebp
add ebx, edx
mul edi
add edx, ebx
mov ebx, ecx
mov dword [esp + 0x23c], edx
mov edx, dword [esp + 0x13c]
sar ebx, 0x1f
mov dword [esp + 0x238], eax
mov edi, ebx
mov eax, dword [edx + esi + 0xbf6044]
mov edx, eax
sar edx, 0x1f
mov esi, edx
imul edi, eax
imul esi, ecx
mul ecx
add esi, edi
mov edi, dword [esp + 0x23c]
lea edx, [esi + edx]
mov esi, dword [esp + 0x13c]
lea eax, [edx + edi]
mov edx, dword [esp + 0x5ec]
mov edi, dword [esp + 0x570]
add eax, eax
mov dword [edx + 0x20], eax
mov edx, ebx
mov ebx, dword [esp + 0x354]
mov eax, dword [esi + edi + 0xbf6040]
mov edi, eax
sar edi, 0x1f
mov ebp, edi
imul ebp, ecx
imul edx, eax
add ebp, edx
mul ecx
mov ecx, dword [esp + 0x570]
lea edi, [ebp + edx]
mov edx, dword [esp + 0x13c]
mov eax, dword [edx + ecx + 0xbf6044]
mov ecx, dword [esp + 0x350]
mov edx, eax
sar edx, 0x1f
imul ebx, eax
imul ecx, edx
mul dword [esp + 0x350]
mov eax, edi
add ecx, ebx
mov ebx, dword [esp + 0x5ec]
lea edx, [ecx + edx]
sub eax, edx
add eax, eax
mov dword [ebx + 0x24], eax
mov esi, dword [esp + 0x138]
mov edi, dword [esp + 0x570]
mov ecx, dword [esp + 0x5f0]
mov edx, dword [esp + 0x57c]
mov eax, esi
add eax, 0xbf6040
add dword [esp + 0x570], ecx
add edi, eax
sub eax, esi
add eax, dword [esp + 0x570]
mov dword [esp + 0x388], edx
sub edx, 0x20
mov dword [esp + 0x384], ebx
sub ebx, 0x20
add dword [esp + 0x574], ecx
cmp eax, 0xbf7040
mov dword [esp + 0x234], esi
mov dword [esp + 0x5e8], edi
mov dword [esp + 0x57c], edx
mov dword [esp + 0x5ec], ebx
jb 0x9a3885
mov ebx, edi
sub edi, dword [esp + 0x648]
sub ebx, esi
mov dword [esp + 0x560], 0
mov dword [esp + 0x140], ebx
mov dword [esp + 0x568], edi
sub edi, dword [esp + 0x648]
mov dword [esp + 0x564], edi
sub edi, dword [esp + 0x648]
mov dword [esp + 0x56c], edi
nop
mov esi, dword [esp + 0x388]
mov edi, dword [esp + 0x384]
mov ebx, dword [esp + 0x5e8]
mov ecx, dword [esi + 0x18]
mov edx, dword [edi + 0x18]
mov ebp, dword [esi + 0x1c]
lea eax, [edx + ecx]
sub ecx, edx
mov dword [esi + 0x18], eax
mov eax, dword [edi + 0x1c]
mov edx, ecx
mov dword [esp + 0x348], ecx
mov ecx, dword [esp + 0x560]
sar edx, 0x1f
mov dword [esp + 0x34c], edx
mov dword [esp + 0x624], eax
add eax, ebp
mov dword [esi + 0x1c], eax
mov eax, dword [ecx + ebx]
mov ecx, dword [esp + 0x34c]
mov ebx, dword [esp + 0x348]
sub ebp, dword [esp + 0x624]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x348]
sar edi, 0x1f
imul ebx, edi
mov dword [esp + 0x340], ebp
mul esi
mov esi, dword [esp + 0x384]
add ecx, ebx
mov ebx, dword [esp + 0x5e8]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x560]
mov edx, ebp
sar edx, 0x1f
mov dword [esp + 0x344], edx
mov eax, dword [ecx + ebx + 4]
mov ecx, dword [esp + 0x344]
mov ebx, dword [esp + 0x340]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x340]
mov eax, edi
mov edi, dword [esp + 0x560]
add ecx, ebx
mov ebx, dword [esp + 0x340]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x344]
sub eax, edx
mov edx, dword [esp + 0x5e8]
add eax, eax
mov dword [esi + 0x18], eax
mov eax, dword [edi + edx]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x340]
sar edi, 0x1f
imul ebx, edi
mul esi
add ecx, ebx
mov ebx, dword [esp + 0x348]
lea edi, [ecx + edx]
mov edx, dword [esp + 0x560]
mov ecx, dword [esp + 0x5e8]
mov eax, dword [edx + ecx + 4]
mov ecx, dword [esp + 0x34c]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x348]
add ecx, ebx
mov ebx, dword [esp + 0x384]
lea edx, [ecx + edx]
lea eax, [edx + edi]
add eax, eax
mov dword [ebx + 0x1c], eax
mov esi, dword [esp + 0x388]
mov edx, dword [ebx + 0x10]
mov ecx, dword [esi + 0x10]
mov ebp, dword [esi + 0x14]
lea eax, [edx + ecx]
sub ecx, edx
mov edx, dword [esp + 0x560]
mov dword [esi + 0x10], eax
mov edi, dword [ebx + 0x14]
mov dword [esp + 0x338], ecx
mov ebx, dword [esp + 0x338]
mov eax, edi
add eax, ebp
mov dword [esi + 0x14], eax
mov eax, ecx
mov ecx, dword [esp + 0x568]
sar eax, 0x1f
mov dword [esp + 0x33c], eax
mov dword [esp + 0x618], edi
mov eax, dword [edx + ecx]
mov ecx, dword [esp + 0x33c]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x338]
sar edi, 0x1f
imul ebx, edi
sub ebp, dword [esp + 0x618]
mul esi
mov esi, dword [esp + 0x384]
add ecx, ebx
mov ebx, dword [esp + 0x568]
mov dword [esp + 0x330], ebp
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x560]
mov edx, ebp
sar edx, 0x1f
mov dword [esp + 0x334], edx
mov eax, dword [ecx + ebx + 4]
mov ecx, dword [esp + 0x334]
mov ebx, dword [esp + 0x330]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x330]
mov eax, edi
mov edi, dword [esp + 0x560]
add ecx, ebx
mov ebx, dword [esp + 0x330]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x334]
sub eax, edx
mov edx, dword [esp + 0x568]
add eax, eax
mov dword [esi + 0x10], eax
mov eax, dword [edi + edx]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x330]
sar edi, 0x1f
imul ebx, edi
mul esi
add ecx, ebx
mov ebx, dword [esp + 0x338]
lea edi, [ecx + edx]
mov edx, dword [esp + 0x560]
mov ecx, dword [esp + 0x568]
mov eax, dword [edx + ecx + 4]
mov ecx, dword [esp + 0x33c]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x338]
add ecx, ebx
mov ebx, dword [esp + 0x384]
lea edx, [ecx + edx]
lea eax, [edx + edi]
add eax, eax
mov dword [ebx + 0x14], eax
mov esi, dword [esp + 0x388]
mov edx, dword [ebx + 8]
mov ecx, dword [esi + 8]
mov ebp, dword [esi + 0xc]
lea eax, [edx + ecx]
sub ecx, edx
mov edx, dword [esp + 0x564]
mov dword [esi + 8], eax
mov edi, dword [ebx + 0xc]
mov dword [esp + 0x328], ecx
mov ebx, dword [esp + 0x328]
mov eax, edi
add eax, ebp
mov dword [esi + 0xc], eax
mov eax, ecx
sar eax, 0x1f
mov dword [esp + 0x32c], eax
mov eax, dword [edx]
mov ecx, dword [esp + 0x32c]
mov dword [esp + 0x60c], edi
sub ebp, dword [esp + 0x60c]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x328]
sar edi, 0x1f
imul ebx, edi
mov dword [esp + 0x320], ebp
mul esi
mov esi, dword [esp + 0x564]
add ecx, ebx
mov ebx, dword [esp + 0x320]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x564]
mov edx, ebp
sar edx, 0x1f
mov dword [esp + 0x324], edx
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x324]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x320]
mov eax, edi
add ecx, ebx
mov ebx, dword [esp + 0x384]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x324]
sub eax, edx
add eax, eax
mov dword [ebx + 8], eax
mov eax, dword [esi]
mov ebx, dword [esp + 0x320]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x320]
sar edi, 0x1f
imul ebx, edi
mul esi
add ecx, ebx
mov ebx, dword [esp + 0x328]
lea edi, [ecx + edx]
mov edx, dword [esp + 0x564]
mov ecx, dword [esp + 0x32c]
mov eax, dword [edx + 4]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x328]
add ecx, ebx
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x384]
lea eax, [edx + edi]
add eax, eax
mov dword [ecx + 0xc], eax
mov ebx, dword [esp + 0x388]
mov esi, dword [esp + 0x384]
mov ecx, dword [ebx]
mov edx, dword [esi]
mov ebp, dword [ebx + 4]
lea eax, [edx + ecx]
sub ecx, edx
mov edx, dword [esp + 0x56c]
mov dword [ebx], eax
mov edi, dword [esi + 4]
mov dword [esp + 0x318], ecx
mov eax, edi
add eax, ebp
mov dword [ebx + 4], eax
mov eax, ecx
mov ebx, dword [esp + 0x318]
sar eax, 0x1f
mov dword [esp + 0x31c], eax
mov eax, dword [edx]
mov ecx, dword [esp + 0x31c]
mov dword [esp + 0x5fc], edi
sub ebp, dword [esp + 0x5fc]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x318]
sar edi, 0x1f
imul ebx, edi
mov dword [esp + 0x310], ebp
mul esi
mov esi, dword [esp + 0x56c]
add ecx, ebx
mov ebx, dword [esp + 0x310]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x56c]
mov edx, ebp
sar edx, 0x1f
mov dword [esp + 0x314], edx
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x314]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x310]
mov eax, edi
add ecx, ebx
mov ebx, dword [esp + 0x384]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x314]
sub eax, edx
add eax, eax
mov dword [ebx], eax
mov eax, dword [esi]
mov ebx, dword [esp + 0x310]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x310]
sar edi, 0x1f
imul ebx, edi
mul esi
add ecx, ebx
mov ebx, dword [esp + 0x318]
lea edi, [ecx + edx]
mov edx, dword [esp + 0x56c]
mov ecx, dword [esp + 0x31c]
mov eax, dword [edx + 4]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x318]
add ecx, ebx
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x384]
lea eax, [edx + edi]
add eax, eax
mov dword [ecx + 4], eax
mov esi, dword [esp + 0x130]
sub ecx, 0x20
mov ebx, dword [esp + 0x140]
add ebx, dword [esp + 0x560]
add dword [esp + 0x560], esi
mov eax, dword [esp + 0x560]
add eax, dword [esp + 0x5e8]
sub dword [esp + 0x388], 0x20
add dword [esp + 0x564], esi
add dword [esp + 0x56c], esi
cmp eax, 0xbf6040
mov dword [esp + 0x5e4], ebx
mov dword [esp + 0x384], ecx
ja 0x9a3e60
mov edi, dword [esp + 0x648]
mov eax, dword [esp + 0x648]
mov edx, dword [esp + 0x648]
mov ecx, dword [esp + 0x234]
add edi, ebx
add eax, edi
add edx, eax
lea ecx, [ebx + ecx]
mov dword [esp + 0x558], edi
mov dword [esp + 0x554], eax
mov dword [esp + 0x55c], edx
mov dword [esp + 0x550], 0
mov dword [esp + 0x154], ecx
lea esi, [esi]
mov esi, dword [esp + 0x388]
mov ebx, dword [esp + 0x384]
mov edx, dword [esi + 0x18]
mov ecx, dword [ebx + 0x18]
mov edi, dword [esi + 0x1c]
lea eax, [edx + ecx]
sub ecx, edx
mov edx, dword [esp + 0x550]
mov dword [esi + 0x18], eax
mov ebp, dword [ebx + 0x1c]
mov eax, edi
mov dword [esp + 0x308], ecx
mov ebx, dword [esp + 0x308]
mov dword [esp + 0x620], edi
add eax, ebp
mov dword [esi + 0x1c], eax
mov eax, ecx
mov ecx, dword [esp + 0x5e4]
sar eax, 0x1f
mov dword [esp + 0x30c], eax
sub ebp, dword [esp + 0x620]
mov eax, dword [edx + ecx]
mov ecx, dword [esp + 0x30c]
mov dword [esp + 0x300], ebp
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x308]
sar edi, 0x1f
imul ebx, edi
mul esi
mov esi, dword [esp + 0x384]
add ecx, ebx
mov ebx, dword [esp + 0x5e4]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x550]
mov edx, ebp
sar edx, 0x1f
mov dword [esp + 0x304], edx
mov eax, dword [ecx + ebx + 4]
mov ecx, dword [esp + 0x304]
mov ebx, dword [esp + 0x300]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x300]
add ecx, ebx
mov ebx, dword [esp + 0x300]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x304]
lea eax, [edx + edi]
mov edi, dword [esp + 0x550]
mov edx, dword [esp + 0x5e4]
add eax, eax
mov dword [esi + 0x18], eax
mov eax, dword [edi + edx]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x300]
sar edi, 0x1f
imul ebx, edi
mul esi
add ecx, ebx
mov ebx, dword [esp + 0x308]
lea edi, [ecx + edx]
mov edx, dword [esp + 0x550]
mov ecx, dword [esp + 0x5e4]
mov eax, dword [edx + ecx + 4]
mov ecx, dword [esp + 0x30c]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x308]
mov eax, edi
add ecx, ebx
mov ebx, dword [esp + 0x384]
lea edx, [ecx + edx]
sub eax, edx
add eax, eax
mov dword [ebx + 0x1c], eax
mov esi, dword [esp + 0x388]
mov ecx, dword [ebx + 0x10]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
lea eax, [edx + ecx]
sub ecx, edx
mov edx, dword [esp + 0x550]
mov dword [esi + 0x10], eax
mov ebp, dword [ebx + 0x14]
mov eax, edi
mov dword [esp + 0x2f8], ecx
mov ebx, dword [esp + 0x2f8]
mov dword [esp + 0x614], edi
add eax, ebp
mov dword [esi + 0x14], eax
mov eax, ecx
mov ecx, dword [esp + 0x558]
sar eax, 0x1f
mov dword [esp + 0x2fc], eax
mov eax, dword [edx + ecx]
mov ecx, dword [esp + 0x2fc]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x2f8]
sar edi, 0x1f
imul ebx, edi
sub ebp, dword [esp + 0x614]
mul esi
mov esi, dword [esp + 0x384]
add ecx, ebx
mov ebx, dword [esp + 0x558]
mov dword [esp + 0x2f0], ebp
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x550]
mov edx, ebp
sar edx, 0x1f
mov dword [esp + 0x2f4], edx
mov eax, dword [ecx + ebx + 4]
mov ecx, dword [esp + 0x2f4]
mov ebx, dword [esp + 0x2f0]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x2f0]
add ecx, ebx
mov ebx, dword [esp + 0x2f0]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x2f4]
lea eax, [edx + edi]
mov edi, dword [esp + 0x550]
mov edx, dword [esp + 0x558]
add eax, eax
mov dword [esi + 0x10], eax
mov eax, dword [edi + edx]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x2f0]
sar edi, 0x1f
imul ebx, edi
mul esi
add ecx, ebx
mov ebx, dword [esp + 0x2f8]
lea edi, [ecx + edx]
mov edx, dword [esp + 0x550]
mov ecx, dword [esp + 0x558]
mov eax, dword [edx + ecx + 4]
mov ecx, dword [esp + 0x2fc]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x2f8]
mov eax, edi
add ecx, ebx
mov ebx, dword [esp + 0x384]
lea edx, [ecx + edx]
sub eax, edx
add eax, eax
mov dword [ebx + 0x14], eax
mov esi, dword [esp + 0x388]
mov ecx, dword [ebx + 8]
mov edx, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea eax, [edx + ecx]
sub ecx, edx
mov edx, dword [esp + 0x554]
mov dword [esi + 8], eax
mov ebp, dword [ebx + 0xc]
mov eax, edi
mov dword [esp + 0x2e8], ecx
mov ebx, dword [esp + 0x2e8]
mov dword [esp + 0x608], edi
add eax, ebp
mov dword [esi + 0xc], eax
mov eax, ecx
sar eax, 0x1f
mov dword [esp + 0x2ec], eax
mov eax, dword [edx]
mov ecx, dword [esp + 0x2ec]
sub ebp, dword [esp + 0x608]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x2e8]
sar edi, 0x1f
imul ebx, edi
mov dword [esp + 0x2e0], ebp
mul esi
mov esi, dword [esp + 0x554]
add ecx, ebx
mov ebx, dword [esp + 0x2e0]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x554]
mov edx, ebp
sar edx, 0x1f
mov dword [esp + 0x2e4], edx
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x2e4]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x2e0]
add ecx, ebx
mov ebx, dword [esp + 0x384]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x2e4]
lea eax, [edx + edi]
add eax, eax
mov dword [ebx + 8], eax
mov eax, dword [esi]
mov ebx, dword [esp + 0x2e0]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x2e0]
sar edi, 0x1f
imul ebx, edi
mul esi
add ecx, ebx
mov ebx, dword [esp + 0x2e8]
lea edi, [ecx + edx]
mov edx, dword [esp + 0x554]
mov ecx, dword [esp + 0x2ec]
mov eax, dword [edx + 4]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x2e8]
mov eax, edi
add ecx, ebx
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x384]
sub eax, edx
add eax, eax
mov dword [ecx + 0xc], eax
mov esi, dword [esp + 0x388]
mov ebx, ecx
mov ecx, dword [ecx]
mov edx, dword [esi]
mov edi, dword [esi + 4]
lea eax, [edx + ecx]
sub ecx, edx
mov edx, dword [esp + 0x55c]
mov dword [esi], eax
mov ebp, dword [ebx + 4]
mov eax, edi
mov dword [esp + 0x2d8], ecx
mov ebx, dword [esp + 0x2d8]
mov dword [esp + 0x5f8], edi
add eax, ebp
mov dword [esi + 4], eax
mov eax, ecx
sar eax, 0x1f
mov dword [esp + 0x2dc], eax
mov eax, dword [edx]
mov ecx, dword [esp + 0x2dc]
sub ebp, dword [esp + 0x5f8]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x2d8]
sar edi, 0x1f
imul ebx, edi
mov dword [esp + 0x2d0], ebp
mul esi
mov esi, dword [esp + 0x55c]
add ecx, ebx
mov ebx, dword [esp + 0x2d0]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x55c]
mov edx, ebp
sar edx, 0x1f
mov dword [esp + 0x2d4], edx
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x2d4]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x2d0]
add ecx, ebx
mov ebx, dword [esp + 0x384]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x2d4]
lea eax, [edx + edi]
add eax, eax
mov dword [ebx], eax
mov eax, dword [esi]
mov ebx, dword [esp + 0x2d0]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x2d0]
sar edi, 0x1f
imul ebx, edi
mul esi
add ecx, ebx
mov ebx, dword [esp + 0x2d8]
lea edi, [ecx + edx]
mov edx, dword [esp + 0x55c]
mov ecx, dword [esp + 0x2dc]
mov eax, dword [edx + 4]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x2d8]
mov eax, edi
add ecx, ebx
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x384]
sub eax, edx
add eax, eax
mov dword [ecx + 4], eax
mov esi, dword [esp + 0x5f0]
sub ecx, 0x20
mov ebx, dword [esp + 0x154]
add ebx, dword [esp + 0x550]
add dword [esp + 0x550], esi
mov eax, dword [esp + 0x550]
add eax, dword [esp + 0x5e4]
sub dword [esp + 0x388], 0x20
add dword [esp + 0x554], esi
add dword [esp + 0x55c], esi
cmp eax, 0xbf7040
mov dword [esp + 0x5e0], ebx
mov dword [esp + 0x384], ecx
jb 0x9a4430
sub ebx, dword [esp + 0x648]
mov dword [esp + 0x540], 0
mov dword [esp + 0x548], ebx
sub ebx, dword [esp + 0x648]
mov dword [esp + 0x544], ebx
sub ebx, dword [esp + 0x648]
mov dword [esp + 0x54c], ebx
mov edi, dword [esp + 0x388]
mov eax, dword [esp + 0x384]
mov edx, dword [esp + 0x384]
mov esi, dword [esp + 0x540]
mov ebp, dword [edi + 0x18]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x628], eax
add eax, ebp
mov dword [edi + 0x18], eax
mov ecx, dword [edx + 0x1c]
mov edx, dword [edi + 0x1c]
sub ebp, dword [esp + 0x628]
lea eax, [edx + ecx]
sub ecx, edx
mov dword [edi + 0x1c], eax
mov edi, dword [esp + 0x5e0]
mov ebx, ecx
sar ebx, 0x1f
mov dword [esp + 0x2c8], ecx
mov dword [esp + 0x2cc], ebx
mov ecx, dword [esp + 0x2cc]
mov eax, dword [esi + edi]
mov ebx, dword [esp + 0x2c8]
mov dword [esp + 0x2c0], ebp
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x2c8]
sar edi, 0x1f
imul ebx, edi
mul esi
mov esi, dword [esp + 0x384]
add ecx, ebx
mov ebx, dword [esp + 0x5e0]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x540]
mov edx, ebp
sar edx, 0x1f
mov dword [esp + 0x2c4], edx
mov eax, dword [ecx + ebx + 4]
mov ecx, dword [esp + 0x2c4]
mov ebx, dword [esp + 0x2c0]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x2c0]
mov eax, edi
mov edi, dword [esp + 0x540]
add ecx, ebx
mov ebx, dword [esp + 0x2c0]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x2c4]
sub eax, edx
mov edx, dword [esp + 0x5e0]
add eax, eax
mov dword [esi + 0x18], eax
mov eax, dword [edi + edx]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x2c0]
sar edi, 0x1f
imul ebx, edi
mul esi
add ecx, ebx
mov ebx, dword [esp + 0x2c8]
lea edi, [ecx + edx]
mov edx, dword [esp + 0x540]
mov ecx, dword [esp + 0x5e0]
mov eax, dword [edx + ecx + 4]
mov ecx, dword [esp + 0x2cc]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x2c8]
add ecx, ebx
mov ebx, dword [esp + 0x384]
lea edx, [ecx + edx]
lea eax, [edx + edi]
add eax, eax
mov dword [ebx + 0x1c], eax
mov esi, dword [esp + 0x388]
mov edi, dword [ebx + 0x10]
mov ebp, dword [esi + 0x10]
mov eax, edi
mov edx, dword [esi + 0x14]
mov dword [esp + 0x61c], edi
add eax, ebp
mov dword [esi + 0x10], eax
mov ecx, dword [ebx + 0x14]
lea eax, [edx + ecx]
sub ecx, edx
mov edx, dword [esp + 0x540]
mov dword [esi + 0x14], eax
mov eax, ecx
mov dword [esp + 0x2b8], ecx
mov ecx, dword [esp + 0x548]
sar eax, 0x1f
mov dword [esp + 0x2bc], eax
mov ebx, dword [esp + 0x2b8]
mov eax, dword [edx + ecx]
mov ecx, dword [esp + 0x2bc]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x2b8]
sar edi, 0x1f
imul ebx, edi
sub ebp, dword [esp + 0x61c]
mul esi
mov esi, dword [esp + 0x384]
add ecx, ebx
mov ebx, dword [esp + 0x548]
mov dword [esp + 0x2b0], ebp
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x540]
mov edx, ebp
sar edx, 0x1f
mov dword [esp + 0x2b4], edx
mov eax, dword [ecx + ebx + 4]
mov ecx, dword [esp + 0x2b4]
mov ebx, dword [esp + 0x2b0]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x2b0]
mov eax, edi
mov edi, dword [esp + 0x540]
add ecx, ebx
mov ebx, dword [esp + 0x2b0]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x2b4]
sub eax, edx
mov edx, dword [esp + 0x548]
add eax, eax
mov dword [esi + 0x10], eax
mov eax, dword [edi + edx]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x2b0]
sar edi, 0x1f
imul ebx, edi
mul esi
add ecx, ebx
mov ebx, dword [esp + 0x2b8]
lea edi, [ecx + edx]
mov edx, dword [esp + 0x540]
mov ecx, dword [esp + 0x548]
mov eax, dword [edx + ecx + 4]
mov ecx, dword [esp + 0x2bc]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x2b8]
add ecx, ebx
mov ebx, dword [esp + 0x384]
lea edx, [ecx + edx]
lea eax, [edx + edi]
add eax, eax
mov dword [ebx + 0x14], eax
mov esi, dword [esp + 0x388]
mov edi, dword [ebx + 8]
mov ebp, dword [esi + 8]
mov eax, edi
mov edx, dword [esi + 0xc]
mov dword [esp + 0x610], edi
add eax, ebp
mov dword [esi + 8], eax
mov ecx, dword [ebx + 0xc]
sub ebp, dword [esp + 0x610]
lea eax, [edx + ecx]
sub ecx, edx
mov edx, dword [esp + 0x544]
mov dword [esi + 0xc], eax
mov eax, ecx
sar eax, 0x1f
mov dword [esp + 0x2a8], ecx
mov ebx, dword [esp + 0x2a8]
mov dword [esp + 0x2ac], eax
mov eax, dword [edx]
mov ecx, dword [esp + 0x2ac]
mov dword [esp + 0x2a0], ebp
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x2a8]
sar edi, 0x1f
imul ebx, edi
mul esi
mov esi, dword [esp + 0x544]
add ecx, ebx
mov ebx, dword [esp + 0x2a0]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x544]
mov edx, ebp
sar edx, 0x1f
mov dword [esp + 0x2a4], edx
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x2a4]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x2a0]
mov eax, edi
add ecx, ebx
mov ebx, dword [esp + 0x384]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x2a4]
sub eax, edx
add eax, eax
mov dword [ebx + 8], eax
mov eax, dword [esi]
mov ebx, dword [esp + 0x2a0]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x2a0]
sar edi, 0x1f
imul ebx, edi
mul esi
add ecx, ebx
mov ebx, dword [esp + 0x2a8]
lea edi, [ecx + edx]
mov edx, dword [esp + 0x544]
mov ecx, dword [esp + 0x2ac]
mov eax, dword [edx + 4]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x2a8]
add ecx, ebx
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x384]
lea eax, [edx + edi]
add eax, eax
mov dword [ecx + 0xc], eax
mov ebx, dword [esp + 0x388]
mov esi, dword [ecx]
mov ebp, dword [ebx]
mov eax, esi
mov edx, dword [ebx + 4]
mov dword [esp + 0x600], esi
add eax, ebp
mov dword [ebx], eax
mov ecx, dword [ecx + 4]
sub ebp, dword [esp + 0x600]
lea eax, [edx + ecx]
sub ecx, edx
mov edx, dword [esp + 0x54c]
mov dword [ebx + 4], eax
mov eax, ecx
sar eax, 0x1f
mov dword [esp + 0x298], ecx
mov ebx, dword [esp + 0x298]
mov dword [esp + 0x29c], eax
mov eax, dword [edx]
mov ecx, dword [esp + 0x29c]
mov dword [esp + 0x290], ebp
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x298]
sar edi, 0x1f
imul ebx, edi
mul esi
mov esi, dword [esp + 0x54c]
add ecx, ebx
mov ebx, dword [esp + 0x290]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x54c]
mov edx, ebp
sar edx, 0x1f
mov dword [esp + 0x294], edx
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x294]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x290]
mov eax, edi
add ecx, ebx
mov ebx, dword [esp + 0x384]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x294]
sub eax, edx
add eax, eax
mov dword [ebx], eax
mov eax, dword [esi]
mov ebx, dword [esp + 0x290]
imul ecx, eax
mov esi, eax
mov edi, eax
mov eax, dword [esp + 0x290]
sar edi, 0x1f
imul ebx, edi
mul esi
add ecx, ebx
mov ebx, dword [esp + 0x298]
lea edi, [ecx + edx]
mov edx, dword [esp + 0x54c]
mov ecx, dword [esp + 0x29c]
mov eax, dword [edx + 4]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x298]
add ecx, ebx
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x384]
lea eax, [edx + edi]
add eax, eax
mov dword [ecx + 4], eax
mov ebx, dword [esp + 0x130]
sub ecx, 0x20
add dword [esp + 0x540], ebx
mov eax, dword [esp + 0x540]
add eax, dword [esp + 0x5e0]
sub dword [esp + 0x388], 0x20
add dword [esp + 0x544], ebx
add dword [esp + 0x54c], ebx
cmp eax, 0xbf6040
mov dword [esp + 0x384], ecx
ja 0x9a49e2
mov esi, dword [esp + 0x394]
add dword [esp + 0x284], 1
mov edi, dword [esp + 0x28c]
add dword [esp + 0x578], esi
add dword [esp + 0x5dc], esi
cmp dword [esp + 0x284], edi
jl 0x9a3810
sub dword [esp + 0x5f4], 1
je 0x9a4fc3
add dword [esp + 0x288], 1
movzx ecx, byte [esp + 0x288]
mov dword [esp + 0x28c], 1
shl dword [esp + 0x28c], cl
mov edx, dword [esp + 0x28c]
test edx, edx
jg 0x9a378d
sub dword [esp + 0x5f4], 1
jne 0x9a4f88
mov eax, dword [esp + 0x250]
test eax, eax
jle 0x9a5a81
mov ebp, dword [esp + 0x62c]
mov dword [esp + 0x604], 0
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x7c]
mov edx, dword [ebp + 0x38]
mov ebx, dword [ebp + 0x78]
lea edi, [eax + ecx]
sub ecx, eax
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x224], ecx
mov ecx, dword [ebp + 0x70]
lea esi, [edx + ebx]
sub ebx, edx
mov dword [esp + 0x230], esi
mov esi, dword [ebp + 0x74]
mov dword [esp + 0x22c], edi
mov edi, dword [ebp + 0x34]
lea edx, [eax + ecx]
sub ecx, eax
mov eax, ecx
sar eax, 0x1f
mov dword [esp + 0x3d4], eax
mov eax, 0x7641af3d
mov dword [esp + 0x220], edx
imul edx, dword [esp + 0x3d4], 0x7641af3d
mov dword [esp + 0x3d0], ecx
mov dword [esp + 0x228], ebx
lea ebx, [edi + esi]
sub esi, edi
mov dword [esp + 0x3c8], esi
mov edi, 0x30fbc54d
mov dword [esp + 0xec], edx
mul dword [esp + 0x3d0]
mov eax, dword [esp + 0x3c8]
mov dword [esp + 0x21c], ebx
mov ebx, edx
mov edx, esi
sar edx, 0x1f
mov dword [esp + 0x3cc], edx
mul edi
imul esi, dword [esp + 0x3cc], 0x30fbc54d
add ebx, dword [esp + 0xec]
imul ecx, dword [esp + 0x3cc], 0x7641af3d
add edx, esi
mov eax, ebx
sub eax, edx
add eax, eax
mov dword [esp + 0xe4], edx
mov dword [esp + 0x218], eax
mov eax, 0x7641af3d
mul dword [esp + 0x3c8]
mov eax, dword [esp + 0x3d0]
lea esi, [ecx + edx]
imul edx, dword [esp + 0x3d4], 0x30fbc54d
mov dword [esp + 0xe0], edx
mul edi
mov ecx, dword [esp + 0xe0]
add edx, ecx
mov dword [esp + 0xd8], eax
mov eax, edx
add eax, esi
mov esi, 0x5a82799a
add eax, eax
mov dword [esp + 0xdc], edx
mov edx, dword [ebp + 0x28]
mov dword [esp + 0x214], eax
mov eax, dword [ebp + 0x68]
mov ecx, eax
sub ecx, edx
add edx, eax
mov eax, dword [ebp + 0x6c]
mov dword [esp + 0x210], edx
mov edx, dword [ebp + 0x2c]
mov ebx, eax
sub ebx, edx
add edx, eax
mov eax, ecx
sub eax, ebx
mov dword [esp + 0x20c], edx
imul esi
lea eax, [edx + edx]
mov dword [esp + 0x208], eax
lea eax, [ebx + ecx]
mov ecx, dword [ebp + 0x60]
imul esi
mov ebx, dword [ebp + 0x24]
mov esi, dword [ebp + 0x64]
lea eax, [edx + edx]
mov dword [esp + 0x204], eax
mov eax, dword [ebp + 0x20]
add ebx, esi
mov dword [esp + 0x1fc], ebx
lea edx, [eax + ecx]
sub ecx, eax
mov eax, ecx
sar eax, 0x1f
mov dword [esp + 0x3c0], ecx
mov dword [esp + 0x3c4], eax
mov eax, dword [esp + 0x3c0]
mov dword [esp + 0x200], edx
imul edx, dword [esp + 0x3c4], 0x30fbc54d
mov dword [esp + 0xe0], edx
mul edi
mov eax, 0x7641af3d
mov ebx, edx
add ebx, dword [esp + 0xe0]
sub esi, dword [ebp + 0x24]
mov edx, esi
sar edx, 0x1f
mov dword [esp + 0x3b8], esi
mov dword [esp + 0x3bc], edx
mul dword [esp + 0x3b8]
mov eax, ebx
imul esi, dword [esp + 0x3bc], 0x7641af3d
imul ecx, dword [esp + 0x3bc], 0x30fbc54d
add edx, esi
sub eax, edx
add eax, eax
mov dword [esp + 0x1f8], eax
mov eax, dword [esp + 0x3b8]
mov dword [esp + 0xd4], edx
mul edi
mov eax, 0x7641af3d
lea esi, [ecx + edx]
imul edx, dword [esp + 0x3c4], 0x7641af3d
mov dword [esp + 0xd0], edx
mul dword [esp + 0x3c0]
mov dword [esp + 0xc8], eax
mov ecx, dword [esp + 0xd0]
mov ebx, dword [ebp + 0x58]
add edx, ecx
mov ecx, dword [ebp + 0x1c]
mov eax, edx
add eax, esi
add eax, eax
mov dword [esp + 0xcc], edx
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x1f4], eax
mov eax, dword [ebp + 0x5c]
lea esi, [edx + ebx]
sub ebx, edx
mov dword [esp + 0x1f0], esi
lea esi, [eax + ecx]
sub ecx, eax
mov dword [esp + 0x1e8], ecx
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x1ec], esi
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x1e4], ebx
mov ebx, dword [ebp + 0x54]
lea edx, [eax + ecx]
sub ecx, eax
mov eax, ecx
sar eax, 0x1f
add ebx, esi
mov dword [esp + 0x3b4], eax
mov dword [esp + 0x3b0], ecx
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x1e0], edx
imul edx, dword [esp + 0x3b4], 0x30fbc54d
sub esi, dword [ebp + 0x54]
mov dword [esp + 0x1dc], ebx
mov dword [esp + 0xd0], edx
mul edi
mov eax, 0x7641af3d
mov dword [esp + 0x3a8], esi
mov ebx, edx
mov edx, esi
sar edx, 0x1f
mov dword [esp + 0x3ac], edx
mul dword [esp + 0x3a8]
imul esi, dword [esp + 0x3ac], 0x7641af3d
add ebx, dword [esp + 0xd0]
imul ecx, dword [esp + 0x3ac], 0x30fbc54d
add edx, esi
mov eax, edx
add eax, ebx
mov ebx, 0x5a82799a
add eax, eax
mov dword [esp + 0x1d8], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0xc4], edx
mul edi
mov eax, 0x7641af3d
lea esi, [ecx + edx]
imul edx, dword [esp + 0x3b4], 0x7641af3d
mov dword [esp + 0xc0], edx
mov ecx, dword [esp + 0xc0]
mul dword [esp + 0x3b0]
mov eax, esi
add edx, ecx
sub eax, edx
add eax, eax
mov dword [esp + 0x1d4], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0xbc], edx
mov edx, dword [ebp + 0x48]
mov esi, eax
sub esi, edx
add edx, eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x1d0], edx
mov edx, dword [ebp + 0x4c]
mov ecx, eax
sub ecx, edx
add edx, eax
lea eax, [ecx + esi]
sub ecx, esi
mov esi, dword [ebp + 4]
mov dword [esp + 0x1cc], edx
imul ebx
mov ebx, dword [ebp + 0x44]
lea eax, [edx + edx]
add ebx, esi
mov dword [esp + 0x1c8], eax
mov eax, 0x5a82799a
imul ecx
mov eax, dword [ebp + 0x40]
sub esi, dword [ebp + 0x44]
mov dword [esp + 0x1bc], ebx
lea ecx, [edx + edx]
mov dword [esp + 0x1c4], ecx
mov ecx, dword [ebp]
mov dword [esp + 0x398], esi
lea edx, [eax + ecx]
sub ecx, eax
mov eax, ecx
sar eax, 0x1f
mov dword [esp + 0x3a4], eax
mov eax, 0x7641af3d
mov dword [esp + 0x1c0], edx
imul edx, dword [esp + 0x3a4], 0x7641af3d
mov dword [esp + 0x3a0], ecx
mov dword [esp + 0xc0], edx
mul dword [esp + 0x3a0]
mov eax, dword [esp + 0x398]
mov ebx, edx
mov edx, esi
sar edx, 0x1f
mov dword [esp + 0x39c], edx
mul edi
mov eax, 0x7641af3d
imul esi, dword [esp + 0x39c], 0x30fbc54d
add ebx, dword [esp + 0xc0]
add edx, esi
mov dword [esp + 0xb4], edx
add edx, ebx
add edx, edx
imul esi, dword [esp + 0x39c], 0x7641af3d
mov dword [esp + 0xb8], edx
mul dword [esp + 0x398]
lea ebx, [esi + edx]
imul edx, dword [esp + 0x3a4], 0x30fbc54d
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0x3a0]
mov esi, dword [esp + 0xb8]
sub esi, dword [esp + 0x1f8]
mul edi
mov eax, ebx
mov ebx, 0x5a82799a
mov edi, edx
mov edx, dword [esp + 0xb8]
add edi, dword [esp + 0xb0]
add edx, dword [esp + 0x1f8]
sub eax, edi
add eax, eax
mov ecx, eax
sub ecx, dword [esp + 0x1f4]
add eax, dword [esp + 0x1f4]
mov dword [esp + 0x1b8], edx
mov dword [esp + 0x1b4], eax
lea eax, [ecx + esi]
sub ecx, esi
imul ebx
mov eax, 0x5a82799a
mov ebx, dword [esp + 0x1c4]
sub ebx, dword [esp + 0x204]
lea edi, [edx + edx]
imul ecx
mov ecx, dword [esp + 0x204]
add ecx, dword [esp + 0x1c4]
mov eax, dword [esp + 0x208]
sub eax, dword [esp + 0x1c8]
lea esi, [edx + edx]
mov edx, dword [esp + 0x1c8]
add edx, dword [esp + 0x208]
mov dword [esp + 0x1ac], ecx
mov ecx, dword [esp + 0x218]
sub ecx, dword [esp + 0x1d8]
mov dword [esp + 0x1b0], edx
mov edx, dword [esp + 0x1d8]
add edx, dword [esp + 0x218]
mov dword [esp + 0x1a8], ebx
mov ebx, dword [esp + 0x214]
mov dword [esp + 0x1a4], eax
mov eax, dword [esp + 0x1d4]
sub ebx, dword [esp + 0x1d4]
add eax, dword [esp + 0x214]
mov dword [esp + 0x1a0], edx
mov edx, ecx
sub edx, ebx
mov dword [esp + 0x19c], eax
mov eax, 0x5a82799a
imul edx
lea eax, [ebx + ecx]
mov ecx, 0x5a82799a
mov dword [esp + 0xac], edx
add edx, edx
mov dword [esp + 0x198], edx
imul ecx
mov eax, dword [esp + 0x1e4]
add eax, dword [esp + 0x224]
mov ebx, dword [esp + 0x1e8]
add ebx, dword [esp + 0x228]
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x228]
lea ecx, [edx + edx]
sub eax, dword [esp + 0x1e8]
mov edx, dword [esp + 0x224]
sub edx, dword [esp + 0x1e4]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x198]
add eax, edi
mov dword [esp + 0x3e4], eax
mov eax, dword [esp + 0x198]
sub eax, edi
mov dword [esp + 0x3e0], eax
mov eax, dword [esp + 0xa8]
lea edi, [esi + ecx]
sub eax, dword [esp + 0x1a8]
sub ecx, esi
mov dword [esp + 0x3dc], edi
mov esi, dword [esp + 0x1a8]
add esi, dword [esp + 0xa8]
mov dword [esp + 0x3d8], eax
mov eax, dword [esp + 0x1a4]
lea edi, [edx + eax]
sub edx, eax
mov eax, dword [esp + 0x3d8]
sub dword [esp + 0x3d8], ecx
add eax, ecx
mov ecx, dword [esp + 0x3d8]
mov dword [ebp], eax
mov eax, edx
sub eax, dword [esp + 0x3e0]
add edx, dword [esp + 0x3e0]
mov dword [ebp + 8], ecx
mov dword [ebp + 4], eax
mov eax, esi
sub eax, dword [esp + 0x3e4]
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x10], eax
mov eax, edi
sub eax, dword [esp + 0x3dc]
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0x19c]
add esi, dword [esp + 0x3e4]
sub eax, dword [esp + 0x1b4]
mov edx, dword [esp + 0x1b0]
add edi, dword [esp + 0x3dc]
mov dword [esp + 0x3ec], eax
mov eax, dword [esp + 0x194]
sub eax, dword [esp + 0x1ac]
add edx, ebx
mov ecx, dword [esp + 0x1ac]
sub ebx, dword [esp + 0x1b0]
mov dword [esp + 0x3e8], eax
mov eax, dword [esp + 0x3ec]
mov dword [ebp + 0x1c], edi
mov edi, dword [esp + 0x1a0]
sub edi, dword [esp + 0x1b8]
mov dword [ebp + 0x18], esi
mov esi, dword [esp + 0x1b8]
add eax, ebx
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x3e8]
mov dword [esp + 0x3f0], edi
mov edi, dword [esp + 0x1b4]
sub eax, dword [esp + 0x3f0]
add esi, dword [esp + 0x1a0]
add ecx, dword [esp + 0x194]
mov dword [ebp + 0x24], eax
mov eax, dword [esp + 0x3e8]
add eax, dword [esp + 0x3f0]
add edi, dword [esp + 0x19c]
sub ebx, dword [esp + 0x3ec]
mov dword [ebp + 0x2c], eax
mov eax, edx
add edx, esi
sub eax, esi
mov dword [ebp + 0x30], eax
mov eax, ecx
add ecx, edi
sub eax, edi
mov edi, 0x5a82799a
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], edx
mov esi, dword [esp + 0x1c0]
mov dword [ebp + 0x3c], ecx
mov ecx, dword [esp + 0x1bc]
sub esi, dword [esp + 0x200]
sub ecx, dword [esp + 0x1fc]
mov edx, dword [esp + 0x200]
add edx, dword [esp + 0x1c0]
lea eax, [ecx + esi]
sub ecx, esi
mov ebx, dword [esp + 0x1fc]
add ebx, dword [esp + 0x1bc]
mov dword [esp + 0x190], edx
imul edi
mov eax, 0x5a82799a
mov dword [esp + 0x18c], ebx
mov ebx, dword [esp + 0x1cc]
sub ebx, dword [esp + 0x20c]
lea edi, [edx + edx]
imul ecx
mov ecx, dword [esp + 0x20c]
add ecx, dword [esp + 0x1cc]
mov eax, dword [esp + 0x210]
sub eax, dword [esp + 0x1d0]
lea esi, [edx + edx]
mov edx, dword [esp + 0x1d0]
add edx, dword [esp + 0x210]
mov dword [esp + 0x184], ecx
mov ecx, dword [esp + 0x220]
sub ecx, dword [esp + 0x1e0]
mov dword [esp + 0x188], edx
mov edx, dword [esp + 0x1e0]
add edx, dword [esp + 0x220]
mov dword [esp + 0x180], ebx
mov ebx, dword [esp + 0x21c]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x1dc]
sub ebx, dword [esp + 0x1dc]
add eax, dword [esp + 0x21c]
mov dword [esp + 0x178], edx
mov edx, ecx
sub edx, ebx
mov dword [esp + 0x174], eax
mov eax, 0x5a82799a
mov dword [esp + 8], edx
imul edx
lea eax, [ebx + ecx]
mov ecx, 0x5a82799a
mov ebx, dword [esp + 0x1f0]
add ebx, dword [esp + 0x230]
mov dword [esp + 0xa4], edx
add edx, edx
mov dword [esp + 0x170], edx
imul ecx
mov eax, dword [esp + 0x1ec]
add eax, dword [esp + 0x22c]
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0x230]
lea ecx, [edx + edx]
sub eax, dword [esp + 0x1f0]
mov edx, dword [esp + 0x22c]
sub edx, dword [esp + 0x1ec]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x170]
add eax, edi
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x170]
sub eax, edi
mov dword [esp + 0x3fc], eax
mov eax, dword [esp + 0xa0]
lea edi, [esi + ecx]
sub eax, dword [esp + 0x180]
sub ecx, esi
mov dword [esp + 0x3f8], edi
mov esi, dword [esp + 0x180]
add esi, dword [esp + 0xa0]
mov dword [esp + 0x3f4], eax
mov eax, dword [esp + 0x17c]
lea edi, [edx + eax]
sub edx, eax
mov eax, dword [esp + 0x3f4]
sub dword [esp + 0x3f4], ecx
add eax, ecx
mov ecx, dword [esp + 0x3f4]
mov dword [ebp + 0x40], eax
mov eax, edx
sub eax, dword [esp + 0x3fc]
add edx, dword [esp + 0x3fc]
mov dword [ebp + 0x48], ecx
mov dword [ebp + 0x44], eax
mov eax, esi
sub eax, dword [esp + 0x400]
mov dword [ebp + 0x4c], edx
mov dword [ebp + 0x50], eax
mov eax, edi
mov edx, dword [esp + 0x188]
sub eax, dword [esp + 0x3f8]
add edi, dword [esp + 0x3f8]
add esi, dword [esp + 0x400]
mov dword [ebp + 0x54], eax
mov eax, dword [esp + 0x174]
add edx, ebx
sub eax, dword [esp + 0x18c]
sub ebx, dword [esp + 0x188]
mov dword [ebp + 0x5c], edi
mov edi, dword [esp + 0x178]
mov dword [esp + 0x408], eax
mov eax, dword [esp + 0x16c]
sub eax, dword [esp + 0x184]
sub edi, dword [esp + 0x190]
mov dword [ebp + 0x58], esi
mov ecx, dword [esp + 0x184]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x40c], edi
mov esi, dword [esp + 0x190]
mov edi, dword [esp + 0x18c]
add esi, dword [esp + 0x178]
add eax, ebx
mov dword [ebp + 0x60], eax
mov eax, dword [esp + 0x404]
sub eax, dword [esp + 0x40c]
add edi, dword [esp + 0x174]
add ecx, dword [esp + 0x16c]
mov dword [ebp + 0x64], eax
mov eax, dword [esp + 0x404]
sub ebx, dword [esp + 0x408]
add eax, dword [esp + 0x40c]
mov dword [ebp + 0x68], ebx
mov dword [ebp + 0x6c], eax
mov eax, edx
add edx, esi
sub eax, esi
mov dword [ebp + 0x70], eax
mov eax, ecx
add ecx, edi
add dword [esp + 0x604], 0x20
sub eax, edi
mov dword [ebp + 0x78], edx
mov edx, dword [esp + 0x604]
mov dword [ebp + 0x74], eax
mov dword [ebp + 0x7c], ecx
sub ebp, 0xffffff80
cmp dword [esp + 0x250], edx
jg 0x9a4fe4
cmp dword [esp + 0x650], 3
mov dword [esp + 0x470], 0xbf7060
jle 0x9a5aad
mov eax, dword [esp + 0x650]
sar eax, 1
lea eax, [eax*4 + 0xbf6040]
mov dword [esp + 0x470], eax
mov edx, dword [esp + 0x51c]
mov ecx, dword [esp + 0x470]
mov ebx, dword [esp + 0x470]
mov esi, dword [esp + 0x51c]
add ebx, dword [esp + 0x51c]
add edx, edx
mov edi, dword [esp + 0x678]
add ecx, 0x1000
neg edx
mov eax, dword [esp + 0x62c]
add esi, ebx
mov dword [esp + 0x46c], ecx
mov dword [esp + 0x53c], ebx
mov dword [esp + 0x538], esi
mov dword [esp + 0x634], edi
mov dword [esp + 0x474], eax
mov dword [esp + 0x43c], 0
mov dword [esp + 0x534], 0
mov dword [esp + 0x144], edx
mov eax, dword [esp + 0x43c]
mov ecx, dword [esp + 0x43c]
mov ebx, dword [esp + 0x62c]
and eax, 0xf
movzx edx, byte [eax + 0xbf8060]
add ecx, 1
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x454], ecx
movzx ecx, byte [esp + 0x518]
shl edx, 8
sar eax, 8
movzx eax, byte [eax + 0xbf8060]
or edx, eax
mov eax, dword [esp + 0x43c]
and eax, 0xf0
sar eax, 4
movzx eax, byte [eax + 0xbf8060]
shl eax, 4
or edx, eax
mov eax, edx
xor eax, 0xfff
sar eax, cl
sar edx, cl
lea eax, [ebx + eax*4]
lea edx, [ebx + edx*4]
mov ebx, dword [eax - 4]
mov eax, dword [eax]
mov esi, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x494], ebx
mov dword [esp + 0x488], eax
mov eax, ebx
mov ebx, dword [esp + 0x534]
add eax, esi
mov dword [esp + 0x460], eax
mov edi, eax
mov eax, dword [esp + 0x534]
mov dword [esp + 0x48c], edx
mov edx, dword [esp + 0x470]
sar edi, 0x1f
mov dword [esp + 0x490], esi
mov dword [esp + 0x464], edi
mov ecx, dword [esp + 0x464]
mov esi, dword [eax + edx + 4]
mov eax, dword [esp + 0x460]
mov edi, esi
sar edi, 0x1f
imul eax, edi
imul ecx, esi
add ecx, eax
mov eax, dword [esp + 0x460]
mov dword [esp + 0x168], ecx
mul esi
mov eax, dword [esp + 0x48c]
sub eax, dword [esp + 0x488]
add dword [esp + 0x168], edx
mov dword [esp + 0x458], eax
mov edx, eax
mov eax, dword [esp + 0x470]
sar edx, 0x1f
mov dword [esp + 0x45c], edx
mov ebp, dword [esp + 0x45c]
mov ecx, dword [ebx + eax]
mov eax, dword [esp + 0x458]
mov ebx, ecx
sar ebx, 0x1f
imul eax, ebx
imul ebp, ecx
add ebp, eax
mov eax, dword [esp + 0x458]
mul ecx
mov dword [esp + 0x98], eax
add edx, ebp
mov eax, dword [esp + 0x458]
mov ebp, dword [esp + 0x45c]
mov dword [esp + 0x9c], edx
mov edx, dword [esp + 0x168]
add edx, dword [esp + 0x9c]
imul eax, edi
mov edi, dword [esp + 0x464]
imul ebp, esi
mov dword [esp + 0x468], edx
add ebp, eax
mov eax, dword [esp + 0x458]
mul esi
mov eax, dword [esp + 0x460]
imul edi, ecx
sub dword [esp + 0x474], 0x10
add dword [esp + 0x43c], 2
lea esi, [ebp + edx]
mov edx, dword [esp + 0x460]
imul edx, ebx
mov ebx, dword [esp + 0x468]
add edi, edx
mul ecx
mov ecx, dword [esp + 0x488]
add ecx, dword [esp + 0x48c]
add edx, edi
mov edi, dword [esp + 0x634]
sub esi, edx
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0x494]
sar ecx, 1
sub edx, dword [esp + 0x490]
mov dword [esp + 0x90], eax
lea eax, [ecx + ebx]
sub ecx, ebx
mov dword [edi], eax
sar edx, 1
lea eax, [edx + esi]
sub esi, edx
mov dword [edi + 4], eax
mov eax, dword [esp + 0x474]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], esi
mov eax, dword [esp + 0x454]
and eax, 0xf
movzx edx, byte [eax + 0xbf8060]
mov eax, dword [esp + 0x454]
and dword [esp + 0x454], 0xf0
shl edx, 8
sar eax, 8
movzx eax, byte [eax + 0xbf8060]
sar dword [esp + 0x454], 4
mov ecx, dword [esp + 0x454]
mov ebx, dword [esp + 0x62c]
or edx, eax
movzx eax, byte [ecx + 0xbf8060]
movzx ecx, byte [esp + 0x518]
shl eax, 4
or edx, eax
mov eax, edx
xor eax, 0xfff
sar eax, cl
sar edx, cl
lea eax, [ebx + eax*4]
lea edx, [ebx + edx*4]
mov ebx, dword [eax - 4]
mov eax, dword [eax]
mov esi, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x5cc], ebx
mov dword [esp + 0x5c0], eax
mov eax, ebx
mov ebx, dword [esp + 0x534]
add eax, esi
mov dword [esp + 0x448], eax
mov edi, eax
mov eax, dword [esp + 0x534]
mov dword [esp + 0x5c4], edx
mov edx, dword [esp + 0x53c]
sar edi, 0x1f
mov dword [esp + 0x5c8], esi
mov dword [esp + 0x44c], edi
mov ecx, dword [esp + 0x44c]
mov esi, dword [eax + edx + 4]
mov eax, dword [esp + 0x448]
mov edi, esi
sar edi, 0x1f
imul eax, edi
imul ecx, esi
add ecx, eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x164], ecx
mul esi
mov eax, dword [esp + 0x5c4]
add dword [esp + 0x164], edx
sub eax, dword [esp + 0x5c0]
mov dword [esp + 0x440], eax
mov edx, eax
mov eax, dword [esp + 0x53c]
sar edx, 0x1f
mov dword [esp + 0x444], edx
mov ebp, dword [esp + 0x444]
mov ecx, dword [ebx + eax]
mov eax, dword [esp + 0x440]
mov ebx, ecx
sar ebx, 0x1f
imul eax, ebx
imul ebp, ecx
add ebp, eax
mov eax, dword [esp + 0x440]
mul ecx
mov dword [esp + 0x88], eax
add edx, ebp
mov eax, dword [esp + 0x440]
mov ebp, dword [esp + 0x444]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x164]
add edx, dword [esp + 0x8c]
imul eax, edi
mov edi, dword [esp + 0x44c]
imul ebp, esi
mov dword [esp + 0x5a4], edx
imul edi, ecx
add ebp, eax
mov eax, dword [esp + 0x440]
mul esi
mov eax, dword [esp + 0x448]
lea esi, [ebp + edx]
mov edx, dword [esp + 0x448]
imul edx, ebx
mov ebx, dword [esp + 0x538]
add edi, edx
mul ecx
mov ecx, dword [esp + 0x5c0]
add ecx, dword [esp + 0x5c4]
add edx, edi
mov edi, dword [esp + 0x5a4]
sub esi, edx
sar ecx, 1
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x5cc]
sub edx, dword [esp + 0x5c8]
mov dword [esp + 0x80], eax
lea eax, [ecx + edi]
mov edi, dword [esp + 0x634]
sub ecx, dword [esp + 0x5a4]
sar edx, 1
mov dword [edi + 8], eax
lea eax, [edx + esi]
sub esi, edx
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x474]
add edi, 0x10
mov edx, dword [esp + 0x588]
add dword [esp + 0x538], edx
add dword [esp + 0x534], edx
mov dword [eax], ecx
mov dword [eax + 4], esi
mov eax, dword [esp + 0x144]
add eax, dword [esp + 0x538]
cmp eax, dword [esp + 0x46c]
mov dword [esp + 0x634], edi
jb 0x9a5b2a
mov eax, dword [esp + 0x51c]
mov ecx, ebx
sub ecx, dword [esp + 0x51c]
mov dword [esp + 0x530], 0
add eax, eax
sub ebx, eax
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x148], ebx
mov eax, dword [esp + 0x43c]
mov ebx, dword [esp + 0x43c]
movzx ecx, byte [esp + 0x518]
and eax, 0xf
movzx edx, byte [eax + 0xbf8060]
add ebx, 1
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x424], ebx
mov ebx, dword [esp + 0x62c]
shl edx, 8
sar eax, 8
movzx eax, byte [eax + 0xbf8060]
or edx, eax
mov eax, dword [esp + 0x43c]
and eax, 0xf0
sar eax, 4
movzx eax, byte [eax + 0xbf8060]
shl eax, 4
or edx, eax
mov eax, edx
xor eax, 0xfff
sar eax, cl
sar edx, cl
lea eax, [ebx + eax*4]
lea edx, [ebx + edx*4]
mov ebx, dword [eax - 4]
mov eax, dword [eax]
mov esi, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x484], ebx
mov dword [esp + 0x478], eax
mov eax, ebx
mov ebx, dword [esp + 0x530]
add eax, esi
mov dword [esp + 0x430], eax
mov edi, eax
mov eax, dword [esp + 0x530]
mov dword [esp + 0x47c], edx
mov edx, dword [esp + 0x14c]
sar edi, 0x1f
mov dword [esp + 0x480], esi
mov dword [esp + 0x434], edi
mov ecx, dword [esp + 0x434]
mov esi, dword [eax + edx]
mov eax, dword [esp + 0x430]
mov edi, esi
sar edi, 0x1f
imul eax, edi
imul ecx, esi
add ecx, eax
mov eax, dword [esp + 0x430]
mov dword [esp + 0x160], ecx
mul esi
mov eax, dword [esp + 0x47c]
sub eax, dword [esp + 0x478]
add dword [esp + 0x160], edx
mov dword [esp + 0x428], eax
mov edx, eax
mov eax, dword [esp + 0x14c]
sar edx, 0x1f
mov dword [esp + 0x42c], edx
mov ebp, dword [esp + 0x42c]
mov ecx, dword [ebx + eax + 4]
mov eax, dword [esp + 0x428]
mov ebx, ecx
sar ebx, 0x1f
imul eax, ebx
imul ebp, ecx
add ebp, eax
mov eax, dword [esp + 0x428]
mul ecx
mov dword [esp + 0x78], eax
add edx, ebp
mov eax, dword [esp + 0x428]
mov ebp, dword [esp + 0x42c]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x160]
add edx, dword [esp + 0x7c]
imul eax, edi
mov edi, dword [esp + 0x434]
imul ebp, esi
mov dword [esp + 0x5a8], edx
add ebp, eax
mov eax, dword [esp + 0x428]
mul esi
mov eax, dword [esp + 0x430]
imul edi, ecx
sub dword [esp + 0x474], 0x10
add dword [esp + 0x43c], 2
lea esi, [ebp + edx]
mov edx, dword [esp + 0x430]
imul edx, ebx
mov ebx, dword [esp + 0x5a8]
add edi, edx
mul ecx
mov ecx, dword [esp + 0x478]
add ecx, dword [esp + 0x47c]
add edx, edi
mov edi, dword [esp + 0x634]
sub esi, edx
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x484]
sar ecx, 1
sub edx, dword [esp + 0x480]
mov dword [esp + 0x70], eax
lea eax, [ecx + ebx]
sub ecx, ebx
mov dword [edi], eax
sar edx, 1
lea eax, [edx + esi]
sub esi, edx
mov dword [edi + 4], eax
mov eax, dword [esp + 0x474]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], esi
mov eax, dword [esp + 0x424]
and eax, 0xf
movzx edx, byte [eax + 0xbf8060]
mov eax, dword [esp + 0x424]
and dword [esp + 0x424], 0xf0
shl edx, 8
sar eax, 8
movzx eax, byte [eax + 0xbf8060]
sar dword [esp + 0x424], 4
mov ecx, dword [esp + 0x424]
mov ebx, dword [esp + 0x62c]
or edx, eax
movzx eax, byte [ecx + 0xbf8060]
movzx ecx, byte [esp + 0x518]
shl eax, 4
or edx, eax
mov eax, edx
xor eax, 0xfff
sar eax, cl
sar edx, cl
lea eax, [ebx + eax*4]
lea edx, [ebx + edx*4]
mov ebx, dword [eax - 4]
mov eax, dword [eax]
mov esi, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x5bc], ebx
mov dword [esp + 0x5b0], eax
mov eax, ebx
mov ebx, dword [esp + 0x530]
add eax, esi
mov dword [esp + 0x418], eax
mov edi, eax
mov eax, dword [esp + 0x530]
mov dword [esp + 0x5b4], edx
mov edx, dword [esp + 0x148]
sar edi, 0x1f
mov dword [esp + 0x5b8], esi
mov dword [esp + 0x41c], edi
mov ecx, dword [esp + 0x41c]
mov esi, dword [eax + edx]
mov eax, dword [esp + 0x418]
mov edi, esi
sar edi, 0x1f
imul eax, edi
imul ecx, esi
add ecx, eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x15c], ecx
mul esi
mov eax, dword [esp + 0x5b4]
add dword [esp + 0x15c], edx
sub eax, dword [esp + 0x5b0]
mov dword [esp + 0x410], eax
mov edx, eax
mov eax, dword [esp + 0x148]
sar edx, 0x1f
mov dword [esp + 0x414], edx
mov ebp, dword [esp + 0x414]
mov ecx, dword [ebx + eax + 4]
mov eax, dword [esp + 0x410]
mov ebx, ecx
sar ebx, 0x1f
imul eax, ebx
imul ebp, ecx
add ebp, eax
mov eax, dword [esp + 0x410]
mul ecx
mov dword [esp + 0x68], eax
add edx, ebp
mov eax, dword [esp + 0x410]
mov ebp, dword [esp + 0x414]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x15c]
add edx, dword [esp + 0x6c]
imul eax, edi
mov edi, dword [esp + 0x41c]
imul ebp, esi
mov dword [esp + 0x5ac], edx
imul edi, ecx
add ebp, eax
mov eax, dword [esp + 0x410]
mul esi
mov eax, dword [esp + 0x418]
lea esi, [ebp + edx]
mov edx, dword [esp + 0x418]
imul edx, ebx
mov ebx, dword [esp + 0x5ac]
add edi, edx
mul ecx
mov ecx, dword [esp + 0x5b0]
add ecx, dword [esp + 0x5b4]
add edx, edi
mov edi, dword [esp + 0x634]
sub esi, edx
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x5bc]
sar ecx, 1
sub edx, dword [esp + 0x5b8]
mov dword [esp + 0x60], eax
lea eax, [ecx + ebx]
sub ecx, ebx
mov dword [edi + 8], eax
sar edx, 1
lea eax, [edx + esi]
sub esi, edx
mov edx, dword [esp + 0x5d0]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x474]
add edi, 0x10
add dword [esp + 0x530], edx
mov dword [esp + 0x634], edi
cmp eax, edi
mov dword [eax], ecx
mov dword [eax + 4], esi
ja 0x9a5fc1
mov eax, dword [esp + 0x650]
sar eax, 2
test eax, eax
jne 0x9a69a7
mov ebx, dword [esp + 0x630]
mov ebp, dword [esp + 0x678]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0x7fffffff
mov dword [esp + 0x640], ebx
mov dword [esp + 0x654], ebx
mov dword [esp + 0x524], 0
mov esi, dword [esp + 0x524]
mov edi, dword [esp + 0x524]
sub dword [esp + 0x640], 0x10
mov esi, dword [esi*8 + 0xbf7060]
mov edi, dword [edi*8 + 0xbf7064]
mov dword [esp + 0x274], esi
sub esi, dword [esp + 0x26c]
mov dword [esp + 0x278], edi
sub edi, dword [esp + 0x270]
sar esi, 2
mov eax, esi
add eax, dword [esp + 0x26c]
sar edi, 2
mov dword [esp + 0x280], edi
mov edx, eax
sar edx, 0x1f
mov dword [esp + 0x4d8], eax
mov eax, dword [ebp]
mov dword [esp + 0x4dc], edx
mov ecx, dword [esp + 0x4dc]
mov ebx, dword [esp + 0x4d8]
mov dword [esp + 0x27c], esi
mov edi, eax
mov esi, eax
imul ecx, eax
mov eax, dword [esp + 0x4d8]
sar edi, 0x1f
imul ebx, edi
mul esi
mov eax, dword [esp + 0x280]
add eax, dword [esp + 0x270]
add ecx, ebx
mov dword [esp + 0x4e0], eax
lea edi, [ecx + edx]
mov edx, eax
mov eax, dword [ebp + 4]
sar edx, 0x1f
mov dword [esp + 0x4e4], edx
mov ebx, dword [esp + 0x4e0]
mov ecx, dword [esp + 0x4e4]
neg eax
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x4e0]
add ecx, ebx
mov ebx, dword [esp + 0x4d8]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x640]
lea eax, [edx + edi]
add eax, eax
mov dword [ecx + 0xc], eax
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x4dc]
neg eax
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x4d8]
sar edi, 0x1f
imul ebx, edi
mul esi
mov eax, dword [ebp]
add ecx, ebx
mov ebx, dword [esp + 0x4e0]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x4e4]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x4e0]
mov eax, edi
add ecx, ebx
lea edx, [ecx + edx]
sub eax, edx
mov edx, dword [esp + 0x654]
add eax, eax
mov dword [edx], eax
mov eax, dword [esp + 0x274]
sub eax, dword [esp + 0x27c]
mov ecx, eax
sar ecx, 0x1f
mov dword [esp + 0x4e8], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x4ec], ecx
mov ecx, dword [esp + 0x4ec]
mov ebx, dword [esp + 0x4e8]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x4e8]
sar edi, 0x1f
imul ebx, edi
mul esi
mov eax, dword [esp + 0x278]
sub eax, dword [esp + 0x280]
add ecx, ebx
mov dword [esp + 0x4f0], eax
lea edi, [ecx + edx]
mov edx, eax
mov eax, dword [ebp + 0xc]
sar edx, 0x1f
mov dword [esp + 0x4f4], edx
mov ebx, dword [esp + 0x4f0]
mov ecx, dword [esp + 0x4f4]
neg eax
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x4f0]
add ecx, ebx
mov ebx, dword [esp + 0x4e8]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x640]
lea eax, [edx + edi]
add eax, eax
mov dword [ecx + 8], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x4ec]
neg eax
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x4e8]
sar edi, 0x1f
imul ebx, edi
mul esi
mov eax, dword [ebp + 8]
add ecx, ebx
mov ebx, dword [esp + 0x4f0]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x4f4]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x4f0]
mov eax, edi
add ecx, ebx
mov ebx, dword [esp + 0x524]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x524]
sub eax, edx
mov edx, dword [esp + 0x654]
add eax, eax
mov dword [edx + 4], eax
mov ecx, dword [ecx*8 + 0xbf6048]
mov ebx, dword [ebx*8 + 0xbf604c]
mov dword [esp + 0x26c], ecx
mov dword [esp + 0x270], ebx
sub ecx, dword [esp + 0x274]
sub ebx, dword [esp + 0x278]
sar ecx, 2
mov eax, ecx
sar ebx, 2
add eax, dword [esp + 0x274]
mov dword [esp + 0x590], ecx
mov dword [esp + 0x58c], ebx
mov esi, eax
sar esi, 0x1f
mov dword [esp + 0x4f8], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x4fc], esi
mov ecx, dword [esp + 0x4fc]
mov ebx, dword [esp + 0x4f8]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x4f8]
sar edi, 0x1f
imul ebx, edi
mul esi
mov eax, dword [esp + 0x58c]
add eax, dword [esp + 0x278]
add ecx, ebx
mov dword [esp + 0x500], eax
lea edi, [ecx + edx]
mov edx, eax
mov eax, dword [ebp + 0x14]
sar edx, 0x1f
mov dword [esp + 0x504], edx
mov ebx, dword [esp + 0x500]
mov ecx, dword [esp + 0x504]
neg eax
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x500]
add ecx, ebx
mov ebx, dword [esp + 0x4f8]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x640]
lea eax, [edx + edi]
add eax, eax
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x4fc]
neg eax
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x4f8]
sar edi, 0x1f
imul ebx, edi
mul esi
mov eax, dword [ebp + 0x10]
add ecx, ebx
mov ebx, dword [esp + 0x500]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x504]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x500]
mov eax, edi
add ecx, ebx
lea edx, [ecx + edx]
sub eax, edx
mov edx, dword [esp + 0x654]
add eax, eax
mov dword [edx + 8], eax
mov eax, dword [esp + 0x26c]
sub eax, dword [esp + 0x590]
mov ecx, eax
mov dword [esp + 0x508], eax
sar ecx, 0x1f
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x50c], ecx
mov ecx, dword [esp + 0x50c]
mov ebx, dword [esp + 0x508]
mov edi, eax
mov esi, eax
sar edi, 0x1f
imul ecx, eax
mov eax, dword [esp + 0x508]
imul ebx, edi
add dword [esp + 0x524], 1
mul esi
mov eax, dword [esp + 0x270]
sub eax, dword [esp + 0x58c]
add ecx, ebx
mov dword [esp + 0x510], eax
lea edi, [ecx + edx]
mov edx, eax
mov eax, dword [ebp + 0x1c]
sar edx, 0x1f
mov dword [esp + 0x514], edx
mov ebx, dword [esp + 0x510]
mov ecx, dword [esp + 0x514]
neg eax
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x510]
add ecx, ebx
mov ebx, dword [esp + 0x508]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x640]
lea eax, [edx + edi]
add eax, eax
mov dword [ecx], eax
mov eax, dword [ebp + 0x1c]
mov ecx, dword [esp + 0x50c]
neg eax
imul ecx, eax
mov esi, eax
mov edi, eax
mov eax, dword [esp + 0x508]
sar edi, 0x1f
imul ebx, edi
mul esi
mov eax, dword [ebp + 0x18]
add ebp, 0x20
add ecx, ebx
mov ebx, dword [esp + 0x510]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x514]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x510]
mov eax, edi
add ecx, ebx
lea edx, [ecx + edx]
sub eax, edx
mov edx, dword [esp + 0x654]
add eax, eax
mov dword [edx + 0xc], eax
add edx, 0x10
cmp dword [esp + 0x640], ebp
mov dword [esp + 0x654], edx
ja 0x9a6436
mov edx, dword [esp + 0x520]
add edx, dword [esp + 0x678]
mov ecx, dword [esp + 0x630]
mov ebx, edx
sub ecx, 0x10
sub edx, 0x10
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
neg eax
mov dword [ebx], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
neg eax
mov dword [ebx + 4], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
neg eax
mov dword [ebx + 8], eax
mov eax, dword [ecx]
mov dword [edx], eax
neg eax
mov dword [ebx + 0xc], eax
add ebx, 0x10
cmp ecx, ebx
ja 0x9a6937
mov edx, dword [esp + 0x630]
mov ecx, edx
mov eax, dword [ecx + 0xc]
mov dword [edx - 0x10], eax
mov eax, dword [ecx + 8]
mov dword [edx - 0xc], eax
mov eax, dword [ecx + 4]
mov dword [edx - 8], eax
mov eax, dword [ecx]
add ecx, 0x10
mov dword [edx - 4], eax
sub edx, 0x10
cmp edx, dword [esp + 0x62c]
ja 0x9a6976
add esp, 0x65c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp eax, 1
je 0x9a6c28
cmp eax, 3
mov dword [esp + 0x5d4], 0xbf7060
jle 0x9a69dd
sar dword [esp + 0x650], 3
mov ecx, dword [esp + 0x650]
lea ecx, [ecx*4 + 0xbf6040]
mov dword [esp + 0x5d4], ecx
lea ebx, [eax*4]
mov esi, dword [esp + 0x5d4]
mov dword [esp + 0x644], ebx
mov edx, dword [esp + 0x644]
lea eax, [ebx + eax*8]
mov edi, dword [esp + 0x678]
add ebx, eax
mov ebp, dword [esp + 0x630]
mov dword [esp + 0x638], ebx
add esi, edx
add edi, 0x20
mov dword [esp + 0x258], ebp
mov dword [esp + 0x52c], 0
mov dword [esp + 0x158], esi
mov dword [esp + 0x150], eax
mov ecx, dword [esp + 0x52c]
sub ebp, 0x10
mov esi, dword [esp + 0x5d4]
mov ebx, dword [edi - 0x20]
mov eax, dword [ecx + esi]
imul ebx
mov ebx, dword [esp + 0x5d4]
mov dword [esp + 0x58], eax
mov eax, dword [edi - 0x1c]
mov dword [esp + 0x5c], edx
neg eax
imul dword [esi + ecx + 4]
mov ecx, dword [esp + 0x5c]
lea eax, [edx + ecx]
mov ecx, dword [esp + 0x52c]
add eax, eax
mov dword [ebp + 0xc], eax
mov esi, dword [edi - 0x1c]
neg esi
mov eax, esi
mov esi, dword [esp + 0x52c]
imul dword [ecx + ebx]
mov ecx, dword [edi - 0x20]
mov dword [esp + 0x50], eax
mov eax, dword [esi + ebx + 4]
mov dword [esp + 0x54], edx
imul ecx
mov ecx, dword [esp + 0x158]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x4c], edx
sub eax, edx
mov edx, dword [esp + 0x258]
add eax, eax
mov dword [edx], eax
mov ebx, dword [edi - 0x18]
mov eax, dword [esi + ecx]
imul ebx
mov dword [esp + 0x40], eax
mov eax, dword [edi - 0x14]
mov dword [esp + 0x44], edx
mov ebx, dword [esp + 0x44]
neg eax
imul dword [esi + ecx + 4]
lea eax, [edx + ebx]
mov ebx, dword [esp + 0x52c]
add eax, eax
mov dword [ebp + 8], eax
mov esi, dword [edi - 0x14]
neg esi
mov eax, esi
imul dword [ebx + ecx]
mov dword [esp + 0x38], eax
mov esi, dword [esp + 0x158]
mov ecx, dword [edi - 0x18]
mov dword [esp + 0x3c], edx
mov eax, dword [ebx + esi + 4]
mov esi, ebx
add esi, dword [esp + 0x5d4]
imul ecx
mov ecx, dword [esp + 0x644]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x34], edx
sub eax, edx
mov edx, dword [esp + 0x258]
add eax, eax
mov dword [edx + 4], eax
mov ebx, dword [edi - 0x10]
mov eax, dword [esi + ecx*2]
imul ebx
mov dword [esp + 0x28], eax
mov eax, dword [edi - 0xc]
mov dword [esp + 0x2c], edx
mov ebx, dword [esp + 0x2c]
neg eax
imul dword [esi + ecx*2 + 4]
lea eax, [edx + ebx]
add eax, eax
mov dword [ebp + 4], eax
mov ebx, dword [edi - 0xc]
neg ebx
mov eax, ebx
mov ebx, dword [esp + 0x644]
imul dword [esi + ecx*2]
mov ecx, dword [edi - 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [esi + ebx*2 + 4]
mov dword [esp + 0x24], edx
imul ecx
mov ecx, dword [esp + 0x150]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1c], edx
sub eax, edx
mov edx, dword [esp + 0x258]
add eax, eax
mov dword [edx + 8], eax
mov ebx, dword [edi - 8]
mov eax, dword [ecx + esi]
imul ebx
mov dword [esp + 0x10], eax
mov eax, dword [edi - 4]
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x14]
neg eax
imul dword [esi + ecx + 4]
lea eax, [edx + ebx]
add eax, eax
mov dword [ebp], eax
mov ebx, dword [edi - 4]
neg ebx
mov eax, ebx
mov ebx, dword [esp + 0x150]
imul dword [ecx + esi]
mov ecx, dword [edi - 8]
mov dword [esp + 8], eax
mov eax, dword [ebx + esi + 4]
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0x258]
imul ecx
mov dword [esp], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 4], edx
sub eax, edx
mov edx, dword [esp + 0x638]
add eax, eax
mov dword [esi + 0xc], eax
mov eax, edi
add esi, 0x10
add dword [esp + 0x52c], edx
add edi, 0x20
cmp eax, ebp
mov dword [esp + 0x258], esi
jb 0x9a6a38
jmp 0x9a6920
mov ecx, dword [esp + 0x630]
mov ebp, dword [esp + 0x678]
mov dword [esp + 0x25c], 0
mov dword [esp + 0x260], 0x3fffffff
mov dword [esp + 0x63c], ecx
mov dword [esp + 0x528], 0
mov ebx, dword [esp + 0x528]
mov eax, dword [esp + 0x25c]
mov esi, dword [esp + 0x528]
sub dword [esp + 0x63c], 0x10
mov ebx, dword [ebx + 0xbf7060]
mov esi, dword [esi + 0xbf7064]
sar ebx, 1
add eax, ebx
mov edi, eax
sar edi, 0x1f
mov dword [esp + 0x498], eax
mov eax, dword [ebp]
sar esi, 1
mov dword [esp + 0x49c], edi
mov ecx, dword [esp + 0x49c]
mov dword [esp + 0x264], ebx
mov ebx, dword [esp + 0x498]
mov dword [esp + 0x268], esi
mov edi, eax
mov esi, eax
imul ecx, eax
mov eax, dword [esp + 0x498]
sar edi, 0x1f
imul ebx, edi
mul esi
mov eax, dword [esp + 0x260]
add eax, dword [esp + 0x268]
add ecx, ebx
mov dword [esp + 0x4a0], eax
lea edi, [ecx + edx]
mov edx, eax
mov eax, dword [ebp + 4]
sar edx, 0x1f
mov dword [esp + 0x4a4], edx
mov ebx, dword [esp + 0x4a0]
mov ecx, dword [esp + 0x4a4]
neg eax
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x4a0]
add ecx, ebx
mov ebx, dword [esp + 0x498]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x63c]
lea eax, [edx + edi]
add eax, eax
mov dword [ecx + 0xc], eax
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x49c]
neg eax
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x498]
sar edi, 0x1f
imul ebx, edi
mul esi
mov eax, dword [ebp]
add ecx, ebx
mov ebx, dword [esp + 0x4a0]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x4a4]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x4a0]
mov eax, edi
add ecx, ebx
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x630]
sub eax, edx
mov edx, dword [esp + 0x528]
add eax, eax
mov dword [edx + ecx], eax
mov ebx, dword [edx + 0xbf6048]
mov esi, dword [edx + 0xbf604c]
sar ebx, 1
mov eax, ebx
sar esi, 1
add eax, dword [esp + 0x264]
mov dword [esp + 0x5a0], ebx
mov dword [esp + 0x59c], esi
mov edi, eax
sar edi, 0x1f
mov dword [esp + 0x4a8], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x4ac], edi
mov ecx, dword [esp + 0x4ac]
mov ebx, dword [esp + 0x4a8]
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x4a8]
sar edi, 0x1f
imul ebx, edi
mul esi
mov eax, dword [esp + 0x59c]
add eax, dword [esp + 0x268]
add ecx, ebx
mov dword [esp + 0x4b0], eax
lea edi, [ecx + edx]
mov edx, eax
mov eax, dword [ebp + 0xc]
sar edx, 0x1f
mov dword [esp + 0x4b4], edx
mov ebx, dword [esp + 0x4b0]
mov ecx, dword [esp + 0x4b4]
neg eax
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x4b0]
add ecx, ebx
mov ebx, dword [esp + 0x4a8]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x63c]
lea eax, [edx + edi]
add eax, eax
mov dword [ecx + 8], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x4ac]
neg eax
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x4a8]
sar edi, 0x1f
imul ebx, edi
mul esi
mov eax, dword [ebp + 8]
add ecx, ebx
mov ebx, dword [esp + 0x4b0]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x4b4]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x4b0]
mov eax, edi
add ecx, ebx
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x630]
sub eax, edx
mov edx, dword [esp + 0x528]
add eax, eax
mov dword [edx + ecx + 4], eax
mov ebx, dword [edx + 0xbf7068]
sar ebx, 1
mov dword [esp + 0x598], ebx
mov eax, ebx
mov esi, dword [edx + 0xbf706c]
add eax, dword [esp + 0x5a0]
mov edi, eax
sar esi, 1
sar edi, 0x1f
mov dword [esp + 0x4b8], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x4bc], edi
mov ecx, dword [esp + 0x4bc]
mov ebx, dword [esp + 0x4b8]
mov dword [esp + 0x594], esi
mov edi, eax
mov esi, eax
imul ecx, eax
mov eax, dword [esp + 0x4b8]
sar edi, 0x1f
imul ebx, edi
mul esi
mov eax, dword [esp + 0x594]
add eax, dword [esp + 0x59c]
add ecx, ebx
mov dword [esp + 0x4c0], eax
lea edi, [ecx + edx]
mov edx, eax
mov eax, dword [ebp + 0x14]
sar edx, 0x1f
mov dword [esp + 0x4c4], edx
mov ebx, dword [esp + 0x4c0]
mov ecx, dword [esp + 0x4c4]
neg eax
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x4c0]
add ecx, ebx
mov ebx, dword [esp + 0x4b8]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x63c]
lea eax, [edx + edi]
add eax, eax
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x4bc]
neg eax
mov esi, eax
mov edi, eax
imul ecx, eax
mov eax, dword [esp + 0x4b8]
sar edi, 0x1f
imul ebx, edi
mul esi
mov eax, dword [ebp + 0x10]
add ecx, ebx
mov ebx, dword [esp + 0x4c0]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x4c4]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x4c0]
mov eax, edi
add ecx, ebx
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x630]
sub eax, edx
mov edx, dword [esp + 0x528]
add eax, eax
mov dword [edx + ecx + 8], eax
mov ebx, dword [edx + 0xbf6050]
mov esi, dword [edx + 0xbf6054]
sar ebx, 1
sar esi, 1
mov eax, ebx
mov dword [esp + 0x25c], ebx
mov dword [esp + 0x260], esi
add eax, dword [esp + 0x598]
mov edi, eax
mov dword [esp + 0x4c8], eax
sar edi, 0x1f
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x4cc], edi
mov ecx, dword [esp + 0x4cc]
mov ebx, dword [esp + 0x4c8]
mov edi, eax
mov esi, eax
sar edi, 0x1f
imul ecx, eax
mov eax, dword [esp + 0x4c8]
imul ebx, edi
mul esi
mov eax, dword [esp + 0x260]
add eax, dword [esp + 0x594]
add ecx, ebx
mov dword [esp + 0x4d0], eax
lea edi, [ecx + edx]
mov edx, eax
mov eax, dword [ebp + 0x1c]
sar edx, 0x1f
mov dword [esp + 0x4d4], edx
mov ebx, dword [esp + 0x4d0]
mov ecx, dword [esp + 0x4d4]
neg eax
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x4d0]
add ecx, ebx
mov ebx, dword [esp + 0x4c8]
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x63c]
lea eax, [edx + edi]
add eax, eax
mov dword [ecx], eax
mov eax, dword [ebp + 0x1c]
mov ecx, dword [esp + 0x4cc]
neg eax
imul ecx, eax
mov esi, eax
mov edi, eax
mov eax, dword [esp + 0x4c8]
sar edi, 0x1f
imul ebx, edi
mul esi
mov eax, dword [ebp + 0x18]
add ebp, 0x20
add ecx, ebx
mov ebx, dword [esp + 0x4d0]
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x4d4]
mov edx, eax
sar edx, 0x1f
imul ebx, edx
imul ecx, eax
mul dword [esp + 0x4d0]
mov eax, edi
add ecx, ebx
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x630]
sub eax, edx
mov edx, dword [esp + 0x528]
add eax, eax
mov dword [edx + ecx + 0xc], eax
add edx, 0x10
cmp dword [esp + 0x63c], ebp
mov dword [esp + 0x528], edx
ja 0x9a6c5e
jmp 0x9a6920
mov dword [esp + 0x518], 7
mov dword [esp + 0x650], 0x100
mov dword [esp + 0x51c], 0x400
jmp 0x9a33a2