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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x81c
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], edx
mov edx, eax
mov eax, dword [eax + 0x1740]
mov ecx, dword [edx + 0x1740]
mov ebx, dword [edx + 0x1718]
mov esi, dword [edx + 0x1744]
sar eax, 0x1f
mov edi, dword [edx + 0x174c]
xor ecx, eax
mov ebp, dword [edx + 0x1748]
sub ecx, eax
mov eax, dword [edx + 0x1750]
mov dword [esp + 0x104], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x10c], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x110], esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0x114], edi
mov edi, dword [esp + 0x844]
mov edx, dword [edx + 0x1804]
mov ecx, dword [ecx + 0x1754]
mov esi, dword [esi + 0x1714]
mov ebx, dword [ebx + 0x1758]
and edi, 1
mov dword [esp + 0x130], edi
add edi, 1
mov dword [esp + 0x118], ebp
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], edx
mov dword [esp + 0x124], ecx
mov dword [esp + 0x12c], esi
xor esi, esi
mov dword [esp + 0x128], ebx
mov dword [esp + 0x134], edi
mov edx, dword [esp + 0x70]
mov edi, 1
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x83c]
mov ecx, dword [esp + 0x83c]
mov ebp, dword [ebp + 0x171c]
mov eax, dword [edx + eax*4 + 0x9bc]
mov ecx, dword [edx + ecx*4 + 0x9c0]
mov dword [esp + 0x138], ebp
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], ecx
jmp 0x8abba9
cmp edi, 0x3f
setle dl
cmp esi, 0x3f
setle al
add edi, 1
test al, dl
je 0x8abc96
mov ebx, dword [esp + 0x12c]
mov edx, dword [ebx + edi*4 - 4]
add edx, 0x200400
mov eax, edx
and eax, 0xffc00000
cmp eax, dword [esp + 0x138]
jne 0x8abb92
mov ecx, dword [esp + 0x10c]
mov ebp, esi
shl ebp, 4
mov eax, dword [ecx + edi*4 - 4]
mov dword [esp + ebp + 0x41c], eax
mov eax, edx
and eax, 0x7ff
shr edx, 0xb
mov ebx, eax
and edx, 0x7ff
sub ebx, 0x400
cmp dword [esp + 0x118], ebx
lea eax, [edx - 0x400]
mov dword [esp + ebp + 0x420], ebx
mov dword [esp + ebp + 0x424], eax
jl 0x8abb92
cmp dword [esp + 0x110], ebx
jg 0x8abb92
cmp dword [esp + 0x11c], eax
jl 0x8abb92
cmp dword [esp + 0x114], eax
jg 0x8abb92
test ebx, ebx
mov dword [esp + ebp + 0x428], 0
jne 0x8abc54
test eax, eax
je 0x8abc8e
movzx ecx, byte [esp + 0x134]
mov edx, dword [esp + 0x120]
shl eax, cl
shl ebx, cl
sub eax, dword [esp + 0x128]
sub ebx, dword [esp + 0x124]
movzx eax, byte [eax + edx]
movzx edx, byte [ebx + edx]
add eax, edx
imul eax, dword [esp + 0x838]
add dword [esp + ebp + 0x41c], eax
add esi, 1
jmp 0x8abb92
lea ebx, [esp + 0x41c]
mov dword [esp + 0xc], 0x882800
mov dword [esp + 8], 0x10
mov dword [esp + 4], esi
mov dword [esp], ebx
call sub.msvcrt.dll_qsort
cmp dword [esp + 0x104], esi
jle 0x8abcfb
mov eax, esi
shl eax, 4
lea edi, [esp + 0x41c]
lea eax, [edi + eax]
mov dword [eax], 0x40000000
add esi, 1
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
add eax, 0x10
cmp esi, dword [esp + 0x104]
jne 0x8abcd1
mov edx, dword [esp + 0x104]
test edx, edx
je 0x8ac2ac
mov eax, dword [esp + 0x130]
mov ebp, dword [esp + 0x844]
mov edx, dword [esp + 0x83c]
add eax, eax
add eax, 1
and ebp, 4
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0x844]
shl edx, 4
mov dword [esp + 0x198], ebp
mov dword [esp + 0x190], edx
and eax, 2
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x834]
shl eax, 4
add eax, 0x1790
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x420]
mov dword [esp + 0x3f8], ecx
mov dword [esp + 0x108], 0
lea esi, [esi]
mov edi, dword [esp + 0x3f8]
mov ebx, dword [esp + 0x3f8]
mov esi, dword [esp + 0x3f8]
mov eax, dword [edi + 8]
mov ebx, dword [ebx]
mov esi, dword [esi + 4]
test eax, eax
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x140], esi
jne 0x8ac288
mov ebp, dword [esp + 0x118]
cmp ebx, ebp
jge 0x8ac288
mov eax, dword [esp + 0x110]
cmp ebx, eax
jle 0x8ac288
mov edx, dword [esp + 0x11c]
cmp esi, edx
jge 0x8ac288
mov ecx, dword [esp + 0x114]
cmp esi, ecx
jle 0x8ac288
sub ebx, 1
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x140]
shl esi, 0xb
mov dword [esp + 0x74], esi
shl ebx, 3
mov eax, ebx
add eax, dword [esp + 0x78]
mov dword [esp + 0x7c], ebx
and eax, 0x3f
shl eax, 2
mov dword [esp + 0x80], eax
add eax, dword [esp + 0x12c]
mov dword [esp + 0x84], eax
mov eax, esi
mov esi, dword [esp + 0x84]
add eax, dword [esp + 0x78]
add eax, dword [esp + 0x138]
cmp dword [esi], eax
mov dword [esp + 0x88], eax
je 0x8ad46a
mov edi, dword [esp + 0x70]
movzx ecx, byte [esp + 0x134]
mov ebx, dword [esp + 0x78]
mov eax, dword [esp + 0x830]
mov edi, dword [edi + 0x17dc]
mov ebp, dword [esp + 0x70]
shl ebx, cl
mov edx, dword [esp + 0x70]
mov dword [esp + 0x1a0], ebx
mov ebx, dword [esp + 0x140]
shl eax, 4
mov dword [esp + 0x184], edi
mov edi, dword [esp + 0x70]
mov ebp, dword [ebp + 0x17e0]
add edx, dword [esp + 0x24]
shl ebx, cl
lea ecx, [edi + eax + 0x1750]
mov eax, dword [esp + 0x198]
mov dword [esp + 0x180], ebp
lea esi, [edx + 0xc]
lea ebp, [ecx + 0xc]
mov dword [esp + 0x19c], ebx
test eax, eax
mov dword [esp + 0x178], esi
mov dword [esp + 0x174], ebp
je 0x8ae11b
mov eax, dword [esp + 0x78]
cmp eax, dword [edi + 0x1744]
jl 0x8ae82c
mov eax, dword [edi + 0x1748]
movzx ecx, byte [esp + 0x134]
shl eax, cl
cmp dword [esp + 0x1a0], eax
jg 0x8ae82c
mov ebx, dword [esp + 0x140]
cmp ebx, dword [edi + 0x174c]
jl 0x8ae82c
mov eax, dword [edi + 0x1750]
shl eax, cl
cmp dword [esp + 0x19c], eax
jg 0x8ae82c
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x70]
movzx ebx, word [ebx + 0x1fa0]
cmp dword [esi + 0x153c], 1
movzx edi, word [esi + 0x1fa2]
mov dword [esp + 0x170], ebx
je 0x8ae38a
mov ebp, dword [esp + 0x1a0]
add ebp, dword [esi + 0x16dc]
mov eax, dword [esp + 0x1a0]
mov esi, dword [esp + 0x70]
mov ebx, dword [esp + 0x19c]
add ebx, dword [esi + 0x16e0]
test eax, eax
je 0x8ae304
mov eax, ebp
sub eax, dword [esi + 0x16bc]
mov dword [esp + 0x15c], eax
mov ecx, dword [esp + 0x19c]
test ecx, ecx
je 0x8ae2d8
mov edx, dword [esp + 0x70]
mov ecx, ebx
sub ecx, dword [edx + 0x16c0]
mov dword [esp + 0x158], ecx
mov eax, dword [esp + 0x16c]
movzx ecx, byte [esp + 0x134]
mov edx, dword [esp + 0x16c]
and eax, ebx
shl eax, cl
and edx, ebp
add eax, edx
mov edx, dword [esp + 0x15c]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x158]
and eax, dword [esp + 0x16c]
and edx, dword [esp + 0x16c]
shl eax, cl
add eax, edx
mov edx, dword [esp + 0x130]
mov dword [esp + 0x150], eax
test edx, edx
jne 0x8ae848
mov edx, dword [esp + 0x70]
sar ebp, 1
mov ecx, dword [edx + 0x1814]
shl ecx, 4
lea esi, [ebp + ecx]
cmp esi, 0xfffffff0
jl 0x8b01af
mov eax, ebx
mov ebx, dword [esp + 0x70]
sar eax, 1
mov edx, dword [ebx + 0x1818]
shl edx, 4
lea ebx, [eax + edx]
cmp ebx, 0xfffffff0
jl 0x8b0193
mov edi, dword [esp + 0x70]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x194], edi
jg 0x8b0177
mov edi, dword [esp + 0x70]
mov esi, dword [edi + 8]
cmp ebx, esi
jg 0x8b0203
mov edi, dword [esp + 0x15c]
sar edi, 1
lea ecx, [edi + ecx]
cmp ecx, 0xfffffff0
jl 0x8b01e7
mov ebx, dword [esp + 0x158]
sar ebx, 1
lea edx, [ebx + edx]
cmp edx, 0xfffffff0
jl 0x8b013f
cmp dword [esp + 0x194], ecx
jl 0x8b015b
cmp esi, edx
jl 0x8b01cb
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x184]
mov edx, dword [ecx + 0x17f0]
mov ecx, dword [esp + 0x178]
imul eax, esi
mov dword [esp + 8], esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0xc], 0x10
add ebp, dword [ecx]
lea eax, [ebp + eax]
mov ebp, dword [esp + 0x154]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x170c]
mov dword [esp], eax
call dword [edx + ebp*4]
mov eax, dword [esp + 0x184]
mov ecx, dword [esp + 0x178]
mov edx, dword [esi + 0x17f4]
mov dword [esp + 0xc], 0x10
imul ebx, eax
mov dword [esp + 8], eax
add edi, dword [ecx + 0x20]
lea eax, [edi + ebx]
mov ebx, dword [esp + 0x150]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x170c]
mov dword [esp], eax
call dword [edx + ebx*4]
mov esi, dword [esp + 0x184]
mov edi, dword [esp + 0x174]
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], esi
mov eax, dword [edi]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x170c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call dword [esp + 0xfc]
mov ebp, eax
mov ebx, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x128]
sub dword [esp + 0x19c], eax
mov esi, dword [esp + 0x10c]
mov dword [ecx], ebx
mov edx, dword [esp + 0x19c]
mov ecx, dword [esp + 0x120]
mov edi, dword [esp + 0x80]
mov ebx, dword [esp + 0x124]
mov dword [esi + edi], ebp
movzx eax, byte [edx + ecx]
sub dword [esp + 0x1a0], ebx
mov esi, dword [esp + 0x1a0]
movzx edx, byte [esi + ecx]
add eax, edx
imul eax, dword [esp + 0x838]
lea ebx, [ebp + eax]
mov eax, dword [esp + 0x104]
shl eax, 4
cmp ebx, dword [esp + eax + 0x40c]
jge 0x8ad46a
xor esi, esi
cmp ebx, dword [esp + 0x41c]
lea ecx, [esp + 0x41c]
lea edx, [esp + 0x42c]
jl 0x8ac226
add esi, 1
mov eax, esi
shl eax, 4
cmp dword [esp + eax + 0x41c], ebx
jle 0x8ac205
lea ecx, [esp + 0x41c]
add ecx, eax
lea edx, [esp + eax + 0x42c]
mov eax, dword [esp + 0x104]
mov dword [esp + 4], ecx
mov dword [esp], edx
sub eax, esi
shl eax, 4
sub eax, 0x10
mov dword [esp + 8], eax
call sub.msvcrt.dll_memmove
mov edi, dword [esp + 0x78]
mov eax, esi
mov ebp, dword [esp + 0x140]
shl eax, 4
mov dword [esp + eax + 0x428], 0
mov dword [esp + eax + 0x41c], ebx
mov dword [esp + eax + 0x420], edi
mov dword [esp + eax + 0x424], ebp
jmp 0x8abd63
mov edi, dword [esp + 0x3f8]
mov dword [edi + 8], 1
add dword [esp + 0x108], 1
mov ebp, dword [esp + 0x108]
add dword [esp + 0x3f8], 0x10
cmp dword [esp + 0x104], ebp
jg 0x8abd80
mov eax, dword [esp + 0x420]
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x6c]
mov ebp, eax
mov dword [edx], eax
mov esi, dword [esp + 0x424]
add edx, 4
cmp dword [esp + 0x118], eax
mov dword [esp + 0xc0], edx
mov dword [ecx + 4], esi
mov ebx, dword [esp + 0x41c]
mov dword [esp + 0x68], ebx
jle 0x8ad45b
cmp dword [esp + 0x110], eax
jge 0x8ad45b
cmp dword [esp + 0x11c], esi
jle 0x8ad45b
cmp dword [esp + 0x114], esi
jge 0x8ad45b
lea edi, [eax - 1]
cmp dword [esp + 0x110], edi
mov dword [esp + 0xc4], edi
jg 0x8b0fa2
cmp dword [esp + 0x118], edi
jl 0x8b15a2
lea eax, [edi + esi*8]
mov edx, edi
and eax, 0x3f
shl eax, 2
mov dword [esp + 0xc8], eax
add eax, dword [esp + 0x12c]
mov dword [esp + 0xcc], eax
mov eax, esi
mov ecx, dword [esp + 0xcc]
shl eax, 0xb
add eax, dword [esp + 0x138]
add eax, edi
cmp dword [ecx], eax
mov dword [esp + 0xd0], eax
je 0x8ac74c
mov edi, dword [esp + 0x70]
movzx ecx, byte [esp + 0x134]
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x834]
mov edi, dword [edi + 0x17e0]
shl edx, cl
mov ebx, dword [ebx + 0x17dc]
shl eax, 4
mov dword [esp + 0x2a8], edi
mov edi, dword [esp + 0x70]
mov dword [esp + 0x2c4], edx
mov dword [esp + 0x2ac], ebx
mov ebx, esi
shl ebx, cl
lea edx, [edi + eax + 0x1790]
mov eax, dword [esp + 0x830]
lea ebp, [edx + 0xc]
mov dword [esp + 0x2c0], ebx
mov dword [esp + 0x2a4], ebp
shl eax, 4
test byte [esp + 0x844], 4
lea ecx, [edi + eax + 0x1750]
lea eax, [ecx + 0xc]
mov dword [esp + 0x2a0], eax
je 0x8aff9d
mov ecx, dword [esp + 0xc4]
cmp ecx, dword [edi + 0x1744]
jl 0x8ae82c
mov eax, dword [edi + 0x1748]
movzx ecx, byte [esp + 0x134]
shl eax, cl
cmp dword [esp + 0x2c4], eax
jg 0x8ae82c
cmp esi, dword [edi + 0x174c]
jl 0x8ae82c
mov eax, dword [edi + 0x1750]
shl eax, cl
cmp ebx, eax
jg 0x8ae82c
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x130]
mov esi, dword [esp + 0x70]
movzx ebx, word [ebx + 0x1fa0]
add eax, eax
add eax, 1
movzx ecx, word [esi + 0x1fa2]
cmp dword [esi + 0x153c], 1
mov dword [esp + 0x29c], ebx
mov dword [esp + 0x298], eax
je 0x8b09ca
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x2c4]
mov ebx, dword [esp + 0x2c4]
mov edi, dword [esp + 0x2c0]
add ebx, dword [esi + 0x16dc]
add edi, dword [esi + 0x16e0]
test eax, eax
je 0x8b099e
mov ebp, ebx
sub ebp, dword [esi + 0x16bc]
mov dword [esp + 0x288], ebp
mov ebp, dword [esp + 0x2c0]
test ebp, ebp
je 0x8b0972
mov edx, dword [esp + 0x70]
mov ecx, edi
sub ecx, dword [edx + 0x16c0]
mov dword [esp + 0x284], ecx
mov eax, dword [esp + 0x298]
movzx ecx, byte [esp + 0x134]
mov edx, dword [esp + 0x298]
mov esi, dword [esp + 0x288]
and eax, edi
shl eax, cl
and edx, ebx
add eax, edx
mov dword [esp + 0x280], eax
mov eax, dword [esp + 0x284]
and eax, dword [esp + 0x298]
and dword [esp + 0x298], esi
mov esi, dword [esp + 0x130]
shl eax, cl
add eax, dword [esp + 0x298]
test esi, esi
mov dword [esp + 0x27c], eax
jne 0x8b0710
mov ebp, dword [esp + 0x70]
mov esi, ebx
sar esi, 1
mov edx, dword [ebp + 0x1814]
shl edx, 4
lea ebp, [esi + edx]
cmp ebp, 0xfffffff0
jl 0x8b01af
mov ebx, dword [esp + 0x70]
mov eax, edi
sar eax, 1
mov ecx, dword [ebx + 0x1818]
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x8b0193
mov edi, dword [esp + 0x70]
mov edi, dword [edi + 4]
cmp ebp, edi
mov dword [esp + 0x2bc], edi
jg 0x8b0177
mov ebp, dword [esp + 0x70]
mov ebp, dword [ebp + 8]
cmp ebx, ebp
mov dword [esp + 0x2b8], ebp
jg 0x8b0203
mov edi, dword [esp + 0x288]
sar edi, 1
lea ebp, [edi + edx]
cmp ebp, 0xfffffff0
jl 0x8b01e7
mov ebx, dword [esp + 0x284]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x8b013f
cmp dword [esp + 0x2bc], ebp
jl 0x8b015b
cmp dword [esp + 0x2b8], edx
jl 0x8b01cb
mov ecx, dword [esp + 0x70]
mov ebp, dword [esp + 0x2ac]
mov edx, dword [ecx + 0x17f0]
mov ecx, dword [esp + 0x2a4]
imul eax, ebp
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x280]
mov dword [esp + 0xc], 0x10
add esi, dword [ecx]
lea eax, [esi + eax]
mov esi, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x170c]
mov dword [esp], eax
call dword [edx + ebp*4]
mov eax, dword [esp + 0x2ac]
mov ecx, dword [esp + 0x2a4]
mov edx, dword [esi + 0x17f4]
mov dword [esp + 0xc], 0x10
imul ebx, eax
mov dword [esp + 8], eax
add edi, dword [ecx + 0x20]
lea eax, [edi + ebx]
mov ebx, dword [esp + 0x27c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x170c]
mov dword [esp], eax
call dword [edx + ebx*4]
mov esi, dword [esp + 0x2ac]
mov edi, dword [esp + 0x2a0]
mov dword [esp + 0x10], 0x10
mov ebp, dword [esp + 0x70]
mov dword [esp + 0xc], esi
mov eax, dword [edi]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x170c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call dword [esp + 0xfc]
mov dword [esp + 0x144], eax
mov ebp, dword [esp + 0xd0]
mov edi, dword [esp + 0xcc]
mov ecx, dword [esp + 0x144]
mov eax, dword [esp + 0x10c]
mov edx, dword [esp + 0xc8]
mov dword [edi], ebp
mov edi, dword [esp + 0xc0]
mov ebx, dword [esp + 0x6c]
mov dword [eax + edx], ecx
movzx ecx, byte [esp + 0x134]
mov esi, dword [edi]
mov ebp, dword [ebx]
mov edi, dword [esp + 0x120]
mov eax, esi
shl eax, cl
sub eax, dword [esp + 0x128]
lea ebx, [ebp - 1]
movzx edx, byte [eax + edi]
mov eax, ebx
shl eax, cl
sub eax, dword [esp + 0x124]
movzx eax, byte [eax + edi]
add edx, eax
mov eax, dword [esp + 0x144]
imul edx, dword [esp + 0x838]
add eax, edx
cmp dword [esp + 0x68], eax
jle 0x8ac74c
mov esi, dword [esp + 0x6c]
mov ebp, ebx
mov edi, dword [esp + 0xc0]
mov dword [esp + 0x68], eax
mov dword [esi], ebx
mov esi, dword [edi]
lea ecx, [ebp + 1]
cmp dword [esp + 0x110], ecx
mov dword [esp + 0xd4], ecx
jg 0x8b15f6
cmp dword [esp + 0x118], ecx
jl 0x8b15da
cmp dword [esp + 0x114], esi
jg 0x8b15be
cmp dword [esp + 0x11c], esi
jl 0x8b0fbe
mov edi, dword [esp + 0xd4]
lea eax, [edi + esi*8]
and eax, 0x3f
shl eax, 2
mov dword [esp + 0xd8], eax
add eax, dword [esp + 0x12c]
mov dword [esp + 0xdc], eax
mov edx, dword [esp + 0xdc]
mov eax, esi
shl eax, 0xb
add eax, edi
add eax, dword [esp + 0x138]
cmp dword [edx], eax
mov dword [esp + 0xe0], eax
je 0x8acba5
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x834]
mov ecx, dword [ecx + 0x17dc]
mov ebx, dword [ebx + 0x17e0]
shl eax, 4
mov dword [esp + 0x2f8], ecx
movzx ecx, byte [esp + 0x134]
mov dword [esp + 0x2f4], ebx
mov ebx, esi
shl edi, cl
mov dword [esp + 0x310], edi
mov edi, dword [esp + 0x70]
shl ebx, cl
mov dword [esp + 0x30c], ebx
lea edx, [edi + eax + 0x1790]
mov eax, dword [esp + 0x830]
lea ebp, [edx + 0xc]
mov dword [esp + 0x2f0], ebp
shl eax, 4
test byte [esp + 0x844], 4
lea ecx, [edi + eax + 0x1750]
lea eax, [ecx + 0xc]
mov dword [esp + 0x2ec], eax
je 0x8b021f
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [edi + 0x1744]
jl 0x8ae82c
mov eax, dword [edi + 0x1748]
movzx ecx, byte [esp + 0x134]
shl eax, cl
cmp dword [esp + 0x310], eax
jg 0x8ae82c
cmp dword [edi + 0x174c], esi
jg 0x8ae82c
mov eax, dword [edi + 0x1750]
shl eax, cl
cmp ebx, eax
jg 0x8ae82c
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x130]
mov esi, dword [esp + 0x70]
movzx ebx, word [ebx + 0x1fa0]
add eax, eax
add eax, 1
movzx ecx, word [esi + 0x1fa2]
cmp dword [esi + 0x153c], 1
mov dword [esp + 0x2e8], ebx
mov dword [esp + 0x2e4], eax
je 0x8b0ca8
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x310]
mov ebx, dword [esp + 0x310]
mov edi, dword [esp + 0x30c]
add ebx, dword [esi + 0x16dc]
add edi, dword [esi + 0x16e0]
test eax, eax
je 0x8b1006
mov ebp, ebx
sub ebp, dword [esi + 0x16bc]
mov dword [esp + 0x2d4], ebp
mov ebp, dword [esp + 0x30c]
test ebp, ebp
je 0x8b0fda
mov edx, dword [esp + 0x70]
mov ecx, edi
sub ecx, dword [edx + 0x16c0]
mov dword [esp + 0x2d0], ecx
mov eax, dword [esp + 0x2e4]
movzx ecx, byte [esp + 0x134]
mov edx, dword [esp + 0x2e4]
mov esi, dword [esp + 0x2d4]
and eax, edi
shl eax, cl
and edx, ebx
add eax, edx
mov dword [esp + 0x2cc], eax
mov eax, dword [esp + 0x2d0]
and eax, dword [esp + 0x2e4]
and dword [esp + 0x2e4], esi
mov esi, dword [esp + 0x130]
shl eax, cl
add eax, dword [esp + 0x2e4]
test esi, esi
mov dword [esp + 0x2c8], eax
jne 0x8b1086
mov ebp, dword [esp + 0x70]
mov esi, ebx
sar esi, 1
mov edx, dword [ebp + 0x1814]
shl edx, 4
lea ebp, [esi + edx]
cmp ebp, 0xfffffff0
jl 0x8b01af
mov ebx, dword [esp + 0x70]
mov eax, edi
sar eax, 1
mov ecx, dword [ebx + 0x1818]
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x8b0193
mov edi, dword [esp + 0x70]
mov edi, dword [edi + 4]
cmp ebp, edi
mov dword [esp + 0x308], edi
jg 0x8b0177
mov ebp, dword [esp + 0x70]
mov ebp, dword [ebp + 8]
cmp ebx, ebp
mov dword [esp + 0x304], ebp
jg 0x8b0203
mov edi, dword [esp + 0x2d4]
sar edi, 1
lea ebp, [edi + edx]
cmp ebp, 0xfffffff0
jl 0x8b01e7
mov ebx, dword [esp + 0x2d0]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x8b013f
cmp dword [esp + 0x308], ebp
jl 0x8b015b
cmp dword [esp + 0x304], edx
jl 0x8b01cb
mov ecx, dword [esp + 0x70]
mov ebp, dword [esp + 0x2f8]
mov edx, dword [ecx + 0x17f0]
mov ecx, dword [esp + 0x2f0]
imul eax, ebp
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x2cc]
mov dword [esp + 0xc], 0x10
add esi, dword [ecx]
lea eax, [esi + eax]
mov esi, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x170c]
mov dword [esp], eax
call dword [edx + ebp*4]
mov eax, dword [esp + 0x2f8]
mov ecx, dword [esp + 0x2f0]
mov edx, dword [esi + 0x17f4]
mov dword [esp + 0xc], 0x10
imul ebx, eax
mov dword [esp + 8], eax
add edi, dword [ecx + 0x20]
lea eax, [edi + ebx]
mov ebx, dword [esp + 0x2c8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x170c]
mov dword [esp], eax
call dword [edx + ebx*4]
mov esi, dword [esp + 0x2f8]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0x10], 0x10
mov ebp, dword [esp + 0x70]
mov dword [esp + 0xc], esi
mov eax, dword [edi]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x170c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call dword [esp + 0xfc]
mov dword [esp + 0x3fc], eax
mov ebp, dword [esp + 0xe0]
mov edi, dword [esp + 0xdc]
mov ecx, dword [esp + 0x3fc]
mov eax, dword [esp + 0x10c]
mov edx, dword [esp + 0xd8]
mov dword [edi], ebp
mov edi, dword [esp + 0xc0]
mov ebx, dword [esp + 0x6c]
mov dword [eax + edx], ecx
movzx ecx, byte [esp + 0x134]
mov esi, dword [edi]
mov ebp, dword [ebx]
mov edi, dword [esp + 0x120]
mov eax, esi
shl eax, cl
sub eax, dword [esp + 0x128]
lea ebx, [ebp + 1]
movzx edx, byte [eax + edi]
mov eax, ebx
shl eax, cl
sub eax, dword [esp + 0x124]
movzx eax, byte [eax + edi]
add edx, eax
mov eax, dword [esp + 0x3fc]
imul edx, dword [esp + 0x838]
add eax, edx
cmp dword [esp + 0x68], eax
jle 0x8acba5
mov esi, dword [esp + 0x6c]
mov ebp, ebx
mov edi, dword [esp + 0xc0]
mov dword [esp + 0x68], eax
mov dword [esi], ebx
mov esi, dword [edi]
cmp dword [esp + 0x110], ebp
jg 0x8b106a
cmp dword [esp + 0x118], ebp
jl 0x8b104e
lea ecx, [esi - 1]
cmp dword [esp + 0x114], ecx
mov dword [esp + 0xe4], ecx
jg 0x8b1032
cmp dword [esp + 0x11c], ecx
jl 0x8b0f86
lea eax, [ebp + ecx*8]
mov edi, dword [esp + 0x138]
and eax, 0x3f
shl eax, 2
mov dword [esp + 0xe8], eax
add eax, dword [esp + 0x12c]
lea edx, [ebp + edi]
mov dword [esp + 0xec], eax
mov ebx, dword [esp + 0xec]
mov eax, ecx
shl eax, 0xb
add eax, edx
mov dword [esp + 0xf0], eax
cmp dword [ebx], eax
je 0x8b03c1
mov esi, dword [esp + 0x70]
mov ebx, ebp
movzx ecx, byte [esp + 0x134]
mov eax, dword [esp + 0x834]
mov edi, dword [esp + 0x70]
mov esi, dword [esi + 0x17dc]
shl ebx, cl
shl eax, 4
mov dword [esp + 0x35c], ebx
mov ebx, dword [esp + 0xe4]
mov dword [esp + 0x344], esi
mov esi, dword [esp + 0x70]
mov edi, dword [edi + 0x17e0]
shl ebx, cl
lea edx, [esi + eax + 0x1790]
mov eax, dword [esp + 0x830]
mov dword [esp + 0x340], edi
lea edi, [edx + 0xc]
mov dword [esp + 0x358], ebx
mov dword [esp + 0x33c], edi
shl eax, 4
test byte [esp + 0x844], 4
lea ecx, [esi + eax + 0x1750]
lea eax, [ecx + 0xc]
mov dword [esp + 0x338], eax
je 0x8b03de
cmp dword [esi + 0x1744], ebp
jg 0x8ae82c
mov eax, dword [esi + 0x1748]
movzx ecx, byte [esp + 0x134]
shl eax, cl
cmp dword [esp + 0x35c], eax
jg 0x8ae82c
mov ebx, dword [esp + 0xe4]
cmp ebx, dword [esi + 0x174c]
jl 0x8ae82c
mov eax, dword [esi + 0x1750]
shl eax, cl
cmp dword [esp + 0x358], eax
jg 0x8ae82c
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x130]
mov esi, dword [esp + 0x70]
movzx ebx, word [ebx + 0x1fa0]
add eax, eax
add eax, 1
movzx ecx, word [esi + 0x1fa2]
cmp dword [esi + 0x153c], 1
mov dword [esp + 0x334], ebx
mov dword [esp + 0x330], eax
je 0x8b1874
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x35c]
mov ebx, dword [esp + 0x35c]
mov edi, dword [esp + 0x358]
add ebx, dword [esi + 0x16dc]
add edi, dword [esi + 0x16e0]
test eax, eax
je 0x8b1314
mov ebp, ebx
sub ebp, dword [esi + 0x16bc]
mov dword [esp + 0x320], ebp
mov ebp, dword [esp + 0x358]
test ebp, ebp
je 0x8b12e8
mov edx, dword [esp + 0x70]
mov ecx, edi
sub ecx, dword [edx + 0x16c0]
mov dword [esp + 0x31c], ecx
mov eax, dword [esp + 0x330]
movzx ecx, byte [esp + 0x134]
mov edx, dword [esp + 0x330]
mov esi, dword [esp + 0x320]
and eax, edi
shl eax, cl
and edx, ebx
add eax, edx
mov dword [esp + 0x318], eax
mov eax, dword [esp + 0x31c]
and eax, dword [esp + 0x330]
and dword [esp + 0x330], esi
mov esi, dword [esp + 0x130]
shl eax, cl
add eax, dword [esp + 0x330]
test esi, esi
mov dword [esp + 0x314], eax
jne 0x8b1340
mov ebp, dword [esp + 0x70]
mov esi, ebx
sar esi, 1
mov edx, dword [ebp + 0x1814]
shl edx, 4
lea ebp, [esi + edx]
cmp ebp, 0xfffffff0
jl 0x8b01af
mov ebx, dword [esp + 0x70]
mov eax, edi
sar eax, 1
mov ecx, dword [ebx + 0x1818]
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x8b0193
mov edi, dword [esp + 0x70]
mov edi, dword [edi + 4]
cmp ebp, edi
mov dword [esp + 0x354], edi
jg 0x8b0177
mov ebp, dword [esp + 0x70]
mov ebp, dword [ebp + 8]
cmp ebx, ebp
mov dword [esp + 0x350], ebp
jg 0x8b0203
mov edi, dword [esp + 0x320]
sar edi, 1
lea ebp, [edi + edx]
cmp ebp, 0xfffffff0
jl 0x8b01e7
mov ebx, dword [esp + 0x31c]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x8b013f
cmp dword [esp + 0x354], ebp
jl 0x8b015b
cmp dword [esp + 0x350], edx
jl 0x8b01cb
mov ecx, dword [esp + 0x70]
mov ebp, dword [esp + 0x344]
mov edx, dword [ecx + 0x17f0]
mov ecx, dword [esp + 0x33c]
imul eax, ebp
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x318]
mov dword [esp + 0xc], 0x10
add esi, dword [ecx]
lea eax, [esi + eax]
mov esi, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x170c]
mov dword [esp], eax
call dword [edx + ebp*4]
mov eax, dword [esp + 0x344]
mov ecx, dword [esp + 0x33c]
mov edx, dword [esi + 0x17f4]
mov dword [esp + 0xc], 0x10
imul ebx, eax
mov dword [esp + 8], eax
add edi, dword [ecx + 0x20]
lea eax, [edi + ebx]
mov ebx, dword [esp + 0x314]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x170c]
mov dword [esp], eax
call dword [edx + ebx*4]
mov esi, dword [esp + 0x344]
mov edi, dword [esp + 0x338]
mov dword [esp + 0x10], 0x10
mov ebp, dword [esp + 0x70]
mov dword [esp + 0xc], esi
mov eax, dword [edi]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x170c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call dword [esp + 0xfc]
mov dword [esp + 0x400], eax
mov ebp, dword [esp + 0xf0]
mov ecx, dword [esp + 0x400]
mov eax, dword [esp + 0x10c]
mov edx, dword [esp + 0xe8]
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0xec]
mov dword [edi], ebp
mov dword [eax + edx], ecx
mov ebp, dword [ebx]
mov ebx, dword [esi]
movzx ecx, byte [esp + 0x134]
mov esi, dword [esp + 0x120]
lea eax, [ebx - 1]
shl eax, cl
sub eax, dword [esp + 0x128]
movzx edx, byte [eax + esi]
mov eax, ebp
shl eax, cl
sub eax, dword [esp + 0x124]
movzx eax, byte [eax + esi]
add edx, eax
mov eax, dword [esp + 0x400]
imul edx, dword [esp + 0x838]
add eax, edx
cmp dword [esp + 0x68], eax
jle 0x8ad009
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x68], eax
mov ebx, dword [esi]
sub ebx, 1
mov dword [esi], ebx
mov ebp, dword [edi]
cmp dword [esp + 0x110], ebp
jg 0x8b1db0
cmp dword [esp + 0x118], ebp
jl 0x8b1d94
mov eax, dword [esp + 0x138]
lea esi, [ebx + 1]
lea edx, [ebp + eax]
mov eax, esi
shl eax, 0xb
add edx, eax
lea eax, [ebp + esi*8]
mov dword [esp + 0x148], edx
and eax, 0x3f
cmp dword [esp + 0x114], esi
jg 0x8b1d78
cmp dword [esp + 0x11c], esi
jl 0x8b1d5c
shl eax, 2
mov edx, dword [esp + 0x148]
mov dword [esp + 0xf4], eax
add eax, dword [esp + 0x12c]
cmp dword [eax], edx
mov dword [esp + 0xf8], eax
je 0x8ad45b
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x70]
mov ecx, dword [ecx + 0x17dc]
mov ebx, dword [ebx + 0x17e0]
shl dword [esp + 0x834], 4
mov eax, dword [esp + 0x834]
mov dword [esp + 0x390], ecx
movzx ecx, byte [esp + 0x134]
mov dword [esp + 0x38c], ebx
mov ebx, ebp
shl dword [esp + 0x830], 4
lea edx, [edi + eax + 0x1790]
shl ebx, cl
mov dword [esp + 0x3a8], ebx
mov ebx, esi
shl ebx, cl
mov dword [esp + 0x3a4], ebx
mov ebx, dword [esp + 0x830]
lea ecx, [edx + 0xc]
test byte [esp + 0x844], 4
mov dword [esp + 0x388], ecx
lea ecx, [edi + ebx + 0x1750]
lea edi, [ecx + 0xc]
mov dword [esp + 0x384], edi
je 0x8b057c
mov eax, dword [esp + 0x70]
cmp ebp, dword [eax + 0x1744]
jl 0x8ae82c
mov eax, dword [eax + 0x1748]
movzx ecx, byte [esp + 0x134]
shl eax, cl
cmp dword [esp + 0x3a8], eax
jg 0x8ae82c
mov ebx, dword [esp + 0x70]
cmp esi, dword [ebx + 0x174c]
jl 0x8ae82c
mov eax, dword [ebx + 0x1750]
shl eax, cl
cmp dword [esp + 0x3a4], eax
jg 0x8ae82c
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x130]
mov esi, dword [esp + 0x70]
movzx ebx, word [ebx + 0x1fa0]
add eax, eax
add eax, 1
movzx ecx, word [esi + 0x1fa2]
cmp dword [esi + 0x153c], 1
mov dword [esp + 0x380], ebx
mov dword [esp + 0x37c], eax
je 0x8b1a7e
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x3a8]
mov ebx, dword [esp + 0x3a8]
mov edi, dword [esp + 0x3a4]
add ebx, dword [esi + 0x16dc]
add edi, dword [esi + 0x16e0]
test eax, eax
je 0x8b1df8
mov ebp, ebx
sub ebp, dword [esi + 0x16bc]
mov dword [esp + 0x36c], ebp
mov eax, dword [esp + 0x3a4]
test eax, eax
je 0x8b1dcc
mov edx, dword [esp + 0x70]
mov ecx, edi
sub ecx, dword [edx + 0x16c0]
mov dword [esp + 0x368], ecx
mov eax, dword [esp + 0x37c]
movzx ecx, byte [esp + 0x134]
mov edx, dword [esp + 0x37c]
mov esi, dword [esp + 0x36c]
and eax, edi
shl eax, cl
and edx, ebx
add eax, edx
mov dword [esp + 0x364], eax
mov eax, dword [esp + 0x368]
and eax, dword [esp + 0x37c]
and dword [esp + 0x37c], esi
shl eax, cl
add eax, dword [esp + 0x37c]
mov dword [esp + 0x360], eax
mov eax, dword [esp + 0x130]
test eax, eax
jne 0x8b1612
mov ebp, dword [esp + 0x70]
mov esi, ebx
sar esi, 1
mov edx, dword [ebp + 0x1814]
shl edx, 4
lea ebp, [esi + edx]
cmp ebp, 0xfffffff0
jl 0x8b01af
mov ebx, dword [esp + 0x70]
mov eax, edi
sar eax, 1
mov ecx, dword [ebx + 0x1818]
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x8b0193
mov edi, dword [esp + 0x70]
mov edi, dword [edi + 4]
cmp ebp, edi
mov dword [esp + 0x3a0], edi
jg 0x8b0177
mov ebp, dword [esp + 0x70]
mov ebp, dword [ebp + 8]
cmp ebx, ebp
mov dword [esp + 0x39c], ebp
jg 0x8b0203
mov edi, dword [esp + 0x36c]
sar edi, 1
lea ebp, [edi + edx]
cmp ebp, 0xfffffff0
jl 0x8b01e7
mov ebx, dword [esp + 0x368]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x8b013f
cmp dword [esp + 0x3a0], ebp
jl 0x8b015b
cmp dword [esp + 0x39c], edx
jl 0x8b01cb
mov ecx, dword [esp + 0x70]
mov ebp, dword [esp + 0x390]
mov edx, dword [ecx + 0x17f0]
mov ecx, dword [esp + 0x388]
imul eax, ebp
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x364]
mov dword [esp + 0xc], 0x10
add esi, dword [ecx]
lea eax, [esi + eax]
mov esi, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x170c]
mov dword [esp], eax
call dword [edx + ebp*4]
mov eax, dword [esp + 0x390]
mov ecx, dword [esp + 0x388]
mov edx, dword [esi + 0x17f4]
mov dword [esp + 0xc], 0x10
imul ebx, eax
mov dword [esp + 8], eax
add edi, dword [ecx + 0x20]
lea eax, [edi + ebx]
mov ebx, dword [esp + 0x360]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x170c]
mov dword [esp], eax
call dword [edx + ebx*4]
mov esi, dword [esp + 0x390]
mov edi, dword [esp + 0x384]
mov dword [esp + 0x10], 0x10
mov ebp, dword [esp + 0x70]
mov dword [esp + 0xc], esi
mov eax, dword [edi]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x170c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call dword [esp + 0xfc]
mov dword [esp + 0x404], eax
mov edi, dword [esp + 0xf8]
mov ebp, dword [esp + 0x148]
mov ecx, dword [esp + 0x404]
mov eax, dword [esp + 0x10c]
mov edx, dword [esp + 0xf4]
mov dword [edi], ebp
mov edi, dword [esp + 0xc0]
mov esi, dword [esp + 0x6c]
mov dword [eax + edx], ecx
movzx ecx, byte [esp + 0x134]
mov eax, dword [edi]
mov ebx, dword [esi]
mov esi, dword [esp + 0x120]
add eax, 1
shl eax, cl
sub eax, dword [esp + 0x128]
movzx edx, byte [eax + esi]
mov eax, ebx
shl eax, cl
sub eax, dword [esp + 0x124]
movzx eax, byte [eax + esi]
add edx, eax
mov eax, dword [esp + 0x404]
imul edx, dword [esp + 0x838]
add eax, edx
cmp dword [esp + 0x68], eax
jle 0x8ad45b
add dword [edi], 1
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x68]
add esp, 0x81c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x13c]
add eax, 1
mov dword [esp + 0x8c], eax
add eax, dword [esp + 0x7c]
and eax, 0x3f
shl eax, 2
mov dword [esp + 0x90], eax
add eax, dword [esp + 0x12c]
mov dword [esp + 0x94], eax
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x74]
add eax, dword [esp + 0x8c]
add eax, dword [esp + 0x138]
cmp dword [edx], eax
mov dword [esp + 0x98], eax
je 0x8ad8f8
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x830]
mov edi, dword [esp + 0x70]
mov ecx, dword [ecx + 0x17dc]
mov ebx, dword [ebx + 0x17e0]
shl eax, 4
mov edx, dword [esp + 0x70]
add edx, dword [esp + 0x24]
mov dword [esp + 0x1d4], ecx
movzx ecx, byte [esp + 0x134]
mov dword [esp + 0x1d0], ebx
mov ebx, dword [esp + 0x8c]
lea esi, [edx + 0xc]
mov dword [esp + 0x1cc], esi
shl ebx, cl
mov dword [esp + 0x1e8], ebx
mov ebx, dword [esp + 0x140]
shl ebx, cl
lea ecx, [edi + eax + 0x1750]
mov eax, dword [esp + 0x198]
lea ebp, [ecx + 0xc]
mov dword [esp + 0x1e4], ebx
mov dword [esp + 0x1c8], ebp
test eax, eax
je 0x8ae666
mov eax, dword [esp + 0x8c]
cmp eax, dword [edi + 0x1744]
jl 0x8ae82c
mov eax, dword [edi + 0x1748]
movzx ecx, byte [esp + 0x134]
shl eax, cl
cmp dword [esp + 0x1e8], eax
jg 0x8ae82c
mov ebx, dword [esp + 0x140]
cmp ebx, dword [edi + 0x174c]
jl 0x8ae82c
mov eax, dword [edi + 0x1750]
shl eax, cl
cmp dword [esp + 0x1e4], eax
jg 0x8ae82c
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x70]
movzx ebx, word [ebx + 0x1fa0]
cmp dword [esi + 0x153c], 1
movzx edi, word [esi + 0x1fa2]
mov dword [esp + 0x1c4], ebx
je 0x8aeaa4
mov ebp, dword [esp + 0x1e8]
add ebp, dword [esi + 0x16dc]
mov eax, dword [esp + 0x1e8]
mov esi, dword [esp + 0x70]
mov ebx, dword [esp + 0x1e4]
add ebx, dword [esi + 0x16e0]
test eax, eax
je 0x8ae32c
mov ecx, dword [esp + 0x1e4]
mov eax, ebp
sub eax, dword [esi + 0x16bc]
test ecx, ecx
mov dword [esp + 0x1b4], eax
je 0x8ae35e
mov edx, dword [esp + 0x70]
mov ecx, ebx
sub ecx, dword [edx + 0x16c0]
mov dword [esp + 0x1b0], ecx
mov eax, dword [esp + 0x16c]
movzx ecx, byte [esp + 0x134]
mov edx, dword [esp + 0x16c]
and eax, ebx
shl eax, cl
and edx, ebp
add eax, edx
mov edx, dword [esp + 0x1b4]
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0x1b0]
and eax, dword [esp + 0x16c]
and edx, dword [esp + 0x16c]
shl eax, cl
add eax, edx
mov edx, dword [esp + 0x130]
mov dword [esp + 0x1a8], eax
test edx, edx
jne 0x8aef9c
mov edx, dword [esp + 0x70]
sar ebp, 1
mov ecx, dword [edx + 0x1814]
shl ecx, 4
lea esi, [ebp + ecx]
cmp esi, 0xfffffff0
jl 0x8b01af
mov eax, ebx
mov ebx, dword [esp + 0x70]
sar eax, 1
mov edx, dword [ebx + 0x1818]
shl edx, 4
lea ebx, [eax + edx]
cmp ebx, 0xfffffff0
jl 0x8b0193
mov edi, dword [esp + 0x70]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x1e0], edi
jg 0x8b0177
mov edi, dword [esp + 0x70]
mov esi, dword [edi + 8]
cmp ebx, esi
jg 0x8b0203
mov edi, dword [esp + 0x1b4]
sar edi, 1
lea ecx, [edi + ecx]
cmp ecx, 0xfffffff0
jl 0x8b01e7
mov ebx, dword [esp + 0x1b0]
sar ebx, 1
lea edx, [ebx + edx]
cmp edx, 0xfffffff0
jl 0x8b013f
cmp dword [esp + 0x1e0], ecx
jl 0x8b015b
cmp esi, edx
jl 0x8b01cb
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x1d4]
mov edx, dword [ecx + 0x17f0]
mov ecx, dword [esp + 0x1cc]
imul eax, esi
mov dword [esp + 8], esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0xc], 0x10
add ebp, dword [ecx]
lea eax, [ebp + eax]
mov ebp, dword [esp + 0x1ac]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x170c]
mov dword [esp], eax
call dword [edx + ebp*4]
mov eax, dword [esp + 0x1d4]
mov ecx, dword [esp + 0x1cc]
mov edx, dword [esi + 0x17f4]
mov dword [esp + 0xc], 0x10
imul ebx, eax
mov dword [esp + 8], eax
add edi, dword [ecx + 0x20]
lea eax, [edi + ebx]
mov ebx, dword [esp + 0x1a8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x170c]
mov dword [esp], eax
call dword [edx + ebx*4]
mov esi, dword [esp + 0x1d4]
mov edi, dword [esp + 0x1c8]
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], esi
mov eax, dword [edi]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x170c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call dword [esp + 0xfc]
mov ebp, eax
mov ebx, dword [esp + 0x98]
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x128]
sub dword [esp + 0x1e4], eax
mov esi, dword [esp + 0x10c]
mov dword [ecx], ebx
mov edx, dword [esp + 0x1e4]
mov ecx, dword [esp + 0x120]
mov edi, dword [esp + 0x90]
mov ebx, dword [esp + 0x124]
mov dword [esi + edi], ebp
movzx eax, byte [edx + ecx]
sub dword [esp + 0x1e8], ebx
mov esi, dword [esp + 0x1e8]
movzx edx, byte [esi + ecx]
add eax, edx
imul eax, dword [esp + 0x838]
lea ebx, [ebp + eax]
mov eax, dword [esp + 0x104]
shl eax, 4
cmp ebx, dword [esp + eax + 0x40c]
jge 0x8ad8f8
xor esi, esi
cmp dword [esp + 0x41c], ebx
lea ecx, [esp + 0x41c]
lea edx, [esp + 0x42c]
jg 0x8ad8a1
nop
add esi, 1
mov eax, esi
shl eax, 4
cmp dword [esp + eax + 0x41c], ebx
jle 0x8ad880
lea ecx, [esp + 0x41c]
add ecx, eax
lea edx, [esp + eax + 0x42c]
mov eax, dword [esp + 0x104]
mov dword [esp + 4], ecx
mov dword [esp], edx
sub eax, esi
shl eax, 4
sub eax, 0x10
mov dword [esp + 8], eax
call sub.msvcrt.dll_memmove
mov edi, dword [esp + 0x8c]
mov eax, esi
mov ebp, dword [esp + 0x140]
shl eax, 4
mov dword [esp + eax + 0x428], 0
mov dword [esp + eax + 0x41c], ebx
mov dword [esp + eax + 0x420], edi
mov dword [esp + eax + 0x424], ebp
jmp 0x8abd63
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x13c]
add edx, dword [esp + 0x138]
sub eax, 1
mov dword [esp + 0x9c], eax
lea eax, [ecx + eax*8]
and eax, 0x3f
shl eax, 2
mov dword [esp + 0xa4], eax
add eax, dword [esp + 0x12c]
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0xa8]
shl eax, 0xb
add eax, edx
cmp dword [ebx], eax
mov dword [esp + 0xac], eax
je 0x8add99
mov edi, dword [esp + 0x70]
mov ebx, ecx
movzx ecx, byte [esp + 0x134]
mov eax, dword [esp + 0x830]
mov esi, dword [esp + 0x70]
mov edi, dword [edi + 0x17e0]
shl ebx, cl
mov edx, dword [esp + 0x70]
mov dword [esp + 0x230], ebx
mov ebx, dword [esp + 0x9c]
shl eax, 4
mov esi, dword [esi + 0x17dc]
mov dword [esp + 0x218], edi
mov edi, dword [esp + 0x70]
add edx, dword [esp + 0x24]
shl ebx, cl
mov dword [esp + 0x21c], esi
lea ecx, [edi + eax + 0x1750]
mov eax, dword [esp + 0x198]
lea esi, [edx + 0xc]
lea ebp, [ecx + 0xc]
mov dword [esp + 0x22c], ebx
test eax, eax
mov dword [esp + 0x214], esi
mov dword [esp + 0x210], ebp
je 0x8aed82
mov eax, dword [esp + 0x13c]
cmp eax, dword [edi + 0x1744]
jl 0x8ae82c
mov eax, dword [edi + 0x1748]
movzx ecx, byte [esp + 0x134]
shl eax, cl
cmp dword [esp + 0x230], eax
jg 0x8ae82c
mov ebx, dword [esp + 0x9c]
cmp ebx, dword [edi + 0x174c]
jl 0x8ae82c
mov eax, dword [edi + 0x1750]
shl eax, cl
cmp dword [esp + 0x22c], eax
jg 0x8ae82c
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x70]
movzx ebx, word [ebx + 0x1fa0]
cmp dword [esi + 0x153c], 1
movzx edi, word [esi + 0x1fa2]
mov dword [esp + 0x20c], ebx
je 0x8af1f8
mov ebp, dword [esp + 0x230]
add ebp, dword [esi + 0x16dc]
mov eax, dword [esp + 0x230]
mov esi, dword [esp + 0x70]
mov ebx, dword [esp + 0x22c]
add ebx, dword [esi + 0x16e0]
test eax, eax
je 0x8aef74
mov eax, ebp
sub eax, dword [esi + 0x16bc]
mov dword [esp + 0x1fc], eax
mov esi, dword [esp + 0x22c]
test esi, esi
je 0x8aef48
mov edx, dword [esp + 0x70]
mov ecx, ebx
sub ecx, dword [edx + 0x16c0]
mov dword [esp + 0x1f8], ecx
mov eax, dword [esp + 0x16c]
movzx ecx, byte [esp + 0x134]
mov edx, dword [esp + 0x16c]
and eax, ebx
shl eax, cl
and edx, ebp
add eax, edx
mov edx, dword [esp + 0x1fc]
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0x1f8]
and eax, dword [esp + 0x16c]
and edx, dword [esp + 0x16c]
shl eax, cl
mov ecx, dword [esp + 0x130]
add eax, edx
mov dword [esp + 0x1f0], eax
test ecx, ecx
jne 0x8af68e
mov edx, dword [esp + 0x70]
mov esi, ebp
sar esi, 1
mov ecx, dword [edx + 0x1814]
shl ecx, 4
lea edi, [esi + ecx]
cmp edi, 0xfffffff0
jl 0x8b01af
mov eax, ebx
mov ebx, dword [esp + 0x70]
sar eax, 1
mov edx, dword [ebx + 0x1818]
shl edx, 4
lea ebx, [eax + edx]
cmp ebx, 0xfffffff0
jl 0x8b0193
mov ebp, dword [esp + 0x70]
mov ebp, dword [ebp + 4]
cmp edi, ebp
mov dword [esp + 0x228], ebp
jg 0x8b0177
mov edi, dword [esp + 0x70]
mov ebp, dword [edi + 8]
cmp ebx, ebp
jg 0x8b0203
mov edi, dword [esp + 0x1fc]
sar edi, 1
lea ecx, [edi + ecx]
cmp ecx, 0xfffffff0
jl 0x8b01e7
mov ebx, dword [esp + 0x1f8]
sar ebx, 1
lea edx, [ebx + edx]
cmp edx, 0xfffffff0
jl 0x8b013f
cmp dword [esp + 0x228], ecx
jl 0x8b015b
cmp ebp, edx
jl 0x8b01cb
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x21c]
mov edx, dword [ebp + 0x17f0]
mov ebp, dword [esp + 0x214]
imul eax, ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xc], 0x10
add esi, dword [ebp]
lea eax, [esi + eax]
mov esi, dword [esp + 0x1f4]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
mov dword [esp], eax
call dword [edx + esi*4]
mov eax, dword [esp + 0x21c]
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x214]
imul ebx, eax
mov edx, dword [ebp + 0x17f4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x10
add edi, dword [ecx + 0x20]
lea eax, [edi + ebx]
mov ebx, dword [esp + 0x1f0]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x170c]
mov dword [esp], eax
call dword [edx + ebx*4]
mov esi, dword [esp + 0x21c]
mov edi, dword [esp + 0x210]
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], esi
mov eax, dword [edi]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x170c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call dword [esp + 0xfc]
mov ebp, eax
mov ebx, dword [esp + 0xac]
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0x128]
sub dword [esp + 0x22c], eax
mov esi, dword [esp + 0x10c]
mov dword [ecx], ebx
mov edx, dword [esp + 0x22c]
mov ecx, dword [esp + 0x120]
mov edi, dword [esp + 0xa4]
mov ebx, dword [esp + 0x124]
mov dword [esi + edi], ebp
movzx eax, byte [edx + ecx]
sub dword [esp + 0x230], ebx
mov esi, dword [esp + 0x230]
movzx edx, byte [esi + ecx]
add eax, edx
imul eax, dword [esp + 0x838]
lea ebx, [ebp + eax]
mov eax, dword [esp + 0x104]
shl eax, 4
cmp ebx, dword [esp + eax + 0x40c]
jge 0x8add99
xor esi, esi
cmp dword [esp + 0x41c], ebx
lea ecx, [esp + 0x41c]
lea edx, [esp + 0x42c]
jg 0x8add42
add esi, 1
mov eax, esi
shl eax, 4
cmp dword [esp + eax + 0x41c], ebx
jle 0x8add21
lea ecx, [esp + 0x41c]
add ecx, eax
lea edx, [esp + eax + 0x42c]
mov eax, dword [esp + 0x104]
mov dword [esp + 4], ecx
mov dword [esp], edx
sub eax, esi
shl eax, 4
sub eax, 0x10
mov dword [esp + 8], eax
call sub.msvcrt.dll_memmove
mov edi, dword [esp + 0x13c]
mov eax, esi
mov ebp, dword [esp + 0x9c]
shl eax, 4
mov dword [esp + eax + 0x428], 0
mov dword [esp + eax + 0x41c], ebx
mov dword [esp + eax + 0x420], edi
mov dword [esp + eax + 0x424], ebp
jmp 0x8abd63
mov eax, dword [esp + 0x140]
mov edx, dword [esp + 0x13c]
add eax, 1
mov dword [esp + 0xb0], eax
lea eax, [edx + eax*8]
and eax, 0x3f
shl eax, 2
mov dword [esp + 0xb4], eax
add eax, dword [esp + 0x12c]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb8]
shl eax, 0xb
add eax, dword [esp + 0xa0]
cmp dword [ecx], eax
mov dword [esp + 0xbc], eax
je 0x8ac27a
mov ebx, dword [esp + 0x70]
movzx ecx, byte [esp + 0x134]
mov eax, dword [esp + 0x830]
mov esi, dword [esp + 0x70]
mov ebx, dword [ebx + 0x17dc]
mov edi, dword [esp + 0x70]
shl edx, cl
shl eax, 4
mov esi, dword [esi + 0x17e0]
mov dword [esp + 0x260], ebx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x278], edx
mov edx, dword [esp + 0x70]
add edx, dword [esp + 0x24]
mov dword [esp + 0x25c], esi
shl ebx, cl
lea ecx, [edi + eax + 0x1750]
mov eax, dword [esp + 0x198]
lea esi, [edx + 0xc]
lea ebp, [ecx + 0xc]
mov dword [esp + 0x274], ebx
test eax, eax
mov dword [esp + 0x258], esi
mov dword [esp + 0x254], ebp
je 0x8af3b7
mov eax, dword [esp + 0x13c]
cmp eax, dword [edi + 0x1744]
jl 0x8ae82c
mov eax, dword [edi + 0x1748]
movzx ecx, byte [esp + 0x134]
shl eax, cl
cmp dword [esp + 0x278], eax
jg 0x8ae82c
mov ebx, dword [esp + 0xb0]
cmp ebx, dword [edi + 0x174c]
jl 0x8ae82c
mov eax, dword [edi + 0x1750]
shl eax, cl
cmp dword [esp + 0x274], eax
jg 0x8ae82c
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x70]
movzx ebx, word [ebx + 0x1fa0]
cmp dword [esi + 0x153c], 1
movzx ebp, word [esi + 0x1fa2]
mov dword [esp + 0x250], ebx
je 0x8af8ea
mov edi, dword [esp + 0x278]
add edi, dword [esi + 0x16dc]
mov eax, dword [esp + 0x278]
mov esi, dword [esp + 0x70]
mov ebx, dword [esp + 0x274]
add ebx, dword [esi + 0x16e0]
test eax, eax
je 0x8af51b
mov eax, edi
sub eax, dword [esi + 0x16bc]
mov dword [esp + 0x240], eax
mov eax, dword [esp + 0x274]
test eax, eax
je 0x8af54d
mov edx, dword [esp + 0x70]
mov ecx, ebx
sub ecx, dword [edx + 0x16c0]
mov dword [esp + 0x23c], ecx
mov eax, dword [esp + 0x16c]
movzx ecx, byte [esp + 0x134]
mov edx, dword [esp + 0x16c]
mov esi, dword [esp + 0x130]
and eax, ebx
shl eax, cl
and edx, edi
add eax, edx
mov edx, dword [esp + 0x240]
mov dword [esp + 0x238], eax
mov eax, dword [esp + 0x23c]
and eax, dword [esp + 0x16c]
and edx, dword [esp + 0x16c]
shl eax, cl
add eax, edx
test esi, esi
mov dword [esp + 0x234], eax
jne 0x8afbc8
mov eax, dword [esp + 0x70]
mov esi, edi
sar esi, 1
mov ecx, dword [eax + 0x1814]
shl ecx, 4
lea edi, [esi + ecx]
cmp edi, 0xfffffff0
jl 0x8b01af
mov eax, ebx
mov ebx, dword [esp + 0x70]
sar eax, 1
mov edx, dword [ebx + 0x1818]
shl edx, 4
lea ebp, [eax + edx]
cmp ebp, 0xfffffff0
mov dword [esp + 0x1c], ebp
jl 0x8b0193
mov ebp, dword [ebx + 4]
cmp edi, ebp
jg 0x8b0177
mov edi, dword [ebx + 8]
cmp dword [esp + 0x1c], edi
mov dword [esp + 0x270], edi
jg 0x8b0203
mov edi, dword [esp + 0x240]
sar edi, 1
lea ecx, [edi + ecx]
cmp ecx, 0xfffffff0
jl 0x8b01e7
mov ebx, dword [esp + 0x23c]
sar ebx, 1
lea edx, [ebx + edx]
cmp edx, 0xfffffff0
jl 0x8b013f
cmp ebp, ecx
jl 0x8b015b
cmp dword [esp + 0x270], edx
jl 0x8b01cb
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x260]
mov edx, dword [ebp + 0x17f0]
mov ebp, dword [esp + 0x258]
imul eax, ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xc], 0x10
add esi, dword [ebp]
lea eax, [esi + eax]
mov esi, dword [esp + 0x238]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
mov dword [esp], eax
call dword [edx + esi*4]
mov eax, dword [esp + 0x260]
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x258]
imul ebx, eax
mov edx, dword [ebp + 0x17f4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x10
add edi, dword [ecx + 0x20]
lea eax, [edi + ebx]
mov ebx, dword [esp + 0x234]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x170c]
mov dword [esp], eax
call dword [edx + ebx*4]
mov esi, dword [esp + 0x260]
mov edi, dword [esp + 0x254]
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], esi
mov eax, dword [edi]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x170c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call dword [esp + 0xfc]
mov ebp, eax
jmp 0x8af40b
mov eax, dword [esp + 0x840]
mov esi, edi
mov ebx, dword [esp + 0x184]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], ebx
add eax, dword [edx + 0xc]
mov edx, ebx
imul edx, dword [esp + 0x140]
add eax, edx
mov dword [esp + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [esp + 0xfc]
mov ebp, eax
mov eax, dword [esp + 0x17c]
test eax, eax
je 0x8ac16d
mov ebx, dword [esp + 0x140]
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x184]
mov edx, dword [esp + 0x840]
and ebx, 1
mov ecx, dword [esp + 0x190]
and eax, 1
lea ebx, [eax + ebx*2]
mov eax, dword [esi + 0x170c]
sar edx, 1
mov esi, dword [esp + 0x140]
shl edi, 4
mov dword [esp + 0x18c], edx
lea ebx, [ecx + ebx*4]
mov ecx, dword [esp + 0x18c]
add edi, eax
mov eax, dword [esp + 0x70]
mov edx, ebx
mov dword [esp + 0x14c], edi
mov edi, dword [esp + 0x78]
sar esi, 1
imul esi, dword [esp + 0x180]
add edx, dword [eax + 0x17f0]
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x180]
sar edi, 1
mov ecx, dword [esp + 0x178]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 4]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14c]
mov dword [esp], eax
call dword [edx + 0x10]
mov edx, dword [esp + 0x14c]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x18c]
add edx, 8
add ebx, dword [ecx + 0x17f0]
mov dword [esp + 0x188], edx
mov ecx, dword [esp + 0x178]
mov edx, dword [esp + 0x180]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
add edi, dword [ecx + 8]
add esi, edi
mov dword [esp + 4], esi
mov esi, dword [esp + 0x188]
mov dword [esp], esi
call dword [ebx + 0x10]
mov edi, dword [esp + 0x18c]
mov eax, dword [esp + 0x180]
mov edx, dword [esp + 0x174]
mov ecx, dword [esp + 0x14c]
mov dword [esp + 0x10], edi
mov ebx, dword [esp + 0x70]
mov dword [esp + 0xc], eax
mov eax, dword [edx + 4]
mov dword [esp + 4], ecx
mov dword [esp], ebx
mov dword [esp + 8], eax
call dword [esp + 0x100]
mov esi, dword [esp + 0x180]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x174]
mov edx, dword [esp + 0x70]
mov dword [esp + 0xc], esi
mov ebx, eax
mov eax, dword [edi + 8]
mov dword [esp], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 4], eax
call dword [esp + 0x100]
lea eax, [ebx + eax]
add ebp, eax
jmp 0x8ac16d
mov esi, dword [esp + 0x70]
sub edi, dword [esp + 0x170]
imul edi, dword [esi + 0x16c0]
mov edx, edi
mov eax, edi
sar edx, 0x1f
idiv dword [esp + 0x170]
mov dword [esp + 0x158], eax
jmp 0x8abfb3
mov edx, edi
sub edx, dword [esp + 0x170]
imul edx, dword [esi + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x170]
mov dword [esp + 0x15c], eax
jmp 0x8abf91
mov edx, edi
mov ecx, dword [esp + 0x1e4]
sub edx, dword [esp + 0x1c4]
imul edx, dword [esi + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x1c4]
test ecx, ecx
mov dword [esp + 0x1b4], eax
jne 0x8ad619
mov esi, dword [esp + 0x70]
sub edi, dword [esp + 0x1c4]
imul edi, dword [esi + 0x16c0]
mov edx, edi
mov eax, edi
sar edx, 0x1f
idiv dword [esp + 0x1c4]
mov dword [esp + 0x1b0], eax
jmp 0x8ad62c
mov ebp, dword [esp + 0x184]
add edx, 0x2c
sub edi, ebx
mov eax, dword [esp + 0x130]
mov dword [esp + 0x3d4], edx
mov dword [esp + 0x168], 0
shl ebp, 3
add eax, 4
mov dword [esp + 0x3d0], ebp
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0x168]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x1a0]
mov esi, dword [esp + 0x1a0]
mov edi, dword [esp + 0x19c]
add esi, dword [ecx + edx*8 + 0x16dc]
add edi, dword [ecx + edx*8 + 0x16e0]
test eax, eax
je 0x8ae548
mov eax, dword [esp + 0x19c]
mov ebx, esi
sub ebx, dword [ecx + edx*8 + 0x16bc]
and edx, 1
mov dword [esp + 0x418], edx
test eax, eax
mov dword [esp + 0x164], ebx
je 0x8ae596
mov edx, dword [esp + 0x168]
mov ebp, edi
mov ecx, dword [esp + 0x70]
mov ebx, edx
sub ebp, dword [ecx + edx*8 + 0x16c0]
sar ebx, 1
mov eax, dword [esp + 0x16c]
movzx ecx, byte [esp + 0x134]
mov edx, dword [esp + 0x16c]
imul ebx, dword [esp + 0x3d0]
and eax, edi
shl eax, cl
and edx, esi
add eax, edx
mov edx, dword [esp + 0x164]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x16c]
and edx, dword [esp + 0x16c]
and eax, ebp
shl eax, cl
add eax, edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x418]
lea ebx, [ebx + eax*8]
mov eax, dword [esp + 0x130]
add ebx, dword [edx + 0x170c]
test eax, eax
je 0x8ae5d2
mov eax, dword [esp + 0x184]
sar edi, 2
mov ecx, dword [esp + 0x178]
sar esi, 2
mov edx, dword [edx + 0x17f8]
sar ebp, 2
imul edi, eax
mov dword [esp + 8], eax
add esi, dword [ecx]
mov dword [esp], ebx
lea eax, [esi + edi]
mov esi, dword [esp + 0x20]
mov dword [esp + 4], eax
call dword [edx + esi*4 + 0x40]
mov eax, dword [esp + 0x184]
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x3d4]
sar dword [esp + 0x164], 2
imul ebp, eax
mov edx, dword [edi + 0x17fc]
mov dword [esp + 8], eax
mov ecx, dword [ecx]
add dword [esp + 0x164], ecx
mov eax, dword [esp + 0x164]
mov dword [esp], ebx
mov ebx, dword [esp + 0x160]
add eax, ebp
mov dword [esp + 4], eax
call dword [edx + ebx*4 + 0x40]
add dword [esp + 0x168], 1
cmp dword [esp + 0x168], 4
jne 0x8ae3c4
jmp 0x8ac133
mov ebp, edx
mov eax, ecx
mov edx, dword [esp + 0x28]
and ebp, 1
movzx ecx, byte [esp + 0x2c]
mov ebx, ebp
mov dword [esp + 0x418], ebp
mov ebp, dword [esp + 0x168]
shl ebx, cl
imul edx, dword [eax + ebp*8 + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x170]
add ebx, eax
mov eax, dword [esp + 0x19c]
mov dword [esp + 0x164], ebx
test eax, eax
jne 0x8ae423
mov ebx, dword [esp + 0x168]
movzx ecx, byte [esp + 0x2c]
mov eax, dword [esp + 0x168]
mov edx, dword [esp + 0x28]
sar ebx, 1
mov ebp, ebx
shl ebp, cl
mov ecx, dword [esp + 0x70]
imul edx, dword [ecx + eax*8 + 0x16c0]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x170]
add ebp, eax
jmp 0x8ae43b
mov ecx, dword [esp + 0x184]
sar edi, 1
mov eax, dword [esp + 0x178]
sar esi, 1
mov edx, dword [edx + 0x17f0]
sar ebp, 1
mov dword [esp + 0xc], 8
imul edi, ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
add esi, dword [eax]
mov dword [esp], ebx
lea eax, [esi + edi]
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
mov edi, dword [esp + 0x184]
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x3d4]
sar dword [esp + 0x164], 1
imul ebp, edi
mov ecx, dword [esp + 0x160]
mov edx, dword [esi + 0x17f4]
mov dword [esp + 0xc], 8
mov dword [esp + 8], edi
mov eax, dword [eax]
add dword [esp + 0x164], eax
mov eax, dword [esp + 0x164]
mov dword [esp], ebx
add eax, ebp
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
jmp 0x8ae52d
mov eax, dword [esp + 0x840]
mov esi, edi
mov ebx, dword [esp + 0x1d4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xc], ebx
add eax, dword [edx + 0xc]
mov edx, ebx
imul edx, dword [esp + 0x140]
add eax, edx
mov dword [esp + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [esp + 0xfc]
mov ebp, eax
mov eax, dword [esp + 0x17c]
test eax, eax
je 0x8ad7e6
mov ebx, dword [esp + 0x140]
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x1d4]
mov edx, dword [esp + 0x840]
and ebx, 1
mov ecx, dword [esp + 0x190]
and eax, 1
lea ebx, [eax + ebx*2]
mov eax, dword [esi + 0x170c]
sar edx, 1
mov esi, dword [esp + 0x140]
shl edi, 4
mov dword [esp + 0x1dc], edx
lea ebx, [ecx + ebx*4]
mov ecx, dword [esp + 0x1dc]
add edi, eax
mov eax, dword [esp + 0x70]
mov edx, ebx
mov dword [esp + 0x1a4], edi
mov edi, dword [esp + 0x8c]
sar esi, 1
imul esi, dword [esp + 0x1d0]
add edx, dword [eax + 0x17f0]
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x1d0]
sar edi, 1
mov ecx, dword [esp + 0x1cc]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 4]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1a4]
mov dword [esp], eax
call dword [edx + 0x10]
mov edx, dword [esp + 0x1a4]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x1dc]
add edx, 8
add ebx, dword [ecx + 0x17f0]
mov dword [esp + 0x1d8], edx
mov ecx, dword [esp + 0x1cc]
mov edx, dword [esp + 0x1d0]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
add edi, dword [ecx + 8]
add esi, edi
mov dword [esp + 4], esi
mov esi, dword [esp + 0x1d8]
mov dword [esp], esi
call dword [ebx + 0x10]
mov edi, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d0]
mov edx, dword [esp + 0x1c8]
mov ecx, dword [esp + 0x1a4]
mov dword [esp + 0x10], edi
mov ebx, dword [esp + 0x70]
mov dword [esp + 0xc], eax
mov eax, dword [edx + 4]
mov dword [esp + 4], ecx
mov dword [esp], ebx
mov dword [esp + 8], eax
call dword [esp + 0x100]
mov esi, dword [esp + 0x1d0]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x1c8]
mov edx, dword [esp + 0x70]
mov dword [esp + 0xc], esi
mov ebx, eax
mov eax, dword [edi + 8]
mov dword [esp], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp + 4], eax
call dword [esp + 0x100]
lea eax, [ebx + eax]
add ebp, eax
jmp 0x8ad7e6
mov dword [esp + 8], 0x7c
mov dword [esp + 4], 0xbae5d0
mov dword [esp], 0xbae708
call sub.msvcrt.dll__assert
mov esi, ebx
mov ebx, dword [esp + 0x184]
mov edi, dword [esp + 0x70]
sar esi, 2
mov eax, dword [esp + 0x184]
sar ebp, 2
mov ecx, dword [esp + 0x178]
imul ebx, esi
add esi, 8
mov edx, dword [edi + 0x17f8]
mov dword [esp + 8], eax
mov eax, ebp
add eax, dword [ecx]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [edi + 0x170c]
mov edi, dword [esp + 0x154]
mov dword [esp], eax
call dword [edx + edi*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x184]
mov edi, dword [esp + 0x178]
mov edx, dword [eax + 0x17f8]
mov eax, ebp
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
add eax, dword [edi]
mov edi, dword [esp + 0x154]
lea eax, [ebx + eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
add eax, 8
mov dword [esp], eax
call dword [edx + edi*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x184]
imul esi, dword [esp + 0x184]
mov edi, dword [esp + 0x184]
mov edx, dword [eax + 0x17f8]
mov eax, ebp
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x178]
shl edi, 3
add eax, dword [ecx]
add eax, esi
mov esi, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, edi
add eax, dword [esi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x154]
call dword [edx + eax*4 + 0x40]
mov edx, dword [esi + 0x17f8]
mov ecx, dword [esp + 0x184]
mov esi, dword [esp + 0x178]
mov dword [esp + 8], ecx
add ebp, dword [esi]
lea ebx, [ebx + ebp + 8]
mov ebp, dword [esp + 0x70]
lea ebx, [edi + ebx]
mov dword [esp + 4], ebx
mov eax, dword [ebp + 0x170c]
add eax, 8
lea eax, [edi + eax]
mov dword [esp], eax
mov eax, dword [esp + 0x154]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x158]
mov ebp, dword [esp + 0x15c]
mov ebx, dword [esp + 0x184]
mov edx, dword [ecx + 0x17fc]
mov eax, dword [esp + 0x184]
sar esi, 2
mov ecx, dword [esp + 0x178]
sar ebp, 2
imul ebx, esi
add esi, 8
mov dword [esp + 8], eax
mov eax, ebp
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x70]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x150]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x184]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x178]
mov dword [esp + 8], eax
mov eax, ebp
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x70]
lea eax, [ebx + eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x150]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x184]
imul esi, dword [esp + 0x184]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x178]
mov dword [esp + 8], eax
mov eax, ebp
add eax, dword [ecx + 0x20]
add eax, esi
mov esi, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, edi
add eax, dword [esi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x150]
call dword [edx + eax*4 + 0x40]
mov edx, dword [esi + 0x17fc]
mov ecx, dword [esp + 0x184]
mov esi, dword [esp + 0x178]
mov dword [esp + 8], ecx
add ebp, dword [esi + 0x20]
lea ebx, [ebx + ebp + 8]
mov ebp, dword [esp + 0x70]
lea ebx, [edi + ebx]
mov dword [esp + 4], ebx
mov eax, dword [ebp + 0x170c]
add eax, 8
add edi, eax
mov eax, dword [esp + 0x150]
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
jmp 0x8ac133
mov ebp, dword [esp + 0x1d4]
add edx, 0x2c
sub edi, ebx
mov eax, dword [esp + 0x130]
mov dword [esp + 0x3c8], edx
mov dword [esp + 0x1c0], 0
shl ebp, 3
add eax, 4
mov dword [esp + 0x3c4], ebp
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edi
mov edx, dword [esp + 0x1c0]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x1e8]
mov ebp, dword [esp + 0x1e8]
mov edi, dword [esp + 0x1e4]
add ebp, dword [ecx + edx*8 + 0x16dc]
add edi, dword [ecx + edx*8 + 0x16e0]
test eax, eax
je 0x8aec63
mov eax, dword [esp + 0x1e4]
mov ebx, ebp
sub ebx, dword [ecx + edx*8 + 0x16bc]
and edx, 1
mov dword [esp + 0x3cc], edx
test eax, eax
mov dword [esp + 0x1bc], ebx
je 0x8aecb1
mov edx, dword [esp + 0x1c0]
mov esi, edi
mov ecx, dword [esp + 0x70]
mov ebx, edx
sub esi, dword [ecx + edx*8 + 0x16c0]
sar ebx, 1
mov eax, dword [esp + 0x16c]
movzx ecx, byte [esp + 0x134]
mov edx, dword [esp + 0x16c]
imul ebx, dword [esp + 0x3c4]
and eax, edi
shl eax, cl
and edx, ebp
add eax, edx
mov edx, dword [esp + 0x1bc]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x16c]
and edx, dword [esp + 0x16c]
and eax, esi
shl eax, cl
add eax, edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0x3cc]
lea ebx, [ebx + eax*8]
mov eax, dword [esp + 0x130]
add ebx, dword [edx + 0x170c]
test eax, eax
je 0x8aeced
mov eax, dword [esp + 0x1d4]
sar edi, 2
mov ecx, dword [esp + 0x1cc]
sar ebp, 2
mov edx, dword [edx + 0x17f8]
sar esi, 2
imul edi, eax
mov dword [esp + 8], eax
add ebp, dword [ecx]
mov dword [esp], ebx
lea eax, [ebp + edi]
mov edi, dword [esp + 0x20]
mov dword [esp + 4], eax
call dword [edx + edi*4 + 0x40]
mov eax, dword [esp + 0x1d4]
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x3c8]
sar dword [esp + 0x1bc], 2
imul esi, eax
mov edx, dword [ebp + 0x17fc]
mov dword [esp + 8], eax
mov ecx, dword [ecx]
add dword [esp + 0x1bc], ecx
mov eax, dword [esp + 0x1bc]
mov dword [esp], ebx
mov ebx, dword [esp + 0x1b8]
add eax, esi
mov dword [esp + 4], eax
call dword [edx + ebx*4 + 0x40]
add dword [esp + 0x1c0], 1
cmp dword [esp + 0x1c0], 4
jne 0x8aeade
jmp 0x8ad7ac
mov esi, edx
mov eax, ecx
mov edx, dword [esp + 0x30]
and esi, 1
movzx ecx, byte [esp + 0x34]
mov ebx, esi
mov dword [esp + 0x3cc], esi
mov esi, dword [esp + 0x1c0]
shl ebx, cl
imul edx, dword [eax + esi*8 + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x1c4]
add ebx, eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x1bc], ebx
test eax, eax
jne 0x8aeb3d
mov ebx, dword [esp + 0x1c0]
movzx ecx, byte [esp + 0x34]
mov eax, dword [esp + 0x1c0]
mov edx, dword [esp + 0x30]
sar ebx, 1
mov esi, ebx
shl esi, cl
mov ecx, dword [esp + 0x70]
imul edx, dword [ecx + eax*8 + 0x16c0]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x1c4]
add esi, eax
jmp 0x8aeb55
mov ecx, dword [esp + 0x1d4]
sar edi, 1
mov eax, dword [esp + 0x1cc]
sar ebp, 1
mov edx, dword [edx + 0x17f0]
sar esi, 1
mov dword [esp + 0xc], 8
imul edi, ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
add ebp, dword [eax]
mov dword [esp], ebx
lea eax, [ebp + edi]
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
mov ebp, dword [esp + 0x1d4]
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x3c8]
sar dword [esp + 0x1bc], 1
imul esi, ebp
mov ecx, dword [esp + 0x1b8]
mov edx, dword [edi + 0x17f4]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ebp
mov eax, dword [eax]
add dword [esp + 0x1bc], eax
mov eax, dword [esp + 0x1bc]
mov dword [esp], ebx
add eax, esi
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
jmp 0x8aec48
mov eax, dword [esp + 0x840]
mov esi, edi
mov ebx, dword [esp + 0x21c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 0xc], ebx
add eax, dword [edx + 0xc]
mov edx, dword [esp + 0x9c]
imul edx, ebx
add eax, edx
mov dword [esp + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [esp + 0xfc]
mov edx, dword [esp + 0x17c]
test edx, edx
mov ebp, eax
je 0x8adc89
mov ebx, dword [esp + 0x9c]
mov eax, dword [esp + 0x13c]
mov edi, dword [esp + 0x21c]
mov edx, dword [esp + 0x840]
and ebx, 1
mov ecx, dword [esp + 0x190]
and eax, 1
lea ebx, [eax + ebx*2]
mov eax, dword [esi + 0x170c]
sar edx, 1
mov esi, dword [esp + 0x9c]
shl edi, 4
mov dword [esp + 0x224], edx
lea ebx, [ecx + ebx*4]
mov ecx, dword [esp + 0x224]
add edi, eax
mov eax, dword [esp + 0x70]
mov edx, ebx
mov dword [esp + 0x1ec], edi
mov edi, dword [esp + 0x13c]
sar esi, 1
imul esi, dword [esp + 0x218]
add edx, dword [eax + 0x17f0]
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x218]
sar edi, 1
mov ecx, dword [esp + 0x214]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 4]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1ec]
mov dword [esp], eax
call dword [edx + 0x10]
mov edx, dword [esp + 0x1ec]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x224]
add edx, 8
add ebx, dword [ecx + 0x17f0]
mov dword [esp + 0x220], edx
mov ecx, dword [esp + 0x214]
mov edx, dword [esp + 0x218]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
add edi, dword [ecx + 8]
add esi, edi
mov dword [esp + 4], esi
mov esi, dword [esp + 0x220]
mov dword [esp], esi
call dword [ebx + 0x10]
mov edi, dword [esp + 0x224]
mov eax, dword [esp + 0x218]
mov edx, dword [esp + 0x210]
mov ecx, dword [esp + 0x1ec]
mov dword [esp + 0x10], edi
mov ebx, dword [esp + 0x70]
mov dword [esp + 0xc], eax
mov eax, dword [edx + 4]
mov dword [esp + 4], ecx
mov dword [esp], ebx
mov dword [esp + 8], eax
call dword [esp + 0x100]
mov esi, dword [esp + 0x218]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x210]
mov edx, dword [esp + 0x70]
mov dword [esp + 0xc], esi
mov ebx, eax
mov eax, dword [edi + 8]
mov dword [esp], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x220]
mov dword [esp + 4], eax
call dword [esp + 0x100]
lea eax, [ebx + eax]
add ebp, eax
jmp 0x8adc89
mov esi, dword [esp + 0x70]
sub edi, dword [esp + 0x20c]
imul edi, dword [esi + 0x16c0]
mov edx, edi
mov eax, edi
sar edx, 0x1f
idiv dword [esp + 0x20c]
mov dword [esp + 0x1f8], eax
jmp 0x8adaca
mov edx, edi
sub edx, dword [esp + 0x20c]
imul edx, dword [esi + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x20c]
mov dword [esp + 0x1fc], eax
jmp 0x8adaa8
mov esi, ebx
mov ebx, dword [esp + 0x1d4]
mov edi, dword [esp + 0x70]
sar esi, 2
mov eax, dword [esp + 0x1d4]
sar ebp, 2
mov ecx, dword [esp + 0x1cc]
imul ebx, esi
add esi, 8
mov edx, dword [edi + 0x17f8]
mov dword [esp + 8], eax
mov eax, ebp
add eax, dword [ecx]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [edi + 0x170c]
mov edi, dword [esp + 0x1ac]
mov dword [esp], eax
call dword [edx + edi*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x1d4]
mov edi, dword [esp + 0x1cc]
mov edx, dword [eax + 0x17f8]
mov eax, ebp
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
add eax, dword [edi]
mov edi, dword [esp + 0x1ac]
lea eax, [ebx + eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
add eax, 8
mov dword [esp], eax
call dword [edx + edi*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x1d4]
imul esi, dword [esp + 0x1d4]
mov edi, dword [esp + 0x1d4]
mov edx, dword [eax + 0x17f8]
mov eax, ebp
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x1cc]
shl edi, 3
add eax, dword [ecx]
add eax, esi
mov esi, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, edi
add eax, dword [esi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x1ac]
call dword [edx + eax*4 + 0x40]
mov edx, dword [esi + 0x17f8]
mov ecx, dword [esp + 0x1d4]
mov esi, dword [esp + 0x1cc]
mov dword [esp + 8], ecx
add ebp, dword [esi]
lea ebx, [ebx + ebp + 8]
mov ebp, dword [esp + 0x70]
lea ebx, [edi + ebx]
mov dword [esp + 4], ebx
mov eax, dword [ebp + 0x170c]
add eax, 8
lea eax, [edi + eax]
mov dword [esp], eax
mov eax, dword [esp + 0x1ac]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x1b0]
mov ebp, dword [esp + 0x1b4]
mov ebx, dword [esp + 0x1d4]
mov edx, dword [ecx + 0x17fc]
mov eax, dword [esp + 0x1d4]
sar esi, 2
mov ecx, dword [esp + 0x1cc]
sar ebp, 2
imul ebx, esi
add esi, 8
mov dword [esp + 8], eax
mov eax, ebp
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x70]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x1a8]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x1d4]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x1cc]
mov dword [esp + 8], eax
mov eax, ebp
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x70]
lea eax, [ebx + eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x1a8]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x1d4]
imul esi, dword [esp + 0x1d4]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x1cc]
mov dword [esp + 8], eax
mov eax, ebp
add eax, dword [ecx + 0x20]
add eax, esi
mov esi, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, edi
add eax, dword [esi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x1a8]
call dword [edx + eax*4 + 0x40]
mov edx, dword [esi + 0x17fc]
mov ecx, dword [esp + 0x1d4]
mov esi, dword [esp + 0x1cc]
mov dword [esp + 8], ecx
add ebp, dword [esi + 0x20]
lea ebx, [ebx + ebp + 8]
mov ebp, dword [esp + 0x70]
lea ebx, [edi + ebx]
mov dword [esp + 4], ebx
mov eax, dword [ebp + 0x170c]
add eax, 8
add edi, eax
mov eax, dword [esp + 0x1a8]
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
jmp 0x8ad7ac
mov ebp, dword [esp + 0x21c]
add edx, 0x2c
sub edi, ebx
mov eax, dword [esp + 0x130]
mov dword [esp + 0x3bc], edx
mov dword [esp + 0x208], 0
shl ebp, 3
add eax, 4
mov dword [esp + 0x3b8], ebp
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], edi
mov edx, dword [esp + 0x208]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x230]
mov ebp, dword [esp + 0x230]
mov edi, dword [esp + 0x22c]
add ebp, dword [ecx + edx*8 + 0x16dc]
add edi, dword [ecx + edx*8 + 0x16e0]
test eax, eax
je 0x8af5b5
mov ebx, ebp
sub ebx, dword [ecx + edx*8 + 0x16bc]
and edx, 1
mov dword [esp + 0x3c0], edx
mov dword [esp + 0x204], ebx
mov eax, dword [esp + 0x22c]
test eax, eax
je 0x8af579
mov edx, dword [esp + 0x208]
mov esi, edi
mov ecx, dword [esp + 0x70]
mov ebx, edx
sub esi, dword [ecx + edx*8 + 0x16c0]
sar ebx, 1
mov eax, dword [esp + 0x16c]
movzx ecx, byte [esp + 0x134]
mov edx, dword [esp + 0x16c]
imul ebx, dword [esp + 0x3b8]
and eax, edi
shl eax, cl
and edx, ebp
add eax, edx
mov edx, dword [esp + 0x204]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x16c]
and edx, dword [esp + 0x16c]
and eax, esi
shl eax, cl
add eax, edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x200], eax
mov eax, dword [esp + 0x3c0]
lea ebx, [ebx + eax*8]
mov eax, dword [esp + 0x130]
add ebx, dword [edx + 0x170c]
test eax, eax
je 0x8af5f9
mov eax, dword [esp + 0x21c]
sar edi, 2
mov ecx, dword [esp + 0x214]
sar ebp, 2
mov edx, dword [edx + 0x17f8]
sar esi, 2
imul edi, eax
mov dword [esp + 8], eax
add ebp, dword [ecx]
mov dword [esp], ebx
lea eax, [ebp + edi]
mov edi, dword [esp + 0x20]
mov dword [esp + 4], eax
call dword [edx + edi*4 + 0x40]
mov eax, dword [esp + 0x21c]
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x3bc]
sar dword [esp + 0x204], 2
imul esi, eax
mov edx, dword [ebp + 0x17fc]
mov dword [esp + 8], eax
mov ecx, dword [ecx]
add dword [esp + 0x204], ecx
mov eax, dword [esp + 0x204]
mov dword [esp], ebx
mov ebx, dword [esp + 0x200]
add eax, esi
mov dword [esp + 4], eax
call dword [edx + ebx*4 + 0x40]
add dword [esp + 0x208], 1
cmp dword [esp + 0x208], 4
jne 0x8af232
jmp 0x8adc4f
mov eax, dword [esp + 0x840]
mov esi, edi
mov ebx, dword [esp + 0x260]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 0xc], ebx
add eax, dword [edx + 0xc]
mov edx, dword [esp + 0xb0]
imul edx, ebx
add eax, edx
mov dword [esp + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [esp + 0xfc]
mov ebx, dword [esp + 0x17c]
test ebx, ebx
mov ebp, eax
jne 0x8afe2a
mov eax, dword [esp + 0xbc]
mov edi, dword [esp + 0xb8]
mov ebx, dword [esp + 0x128]
sub dword [esp + 0x274], ebx
mov edx, dword [esp + 0x10c]
mov ecx, dword [esp + 0xb4]
mov dword [edi], eax
mov esi, dword [esp + 0x274]
mov edi, dword [esp + 0x120]
mov dword [edx + ecx], ebp
mov edx, dword [esp + 0x124]
movzx eax, byte [esi + edi]
sub dword [esp + 0x278], edx
mov ecx, dword [esp + 0x278]
movzx edx, byte [ecx + edi]
add eax, edx
imul eax, dword [esp + 0x838]
lea ebx, [ebp + eax]
mov eax, dword [esp + 0x104]
shl eax, 4
cmp ebx, dword [esp + eax + 0x40c]
jge 0x8ac27a
xor esi, esi
cmp dword [esp + 0x41c], ebx
lea ecx, [esp + 0x41c]
lea edx, [esp + 0x42c]
jg 0x8af4c4
add esi, 1
mov eax, esi
shl eax, 4
cmp dword [esp + eax + 0x41c], ebx
jle 0x8af4a3
lea ecx, [esp + 0x41c]
add ecx, eax
lea edx, [esp + eax + 0x42c]
mov eax, dword [esp + 0x104]
mov dword [esp + 4], ecx
mov dword [esp], edx
sub eax, esi
shl eax, 4
sub eax, 0x10
mov dword [esp + 8], eax
call sub.msvcrt.dll_memmove
mov eax, esi
mov esi, dword [esp + 0xb0]
shl eax, 4
mov dword [esp + eax + 0x41c], ebx
mov ebx, dword [esp + 0x13c]
mov dword [esp + eax + 0x428], 0
mov dword [esp + eax + 0x424], esi
mov dword [esp + eax + 0x420], ebx
jmp 0x8abd63
mov edx, ebp
sub edx, dword [esp + 0x250]
imul edx, dword [esi + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x250]
mov dword [esp + 0x240], eax
mov eax, dword [esp + 0x274]
test eax, eax
jne 0x8adf46
mov esi, dword [esp + 0x70]
sub ebp, dword [esp + 0x250]
imul ebp, dword [esi + 0x16c0]
mov edx, ebp
mov eax, ebp
sar edx, 0x1f
idiv dword [esp + 0x250]
mov dword [esp + 0x23c], eax
jmp 0x8adf59
mov ebx, dword [esp + 0x208]
movzx ecx, byte [esp + 0x3c]
mov eax, dword [esp + 0x208]
mov edx, dword [esp + 0x38]
sar ebx, 1
mov esi, ebx
shl esi, cl
mov ecx, dword [esp + 0x70]
imul edx, dword [ecx + eax*8 + 0x16c0]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x20c]
add esi, eax
jmp 0x8af2a9
mov esi, edx
mov eax, ecx
mov edx, dword [esp + 0x38]
and esi, 1
movzx ecx, byte [esp + 0x3c]
mov ebx, esi
mov dword [esp + 0x3c0], esi
mov esi, dword [esp + 0x208]
shl ebx, cl
imul edx, dword [eax + esi*8 + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x20c]
add ebx, eax
mov dword [esp + 0x204], ebx
jmp 0x8af282
mov ecx, dword [esp + 0x21c]
sar edi, 1
mov eax, dword [esp + 0x214]
sar ebp, 1
mov edx, dword [edx + 0x17f0]
sar esi, 1
mov dword [esp + 0xc], 8
imul edi, ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
add ebp, dword [eax]
mov dword [esp], ebx
lea eax, [ebp + edi]
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
mov ebp, dword [esp + 0x21c]
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x3bc]
sar dword [esp + 0x204], 1
imul esi, ebp
mov ecx, dword [esp + 0x200]
mov edx, dword [edi + 0x17f4]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ebp
mov eax, dword [eax]
add dword [esp + 0x204], eax
mov eax, dword [esp + 0x204]
mov dword [esp], ebx
add eax, esi
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
jmp 0x8af39c
mov esi, ebx
mov ebx, dword [esp + 0x21c]
mov edi, dword [esp + 0x70]
sar esi, 2
mov eax, dword [esp + 0x21c]
sar ebp, 2
mov ecx, dword [esp + 0x214]
imul ebx, esi
add esi, 8
mov edx, dword [edi + 0x17f8]
mov dword [esp + 8], eax
mov eax, ebp
add eax, dword [ecx]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [edi + 0x170c]
mov edi, dword [esp + 0x1f4]
mov dword [esp], eax
call dword [edx + edi*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x21c]
mov edi, dword [esp + 0x214]
mov edx, dword [eax + 0x17f8]
mov eax, ebp
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
add eax, dword [edi]
mov edi, dword [esp + 0x1f4]
lea eax, [ebx + eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
add eax, 8
mov dword [esp], eax
call dword [edx + edi*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x21c]
imul esi, dword [esp + 0x21c]
mov edi, dword [esp + 0x21c]
mov edx, dword [eax + 0x17f8]
mov eax, ebp
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x214]
shl edi, 3
add eax, dword [ecx]
add eax, esi
mov esi, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, edi
add eax, dword [esi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x1f4]
call dword [edx + eax*4 + 0x40]
mov edx, dword [esi + 0x17f8]
mov ecx, dword [esp + 0x21c]
mov esi, dword [esp + 0x214]
mov dword [esp + 8], ecx
add ebp, dword [esi]
lea ebx, [ebx + ebp + 8]
mov ebp, dword [esp + 0x70]
lea ebx, [edi + ebx]
mov dword [esp + 4], ebx
mov eax, dword [ebp + 0x170c]
add eax, 8
lea eax, [edi + eax]
mov dword [esp], eax
mov eax, dword [esp + 0x1f4]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x1f8]
mov ebp, dword [esp + 0x1fc]
mov ebx, dword [esp + 0x21c]
mov edx, dword [ecx + 0x17fc]
mov eax, dword [esp + 0x21c]
sar esi, 2
mov ecx, dword [esp + 0x214]
sar ebp, 2
imul ebx, esi
add esi, 8
mov dword [esp + 8], eax
mov eax, ebp
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x70]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x1f0]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x21c]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x214]
mov dword [esp + 8], eax
mov eax, ebp
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x70]
lea eax, [ebx + eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x1f0]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x21c]
imul esi, dword [esp + 0x21c]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x214]
mov dword [esp + 8], eax
mov eax, ebp
add eax, dword [ecx + 0x20]
add eax, esi
mov esi, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, edi
add eax, dword [esi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x1f0]
call dword [edx + eax*4 + 0x40]
mov edx, dword [esi + 0x17fc]
mov ecx, dword [esp + 0x21c]
mov esi, dword [esp + 0x214]
mov dword [esp + 8], ecx
add ebp, dword [esi + 0x20]
lea ebx, [ebx + ebp + 8]
mov ebp, dword [esp + 0x70]
lea ebx, [edi + ebx]
mov dword [esp + 4], ebx
mov eax, dword [ebp + 0x170c]
add eax, 8
add edi, eax
mov eax, dword [esp + 0x1f0]
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
jmp 0x8adc4f
mov edi, dword [esp + 0x260]
add edx, 0x2c
sub ebp, ebx
mov eax, dword [esp + 0x130]
mov dword [esp + 0x3b0], edx
mov dword [esp + 0x24c], 0
shl edi, 3
add eax, 4
mov dword [esp + 0x3ac], edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], ebp
mov edx, dword [esp + 0x24c]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x278]
mov ebp, dword [esp + 0x278]
mov edi, dword [esp + 0x274]
add ebp, dword [ecx + edx*8 + 0x16dc]
add edi, dword [ecx + edx*8 + 0x16e0]
test eax, eax
je 0x8afaa9
mov eax, dword [esp + 0x274]
mov ebx, ebp
sub ebx, dword [ecx + edx*8 + 0x16bc]
and edx, 1
mov dword [esp + 0x3b4], edx
test eax, eax
mov dword [esp + 0x248], ebx
je 0x8afaf7
mov edx, dword [esp + 0x24c]
mov esi, edi
mov ecx, dword [esp + 0x70]
mov ebx, edx
sub esi, dword [ecx + edx*8 + 0x16c0]
sar ebx, 1
mov eax, dword [esp + 0x16c]
movzx ecx, byte [esp + 0x134]
mov edx, dword [esp + 0x16c]
imul ebx, dword [esp + 0x3ac]
and eax, edi
shl eax, cl
and edx, ebp
add eax, edx
mov edx, dword [esp + 0x248]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x16c]
and edx, dword [esp + 0x16c]
and eax, esi
shl eax, cl
add eax, edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x244], eax
mov eax, dword [esp + 0x3b4]
lea ebx, [ebx + eax*8]
mov eax, dword [esp + 0x130]
add ebx, dword [edx + 0x170c]
test eax, eax
je 0x8afb33
mov eax, dword [esp + 0x260]
sar edi, 2
mov ecx, dword [esp + 0x258]
sar ebp, 2
mov edx, dword [edx + 0x17f8]
sar esi, 2
imul edi, eax
mov dword [esp + 8], eax
add ebp, dword [ecx]
mov dword [esp], ebx
lea eax, [ebp + edi]
mov edi, dword [esp + 0x20]
mov dword [esp + 4], eax
call dword [edx + edi*4 + 0x40]
mov eax, dword [esp + 0x260]
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x3b0]
sar dword [esp + 0x248], 2
imul esi, eax
mov edx, dword [ebp + 0x17fc]
mov dword [esp + 8], eax
mov ecx, dword [ecx]
add dword [esp + 0x248], ecx
mov eax, dword [esp + 0x248]
mov dword [esp], ebx
mov ebx, dword [esp + 0x244]
add eax, esi
mov dword [esp + 4], eax
call dword [edx + ebx*4 + 0x40]
add dword [esp + 0x24c], 1
cmp dword [esp + 0x24c], 4
jne 0x8af924
jmp 0x8ae0dc
mov esi, edx
mov eax, ecx
mov edx, dword [esp + 0x40]
and esi, 1
movzx ecx, byte [esp + 0x44]
mov ebx, esi
mov dword [esp + 0x3b4], esi
mov esi, dword [esp + 0x24c]
shl ebx, cl
imul edx, dword [eax + esi*8 + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x250]
add ebx, eax
mov eax, dword [esp + 0x274]
mov dword [esp + 0x248], ebx
test eax, eax
jne 0x8af983
mov ebx, dword [esp + 0x24c]
movzx ecx, byte [esp + 0x44]
mov eax, dword [esp + 0x24c]
mov edx, dword [esp + 0x40]
sar ebx, 1
mov esi, ebx
shl esi, cl
mov ecx, dword [esp + 0x70]
imul edx, dword [ecx + eax*8 + 0x16c0]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x250]
add esi, eax
jmp 0x8af99b
mov ecx, dword [esp + 0x260]
sar edi, 1
mov eax, dword [esp + 0x258]
sar ebp, 1
mov edx, dword [edx + 0x17f0]
sar esi, 1
mov dword [esp + 0xc], 8
imul edi, ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
add ebp, dword [eax]
mov dword [esp], ebx
lea eax, [ebp + edi]
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
mov ebp, dword [esp + 0x260]
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x3b0]
sar dword [esp + 0x248], 1
imul esi, ebp
mov ecx, dword [esp + 0x244]
mov edx, dword [edi + 0x17f4]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ebp
mov eax, dword [eax]
add dword [esp + 0x248], eax
mov eax, dword [esp + 0x248]
mov dword [esp], ebx
add eax, esi
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
jmp 0x8afa8e
mov esi, ebx
mov ebx, dword [esp + 0x260]
mov ebp, dword [esp + 0x70]
sar esi, 2
mov eax, dword [esp + 0x260]
sar edi, 2
mov ecx, dword [esp + 0x258]
imul ebx, esi
add esi, 8
mov edx, dword [ebp + 0x17f8]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x170c]
mov ebp, dword [esp + 0x238]
mov dword [esp], eax
call dword [edx + ebp*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x260]
mov ebp, dword [esp + 0x258]
mov edx, dword [eax + 0x17f8]
mov eax, edi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
add eax, dword [ebp]
mov ebp, dword [esp + 0x238]
lea eax, [ebx + eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
add eax, 8
mov dword [esp], eax
call dword [edx + ebp*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x260]
imul esi, dword [esp + 0x260]
mov ebp, dword [esp + 0x260]
mov edx, dword [eax + 0x17f8]
mov eax, edi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x258]
shl ebp, 3
add eax, dword [ecx]
add eax, esi
mov esi, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, ebp
add eax, dword [esi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x238]
call dword [edx + eax*4 + 0x40]
mov edx, dword [esi + 0x17f8]
mov ecx, dword [esp + 0x260]
mov esi, dword [esp + 0x258]
mov dword [esp + 8], ecx
add edi, dword [esi]
lea ebx, [ebx + edi + 8]
mov edi, dword [esp + 0x70]
lea ebx, [ebp + ebx]
mov dword [esp + 4], ebx
mov eax, dword [edi + 0x170c]
add eax, 8
lea eax, [ebp + eax]
mov dword [esp], eax
mov eax, dword [esp + 0x238]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x23c]
mov edi, dword [esp + 0x240]
mov ebx, dword [esp + 0x260]
mov edx, dword [ecx + 0x17fc]
mov eax, dword [esp + 0x260]
sar esi, 2
mov ecx, dword [esp + 0x258]
sar edi, 2
imul ebx, esi
add esi, 8
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x70]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x234]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x260]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x258]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x70]
lea eax, [ebx + eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x234]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x260]
imul esi, dword [esp + 0x260]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x258]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 0x20]
add eax, esi
mov esi, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, ebp
add eax, dword [esi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x234]
call dword [edx + eax*4 + 0x40]
mov edx, dword [esi + 0x17fc]
mov ecx, dword [esp + 0x260]
mov esi, dword [esp + 0x258]
mov dword [esp + 8], ecx
add edi, dword [esi + 0x20]
lea ebx, [ebx + edi + 8]
mov edi, dword [esp + 0x70]
lea ebx, [ebp + ebx]
mov dword [esp + 4], ebx
mov eax, dword [edi + 0x170c]
add eax, 8
lea eax, [ebp + eax]
mov ebp, dword [esp + 0x234]
mov dword [esp], eax
call dword [edx + ebp*4 + 0x40]
jmp 0x8ae0dc
mov ebx, dword [esp + 0xb0]
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x190]
mov edx, dword [esp + 0x13c]
and ebx, 1
mov edi, dword [esp + 0x260]
and eax, 1
lea ebx, [eax + ebx*2]
mov eax, dword [esp + 0x840]
lea ebx, [ecx + ebx*4]
sar edx, 1
mov dword [esp + 0x268], edx
shl edi, 4
mov edx, ebx
sar eax, 1
mov dword [esp + 0x26c], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x26c]
add edi, dword [esi + 0x170c]
mov esi, dword [esp + 0xb0]
add edx, dword [eax + 0x17f0]
mov eax, dword [esp + 0x25c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x258]
sar esi, 1
imul esi, dword [esp + 0x25c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x268]
add eax, dword [ecx + 4]
mov dword [esp], edi
add eax, esi
mov dword [esp + 4], eax
call dword [edx + 0x10]
mov edx, dword [esp + 0x70]
lea eax, [edi + 8]
mov dword [esp + 0x264], eax
mov ecx, dword [esp + 0x26c]
mov eax, dword [esp + 0x25c]
add ebx, dword [edx + 0x17f0]
mov edx, dword [esp + 0x258]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x264]
mov dword [esp + 8], eax
mov edx, dword [edx + 8]
add dword [esp + 0x268], edx
add esi, dword [esp + 0x268]
mov dword [esp], ecx
mov dword [esp + 4], esi
call dword [ebx + 0x10]
mov ebx, dword [esp + 0x26c]
mov esi, dword [esp + 0x25c]
mov edx, dword [esp + 0x254]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], esi
mov eax, dword [edx + 4]
mov dword [esp + 4], edi
mov dword [esp], ecx
mov dword [esp + 8], eax
call dword [esp + 0x100]
mov esi, dword [esp + 0x26c]
mov edi, dword [esp + 0x25c]
mov edx, dword [esp + 0x254]
mov ecx, dword [esp + 0x264]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0xc], edi
mov ebx, eax
mov eax, dword [edx + 8]
mov dword [esp + 4], ecx
mov dword [esp], esi
mov dword [esp + 8], eax
call dword [esp + 0x100]
lea eax, [ebx + eax]
add ebp, eax
jmp 0x8af40b
mov eax, dword [esp + 0x840]
mov ebx, dword [esp + 0x2ac]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xc], ebx
add eax, dword [edx + 0xc]
mov edx, ebx
imul edx, esi
add eax, edx
mov dword [esp + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [esp + 0xfc]
test byte [esp + 0x844], 2
mov dword [esp + 0x144], eax
je 0x8ac6b7
mov eax, dword [esp + 0xc4]
mov ebx, esi
and ebx, 1
mov edx, dword [esp + 0x840]
mov ecx, dword [esp + 0x70]
sar esi, 1
mov ebp, dword [esp + 0x70]
and eax, 1
mov edi, dword [esp + 0x2ac]
lea ebx, [eax + ebx*2]
mov eax, dword [esp + 0x83c]
sar edx, 1
mov dword [esp + 0x2b4], edx
shl edi, 4
shl eax, 4
lea ebx, [eax + ebx*4]
mov eax, dword [esp + 0x2b4]
mov edx, ebx
add edx, dword [ecx + 0x17f0]
mov ecx, dword [esp + 0x2a8]
add edi, dword [ebp + 0x170c]
mov ebp, dword [esp + 0xc4]
imul esi, dword [esp + 0x2a8]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x2a4]
mov dword [esp + 0xc], eax
sar ebp, 1
mov eax, ebp
add eax, dword [ecx + 4]
mov dword [esp], edi
add eax, esi
mov dword [esp + 4], eax
call dword [edx + 0x10]
mov edx, dword [esp + 0x70]
lea eax, [edi + 8]
mov dword [esp + 0x2b0], eax
mov ecx, dword [esp + 0x2b4]
mov eax, dword [esp + 0x2a8]
add ebx, dword [edx + 0x17f0]
mov edx, dword [esp + 0x2a4]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x2b0]
mov dword [esp + 8], eax
add ebp, dword [edx + 8]
mov dword [esp], ecx
add esi, ebp
mov dword [esp + 4], esi
call dword [ebx + 0x10]
mov esi, dword [esp + 0x2a8]
mov ebx, dword [esp + 0x2b4]
mov ebp, dword [esp + 0x2a0]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
mov eax, dword [ebp + 4]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call dword [esp + 0x100]
mov edx, dword [esp + 0x2b4]
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0x2b0]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x10], edx
mov ebx, eax
mov eax, dword [ebp + 8]
mov dword [esp + 4], ecx
mov dword [esp], esi
mov dword [esp + 8], eax
call dword [esp + 0x100]
lea eax, [ebx + eax]
add dword [esp + 0x144], eax
jmp 0x8ac6b7
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xbae5d0
mov dword [esp], 0xbae7f6
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xbae5d0
mov dword [esp], 0xbae814
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xbae5d0
mov dword [esp], 0xbae794
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xbae5d0
mov dword [esp], 0xbae777
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0xa6
mov dword [esp + 4], 0xbae5d0
mov dword [esp], 0xbae75b
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xbae5d0
mov dword [esp], 0xbae838
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xbae5d0
mov dword [esp], 0xbae7da
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xbae5d0
mov dword [esp], 0xbae7b8
call sub.msvcrt.dll__assert
mov eax, dword [esp + 0x840]
mov ebx, dword [esp + 0x2f8]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xc], ebx
add eax, dword [edx + 0xc]
mov edx, ebx
imul edx, esi
add eax, edx
mov dword [esp + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [esp + 0xfc]
test byte [esp + 0x844], 2
mov dword [esp + 0x3fc], eax
je 0x8acb10
mov eax, dword [esp + 0xd4]
mov ebx, esi
and ebx, 1
mov edx, dword [esp + 0x840]
mov ecx, dword [esp + 0x70]
sar esi, 1
mov ebp, dword [esp + 0x70]
and eax, 1
mov edi, dword [esp + 0x2f8]
lea ebx, [eax + ebx*2]
mov eax, dword [esp + 0x83c]
sar edx, 1
mov dword [esp + 0x300], edx
shl edi, 4
shl eax, 4
lea ebx, [eax + ebx*4]
mov eax, dword [esp + 0x300]
mov edx, ebx
add edx, dword [ecx + 0x17f0]
mov ecx, dword [esp + 0x2f4]
add edi, dword [ebp + 0x170c]
mov ebp, dword [esp + 0xd4]
imul esi, dword [esp + 0x2f4]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x2f0]
mov dword [esp + 0xc], eax
sar ebp, 1
mov eax, ebp
add eax, dword [ecx + 4]
mov dword [esp], edi
add eax, esi
mov dword [esp + 4], eax
call dword [edx + 0x10]
mov edx, dword [esp + 0x70]
lea eax, [edi + 8]
mov dword [esp + 0x2fc], eax
mov ecx, dword [esp + 0x300]
mov eax, dword [esp + 0x2f4]
add ebx, dword [edx + 0x17f0]
mov edx, dword [esp + 0x2f0]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x2fc]
mov dword [esp + 8], eax
add ebp, dword [edx + 8]
mov dword [esp], ecx
add esi, ebp
mov dword [esp + 4], esi
call dword [ebx + 0x10]
mov esi, dword [esp + 0x2f4]
mov ebx, dword [esp + 0x300]
mov ebp, dword [esp + 0x2ec]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
mov eax, dword [ebp + 4]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call dword [esp + 0x100]
mov edx, dword [esp + 0x300]
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0x2fc]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x10], edx
mov ebx, eax
mov eax, dword [ebp + 8]
mov dword [esp + 4], ecx
mov dword [esp], esi
mov dword [esp + 8], eax
call dword [esp + 0x100]
lea eax, [ebx + eax]
add dword [esp + 0x3fc], eax
jmp 0x8acb10
add esi, 1
mov eax, esi
shl eax, 0xb
add eax, edx
mov dword [esp + 0x148], eax
lea eax, [ebp + esi*8]
and eax, 0x3f
jmp 0x8ad046
mov eax, dword [esp + 0x840]
mov ebx, dword [esp + 0x344]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x10], eax
mov eax, ebp
mov dword [esp + 0xc], ebx
add eax, dword [edx + 0xc]
mov edx, dword [esp + 0xe4]
imul edx, ebx
add eax, edx
mov dword [esp + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [esp], esi
mov dword [esp + 4], eax
call dword [esp + 0xfc]
test byte [esp + 0x844], 2
mov dword [esp + 0x400], eax
je 0x8acf73
mov ebx, dword [esp + 0xe4]
mov eax, ebp
and eax, 1
mov edx, dword [esp + 0x840]
mov ecx, dword [esp + 0x70]
sar ebp, 1
mov edi, dword [esp + 0x344]
and ebx, 1
lea ebx, [eax + ebx*2]
mov eax, dword [esp + 0x83c]
sar edx, 1
mov dword [esp + 0x34c], edx
shl edi, 4
add edi, dword [esi + 0x170c]
shl eax, 4
mov esi, dword [esp + 0xe4]
lea ebx, [eax + ebx*4]
mov eax, dword [esp + 0x34c]
mov edx, ebx
add edx, dword [ecx + 0x17f0]
mov ecx, dword [esp + 0x340]
sar esi, 1
imul esi, dword [esp + 0x340]
mov dword [esp + 0xc], eax
mov eax, ebp
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x33c]
add eax, dword [ecx + 4]
mov dword [esp], edi
add eax, esi
mov dword [esp + 4], eax
call dword [edx + 0x10]
mov edx, dword [esp + 0x70]
lea eax, [edi + 8]
mov dword [esp + 0x348], eax
mov ecx, dword [esp + 0x34c]
mov eax, dword [esp + 0x340]
add ebx, dword [edx + 0x17f0]
mov edx, dword [esp + 0x33c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x348]
mov dword [esp + 8], eax
add ebp, dword [edx + 8]
mov dword [esp], ecx
add esi, ebp
mov dword [esp + 4], esi
call dword [ebx + 0x10]
mov esi, dword [esp + 0x340]
mov ebx, dword [esp + 0x34c]
mov ebp, dword [esp + 0x338]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
mov eax, dword [ebp + 4]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call dword [esp + 0x100]
mov edx, dword [esp + 0x34c]
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0x348]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x10], edx
mov ebx, eax
mov eax, dword [ebp + 8]
mov dword [esp + 4], ecx
mov dword [esp], esi
mov dword [esp + 8], eax
call dword [esp + 0x100]
lea eax, [ebx + eax]
add dword [esp + 0x400], eax
jmp 0x8acf73
mov eax, dword [esp + 0x840]
mov ebx, dword [esp + 0x390]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x10], eax
mov eax, ebp
mov dword [esp + 0xc], ebx
add eax, dword [edx + 0xc]
mov edx, ebx
imul edx, esi
add eax, edx
mov dword [esp + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [esp + 0xfc]
test byte [esp + 0x844], 2
mov dword [esp + 0x404], eax
je 0x8ad3d6
shl dword [esp + 0x83c], 4
mov ebx, esi
mov ecx, dword [esp + 0x83c]
mov eax, ebp
and ebx, 1
and eax, 1
mov edx, dword [esp + 0x840]
lea ebx, [eax + ebx*2]
mov edi, dword [esp + 0x390]
mov eax, dword [esp + 0x70]
sar ebp, 1
lea ebx, [ecx + ebx*4]
mov ecx, dword [esp + 0x38c]
sar edx, 1
mov dword [esp + 0x398], edx
shl edi, 4
mov edx, ebx
add edi, dword [eax + 0x170c]
add edx, dword [eax + 0x17f0]
mov eax, dword [esp + 0x398]
sar esi, 1
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x388]
imul esi, dword [esp + 0x38c]
mov dword [esp + 0xc], eax
mov eax, ebp
add eax, dword [ecx + 4]
mov dword [esp], edi
add eax, esi
mov dword [esp + 4], eax
call dword [edx + 0x10]
mov edx, dword [esp + 0x70]
lea eax, [edi + 8]
mov dword [esp + 0x394], eax
mov ecx, dword [esp + 0x398]
mov eax, dword [esp + 0x38c]
add ebx, dword [edx + 0x17f0]
mov edx, dword [esp + 0x388]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x394]
mov dword [esp + 8], eax
add ebp, dword [edx + 8]
mov dword [esp], ecx
add esi, ebp
mov dword [esp + 4], esi
call dword [ebx + 0x10]
mov esi, dword [esp + 0x38c]
mov ebx, dword [esp + 0x398]
mov ebp, dword [esp + 0x384]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
mov eax, dword [ebp + 4]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call dword [esp + 0x100]
mov edx, dword [esp + 0x398]
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0x394]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x10], edx
mov ebx, eax
mov eax, dword [ebp + 8]
mov dword [esp + 4], ecx
mov dword [esp], esi
mov dword [esp + 8], eax
call dword [esp + 0x100]
lea eax, [ebx + eax]
add dword [esp + 0x404], eax
jmp 0x8ad3d6
mov esi, ebx
mov ebx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x70]
sar edi, 2
mov eax, dword [esp + 0x2ac]
sar esi, 2
mov ecx, dword [esp + 0x2a4]
imul ebx, edi
add edi, 8
mov edx, dword [ebp + 0x17f8]
mov dword [esp + 8], eax
mov eax, esi
add eax, dword [ecx]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x170c]
mov ebp, dword [esp + 0x280]
mov dword [esp], eax
call dword [edx + ebp*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x2a4]
mov edx, dword [eax + 0x17f8]
mov eax, esi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
add eax, dword [ebp]
mov ebp, dword [esp + 0x280]
lea eax, [ebx + eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
add eax, 8
mov dword [esp], eax
call dword [edx + ebp*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x2ac]
imul edi, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x2ac]
mov edx, dword [eax + 0x17f8]
mov eax, esi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x2a4]
shl ebp, 3
add eax, dword [ecx]
add eax, edi
mov edi, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, ebp
add eax, dword [edi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x280]
call dword [edx + eax*4 + 0x40]
mov edx, dword [edi + 0x17f8]
mov ecx, dword [esp + 0x2ac]
mov edi, dword [esp + 0x2a4]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
add esi, dword [edi]
lea ebx, [ebx + esi + 8]
lea ebx, [ebp + ebx]
mov dword [esp + 4], ebx
mov eax, dword [ecx + 0x170c]
mov ebx, dword [esp + 0x280]
add eax, 8
lea eax, [ebp + eax]
mov dword [esp], eax
call dword [edx + ebx*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x2ac]
mov ebx, dword [esp + 0x284]
mov edi, dword [esp + 0x288]
mov esi, dword [esp + 0x2ac]
mov edx, dword [eax + 0x17fc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x2a4]
sar ebx, 2
sar edi, 2
imul esi, ebx
mov eax, edi
add ebx, 8
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x70]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x27c]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x2ac]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x2a4]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x70]
lea eax, [esi + eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x27c]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x2ac]
imul ebx, dword [esp + 0x2ac]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x2a4]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 0x20]
add eax, ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, ebp
add eax, dword [ebx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x27c]
call dword [edx + eax*4 + 0x40]
mov edx, dword [ebx + 0x17fc]
mov ecx, dword [esp + 0x2ac]
mov ebx, dword [esp + 0x2a4]
mov dword [esp + 8], ecx
add edi, dword [ebx + 0x20]
lea esi, [esi + edi + 8]
mov edi, dword [esp + 0x27c]
lea esi, [ebp + esi]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x70]
mov eax, dword [esi + 0x170c]
add eax, 8
lea eax, [ebp + eax]
mov dword [esp], eax
call dword [edx + edi*4 + 0x40]
jmp 0x8ac678
mov esi, dword [esp + 0x70]
sub ecx, dword [esp + 0x29c]
imul ecx, dword [esi + 0x16c0]
mov edx, ecx
mov eax, ecx
sar edx, 0x1f
idiv dword [esp + 0x29c]
mov dword [esp + 0x284], eax
jmp 0x8ac4e7
mov eax, dword [esp + 0x70]
mov edx, ecx
sub edx, dword [esp + 0x29c]
imul edx, dword [eax + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x29c]
mov dword [esp + 0x288], eax
jmp 0x8ac4c5
mov edi, dword [esp + 0x2ac]
add edx, 0x2c
sub ecx, ebx
mov ebp, dword [esp + 0x130]
mov dword [esp + 0x3f4], edx
mov dword [esp + 0x294], 0
shl edi, 3
add ebp, 4
mov dword [esp + 0x3f0], edi
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x294]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x2c4]
mov esi, dword [esp + 0x2c4]
mov edi, dword [esp + 0x2c0]
add esi, dword [edx + eax*8 + 0x16dc]
add edi, dword [edx + eax*8 + 0x16e0]
test ecx, ecx
je 0x8b0b89
mov ecx, esi
sub ecx, dword [edx + eax*8 + 0x16bc]
and eax, 1
mov dword [esp + 0x408], eax
mov dword [esp + 0x290], ecx
mov eax, dword [esp + 0x2c0]
test eax, eax
je 0x8b0c6c
mov edx, dword [esp + 0x294]
mov ebx, edi
mov ecx, dword [esp + 0x70]
mov ebp, edx
sub ebx, dword [ecx + edx*8 + 0x16c0]
sar ebp, 1
mov eax, dword [esp + 0x298]
movzx ecx, byte [esp + 0x134]
mov edx, dword [esp + 0x298]
imul ebp, dword [esp + 0x3f0]
and eax, edi
shl eax, cl
and edx, esi
add eax, edx
mov edx, dword [esp + 0x290]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x298]
and edx, dword [esp + 0x298]
and eax, ebx
shl eax, cl
add eax, edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x28c], eax
mov eax, dword [esp + 0x408]
lea ebp, [ebp + eax*8]
mov eax, dword [esp + 0x130]
add ebp, dword [edx + 0x170c]
test eax, eax
je 0x8b0bd4
mov eax, dword [esp + 0x2ac]
sar edi, 2
mov ecx, dword [esp + 0x2a4]
sar esi, 2
mov edx, dword [edx + 0x17f8]
sar ebx, 2
imul edi, eax
mov dword [esp + 8], eax
add esi, dword [ecx]
mov dword [esp], ebp
lea eax, [esi + edi]
mov esi, dword [esp + 0x20]
mov dword [esp + 4], eax
call dword [edx + esi*4 + 0x40]
mov eax, dword [esp + 0x2ac]
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x3f4]
sar dword [esp + 0x290], 2
imul ebx, eax
mov edx, dword [edi + 0x17fc]
mov dword [esp + 8], eax
mov ecx, dword [ecx]
add dword [esp + 0x290], ecx
mov eax, dword [esp + 0x290]
mov dword [esp], ebp
add eax, ebx
mov ebx, dword [esp + 0x28c]
mov dword [esp + 4], eax
call dword [edx + ebx*4 + 0x40]
add dword [esp + 0x294], 1
cmp dword [esp + 0x294], 4
jne 0x8b0a04
jmp 0x8ac678
mov ebx, dword [esp + 0x294]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x48]
movzx ecx, byte [esp + 0x4c]
and ebx, 1
mov ebp, ebx
mov dword [esp + 0x408], ebx
mov ebx, dword [esp + 0x294]
shl ebp, cl
imul edx, dword [eax + ebx*8 + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x29c]
add ebp, eax
mov dword [esp + 0x290], ebp
jmp 0x8b0a54
mov eax, dword [esp + 0x70]
sar edi, 1
mov ecx, dword [esp + 0x2ac]
sar esi, 1
sar ebx, 1
mov edx, dword [eax + 0x17f0]
mov eax, dword [esp + 0x2a4]
imul edi, ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xc], 8
add esi, dword [eax]
mov dword [esp], ebp
lea eax, [esi + edi]
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
mov edi, dword [esp + 0x2ac]
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x3f4]
sar dword [esp + 0x290], 1
imul ebx, edi
mov ecx, dword [esp + 0x28c]
mov edx, dword [esi + 0x17f4]
mov dword [esp + 0xc], 8
mov dword [esp + 8], edi
mov eax, dword [eax]
add dword [esp + 0x290], eax
mov eax, dword [esp + 0x290]
mov dword [esp], ebp
add eax, ebx
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
jmp 0x8b0b6e
mov ebp, dword [esp + 0x294]
movzx ecx, byte [esp + 0x4c]
mov eax, dword [esp + 0x294]
mov edx, dword [esp + 0x48]
sar ebp, 1
mov ebx, ebp
shl ebx, cl
mov ecx, dword [esp + 0x70]
imul edx, dword [ecx + eax*8 + 0x16c0]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x29c]
add ebx, eax
jmp 0x8b0a7b
mov edi, dword [esp + 0x2f8]
add edx, 0x2c
sub ecx, ebx
mov ebp, dword [esp + 0x130]
mov dword [esp + 0x3ec], edx
mov dword [esp + 0x2e0], 0
shl edi, 3
add ebp, 4
mov dword [esp + 0x3e8], edi
mov dword [esp + 0x54], ebp
mov dword [esp + 0x50], ecx
jmp 0x8b0e31
mov ecx, esi
sub ecx, dword [edx + eax*8 + 0x16bc]
and eax, 1
mov dword [esp + 0x40c], eax
mov dword [esp + 0x2dc], ecx
mov eax, dword [esp + 0x30c]
test eax, eax
je 0x8b0f4a
mov edx, dword [esp + 0x2e0]
mov ebx, edi
mov ecx, dword [esp + 0x70]
mov ebp, edx
sub ebx, dword [ecx + edx*8 + 0x16c0]
sar ebp, 1
mov eax, dword [esp + 0x2e4]
movzx ecx, byte [esp + 0x134]
mov edx, dword [esp + 0x2e4]
imul ebp, dword [esp + 0x3e8]
and eax, edi
shl eax, cl
and edx, esi
add eax, edx
mov edx, dword [esp + 0x2dc]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2e4]
and edx, dword [esp + 0x2e4]
and eax, ebx
shl eax, cl
add eax, edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x2d8], eax
mov eax, dword [esp + 0x40c]
lea ebp, [ebp + eax*8]
mov eax, dword [esp + 0x130]
add ebp, dword [edx + 0x170c]
test eax, eax
je 0x8b0eb2
mov eax, dword [esp + 0x2f8]
sar edi, 2
mov ecx, dword [esp + 0x2f0]
sar esi, 2
mov edx, dword [edx + 0x17f8]
sar ebx, 2
imul edi, eax
mov dword [esp + 8], eax
add esi, dword [ecx]
mov dword [esp], ebp
lea eax, [esi + edi]
mov esi, dword [esp + 0x20]
mov dword [esp + 4], eax
call dword [edx + esi*4 + 0x40]
mov eax, dword [esp + 0x2f8]
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x3ec]
sar dword [esp + 0x2dc], 2
imul ebx, eax
mov edx, dword [edi + 0x17fc]
mov dword [esp + 8], eax
mov ecx, dword [ecx]
add dword [esp + 0x2dc], ecx
mov eax, dword [esp + 0x2dc]
mov dword [esp], ebp
add eax, ebx
mov ebx, dword [esp + 0x2d8]
mov dword [esp + 4], eax
call dword [edx + ebx*4 + 0x40]
add dword [esp + 0x2e0], 1
cmp dword [esp + 0x2e0], 4
je 0x8acad1
mov eax, dword [esp + 0x2e0]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x310]
mov esi, dword [esp + 0x310]
mov edi, dword [esp + 0x30c]
add esi, dword [edx + eax*8 + 0x16dc]
add edi, dword [edx + eax*8 + 0x16e0]
test ecx, ecx
jne 0x8b0ce7
mov ebx, dword [esp + 0x2e0]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x50]
movzx ecx, byte [esp + 0x54]
and ebx, 1
mov ebp, ebx
mov dword [esp + 0x40c], ebx
mov ebx, dword [esp + 0x2e0]
shl ebp, cl
imul edx, dword [eax + ebx*8 + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x2e8]
add ebp, eax
mov dword [esp + 0x2dc], ebp
jmp 0x8b0d01
mov eax, dword [esp + 0x70]
sar edi, 1
mov ecx, dword [esp + 0x2f8]
sar esi, 1
sar ebx, 1
mov edx, dword [eax + 0x17f0]
mov eax, dword [esp + 0x2f0]
imul edi, ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xc], 8
add esi, dword [eax]
mov dword [esp], ebp
lea eax, [esi + edi]
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
mov edi, dword [esp + 0x2f8]
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x3ec]
sar dword [esp + 0x2dc], 1
imul ebx, edi
mov ecx, dword [esp + 0x2d8]
mov edx, dword [esi + 0x17f4]
mov dword [esp + 0xc], 8
mov dword [esp + 8], edi
mov eax, dword [eax]
add dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x2dc]
mov dword [esp], ebp
add eax, ebx
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
jmp 0x8b0e1b
mov ebp, dword [esp + 0x2e0]
movzx ecx, byte [esp + 0x54]
mov eax, dword [esp + 0x2e0]
mov edx, dword [esp + 0x50]
sar ebp, 1
mov ebx, ebp
shl ebx, cl
mov ecx, dword [esp + 0x70]
imul edx, dword [ecx + eax*8 + 0x16c0]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x2e8]
add ebx, eax
jmp 0x8b0d28
mov dword [esp + 8], 0x37a
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbaeca5
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x378
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbaebf9
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x379
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbaec5b
call sub.msvcrt.dll__assert
mov esi, dword [esp + 0x70]
sub ecx, dword [esp + 0x2e8]
imul ecx, dword [esi + 0x16c0]
mov edx, ecx
mov eax, ecx
sar edx, 0x1f
idiv dword [esp + 0x2e8]
mov dword [esp + 0x2d0], eax
jmp 0x8ac940
mov eax, dword [esp + 0x70]
mov edx, ecx
sub edx, dword [esp + 0x2e8]
imul edx, dword [eax + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x2e8]
mov dword [esp + 0x2d4], eax
jmp 0x8ac91e
mov dword [esp + 8], 0x37a
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbaec91
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x37a
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbaec7f
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x37a
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbaec6d
call sub.msvcrt.dll__assert
mov esi, ebx
mov ebx, dword [esp + 0x2f8]
mov ebp, dword [esp + 0x70]
sar edi, 2
mov eax, dword [esp + 0x2f8]
sar esi, 2
mov ecx, dword [esp + 0x2f0]
imul ebx, edi
add edi, 8
mov edx, dword [ebp + 0x17f8]
mov dword [esp + 8], eax
mov eax, esi
add eax, dword [ecx]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x170c]
mov ebp, dword [esp + 0x2cc]
mov dword [esp], eax
call dword [edx + ebp*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x2f8]
mov ebp, dword [esp + 0x2f0]
mov edx, dword [eax + 0x17f8]
mov eax, esi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
add eax, dword [ebp]
mov ebp, dword [esp + 0x2cc]
lea eax, [ebx + eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
add eax, 8
mov dword [esp], eax
call dword [edx + ebp*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x2f8]
imul edi, dword [esp + 0x2f8]
mov ebp, dword [esp + 0x2f8]
mov edx, dword [eax + 0x17f8]
mov eax, esi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x2f0]
shl ebp, 3
add eax, dword [ecx]
add eax, edi
mov edi, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, ebp
add eax, dword [edi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x2cc]
call dword [edx + eax*4 + 0x40]
mov edx, dword [edi + 0x17f8]
mov ecx, dword [esp + 0x2f8]
mov edi, dword [esp + 0x2f0]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
add esi, dword [edi]
lea ebx, [ebx + esi + 8]
lea ebx, [ebp + ebx]
mov dword [esp + 4], ebx
mov eax, dword [ecx + 0x170c]
mov ebx, dword [esp + 0x2cc]
add eax, 8
lea eax, [ebp + eax]
mov dword [esp], eax
call dword [edx + ebx*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x2f8]
mov ebx, dword [esp + 0x2d0]
mov edi, dword [esp + 0x2d4]
mov esi, dword [esp + 0x2f8]
mov edx, dword [eax + 0x17fc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x2f0]
sar ebx, 2
sar edi, 2
imul esi, ebx
mov eax, edi
add ebx, 8
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x70]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x2c8]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x2f8]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x2f0]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x70]
lea eax, [esi + eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x2c8]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x2f8]
imul ebx, dword [esp + 0x2f8]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x2f0]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 0x20]
add eax, ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, ebp
add eax, dword [ebx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x2c8]
call dword [edx + eax*4 + 0x40]
mov edx, dword [ebx + 0x17fc]
mov ecx, dword [esp + 0x2f8]
mov ebx, dword [esp + 0x2f0]
mov dword [esp + 8], ecx
add edi, dword [ebx + 0x20]
lea esi, [esi + edi + 8]
mov edi, dword [esp + 0x2c8]
lea esi, [ebp + esi]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x70]
mov eax, dword [esi + 0x170c]
add eax, 8
lea eax, [ebp + eax]
mov dword [esp], eax
call dword [edx + edi*4 + 0x40]
jmp 0x8acad1
mov esi, dword [esp + 0x70]
sub ecx, dword [esp + 0x334]
imul ecx, dword [esi + 0x16c0]
mov edx, ecx
mov eax, ecx
sar edx, 0x1f
idiv dword [esp + 0x334]
mov dword [esp + 0x31c], eax
jmp 0x8acda3
mov eax, dword [esp + 0x70]
mov edx, ecx
sub edx, dword [esp + 0x334]
imul edx, dword [eax + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x334]
mov dword [esp + 0x320], eax
jmp 0x8acd81
mov esi, ebx
mov ebx, dword [esp + 0x344]
mov ebp, dword [esp + 0x70]
sar edi, 2
mov eax, dword [esp + 0x344]
sar esi, 2
mov ecx, dword [esp + 0x33c]
imul ebx, edi
add edi, 8
mov edx, dword [ebp + 0x17f8]
mov dword [esp + 8], eax
mov eax, esi
add eax, dword [ecx]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x170c]
mov ebp, dword [esp + 0x318]
mov dword [esp], eax
call dword [edx + ebp*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x344]
mov ebp, dword [esp + 0x33c]
mov edx, dword [eax + 0x17f8]
mov eax, esi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
add eax, dword [ebp]
mov ebp, dword [esp + 0x318]
lea eax, [ebx + eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
add eax, 8
mov dword [esp], eax
call dword [edx + ebp*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x344]
imul edi, dword [esp + 0x344]
mov ebp, dword [esp + 0x344]
mov edx, dword [eax + 0x17f8]
mov eax, esi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x33c]
shl ebp, 3
add eax, dword [ecx]
add eax, edi
mov edi, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, ebp
add eax, dword [edi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x318]
call dword [edx + eax*4 + 0x40]
mov edx, dword [edi + 0x17f8]
mov ecx, dword [esp + 0x344]
mov edi, dword [esp + 0x33c]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
add esi, dword [edi]
lea ebx, [ebx + esi + 8]
lea ebx, [ebp + ebx]
mov dword [esp + 4], ebx
mov eax, dword [ecx + 0x170c]
mov ebx, dword [esp + 0x318]
add eax, 8
lea eax, [ebp + eax]
mov dword [esp], eax
call dword [edx + ebx*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x344]
mov ebx, dword [esp + 0x31c]
mov edi, dword [esp + 0x320]
mov esi, dword [esp + 0x344]
mov edx, dword [eax + 0x17fc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x33c]
sar ebx, 2
sar edi, 2
imul esi, ebx
mov eax, edi
add ebx, 8
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x70]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x314]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x344]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x33c]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x70]
lea eax, [esi + eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x314]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x344]
imul ebx, dword [esp + 0x344]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x33c]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 0x20]
add eax, ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, ebp
add eax, dword [ebx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x314]
call dword [edx + eax*4 + 0x40]
mov edx, dword [ebx + 0x17fc]
mov ecx, dword [esp + 0x344]
mov ebx, dword [esp + 0x33c]
mov dword [esp + 8], ecx
add edi, dword [ebx + 0x20]
lea esi, [esi + edi + 8]
mov edi, dword [esp + 0x314]
lea esi, [ebp + esi]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x70]
mov eax, dword [esi + 0x170c]
add eax, 8
lea eax, [ebp + eax]
mov dword [esp], eax
call dword [edx + edi*4 + 0x40]
jmp 0x8acf34
mov dword [esp + 8], 0x378
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbaec0d
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x379
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbaec21
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x379
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbaec47
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x379
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbaec33
call sub.msvcrt.dll__assert
mov esi, ebx
mov ebx, dword [esp + 0x390]
mov ebp, dword [esp + 0x70]
sar edi, 2
mov eax, dword [esp + 0x390]
sar esi, 2
mov ecx, dword [esp + 0x388]
imul ebx, edi
add edi, 8
mov edx, dword [ebp + 0x17f8]
mov dword [esp + 8], eax
mov eax, esi
add eax, dword [ecx]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x170c]
mov ebp, dword [esp + 0x364]
mov dword [esp], eax
call dword [edx + ebp*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x390]
mov ebp, dword [esp + 0x388]
mov edx, dword [eax + 0x17f8]
mov eax, esi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
add eax, dword [ebp]
mov ebp, dword [esp + 0x364]
lea eax, [ebx + eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
add eax, 8
mov dword [esp], eax
call dword [edx + ebp*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x390]
imul edi, dword [esp + 0x390]
mov ebp, dword [esp + 0x390]
mov edx, dword [eax + 0x17f8]
mov eax, esi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x388]
shl ebp, 3
add eax, dword [ecx]
add eax, edi
mov edi, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, ebp
add eax, dword [edi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x364]
call dword [edx + eax*4 + 0x40]
mov edx, dword [edi + 0x17f8]
mov ecx, dword [esp + 0x390]
mov edi, dword [esp + 0x388]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
add esi, dword [edi]
lea ebx, [ebx + esi + 8]
lea ebx, [ebp + ebx]
mov dword [esp + 4], ebx
mov eax, dword [ecx + 0x170c]
mov ebx, dword [esp + 0x364]
add eax, 8
lea eax, [ebp + eax]
mov dword [esp], eax
call dword [edx + ebx*4 + 0x40]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x390]
mov ebx, dword [esp + 0x368]
mov edi, dword [esp + 0x36c]
mov esi, dword [esp + 0x390]
mov edx, dword [eax + 0x17fc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x388]
sar ebx, 2
sar edi, 2
imul esi, ebx
mov eax, edi
add ebx, 8
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x70]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x360]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x390]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x388]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x70]
lea eax, [esi + eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x360]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x390]
imul ebx, dword [esp + 0x390]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x388]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 0x20]
add eax, ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, ebp
add eax, dword [ebx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x360]
call dword [edx + eax*4 + 0x40]
mov edx, dword [ebx + 0x17fc]
mov ecx, dword [esp + 0x390]
mov ebx, dword [esp + 0x388]
mov dword [esp + 8], ecx
add edi, dword [ebx + 0x20]
lea esi, [esi + edi + 8]
mov edi, dword [esp + 0x360]
lea esi, [ebp + esi]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x70]
mov eax, dword [esi + 0x170c]
add eax, 8
lea eax, [ebp + eax]
mov dword [esp], eax
call dword [edx + edi*4 + 0x40]
jmp 0x8ad397
mov edi, dword [esp + 0x344]
add edx, 0x2c
sub ecx, ebx
mov ebp, dword [esp + 0x130]
mov dword [esp + 0x3e4], edx
mov dword [esp + 0x32c], 0
shl edi, 3
add ebp, 4
mov dword [esp + 0x3e0], edi
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x58], ecx
jmp 0x8b19fd
mov ecx, esi
sub ecx, dword [edx + eax*8 + 0x16bc]
and eax, 1
mov dword [esp + 0x410], eax
mov dword [esp + 0x328], ecx
mov eax, dword [esp + 0x358]
test eax, eax
je 0x8b1ebc
mov edx, dword [esp + 0x32c]
mov ebx, edi
mov ecx, dword [esp + 0x70]
mov ebp, edx
sub ebx, dword [ecx + edx*8 + 0x16c0]
sar ebp, 1
mov eax, dword [esp + 0x330]
movzx ecx, byte [esp + 0x134]
mov edx, dword [esp + 0x330]
imul ebp, dword [esp + 0x3e0]
and eax, edi
shl eax, cl
and edx, esi
add eax, edx
mov edx, dword [esp + 0x328]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x330]
and edx, dword [esp + 0x330]
and eax, ebx
shl eax, cl
add eax, edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x324], eax
mov eax, dword [esp + 0x410]
lea ebp, [ebp + eax*8]
mov eax, dword [esp + 0x130]
add ebp, dword [edx + 0x170c]
test eax, eax
je 0x8b1e24
mov eax, dword [esp + 0x344]
sar edi, 2
mov ecx, dword [esp + 0x33c]
sar esi, 2
mov edx, dword [edx + 0x17f8]
sar ebx, 2
imul edi, eax
mov dword [esp + 8], eax
add esi, dword [ecx]
mov dword [esp], ebp
lea eax, [esi + edi]
mov esi, dword [esp + 0x20]
mov dword [esp + 4], eax
call dword [edx + esi*4 + 0x40]
mov eax, dword [esp + 0x344]
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x3e4]
sar dword [esp + 0x328], 2
imul ebx, eax
mov edx, dword [edi + 0x17fc]
mov dword [esp + 8], eax
mov ecx, dword [ecx]
add dword [esp + 0x328], ecx
mov eax, dword [esp + 0x328]
mov dword [esp], ebp
add eax, ebx
mov ebx, dword [esp + 0x324]
mov dword [esp + 4], eax
call dword [edx + ebx*4 + 0x40]
add dword [esp + 0x32c], 1
cmp dword [esp + 0x32c], 4
je 0x8acf34
mov eax, dword [esp + 0x32c]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x35c]
mov esi, dword [esp + 0x35c]
mov edi, dword [esp + 0x358]
add esi, dword [edx + eax*8 + 0x16dc]
add edi, dword [edx + eax*8 + 0x16e0]
test ecx, ecx
jne 0x8b18b3
mov ebx, dword [esp + 0x32c]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
movzx ecx, byte [esp + 0x5c]
and ebx, 1
mov ebp, ebx
mov dword [esp + 0x410], ebx
mov ebx, dword [esp + 0x32c]
shl ebp, cl
imul edx, dword [eax + ebx*8 + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x334]
add ebp, eax
mov dword [esp + 0x328], ebp
jmp 0x8b18cd
mov edi, dword [esp + 0x390]
add edx, 0x2c
sub ecx, ebx
mov ebp, dword [esp + 0x130]
mov dword [esp + 0x3dc], edx
mov dword [esp + 0x378], 0
shl edi, 3
add ebp, 4
mov dword [esp + 0x3d8], edi
mov dword [esp + 0x64], ebp
mov dword [esp + 0x60], ecx
jmp 0x8b1c07
mov ecx, esi
sub ecx, dword [edx + eax*8 + 0x16bc]
and eax, 1
mov dword [esp + 0x414], eax
mov dword [esp + 0x374], ecx
mov eax, dword [esp + 0x3a4]
test eax, eax
je 0x8b1d20
mov edx, dword [esp + 0x378]
mov ebx, edi
mov ecx, dword [esp + 0x70]
mov ebp, edx
sub ebx, dword [ecx + edx*8 + 0x16c0]
sar ebp, 1
mov eax, dword [esp + 0x37c]
movzx ecx, byte [esp + 0x134]
mov edx, dword [esp + 0x37c]
imul ebp, dword [esp + 0x3d8]
and eax, edi
shl eax, cl
and edx, esi
add eax, edx
mov edx, dword [esp + 0x374]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x37c]
and edx, dword [esp + 0x37c]
and eax, ebx
shl eax, cl
add eax, edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x414]
lea ebp, [ebp + eax*8]
mov eax, dword [esp + 0x130]
add ebp, dword [edx + 0x170c]
test eax, eax
je 0x8b1c88
mov eax, dword [esp + 0x390]
sar edi, 2
mov ecx, dword [esp + 0x388]
sar esi, 2
mov edx, dword [edx + 0x17f8]
sar ebx, 2
imul edi, eax
mov dword [esp + 8], eax
add esi, dword [ecx]
mov dword [esp], ebp
lea eax, [esi + edi]
mov esi, dword [esp + 0x20]
mov dword [esp + 4], eax
call dword [edx + esi*4 + 0x40]
mov eax, dword [esp + 0x390]
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x3dc]
sar dword [esp + 0x374], 2
imul ebx, eax
mov edx, dword [edi + 0x17fc]
mov dword [esp + 8], eax
mov ecx, dword [ecx]
add dword [esp + 0x374], ecx
mov eax, dword [esp + 0x374]
mov dword [esp], ebp
add eax, ebx
mov ebx, dword [esp + 0x370]
mov dword [esp + 4], eax
call dword [edx + ebx*4 + 0x40]
add dword [esp + 0x378], 1
cmp dword [esp + 0x378], 4
je 0x8ad397
mov eax, dword [esp + 0x378]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x3a8]
mov esi, dword [esp + 0x3a8]
mov edi, dword [esp + 0x3a4]
add esi, dword [edx + eax*8 + 0x16dc]
add edi, dword [edx + eax*8 + 0x16e0]
test ecx, ecx
jne 0x8b1abd
mov ebx, dword [esp + 0x378]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x60]
movzx ecx, byte [esp + 0x64]
and ebx, 1
mov ebp, ebx
mov dword [esp + 0x414], ebx
mov ebx, dword [esp + 0x378]
shl ebp, cl
imul edx, dword [eax + ebx*8 + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x380]
add ebp, eax
mov dword [esp + 0x374], ebp
jmp 0x8b1ad7
mov eax, dword [esp + 0x70]
sar edi, 1
mov ecx, dword [esp + 0x390]
sar esi, 1
sar ebx, 1
mov edx, dword [eax + 0x17f0]
mov eax, dword [esp + 0x388]
imul edi, ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xc], 8
add esi, dword [eax]
mov dword [esp], ebp
lea eax, [esi + edi]
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
mov edi, dword [esp + 0x390]
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x3dc]
sar dword [esp + 0x374], 1
imul ebx, edi
mov ecx, dword [esp + 0x370]
mov edx, dword [esi + 0x17f4]
mov dword [esp + 0xc], 8
mov dword [esp + 8], edi
mov eax, dword [eax]
add dword [esp + 0x374], eax
mov eax, dword [esp + 0x374]
mov dword [esp], ebp
add eax, ebx
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
jmp 0x8b1bf1
mov ebp, dword [esp + 0x378]
movzx ecx, byte [esp + 0x64]
mov eax, dword [esp + 0x378]
mov edx, dword [esp + 0x60]
sar ebp, 1
mov ebx, ebp
shl ebx, cl
mov ecx, dword [esp + 0x70]
imul edx, dword [ecx + eax*8 + 0x16c0]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x380]
add ebx, eax
jmp 0x8b1afe
mov dword [esp + 8], 0x37b
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbaeccd
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x37b
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbaecb9
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x37b
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbaec7f
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x37b
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbaec6d
call sub.msvcrt.dll__assert
mov esi, dword [esp + 0x70]
sub ecx, dword [esp + 0x380]
imul ecx, dword [esi + 0x16c0]
mov edx, ecx
mov eax, ecx
sar edx, 0x1f
idiv dword [esp + 0x380]
mov dword [esp + 0x368], eax
jmp 0x8ad206
mov eax, dword [esp + 0x70]
mov edx, ecx
sub edx, dword [esp + 0x380]
imul edx, dword [eax + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x380]
mov dword [esp + 0x36c], eax
jmp 0x8ad1e4
mov eax, dword [esp + 0x70]
sar edi, 1
mov ecx, dword [esp + 0x344]
sar esi, 1
sar ebx, 1
mov edx, dword [eax + 0x17f0]
mov eax, dword [esp + 0x33c]
imul edi, ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xc], 8
add esi, dword [eax]
mov dword [esp], ebp
lea eax, [esi + edi]
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
mov edi, dword [esp + 0x344]
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x3e4]
sar dword [esp + 0x328], 1
imul ebx, edi
mov ecx, dword [esp + 0x324]
mov edx, dword [esi + 0x17f4]
mov dword [esp + 0xc], 8
mov dword [esp + 8], edi
mov eax, dword [eax]
add dword [esp + 0x328], eax
mov eax, dword [esp + 0x328]
mov dword [esp], ebp
add eax, ebx
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
jmp 0x8b19e7
mov ebp, dword [esp + 0x32c]
movzx ecx, byte [esp + 0x5c]
mov eax, dword [esp + 0x32c]
mov edx, dword [esp + 0x58]
sar ebp, 1
mov ebx, ebp
shl ebx, cl
mov ecx, dword [esp + 0x70]
imul edx, dword [ecx + eax*8 + 0x16c0]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x334]
add ebx, eax
jmp 0x8b18f4