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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2cc
mov dword [esp + 0x60], eax
mov eax, dword [eax + 0x1718]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0xa4], eax
mov esi, dword [esp + 0x60]
mov edx, dword [edx + 0x1744]
mov ecx, dword [ecx + 0x174c]
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x60]
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0x60]
mov ebx, dword [ebx + 0x1748]
mov esi, dword [esi + 0x1750]
mov edi, dword [edi + 0x1804]
mov eax, dword [eax + 0x1754]
mov edx, dword [edx + 0x1758]
mov ecx, dword [ecx + 0x1714]
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc4], ecx
mov ebx, dword [esp + 0x2f4]
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x2ec]
and ebx, 1
mov ecx, dword [esp + 0x2ec]
mov dword [esp + 0xc8], ebx
add ebx, 1
mov eax, dword [edi + 0x1740]
mov dword [esp + 0xcc], ebx
mov ebx, dword [esp + 0x5c]
mov edx, dword [edi + edx*4 + 0x9bc]
mov esi, dword [esi + 0x171c]
mov ecx, dword [edi + ecx*4 + 0x9c0]
and eax, 0xfe
mov ebx, dword [ebx]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0xec], eax
mov dword [esp + 0xd0], esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x9c], edx
mov eax, ebx
mov edx, dword [esp + 0xa8]
sub eax, dword [esp + 0xec]
mov edi, dword [edi + 4]
add esi, 4
add eax, 1
cmp eax, edx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0x64], esi
mov dword [esp + 0xd8], edi
mov dword [esp + 0xdc], eax
jge 0x890729
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0xdc], edx
mov ecx, dword [esp + 0xec]
lea ecx, [ecx + ebx - 1]
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x70], ecx
cmp ecx, ebx
jle 0x890747
mov dword [esp + 0x70], ebx
mov esi, dword [esp + 0x70]
cmp dword [esp + 0xdc], esi
jg 0x8913dc
mov edi, dword [esp + 0xdc]
cmp dword [esp + 0xa8], edi
jg 0x89207f
cmp dword [esp + 0xb0], edi
jl 0x89209b
mov eax, dword [esp + 0xd8]
cmp dword [esp + 0xac], eax
jg 0x8920b7
cmp dword [esp + 0xb4], eax
jl 0x8920d3
mov eax, dword [esp + 0xd8]
mov esi, dword [esp + 0xd8]
mov edi, dword [esp + 0xdc]
movzx ecx, byte [esp + 0xcc]
shl eax, 0xb
add eax, dword [esp + 0xd0]
add eax, dword [esp + 0xdc]
lea edx, [edi + esi*8]
mov edi, dword [esp + 0x2f4]
shl esi, cl
mov ebx, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xc8]
and ebx, 0x3f
mov dword [esp + 0x158], esi
mov esi, dword [esp + 0x2f4]
mov ecx, dword [esp + 0xf0]
and edi, 2
mov dword [esp + 0x134], edi
add eax, eax
add eax, 1
and esi, 4
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x154], esi
mov esi, ecx
mov dword [esp + 0x2a0], ecx
mov dword [esp + 0x2a4], edx
and eax, 1
add eax, eax
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x2ec]
shl eax, 4
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x2e4]
shl eax, 4
add eax, 0x1790
mov dword [esp + 0x20], eax
jmp 0x890be5
mov ecx, dword [esp + 0xdc]
cmp dword [edi + 0x1744], ecx
jg 0x8913c0
mov eax, dword [edi + 0x1748]
movzx ecx, byte [esp + 0xcc]
shl eax, cl
cmp ebx, eax
jg 0x8913c0
mov ebx, dword [esp + 0xd8]
cmp ebx, dword [edi + 0x174c]
jl 0x8913c0
mov eax, dword [edi + 0x1750]
shl eax, cl
cmp dword [esp + 0x158], eax
jg 0x8913c0
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x60]
movzx ebx, word [ebx + 0x1fa0]
cmp dword [esi + 0x153c], 1
movzx edi, word [esi + 0x1fa2]
mov dword [esp + 0x128], ebx
je 0x890e88
mov ebp, dword [esp + 0x15c]
add ebp, dword [esi + 0x16dc]
mov ecx, dword [esp + 0x15c]
mov esi, dword [esp + 0x60]
mov ebx, dword [esp + 0x158]
add ebx, dword [esi + 0x16e0]
test ecx, ecx
je 0x890e60
mov eax, ebp
sub eax, dword [esi + 0x16bc]
mov dword [esp + 0x114], eax
mov edx, dword [esp + 0x158]
test edx, edx
je 0x890e30
mov edx, dword [esp + 0x60]
mov ecx, ebx
sub ecx, dword [edx + 0x16c0]
mov dword [esp + 0x110], ecx
mov eax, dword [esp + 0x124]
movzx ecx, byte [esp + 0xcc]
mov edx, dword [esp + 0x124]
and eax, ebx
shl eax, cl
and edx, ebp
add edx, eax
mov eax, dword [esp + 0x110]
and eax, dword [esp + 0x124]
mov dword [esp + 0x10c], edx
mov edx, dword [esp + 0x114]
and edx, dword [esp + 0x124]
shl eax, cl
add eax, edx
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0xc8]
test eax, eax
jne 0x891164
mov esi, dword [esp + 0x60]
sar ebp, 1
mov ecx, dword [esi + 0x1814]
shl ecx, 4
lea esi, [ebp + ecx]
cmp esi, 0xfffffff0
jl 0x892e66
mov edi, dword [esp + 0x60]
mov eax, ebx
sar eax, 1
mov edx, dword [edi + 0x1818]
shl edx, 4
lea ebx, [eax + edx]
cmp ebx, 0xfffffff0
jl 0x892e82
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x150], edi
jg 0x892eba
mov edi, dword [esp + 0x60]
mov esi, dword [edi + 8]
cmp ebx, esi
jg 0x892e9e
mov edi, dword [esp + 0x114]
sar edi, 1
lea ecx, [edi + ecx]
cmp ecx, 0xfffffff0
jl 0x892ef2
mov ebx, dword [esp + 0x110]
sar ebx, 1
lea edx, [ebx + edx]
cmp edx, 0xfffffff0
jl 0x892ed6
cmp dword [esp + 0x150], ecx
jl 0x892f2a
cmp esi, edx
jl 0x892f0e
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x13c]
mov edx, dword [ecx + 0x17f0]
mov ecx, dword [esp + 0x130]
imul eax, esi
mov dword [esp + 8], esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0xc], 0x10
add ebp, dword [ecx]
lea eax, [ebp + eax]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x10c]
call dword [edx + eax*4]
mov ecx, dword [esp + 0x13c]
mov edx, dword [esi + 0x17f4]
mov esi, dword [esp + 0x130]
mov dword [esp + 0xc], 0x10
imul ebx, ecx
mov dword [esp + 8], ecx
add edi, dword [esi + 0x20]
lea eax, [edi + ebx]
mov edi, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x108]
call dword [edx + eax*4]
mov edx, dword [esp + 0x13c]
mov ecx, dword [esp + 0x12c]
mov dword [esp + 0x10], 0x10
mov ebx, dword [esp + 0x60]
mov dword [esp + 0xc], edx
mov eax, dword [ecx]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x170c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [esp + 0x9c]
mov ebp, eax
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0xbc]
sub dword [esp + 0x15c], eax
mov edx, dword [esp + 0x15c]
mov dword [ecx], ebx
mov esi, dword [esp + 0xa4]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x68]
mov dword [esi + edi], ebp
movzx eax, byte [edx + ecx]
mov edx, dword [esp + 0x158]
sub edx, dword [esp + 0xc0]
movzx edx, byte [edx + ecx]
add eax, edx
imul eax, dword [esp + 0x2e8]
lea ecx, [ebp + eax]
cmp ecx, dword [esp + 0x58]
jge 0x890b7c
mov esi, dword [esp + 0xdc]
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0xd8]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], ecx
mov dword [ebx], esi
mov dword [eax], edi
add dword [esp + 0xdc], 2
mov edx, dword [esp + 0x70]
cmp dword [esp + 0xdc], edx
jg 0x8913dc
mov edx, dword [esp + 0xdc]
cmp dword [esp + 0xa8], edx
jg 0x89207f
add dword [esp + 0x2a0], 2
add dword [esp + 0x2a4], 2
cmp dword [esp + 0xb0], edx
jl 0x89209b
mov ebx, dword [esp + 0x2a0]
mov dword [esp + 0xf0], ebx
mov ebx, dword [esp + 0x2a4]
mov esi, dword [esp + 0xf0]
and ebx, 0x3f
shl ebx, 2
mov dword [esp + 0x68], ebx
add ebx, dword [esp + 0xc4]
cmp dword [ebx], esi
mov dword [esp + 0x6c], ebx
je 0x890b7c
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x60]
movzx ecx, byte [esp + 0xcc]
mov ebx, dword [esp + 0xdc]
mov eax, dword [eax + 0x17e0]
mov edi, dword [edi + 0x17dc]
mov edx, dword [esp + 0x60]
shl ebx, cl
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x13c], edi
mov edi, dword [esp + 0x60]
add edx, dword [esp + 0x20]
mov dword [esp + 0x15c], ebx
shl eax, 4
lea ecx, [edi + eax + 0x1750]
lea eax, [ecx + 0xc]
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x154]
lea esi, [edx + 0xc]
mov dword [esp + 0x130], esi
test eax, eax
jne 0x890868
mov edi, dword [esp + 0x13c]
mov esi, dword [esp + 0x2f0]
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], esi
add eax, dword [edx + 0xc]
mov edx, dword [esp + 0xd8]
imul edx, edi
add eax, edx
mov dword [esp + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call dword [esp + 0x9c]
mov ebp, eax
mov eax, dword [esp + 0x134]
test eax, eax
je 0x890afd
mov ebx, dword [esp + 0xdc]
sar esi, 1
mov edx, dword [esp + 0x60]
shl edi, 4
mov ecx, dword [esp + 0x14c]
mov dword [esp + 0x144], esi
mov eax, dword [esp + 0x60]
and ebx, 1
mov esi, dword [esp + 0xd8]
add ebx, dword [esp + 0x148]
mov edx, dword [edx + 0x170c]
lea ebx, [ecx + ebx*4]
mov ecx, dword [esp + 0x144]
sar esi, 1
add edi, edx
mov edx, ebx
mov dword [esp + 0x104], edi
mov edi, dword [esp + 0xdc]
add edx, dword [eax + 0x17f0]
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0x130]
imul esi, dword [esp + 0x138]
sar edi, 1
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 + 0x104]
mov dword [esp], eax
call dword [edx + 0x10]
mov edx, dword [esp + 0x104]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x144]
add edx, 8
add ebx, dword [ecx + 0x17f0]
mov dword [esp + 0x140], edx
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x138]
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 + 0x140]
mov dword [esp], esi
call dword [ebx + 0x10]
mov edi, dword [esp + 0x144]
mov eax, dword [esp + 0x138]
mov edx, dword [esp + 0x12c]
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x10], edi
mov ebx, dword [esp + 0x60]
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 + 0xa0]
mov esi, dword [esp + 0x138]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x12c]
mov edx, dword [esp + 0x60]
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 + 0x140]
mov dword [esp + 4], eax
call dword [esp + 0xa0]
lea eax, [ebx + eax]
add ebp, eax
jmp 0x890afd
mov esi, dword [esp + 0x60]
sub edi, dword [esp + 0x128]
imul edi, dword [esi + 0x16c0]
mov edx, edi
mov eax, edi
sar edx, 0x1f
idiv dword [esp + 0x128]
mov dword [esp + 0x110], eax
jmp 0x890943
mov edx, edi
sub edx, dword [esp + 0x128]
imul edx, dword [esi + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x128]
mov dword [esp + 0x114], eax
jmp 0x890921
add edx, 0x2c
mov eax, dword [esp + 0x13c]
sub edi, ebx
mov dword [esp + 0x294], edx
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x120], 0
mov dword [esp + 0x24], edi
shl eax, 3
add edx, 4
mov dword [esp + 0x290], eax
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x120]
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x15c]
mov esi, dword [esp + 0x15c]
mov edi, dword [esp + 0x158]
add esi, dword [ebx + ecx*8 + 0x16dc]
add edi, dword [ebx + ecx*8 + 0x16e0]
test eax, eax
je 0x891044
mov eax, esi
sub eax, dword [ebx + ecx*8 + 0x16bc]
and ecx, 1
mov dword [esp + 0x280], ecx
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x158]
test eax, eax
je 0x89108f
mov ebx, dword [esp + 0x120]
mov ebp, edi
mov eax, dword [esp + 0x60]
sub ebp, dword [eax + ebx*8 + 0x16c0]
sar ebx, 1
mov eax, dword [esp + 0x124]
movzx ecx, byte [esp + 0xcc]
mov edx, dword [esp + 0x124]
imul ebx, dword [esp + 0x290]
and eax, edi
shl eax, cl
and edx, esi
add edx, eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x11c]
and edx, dword [esp + 0x124]
and eax, ebp
shl eax, cl
add eax, edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x280]
lea ebx, [ebx + eax*8]
mov eax, dword [esp + 0xc8]
add ebx, dword [edx + 0x170c]
test eax, eax
je 0x8910d0
mov eax, dword [esp + 0x13c]
sar edi, 2
mov ecx, dword [esp + 0x130]
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 + 0x1c]
mov dword [esp + 4], eax
call dword [edx + esi*4 + 0x40]
mov eax, dword [esp + 0x13c]
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x294]
sar dword [esp + 0x11c], 2
imul ebp, eax
mov edx, dword [edi + 0x17fc]
mov dword [esp + 8], eax
mov ecx, dword [ecx]
add dword [esp + 0x11c], ecx
mov eax, dword [esp + 0x11c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x118]
add eax, ebp
mov dword [esp + 4], eax
call dword [edx + ebx*4 + 0x40]
add dword [esp + 0x120], 1
cmp dword [esp + 0x120], 4
jne 0x890ec2
jmp 0x890ac3
mov eax, ecx
mov edx, ecx
movzx ecx, byte [esp + 0x28]
and edx, 1
mov ebx, edx
mov dword [esp + 0x280], edx
mov edx, dword [esp + 0x24]
shl ebx, cl
mov ecx, dword [esp + 0x60]
imul edx, dword [ecx + eax*8 + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x128]
add ebx, eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x11c], ebx
test eax, eax
jne 0x890f21
mov ebx, dword [esp + 0x120]
movzx ecx, byte [esp + 0x28]
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x24]
sar ebx, 1
mov ebp, ebx
shl ebp, cl
mov ecx, dword [esp + 0x60]
imul edx, dword [ecx + eax*8 + 0x16c0]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x128]
add ebp, eax
jmp 0x890f37
mov ecx, dword [esp + 0x13c]
sar edi, 1
mov eax, dword [esp + 0x130]
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 + 0x1c]
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 + 0x13c]
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x294]
sar dword [esp + 0x11c], 1
imul ebp, edi
mov ecx, dword [esp + 0x118]
mov edx, dword [esi + 0x17f4]
mov dword [esp + 0xc], 8
mov dword [esp + 8], edi
mov eax, dword [eax]
add dword [esp + 0x11c], eax
mov eax, dword [esp + 0x11c]
mov dword [esp], ebx
add eax, ebp
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
jmp 0x891029
mov esi, ebx
mov ebx, dword [esp + 0x13c]
mov edi, dword [esp + 0x60]
sar esi, 2
mov eax, dword [esp + 0x13c]
sar ebp, 2
mov ecx, dword [esp + 0x130]
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 + 0x10c]
mov dword [esp], eax
call dword [edx + edi*4 + 0x40]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x13c]
mov edi, dword [esp + 0x130]
mov edx, dword [eax + 0x17f8]
mov eax, ebp
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x60]
add eax, dword [edi]
mov edi, dword [esp + 0x10c]
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 + 0x60]
mov ecx, dword [esp + 0x13c]
imul esi, dword [esp + 0x13c]
mov edi, dword [esp + 0x13c]
mov edx, dword [eax + 0x17f8]
mov eax, ebp
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x130]
shl edi, 3
add eax, dword [ecx]
add eax, esi
mov esi, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, edi
add eax, dword [esi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x10c]
call dword [edx + eax*4 + 0x40]
mov edx, dword [esi + 0x17f8]
mov ecx, dword [esp + 0x13c]
mov esi, dword [esp + 0x130]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x60]
add ebp, dword [esi]
lea ebx, [ebx + ebp + 8]
lea ebx, [edi + ebx]
mov dword [esp + 4], ebx
mov eax, dword [ecx + 0x170c]
mov ebx, dword [esp + 0x10c]
add eax, 8
lea eax, [edi + eax]
mov dword [esp], eax
call dword [edx + ebx*4 + 0x40]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x13c]
mov esi, dword [esp + 0x110]
mov ebp, dword [esp + 0x114]
mov ebx, dword [esp + 0x13c]
mov edx, dword [eax + 0x17fc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x130]
sar esi, 2
sar ebp, 2
imul ebx, esi
mov eax, ebp
add esi, 8
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x60]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x108]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x13c]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x130]
mov dword [esp + 8], eax
mov eax, ebp
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x60]
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 + 0x108]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x13c]
imul esi, dword [esp + 0x13c]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x130]
mov dword [esp + 8], eax
mov eax, ebp
add eax, dword [ecx + 0x20]
add eax, esi
mov esi, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, edi
add eax, dword [esi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x108]
call dword [edx + eax*4 + 0x40]
mov edx, dword [esi + 0x17fc]
mov ecx, dword [esp + 0x13c]
mov esi, dword [esp + 0x130]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x60]
add ebp, dword [esi + 0x20]
lea ebx, [ebx + ebp + 8]
lea ebx, [edi + ebx]
mov dword [esp + 4], ebx
mov eax, dword [ecx + 0x170c]
mov ebx, dword [esp + 0x108]
add eax, 8
add edi, eax
mov dword [esp], edi
call dword [edx + ebx*4 + 0x40]
jmp 0x890ac3
mov dword [esp + 8], 0x7c
mov dword [esp + 4], 0xbae5d0
mov dword [esp], 0xbae708
call sub.msvcrt.dll__assert
mov edx, dword [esp + 0xec]
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xac]
shr edx, 1
sub eax, edx
add eax, 1
cmp eax, ecx
mov dword [esp + 0xe0], eax
jge 0x89140a
mov dword [esp + 0xe0], ecx
mov ebx, dword [esp + 0xd8]
mov esi, dword [esp + 0xb4]
lea edx, [ebx + edx - 1]
cmp edx, esi
mov dword [esp + 0x80], edx
jle 0x89142e
mov dword [esp + 0x80], esi
mov edi, dword [esp + 0x80]
cmp dword [esp + 0xe0], edi
jg 0x8920ef
mov eax, dword [esp + 0xd4]
cmp dword [esp + 0xa8], eax
jg 0x892f9a
cmp dword [esp + 0xb0], eax
jl 0x892f7e
mov edx, dword [esp + 0xe0]
cmp dword [esp + 0xac], edx
jg 0x892f62
cmp dword [esp + 0xb4], edx
jl 0x892f46
mov eax, dword [esp + 0xe0]
mov edi, dword [esp + 0xd4]
add edi, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
shl eax, 0xb
mov esi, dword [esp + 0x2f4]
add eax, edi
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0xe0]
mov ebx, ecx
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x2f4]
and esi, 4
mov dword [esp + 0x1ac], esi
lea edx, [ecx + eax*8]
mov eax, dword [esp + 0xc8]
movzx ecx, byte [esp + 0xcc]
and edx, 0x3f
and edi, 2
mov dword [esp + 0x190], edi
add eax, eax
add eax, 1
mov dword [esp + 0x180], eax
mov eax, dword [esp + 0x2ec]
shl ebx, cl
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x1b4], ebx
shl eax, 4
mov dword [esp + 0x1a4], eax
mov eax, dword [esp + 0x2e4]
shl eax, 4
add eax, 0x1790
mov dword [esp + 0x2c], eax
jmp 0x8918a6
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [edi + 0x1744]
jl 0x8913c0
mov eax, dword [edi + 0x1748]
movzx ecx, byte [esp + 0xcc]
shl eax, cl
cmp dword [esp + 0x1b4], eax
jg 0x8913c0
mov ebx, dword [esp + 0xe0]
cmp dword [edi + 0x174c], ebx
jg 0x8913c0
mov eax, dword [edi + 0x1750]
shl eax, cl
cmp dword [esp + 0x1b0], eax
jg 0x8913c0
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x60]
movzx ebx, word [ebx + 0x1fa0]
cmp dword [esi + 0x153c], 1
movzx edi, word [esi + 0x1fa2]
mov dword [esp + 0x184], ebx
je 0x891b48
mov ecx, dword [esp + 0x1b4]
mov ebp, dword [esp + 0x1b4]
mov ebx, dword [esp + 0x1b0]
add ebp, dword [esi + 0x16dc]
add ebx, dword [esi + 0x16e0]
test ecx, ecx
je 0x891b20
mov ecx, ebp
sub ecx, dword [esi + 0x16bc]
mov dword [esp + 0x170], ecx
mov edx, dword [esp + 0x1b0]
test edx, edx
je 0x891af4
mov edx, dword [esp + 0x60]
mov ecx, ebx
sub ecx, dword [edx + 0x16c0]
mov dword [esp + 0x16c], ecx
mov eax, dword [esp + 0x180]
movzx ecx, byte [esp + 0xcc]
mov edx, dword [esp + 0x180]
and eax, ebx
shl eax, cl
and edx, ebp
add eax, edx
mov edx, dword [esp + 0x170]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x16c]
and eax, dword [esp + 0x180]
and edx, dword [esp + 0x180]
shl eax, cl
add eax, edx
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0xc8]
test eax, eax
jne 0x891e23
mov esi, dword [esp + 0x60]
sar ebp, 1
mov ecx, dword [esi + 0x1814]
shl ecx, 4
lea esi, [ebp + ecx]
cmp esi, 0xfffffff0
jl 0x892e66
mov edi, dword [esp + 0x60]
mov eax, ebx
sar eax, 1
mov edx, dword [edi + 0x1818]
shl edx, 4
lea ebx, [eax + edx]
cmp ebx, 0xfffffff0
jl 0x892e82
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x1a8], edi
jg 0x892eba
mov edi, dword [esp + 0x60]
mov esi, dword [edi + 8]
cmp ebx, esi
jg 0x892e9e
mov edi, dword [esp + 0x170]
sar edi, 1
lea ecx, [edi + ecx]
cmp ecx, 0xfffffff0
jl 0x892ef2
mov ebx, dword [esp + 0x16c]
sar ebx, 1
lea edx, [ebx + edx]
cmp edx, 0xfffffff0
jl 0x892ed6
cmp dword [esp + 0x1a8], ecx
jl 0x892f2a
cmp esi, edx
jl 0x892f0e
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x198]
mov edx, dword [ecx + 0x17f0]
mov ecx, dword [esp + 0x18c]
imul eax, esi
mov dword [esp + 8], esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0xc], 0x10
add ebp, dword [ecx]
lea eax, [ebp + eax]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
call dword [edx + eax*4]
mov ecx, dword [esp + 0x198]
mov edx, dword [esi + 0x17f4]
mov esi, dword [esp + 0x18c]
mov dword [esp + 0xc], 0x10
imul ebx, ecx
mov dword [esp + 8], ecx
add edi, dword [esi + 0x20]
lea eax, [edi + ebx]
mov edi, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x164]
call dword [edx + eax*4]
mov edx, dword [esp + 0x198]
mov ecx, dword [esp + 0x188]
mov dword [esp + 0x10], 0x10
mov ebx, dword [esp + 0x60]
mov dword [esp + 0xc], edx
mov eax, dword [ecx]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x170c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [esp + 0x9c]
mov ebp, eax
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0xf4]
mov eax, dword [esp + 0xc0]
sub dword [esp + 0x1b0], eax
mov edx, dword [esp + 0x1b0]
mov dword [ecx], ebx
mov esi, dword [esp + 0xa4]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x78]
mov dword [esi + edi], ebp
movzx eax, byte [edx + ecx]
mov edx, dword [esp + 0x1b4]
sub edx, dword [esp + 0xbc]
movzx edx, byte [edx + ecx]
add eax, edx
imul eax, dword [esp + 0x2e8]
lea ecx, [ebp + eax]
cmp ecx, dword [esp + 0x58]
jge 0x89184a
mov ebx, dword [esp + 0xd4]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0xe0]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], ecx
mov dword [esi], ebx
mov dword [eax], edi
add dword [esp + 0xe0], 2
mov edx, dword [esp + 0x80]
cmp dword [esp + 0xe0], edx
jg 0x8920ef
mov ecx, dword [esp + 0xe0]
cmp dword [esp + 0xac], ecx
jg 0x892f62
cmp dword [esp + 0xb4], ecx
jl 0x892f46
mov esi, dword [esp + 0xd4]
mov eax, ecx
shl eax, 0xb
add eax, dword [esp + 0x74]
lea edx, [esi + ecx*8]
mov dword [esp + 0xf4], eax
and edx, 0x3f
mov ecx, eax
shl edx, 2
mov dword [esp + 0x78], edx
add edx, dword [esp + 0xc4]
cmp dword [edx], ecx
mov dword [esp + 0x7c], edx
je 0x89184a
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x2e0]
movzx ecx, byte [esp + 0xcc]
mov edi, dword [esp + 0x60]
mov ebx, dword [ebx + 0x17dc]
mov esi, dword [esp + 0x60]
shl eax, 4
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x2c]
mov dword [esp + 0x198], ebx
mov ebx, dword [esp + 0xe0]
mov esi, dword [esi + 0x17e0]
shl ebx, cl
lea ecx, [edi + eax + 0x1750]
lea eax, [ecx + 0xc]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x1ac]
mov dword [esp + 0x194], esi
lea esi, [edx + 0xc]
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0x18c], esi
test eax, eax
jne 0x891535
mov edi, dword [esp + 0x198]
mov esi, dword [esp + 0x2f0]
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], esi
add eax, dword [edx + 0xc]
mov edx, dword [esp + 0xe0]
imul edx, edi
add eax, edx
mov dword [esp + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call dword [esp + 0x9c]
mov ebp, eax
mov eax, dword [esp + 0x190]
test eax, eax
je 0x8917cb
mov ebx, dword [esp + 0xe0]
sar esi, 1
mov eax, dword [esp + 0xd4]
shl edi, 4
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x1a4]
and ebx, 1
and eax, 1
mov edx, dword [edx + 0x170c]
lea ebx, [eax + ebx*2]
mov dword [esp + 0x1a0], esi
lea ebx, [ecx + ebx*4]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x1a0]
mov esi, dword [esp + 0xe0]
add edi, edx
mov edx, ebx
mov dword [esp + 0x160], edi
mov edi, dword [esp + 0xd4]
add edx, dword [eax + 0x17f0]
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x194]
sar esi, 1
mov ecx, dword [esp + 0x18c]
imul esi, dword [esp + 0x194]
sar edi, 1
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 + 0x160]
mov dword [esp], eax
call dword [edx + 0x10]
mov edx, dword [esp + 0x160]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x1a0]
add edx, 8
add ebx, dword [ecx + 0x17f0]
mov dword [esp + 0x19c], edx
mov ecx, dword [esp + 0x18c]
mov edx, dword [esp + 0x194]
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 + 0x19c]
mov dword [esp], esi
call dword [ebx + 0x10]
mov edi, dword [esp + 0x1a0]
mov eax, dword [esp + 0x194]
mov edx, dword [esp + 0x188]
mov ecx, dword [esp + 0x160]
mov dword [esp + 0x10], edi
mov ebx, dword [esp + 0x60]
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 + 0xa0]
mov esi, dword [esp + 0x194]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x188]
mov edx, dword [esp + 0x60]
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 + 0x19c]
mov dword [esp + 4], eax
call dword [esp + 0xa0]
lea eax, [ebx + eax]
add ebp, eax
jmp 0x8917cb
mov esi, dword [esp + 0x60]
sub edi, dword [esp + 0x184]
imul edi, dword [esi + 0x16c0]
mov edx, edi
mov eax, edi
sar edx, 0x1f
idiv dword [esp + 0x184]
mov dword [esp + 0x16c], eax
jmp 0x891611
mov edx, edi
sub edx, dword [esp + 0x184]
imul edx, dword [esi + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x184]
mov dword [esp + 0x170], eax
jmp 0x8915ef
add edx, 0x2c
mov eax, dword [esp + 0x198]
sub edi, ebx
mov dword [esp + 0x28c], edx
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x17c], 0
mov dword [esp + 0x30], edi
shl eax, 3
add edx, 4
mov dword [esp + 0x288], eax
mov dword [esp + 0x34], edx
mov ecx, dword [esp + 0x17c]
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x1b4]
mov ebp, dword [esp + 0x1b4]
mov edi, dword [esp + 0x1b0]
add ebp, dword [ebx + ecx*8 + 0x16dc]
add edi, dword [ebx + ecx*8 + 0x16e0]
test eax, eax
je 0x891d07
mov eax, dword [esp + 0x1b0]
mov esi, ebp
sub esi, dword [ebx + ecx*8 + 0x16bc]
and ecx, 1
mov dword [esp + 0x2b0], ecx
test eax, eax
mov dword [esp + 0x178], esi
je 0x891d52
mov edx, dword [esp + 0x17c]
mov esi, edi
mov ecx, dword [esp + 0x60]
mov ebx, edx
sub esi, dword [ecx + edx*8 + 0x16c0]
sar ebx, 1
mov eax, dword [esp + 0x180]
movzx ecx, byte [esp + 0xcc]
mov edx, dword [esp + 0x180]
imul ebx, dword [esp + 0x288]
and eax, edi
shl eax, cl
and edx, ebp
add eax, edx
mov edx, dword [esp + 0x178]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x180]
and edx, dword [esp + 0x180]
and eax, esi
shl eax, cl
add eax, edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x2b0]
lea ebx, [ebx + eax*8]
mov eax, dword [esp + 0xc8]
add ebx, dword [edx + 0x170c]
test eax, eax
je 0x891d8e
mov eax, dword [esp + 0x198]
sar edi, 2
mov ecx, dword [esp + 0x18c]
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 + 0x1c]
mov dword [esp + 4], eax
call dword [edx + edi*4 + 0x40]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x198]
mov edi, dword [esp + 0x28c]
sar dword [esp + 0x178], 2
mov edx, dword [eax + 0x17fc]
mov dword [esp + 8], ecx
imul esi, ecx
mov edi, dword [edi]
add dword [esp + 0x178], edi
mov eax, dword [esp + 0x178]
mov dword [esp], ebx
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x174]
call dword [edx + eax*4 + 0x40]
add dword [esp + 0x17c], 1
cmp dword [esp + 0x17c], 4
jne 0x891b82
jmp 0x891791
mov eax, ecx
mov esi, ecx
mov edx, dword [esp + 0x30]
and eax, 1
movzx ecx, byte [esp + 0x34]
mov ebx, eax
mov dword [esp + 0x2b0], eax
mov eax, dword [esp + 0x60]
shl ebx, cl
imul edx, dword [eax + esi*8 + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x184]
add ebx, eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x178], ebx
test eax, eax
jne 0x891be1
mov ebx, dword [esp + 0x17c]
movzx ecx, byte [esp + 0x34]
mov eax, dword [esp + 0x17c]
mov edx, dword [esp + 0x30]
sar ebx, 1
mov esi, ebx
shl esi, cl
mov ecx, dword [esp + 0x60]
imul edx, dword [ecx + eax*8 + 0x16c0]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x184]
add esi, eax
jmp 0x891bf9
mov eax, dword [esp + 0x198]
sar edi, 1
mov ecx, dword [esp + 0x18c]
sar ebp, 1
mov edx, dword [edx + 0x17f0]
sar esi, 1
mov dword [esp + 0xc], 8
imul edi, eax
mov dword [esp + 8], eax
add ebp, dword [ecx]
mov dword [esp], ebx
lea eax, [ebp + edi]
mov edi, dword [esp + 0x1c]
mov dword [esp + 4], eax
call dword [edx + edi*4 + 0x10]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x198]
mov edi, dword [esp + 0x28c]
sar dword [esp + 0x178], 1
mov edx, dword [eax + 0x17f4]
mov dword [esp + 0xc], 8
imul esi, ecx
mov dword [esp + 8], ecx
mov edi, dword [edi]
add dword [esp + 0x178], edi
mov eax, dword [esp + 0x178]
mov dword [esp], ebx
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x174]
call dword [edx + eax*4 + 0x10]
jmp 0x891cec
mov esi, ebx
mov ebx, dword [esp + 0x198]
mov edi, dword [esp + 0x60]
sar esi, 2
mov eax, dword [esp + 0x198]
sar ebp, 2
mov ecx, dword [esp + 0x18c]
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 + 0x168]
mov dword [esp], eax
call dword [edx + edi*4 + 0x40]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x198]
mov edi, dword [esp + 0x18c]
mov edx, dword [eax + 0x17f8]
mov eax, ebp
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x60]
add eax, dword [edi]
mov edi, dword [esp + 0x168]
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 + 0x60]
mov ecx, dword [esp + 0x198]
imul esi, dword [esp + 0x198]
mov edi, dword [esp + 0x198]
mov edx, dword [eax + 0x17f8]
mov eax, ebp
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x18c]
shl edi, 3
add eax, dword [ecx]
add eax, esi
mov esi, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, edi
add eax, dword [esi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
call dword [edx + eax*4 + 0x40]
mov edx, dword [esi + 0x17f8]
mov ecx, dword [esp + 0x198]
mov esi, dword [esp + 0x18c]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x60]
add ebp, dword [esi]
lea ebx, [ebx + ebp + 8]
lea ebx, [edi + ebx]
mov dword [esp + 4], ebx
mov eax, dword [ecx + 0x170c]
mov ebx, dword [esp + 0x168]
add eax, 8
lea eax, [edi + eax]
mov dword [esp], eax
call dword [edx + ebx*4 + 0x40]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x198]
mov esi, dword [esp + 0x16c]
mov ebp, dword [esp + 0x170]
mov ebx, dword [esp + 0x198]
mov edx, dword [eax + 0x17fc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x18c]
sar esi, 2
sar ebp, 2
imul ebx, esi
mov eax, ebp
add esi, 8
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x60]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x164]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x198]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x18c]
mov dword [esp + 8], eax
mov eax, ebp
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x60]
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 + 0x164]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x198]
imul esi, dword [esp + 0x198]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x18c]
mov dword [esp + 8], eax
mov eax, ebp
add eax, dword [ecx + 0x20]
add eax, esi
mov esi, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, edi
add eax, dword [esi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x164]
call dword [edx + eax*4 + 0x40]
mov edx, dword [esi + 0x17fc]
mov ecx, dword [esp + 0x198]
mov esi, dword [esp + 0x18c]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x60]
add ebp, dword [esi + 0x20]
lea ebx, [ebx + ebp + 8]
lea ebx, [edi + ebx]
mov dword [esp + 4], ebx
mov eax, dword [ecx + 0x170c]
mov ebx, dword [esp + 0x164]
add eax, 8
add edi, eax
mov dword [esp], edi
call dword [edx + ebx*4 + 0x40]
jmp 0x891791
mov dword [esp + 8], 0x2f2
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbae9ac
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x2f2
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbae9b9
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x2f2
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbae9c6
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x2f2
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbae9d2
call sub.msvcrt.dll__assert
mov ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0xac]
mov ebx, dword [ebx]
mov ecx, dword [ecx]
mov dword [esp + 0x2c4], ebx
sub ebx, 2
cmp ebx, esi
mov dword [esp + 0x2c8], ecx
mov dword [esp + 0x2c0], ebx
jge 0x892125
mov dword [esp + 0x2c0], esi
mov edi, dword [esp + 0x2c4]
mov eax, dword [esp + 0xb4]
add edi, 2
cmp edi, eax
mov dword [esp + 0x8c], edi
jle 0x892148
mov dword [esp + 0x8c], eax
mov edx, dword [esp + 0x8c]
cmp dword [esp + 0x2c0], edx
jg 0x892fd2
mov ecx, dword [esp + 0x2c8]
mov ebx, dword [esp + 0xa8]
sub ecx, 2
cmp ecx, ebx
mov dword [esp + 0x2bc], ecx
jge 0x89217f
mov dword [esp + 0x2bc], ebx
mov esi, dword [esp + 0x2c8]
mov edi, dword [esp + 0xb0]
add esi, 2
cmp esi, edi
mov dword [esp + 0x270], esi
jle 0x8921a2
mov dword [esp + 0x270], edi
mov eax, dword [esp + 0x2f4]
mov edx, dword [esp + 0x2f4]
mov ecx, dword [esp + 0x2ec]
mov ebx, dword [esp + 0x2bc]
and eax, 4
mov esi, dword [esp + 0xd0]
mov dword [esp + 0x20c], eax
mov eax, dword [esp + 0xc8]
and edx, 2
shl ecx, 4
mov dword [esp + 0x1e4], edx
lea ebx, [ebx + esi + 1]
add eax, eax
add eax, 1
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1fc], ecx
mov dword [esp + 0x38], ebx
mov esi, dword [esp + 0x2bc]
cmp dword [esp + 0x270], esi
jl 0x892fb6
cmp dword [esp + 0xa8], esi
jg 0x8935e0
cmp dword [esp + 0xb0], esi
jl 0x893634
mov edi, dword [esp + 0x2c0]
cmp dword [esp + 0xac], edi
jg 0x8935fc
cmp dword [esp + 0xb4], edi
jl 0x893618
mov esi, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2bc]
add eax, dword [esp + 0xd0]
mov ebx, dword [esp + 0x2c0]
shl esi, 0xb
mov edi, dword [esp + 0x2bc]
add eax, esi
movzx ecx, byte [esp + 0xcc]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x2c0]
add esi, dword [esp + 0x38]
lea edx, [edi + ebx*8]
mov edi, dword [esp + 0x2c0]
mov ebx, edx
and eax, 1
and ebx, 0x3f
add eax, eax
mov dword [esp + 0x1f8], eax
mov eax, dword [esp + 0x2bc]
shl edi, cl
mov dword [esp + 0x29c], edx
mov edx, dword [esp + 0xf8]
mov dword [esp + 0x210], edi
mov dword [esp + 0x298], esi
mov dword [esp + 0x2b8], eax
mov eax, dword [esp + 0x2e4]
shl eax, 4
add eax, 0x1790
mov dword [esp + 0x3c], eax
jmp 0x892677
mov ecx, dword [esp + 0x2b8]
cmp ecx, dword [edi + 0x1744]
jl 0x8913c0
mov eax, dword [edi + 0x1748]
movzx ecx, byte [esp + 0xcc]
shl eax, cl
cmp ebx, eax
jg 0x8913c0
mov ebx, dword [esp + 0x2c0]
cmp ebx, dword [edi + 0x174c]
jl 0x8913c0
mov eax, dword [edi + 0x1750]
shl eax, cl
cmp dword [esp + 0x210], eax
jg 0x8913c0
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x60]
movzx ebx, word [ebx + 0x1fa0]
cmp dword [esi + 0x153c], 1
movzx edi, word [esi + 0x1fa2]
mov dword [esp + 0x1d8], ebx
je 0x892914
mov ebp, dword [esp + 0x214]
mov ecx, dword [esp + 0x214]
add ecx, dword [esi + 0x16dc]
mov ebx, dword [esp + 0x210]
add ebx, dword [esi + 0x16e0]
test ebp, ebp
mov dword [esp + 0x1c], ecx
je 0x8928f1
mov ebp, ecx
sub ebp, dword [esi + 0x16bc]
mov esi, dword [esp + 0x210]
test esi, esi
je 0x8928c5
mov edx, dword [esp + 0x60]
mov ecx, ebx
sub ecx, dword [edx + 0x16c0]
mov dword [esp + 0x1c4], ecx
mov eax, dword [esp + 0x1d4]
movzx ecx, byte [esp + 0xcc]
mov edx, dword [esp + 0x1d4]
and edx, dword [esp + 0x1c]
and eax, ebx
shl eax, cl
add edx, eax
mov eax, dword [esp + 0x1c4]
and eax, dword [esp + 0x1d4]
mov dword [esp + 0x1c0], edx
mov edx, dword [esp + 0x1d4]
shl eax, cl
mov ecx, dword [esp + 0xc8]
and edx, ebp
add eax, edx
test ecx, ecx
mov dword [esp + 0x1bc], eax
jne 0x892be5
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x60]
sar edx, 1
mov dword [esp + 0x204], edx
mov edx, dword [ecx + 0x1814]
mov esi, dword [esp + 0x204]
shl edx, 4
add esi, edx
cmp esi, 0xfffffff0
jl 0x892e66
mov eax, ebx
mov ebx, dword [esp + 0x60]
sar eax, 1
mov ecx, dword [ebx + 0x1818]
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x892e82
mov edi, dword [esp + 0x60]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x200], edi
jg 0x892eba
mov edi, dword [esp + 0x60]
mov esi, dword [edi + 8]
cmp ebx, esi
jg 0x892e9e
mov edi, ebp
sar edi, 1
lea ebp, [edi + edx]
cmp ebp, 0xfffffff0
jl 0x892ef2
mov ebx, dword [esp + 0x1c4]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x892ed6
cmp dword [esp + 0x200], ebp
jl 0x892f2a
cmp esi, edx
jl 0x892f0e
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x1ec]
mov edx, dword [ecx + 0x17f0]
mov ecx, dword [esp + 0x1e0]
imul eax, esi
mov dword [esp + 8], esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0xc], 0x10
mov ecx, dword [ecx]
add dword [esp + 0x204], ecx
add eax, dword [esp + 0x204]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x1c0]
call dword [edx + eax*4]
mov ecx, dword [esp + 0x1ec]
mov edx, dword [esi + 0x17f4]
mov esi, dword [esp + 0x1e0]
mov dword [esp + 0xc], 0x10
imul ebx, ecx
mov dword [esp + 8], ecx
add edi, dword [esi + 0x20]
lea eax, [edi + ebx]
mov edi, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x1bc]
call dword [edx + eax*4]
mov edx, dword [esp + 0x1ec]
mov ecx, dword [esp + 0x1dc]
mov dword [esp + 0x10], 0x10
mov ebx, dword [esp + 0x60]
mov dword [esp + 0xc], edx
mov eax, dword [ecx]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x170c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [esp + 0x9c]
mov ebp, eax
mov ecx, dword [esp + 0x88]
mov ebx, dword [esp + 0xf8]
mov eax, dword [esp + 0xbc]
sub dword [esp + 0x214], eax
mov edx, dword [esp + 0x214]
mov dword [ecx], ebx
mov esi, dword [esp + 0xa4]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x84]
mov dword [esi + edi], ebp
movzx eax, byte [edx + ecx]
mov edx, dword [esp + 0x210]
sub edx, dword [esp + 0xc0]
movzx edx, byte [edx + ecx]
add eax, edx
imul eax, dword [esp + 0x2e8]
lea ecx, [ebp + eax]
cmp dword [esp + 0x58], ecx
jle 0x892617
mov esi, dword [esp + 0x2b8]
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x2c0]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], ecx
mov dword [ebx], esi
mov dword [eax], edi
add dword [esp + 0x2b8], 1
mov edx, dword [esp + 0x2b8]
cmp dword [esp + 0x270], edx
jl 0x892fb6
cmp dword [esp + 0xa8], edx
jg 0x8935e0
add dword [esp + 0x29c], 1
cmp dword [esp + 0xb0], edx
jl 0x893634
mov ecx, dword [esp + 0x298]
mov ebx, dword [esp + 0x29c]
add dword [esp + 0x298], 1
mov dword [esp + 0xf8], ecx
mov edx, ecx
and ebx, 0x3f
shl ebx, 2
mov dword [esp + 0x84], ebx
add ebx, dword [esp + 0xc4]
cmp dword [ebx], edx
mov dword [esp + 0x88], ebx
je 0x892617
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x2e0]
mov edi, dword [esp + 0x60]
mov ecx, dword [ecx + 0x17dc]
mov ebx, dword [ebx + 0x17e0]
shl eax, 4
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x3c]
mov dword [esp + 0x1ec], ecx
movzx ecx, byte [esp + 0xcc]
mov dword [esp + 0x1e8], ebx
mov ebx, dword [esp + 0x2b8]
lea esi, [edx + 0xc]
mov dword [esp + 0x1e0], esi
shl ebx, cl
lea ecx, [edi + eax + 0x1750]
lea eax, [ecx + 0xc]
mov dword [esp + 0x1dc], eax
mov eax, dword [esp + 0x20c]
mov dword [esp + 0x214], ebx
test eax, eax
jne 0x8922ee
mov edi, dword [esp + 0x1ec]
mov esi, dword [esp + 0x2f0]
mov eax, dword [esp + 0x2b8]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], esi
add eax, dword [edx + 0xc]
mov edx, dword [esp + 0x2c0]
imul edx, edi
add eax, edx
mov dword [esp + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call dword [esp + 0x9c]
mov edx, dword [esp + 0x1e4]
test edx, edx
mov ebp, eax
je 0x892592
mov ebx, dword [esp + 0x2b8]
sar esi, 1
mov edx, dword [esp + 0x60]
shl edi, 4
mov ecx, dword [esp + 0x1fc]
mov dword [esp + 0x1f4], esi
mov eax, dword [esp + 0x60]
and ebx, 1
mov esi, dword [esp + 0x2c0]
add ebx, dword [esp + 0x1f8]
mov edx, dword [edx + 0x170c]
lea ebx, [ecx + ebx*4]
mov ecx, dword [esp + 0x1f4]
sar esi, 1
add edi, edx
mov edx, ebx
mov dword [esp + 0x1b8], edi
mov edi, dword [esp + 0x2b8]
add edx, dword [eax + 0x17f0]
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x1e8]
mov ecx, dword [esp + 0x1e0]
imul esi, dword [esp + 0x1e8]
sar edi, 1
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 + 0x1b8]
mov dword [esp], eax
call dword [edx + 0x10]
mov edx, dword [esp + 0x1b8]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x1f4]
add edx, 8
add ebx, dword [ecx + 0x17f0]
mov dword [esp + 0x1f0], edx
mov ecx, dword [esp + 0x1e0]
mov edx, dword [esp + 0x1e8]
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 + 0x1f0]
mov dword [esp], esi
call dword [ebx + 0x10]
mov edi, dword [esp + 0x1f4]
mov eax, dword [esp + 0x1e8]
mov edx, dword [esp + 0x1dc]
mov ecx, dword [esp + 0x1b8]
mov dword [esp + 0x10], edi
mov ebx, dword [esp + 0x60]
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 + 0xa0]
mov esi, dword [esp + 0x1e8]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x1dc]
mov edx, dword [esp + 0x60]
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 + 0x1f0]
mov dword [esp + 4], eax
call dword [esp + 0xa0]
lea eax, [ebx + eax]
add ebp, eax
jmp 0x892592
mov esi, dword [esp + 0x60]
sub edi, dword [esp + 0x1d8]
imul edi, dword [esi + 0x16c0]
mov edx, edi
mov eax, edi
sar edx, 0x1f
idiv dword [esp + 0x1d8]
mov dword [esp + 0x1c4], eax
jmp 0x8923c2
mov edx, edi
sub edx, dword [esp + 0x1d8]
imul edx, dword [esi + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x1d8]
mov ebp, eax
jmp 0x8923a0
add edx, 0x2c
mov eax, dword [esp + 0x1ec]
sub edi, ebx
mov dword [esp + 0x278], edx
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x40], edi
shl eax, 3
add edx, 4
mov dword [esp + 0x274], eax
mov dword [esp + 0x44], edx
mov ecx, dword [esp + 0x1d0]
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x214]
mov ebp, dword [esp + 0x214]
mov edi, dword [esp + 0x210]
add ebp, dword [ebx + ecx*8 + 0x16dc]
add edi, dword [ebx + ecx*8 + 0x16e0]
test eax, eax
je 0x892ad3
mov esi, ebp
sub esi, dword [ebx + ecx*8 + 0x16bc]
and ecx, 1
mov dword [esp + 0x2ac], ecx
mov dword [esp + 0x1cc], esi
mov eax, dword [esp + 0x210]
test eax, eax
je 0x892ba9
mov edx, dword [esp + 0x1d0]
mov esi, edi
mov ecx, dword [esp + 0x60]
mov ebx, edx
sub esi, dword [ecx + edx*8 + 0x16c0]
sar ebx, 1
mov eax, dword [esp + 0x1d4]
movzx ecx, byte [esp + 0xcc]
mov edx, dword [esp + 0x1d4]
imul ebx, dword [esp + 0x274]
and eax, edi
shl eax, cl
and edx, ebp
add edx, eax
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x1cc]
and edx, dword [esp + 0x1d4]
and eax, esi
shl eax, cl
add eax, edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x1c8], eax
mov eax, dword [esp + 0x2ac]
lea ebx, [ebx + eax*8]
mov eax, dword [esp + 0xc8]
add ebx, dword [edx + 0x170c]
test eax, eax
je 0x892b14
mov eax, dword [esp + 0x1ec]
sar edi, 2
mov ecx, dword [esp + 0x1e0]
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 + 0x1c]
mov dword [esp + 4], eax
call dword [edx + edi*4 + 0x40]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x1ec]
mov edi, dword [esp + 0x278]
sar dword [esp + 0x1cc], 2
mov edx, dword [eax + 0x17fc]
mov dword [esp + 8], ecx
imul esi, ecx
mov edi, dword [edi]
add dword [esp + 0x1cc], edi
mov eax, dword [esp + 0x1cc]
mov dword [esp], ebx
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c8]
call dword [edx + eax*4 + 0x40]
add dword [esp + 0x1d0], 1
cmp dword [esp + 0x1d0], 4
jne 0x89294e
jmp 0x892558
mov eax, ecx
mov esi, ecx
mov edx, dword [esp + 0x40]
and eax, 1
movzx ecx, byte [esp + 0x44]
mov ebx, eax
mov dword [esp + 0x2ac], eax
mov eax, dword [esp + 0x60]
shl ebx, cl
imul edx, dword [eax + esi*8 + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x1d8]
add ebx, eax
mov dword [esp + 0x1cc], ebx
jmp 0x89299e
mov eax, dword [esp + 0x1ec]
sar edi, 1
mov ecx, dword [esp + 0x1e0]
sar ebp, 1
mov edx, dword [edx + 0x17f0]
sar esi, 1
mov dword [esp + 0xc], 8
imul edi, eax
mov dword [esp + 8], eax
add ebp, dword [ecx]
mov dword [esp], ebx
lea eax, [ebp + edi]
mov edi, dword [esp + 0x1c]
mov dword [esp + 4], eax
call dword [edx + edi*4 + 0x10]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x1ec]
mov edi, dword [esp + 0x278]
sar dword [esp + 0x1cc], 1
mov edx, dword [eax + 0x17f4]
mov dword [esp + 0xc], 8
imul esi, ecx
mov dword [esp + 8], ecx
mov edi, dword [edi]
add dword [esp + 0x1cc], edi
mov eax, dword [esp + 0x1cc]
mov dword [esp], ebx
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c8]
call dword [edx + eax*4 + 0x10]
jmp 0x892ab8
mov ebx, dword [esp + 0x1d0]
movzx ecx, byte [esp + 0x44]
mov eax, dword [esp + 0x1d0]
mov edx, dword [esp + 0x40]
sar ebx, 1
mov esi, ebx
shl esi, cl
mov ecx, dword [esp + 0x60]
imul edx, dword [ecx + eax*8 + 0x16c0]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x1d8]
add esi, eax
jmp 0x8929c5
mov eax, dword [esp + 0x60]
mov esi, ebx
mov ecx, dword [esp + 0x1ec]
sar esi, 2
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x1ec]
mov edx, dword [eax + 0x17f8]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x1e0]
sar edi, 2
imul ebx, esi
mov eax, edi
add esi, 8
add eax, dword [ecx]
mov ecx, dword [esp + 0x60]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x1c0]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x1ec]
mov edx, dword [ecx + 0x17f8]
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx]
mov ecx, dword [esp + 0x60]
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 + 0x1c0]
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x1ec]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x1ec]
imul esi, dword [esp + 0x1ec]
shl edx, 3
mov dword [esp + 0x208], edx
mov edx, dword [ecx + 0x17f8]
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx]
add eax, esi
mov esi, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x208]
add eax, dword [esi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x1c0]
call dword [edx + eax*4 + 0x40]
mov edx, dword [esi + 0x17f8]
mov ecx, dword [esp + 0x1ec]
mov esi, dword [esp + 0x1e0]
mov dword [esp + 8], ecx
add edi, dword [esi]
lea ebx, [ebx + edi + 8]
mov edi, dword [esp + 0x60]
add ebx, dword [esp + 0x208]
mov dword [esp + 4], ebx
mov eax, dword [edi + 0x170c]
mov edi, ebp
sar edi, 2
add eax, 8
add eax, dword [esp + 0x208]
mov dword [esp], eax
mov eax, dword [esp + 0x1c0]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x1c4]
mov ebx, dword [esp + 0x1ec]
mov eax, dword [esp + 0x1ec]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x1e0]
sar esi, 2
imul ebx, esi
add esi, 8
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x60]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x1bc]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x1ec]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x60]
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 + 0x1bc]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x1ec]
imul esi, dword [esp + 0x1ec]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 0x20]
add eax, esi
mov esi, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x208]
add eax, dword [esi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x1bc]
call dword [edx + eax*4 + 0x40]
mov edx, dword [esi + 0x17fc]
mov ecx, dword [esp + 0x1ec]
mov esi, dword [esp + 0x1e0]
mov dword [esp + 8], ecx
add edi, dword [esi + 0x20]
lea ebx, [ebx + edi + 8]
mov edi, dword [esp + 0x60]
add ebx, dword [esp + 0x208]
mov dword [esp + 4], ebx
mov eax, dword [edi + 0x170c]
add eax, 8
add eax, dword [esp + 0x208]
mov dword [esp], eax
mov eax, dword [esp + 0x1bc]
call dword [edx + eax*4 + 0x40]
jmp 0x892558
mov dword [esp + 8], 0xa6
mov dword [esp + 4], 0xbae5d0
mov dword [esp], 0xbae75b
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], 0xa9
mov dword [esp + 4], 0xbae5d0
mov dword [esp], 0xbae7b8
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], 0xab
mov dword [esp + 4], 0xbae5d0
mov dword [esp], 0xbae7f6
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], 0xad
mov dword [esp + 4], 0xbae5d0
mov dword [esp], 0xbae838
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], 0x2f5
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbaea03
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x2f5
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbae9f6
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x2f5
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbae9ea
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x2f5
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbae9de
call sub.msvcrt.dll__assert
add dword [esp + 0x2c0], 1
mov ecx, dword [esp + 0x2c0]
cmp dword [esp + 0x8c], ecx
jge 0x8921fe
mov ebx, dword [esp + 0xec]
shr ebx, 2
test ebx, ebx
mov dword [esp + 0x54], ebx
je 0x89357b
mov eax, dword [esp + 0xc8]
mov esi, dword [esp + 0x2f4]
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0xe8], 1
add eax, eax
add eax, 1
and esi, 4
mov dword [esp + 0x234], eax
mov eax, dword [esp + 0x2ec]
and edi, 2
mov dword [esp + 0x264], esi
mov dword [esp + 0x244], edi
shl eax, 4
mov dword [esp + 0x258], eax
mov eax, dword [esp + 0x2e4]
shl eax, 4
add eax, 0x1790
mov dword [esp + 0x48], eax
mov dword [esp + 0xe4], 0
mov ecx, dword [esp + 0xe4]
mov eax, dword [esp + 0xe8]
mov ebx, dword [esp + 0xb0]
imul eax, dword [ecx*8 + 0xbaf450]
add eax, dword [esp + 0x2c8]
mov edx, dword [ecx*8 + 0xbaf454]
cmp eax, ebx
mov dword [esp + 0xfc], eax
jle 0x893094
mov dword [esp + 0xfc], ebx
mov esi, dword [esp + 0xa8]
cmp dword [esp + 0xfc], esi
jge 0x8930ab
mov dword [esp + 0xfc], esi
mov edi, dword [esp + 0xfc]
cmp dword [esp + 0xa8], edi
jg 0x893df9
cmp dword [esp + 0xb0], edi
jl 0x893ddd
mov eax, dword [esp + 0xe8]
imul eax, edx
mov edx, dword [esp + 0xb4]
add eax, dword [esp + 0x2c4]
cmp eax, edx
mov dword [esp + 0x100], eax
jle 0x8930f6
mov dword [esp + 0x100], edx
mov ecx, dword [esp + 0xac]
cmp dword [esp + 0x100], ecx
jge 0x89310d
mov dword [esp + 0x100], ecx
mov ebx, dword [esp + 0x100]
cmp dword [esp + 0xac], ebx
jg 0x893dc1
cmp dword [esp + 0xb4], ebx
jl 0x893da5
mov edx, dword [esp + 0xfc]
mov edi, ebx
lea eax, [edx + ebx*8]
and eax, 0x3f
shl eax, 2
mov dword [esp + 0x90], eax
add eax, dword [esp + 0xc4]
add edx, dword [esp + 0xd0]
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 0x94]
mov eax, ebx
shl eax, 0xb
add edx, eax
mov dword [esp + 0x98], edx
cmp dword [ecx], edx
je 0x89354c
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x2e0]
movzx ecx, byte [esp + 0xcc]
mov ebx, dword [ebx + 0x17dc]
mov esi, dword [esi + 0x17e0]
shl eax, 4
mov edx, dword [esp + 0x60]
shl edi, cl
mov dword [esp + 0x24c], ebx
mov ebx, dword [esp + 0xfc]
mov dword [esp + 0x248], esi
mov esi, dword [esp + 0x60]
add edx, dword [esp + 0x48]
mov dword [esp + 0x268], edi
shl ebx, cl
lea ecx, [esi + eax + 0x1750]
mov eax, dword [esp + 0x264]
mov dword [esp + 0x26c], ebx
lea edi, [ecx + 0xc]
lea ebx, [edx + 0xc]
mov dword [esp + 0x240], ebx
test eax, eax
mov dword [esp + 0x23c], edi
je 0x8936a8
mov eax, dword [esp + 0xfc]
cmp eax, dword [esi + 0x1744]
jl 0x8913c0
mov eax, dword [esi + 0x1748]
movzx ecx, byte [esp + 0xcc]
shl eax, cl
cmp dword [esp + 0x26c], eax
jg 0x8913c0
mov ebx, dword [esp + 0x100]
cmp ebx, dword [esi + 0x174c]
jl 0x8913c0
mov eax, dword [esi + 0x1750]
shl eax, cl
cmp dword [esp + 0x268], eax
jg 0x8913c0
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x60]
movzx ebx, word [ebx + 0x1fa0]
cmp dword [esi + 0x153c], 1
movzx ebp, word [esi + 0x1fa2]
mov dword [esp + 0x238], ebx
je 0x893860
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x26c]
mov edi, dword [esp + 0x26c]
add edi, dword [ebx + 0x16dc]
mov ebx, dword [esp + 0x268]
add ebx, dword [esi + 0x16e0]
test eax, eax
je 0x89367c
mov eax, edi
sub eax, dword [esi + 0x16bc]
mov dword [esp + 0x224], eax
mov eax, dword [esp + 0x268]
test eax, eax
je 0x893650
mov edx, dword [esp + 0x60]
mov ecx, ebx
sub ecx, dword [edx + 0x16c0]
mov dword [esp + 0x220], ecx
mov eax, dword [esp + 0x234]
movzx ecx, byte [esp + 0xcc]
mov edx, dword [esp + 0x234]
mov ebp, dword [esp + 0xc8]
and eax, ebx
shl eax, cl
and edx, edi
add eax, edx
mov edx, dword [esp + 0x224]
mov dword [esp + 0x21c], eax
mov eax, dword [esp + 0x220]
and eax, dword [esp + 0x234]
and edx, dword [esp + 0x234]
shl eax, cl
add eax, edx
test ebp, ebp
mov dword [esp + 0x218], eax
jne 0x893b3e
mov eax, dword [esp + 0x60]
mov esi, edi
sar esi, 1
mov edx, dword [eax + 0x1814]
shl edx, 4
lea ebp, [esi + edx]
cmp ebp, 0xfffffff0
jl 0x892e66
mov eax, ebx
mov ebx, dword [esp + 0x60]
sar eax, 1
mov ecx, dword [ebx + 0x1818]
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x892e82
mov edi, dword [esp + 0x60]
mov edi, dword [edi + 4]
cmp ebp, edi
mov dword [esp + 0x260], edi
jg 0x892eba
mov edi, dword [esp + 0x60]
mov edi, dword [edi + 8]
cmp ebx, edi
mov dword [esp + 0x25c], edi
jg 0x892e9e
mov edi, dword [esp + 0x224]
sar edi, 1
lea ebp, [edi + edx]
cmp ebp, 0xfffffff0
jl 0x892ef2
mov ebx, dword [esp + 0x220]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x892ed6
cmp dword [esp + 0x260], ebp
jl 0x892f2a
cmp dword [esp + 0x25c], edx
jl 0x892f0e
mov ecx, dword [esp + 0x60]
imul eax, dword [esp + 0x24c]
mov edx, dword [ecx + 0x17f0]
mov ecx, dword [esp + 0x24c]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x240]
add esi, dword [ecx]
lea eax, [esi + eax]
mov esi, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x21c]
call dword [edx + eax*4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [esi + 0x17f4]
mov esi, dword [esp + 0x240]
mov dword [esp + 0xc], 0x10
imul ebx, ecx
mov dword [esp + 8], ecx
add edi, dword [esi + 0x20]
lea eax, [edi + ebx]
mov edi, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x218]
call dword [edx + eax*4]
mov edx, dword [esp + 0x24c]
mov ecx, dword [esp + 0x23c]
mov dword [esp + 0x10], 0x10
mov ebx, dword [esp + 0x60]
mov dword [esp + 0xc], edx
mov eax, dword [ecx]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x170c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [esp + 0x9c]
mov dword [esp + 0x2a8], eax
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0x94]
mov ebx, dword [esp + 0x2a8]
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0xc0]
sub dword [esp + 0x268], esi
mov dword [edi], eax
mov edi, dword [esp + 0x268]
mov dword [edx + ecx], ebx
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbc]
movzx eax, byte [edi + edx]
sub dword [esp + 0x26c], ecx
mov ebx, dword [esp + 0x26c]
mov ecx, dword [esp + 0x2a8]
movzx edx, byte [ebx + edx]
add eax, edx
imul eax, dword [esp + 0x2e8]
add ecx, eax
cmp dword [esp + 0x58], ecx
jle 0x89354c
mov edi, dword [esp + 0xfc]
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x100]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x58], ecx
mov dword [esi], edi
mov dword [edx], eax
add dword [esp + 0xe4], 1
cmp dword [esp + 0xe4], 0x10
jne 0x893057
add dword [esp + 0xe8], 1
mov ecx, dword [esp + 0xe8]
cmp dword [esp + 0x54], ecx
jge 0x89304c
mov eax, dword [esp + 0x2e8]
mov edx, dword [esp + 0x2e4]
mov ecx, dword [esp + 0x2e0]
mov ebx, dword [esp + 0x2f4]
mov esi, dword [esp + 0x2f0]
mov edi, dword [esp + 0x2ec]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x5c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x18], 2
call fcn.0088b8f0
add esp, 0x2cc
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], 0x2fc
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbae9ac
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x2fc
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbae9f6
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x2fc
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbaea03
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x2fc
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbae9b9
call sub.msvcrt.dll__assert
mov esi, dword [esp + 0x60]
sub ebp, dword [esp + 0x238]
imul ebp, dword [esi + 0x16c0]
mov edx, ebp
mov eax, ebp
sar edx, 0x1f
idiv dword [esp + 0x238]
mov dword [esp + 0x220], eax
jmp 0x8932e0
mov ecx, dword [esp + 0x60]
mov edx, ebp
sub edx, dword [esp + 0x238]
imul edx, dword [ecx + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x238]
mov dword [esp + 0x224], eax
jmp 0x8932be
mov edi, dword [esp + 0x24c]
mov esi, dword [esp + 0x2f0]
mov eax, dword [esp + 0xfc]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], esi
add eax, dword [edx + 0xc]
mov edx, dword [esp + 0x100]
imul edx, edi
add eax, edx
mov dword [esp + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call dword [esp + 0x9c]
mov edi, dword [esp + 0x244]
test edi, edi
mov dword [esp + 0x2a8], eax
je 0x8934b4
mov ebx, dword [esp + 0x100]
sar esi, 1
mov eax, dword [esp + 0xfc]
mov ecx, dword [esp + 0x258]
mov edx, dword [esp + 0x60]
and ebx, 1
mov edi, dword [esp + 0x24c]
and eax, 1
mov ebp, dword [esp + 0xfc]
lea ebx, [eax + ebx*2]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x254], esi
lea ebx, [ecx + ebx*4]
mov ecx, dword [esp + 0x254]
mov esi, dword [esp + 0x100]
shl edi, 4
add edi, dword [edx + 0x170c]
mov edx, ebx
add edx, dword [eax + 0x17f0]
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x248]
sar ebp, 1
mov ecx, dword [esp + 0x240]
sar esi, 1
imul esi, dword [esp + 0x248]
mov dword [esp + 8], 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 + 0x60]
lea eax, [edi + 8]
mov dword [esp + 0x250], eax
mov ecx, dword [esp + 0x254]
mov eax, dword [esp + 0x248]
add ebx, dword [edx + 0x17f0]
mov edx, dword [esp + 0x240]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x250]
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 ebx, dword [esp + 0x254]
mov esi, dword [esp + 0x248]
mov edx, dword [esp + 0x23c]
mov ecx, dword [esp + 0x60]
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 + 0xa0]
mov esi, dword [esp + 0x254]
mov edi, dword [esp + 0x248]
mov edx, dword [esp + 0x23c]
mov ecx, dword [esp + 0x250]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x60]
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 + 0xa0]
lea eax, [ebx + eax]
add dword [esp + 0x2a8], eax
jmp 0x8934b4
mov edi, dword [esp + 0x24c]
add edx, 0x2c
sub ebp, ebx
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x284], edx
mov dword [esp + 0x230], 0
shl edi, 3
add eax, 4
mov dword [esp + 0x27c], edi
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ebp
mov edx, dword [esp + 0x230]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x26c]
mov esi, dword [esp + 0x26c]
mov edi, dword [esp + 0x268]
add esi, dword [ecx + edx*8 + 0x16dc]
add edi, dword [ecx + edx*8 + 0x16e0]
test eax, eax
je 0x893a1f
mov ebx, esi
sub ebx, dword [ecx + edx*8 + 0x16bc]
and edx, 1
mov dword [esp + 0x2b4], edx
mov dword [esp + 0x22c], ebx
mov eax, dword [esp + 0x268]
test eax, eax
je 0x893b02
mov edx, dword [esp + 0x230]
mov ebx, edi
mov ecx, dword [esp + 0x60]
mov ebp, edx
sub ebx, dword [ecx + edx*8 + 0x16c0]
sar ebp, 1
mov eax, dword [esp + 0x234]
movzx ecx, byte [esp + 0xcc]
mov edx, dword [esp + 0x234]
imul ebp, dword [esp + 0x27c]
and eax, edi
shl eax, cl
and edx, esi
add eax, edx
mov edx, dword [esp + 0x22c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x234]
and edx, dword [esp + 0x234]
and eax, ebx
shl eax, cl
add eax, edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x228], eax
mov eax, dword [esp + 0x2b4]
lea ebp, [ebp + eax*8]
mov eax, dword [esp + 0xc8]
add ebp, dword [edx + 0x170c]
test eax, eax
je 0x893a6a
mov eax, dword [esp + 0x24c]
sar edi, 2
mov ecx, dword [esp + 0x240]
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 + 0x1c]
mov dword [esp + 4], eax
call dword [edx + esi*4 + 0x40]
mov eax, dword [esp + 0x24c]
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x284]
sar dword [esp + 0x22c], 2
imul ebx, eax
mov edx, dword [edi + 0x17fc]
mov dword [esp + 8], eax
mov ecx, dword [ecx]
add dword [esp + 0x22c], ecx
mov eax, dword [esp + 0x22c]
mov dword [esp], ebp
add eax, ebx
mov ebx, dword [esp + 0x228]
mov dword [esp + 4], eax
call dword [edx + ebx*4 + 0x40]
add dword [esp + 0x230], 1
cmp dword [esp + 0x230], 4
jne 0x89389a
jmp 0x893475
mov eax, dword [esp + 0x230]
mov ebx, dword [esp + 0x230]
mov edx, dword [esp + 0x4c]
movzx ecx, byte [esp + 0x50]
and eax, 1
mov ebp, eax
mov dword [esp + 0x2b4], eax
mov eax, dword [esp + 0x60]
shl ebp, cl
imul edx, dword [eax + ebx*8 + 0x16bc]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x238]
add ebp, eax
mov dword [esp + 0x22c], ebp
jmp 0x8938ea
mov eax, dword [esp + 0x60]
sar edi, 1
mov ecx, dword [esp + 0x24c]
sar esi, 1
sar ebx, 1
mov edx, dword [eax + 0x17f0]
mov eax, dword [esp + 0x240]
imul edi, ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x1c]
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 + 0x24c]
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x284]
sar dword [esp + 0x22c], 1
imul ebx, edi
mov ecx, dword [esp + 0x228]
mov edx, dword [esi + 0x17f4]
mov dword [esp + 0xc], 8
mov dword [esp + 8], edi
mov eax, dword [eax]
add dword [esp + 0x22c], eax
mov eax, dword [esp + 0x22c]
mov dword [esp], ebp
add eax, ebx
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
jmp 0x893a04
mov ebp, dword [esp + 0x230]
movzx ecx, byte [esp + 0x50]
mov eax, dword [esp + 0x230]
mov edx, dword [esp + 0x4c]
sar ebp, 1
mov ebx, ebp
shl ebx, cl
mov ecx, dword [esp + 0x60]
imul edx, dword [ecx + eax*8 + 0x16c0]
mov eax, edx
sar edx, 0x1f
idiv dword [esp + 0x238]
add ebx, eax
jmp 0x893911
mov eax, dword [esp + 0x60]
mov esi, edi
mov edi, ebx
mov ecx, dword [esp + 0x24c]
sar edi, 2
mov ebx, dword [esp + 0x24c]
sar esi, 2
mov edx, dword [eax + 0x17f8]
mov eax, esi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x240]
imul ebx, edi
add edi, 8
add eax, dword [ecx]
mov ecx, dword [esp + 0x60]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x21c]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x24c]
mov edx, dword [ecx + 0x17f8]
mov ecx, dword [esp + 0x240]
mov dword [esp + 8], eax
mov eax, esi
add eax, dword [ecx]
mov ecx, dword [esp + 0x60]
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 + 0x21c]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x24c]
imul edi, dword [esp + 0x24c]
mov ebp, dword [esp + 0x24c]
mov edx, dword [ecx + 0x17f8]
mov ecx, dword [esp + 0x240]
mov dword [esp + 8], eax
mov eax, esi
shl ebp, 3
add eax, dword [ecx]
add eax, edi
mov edi, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, ebp
add eax, dword [edi + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x21c]
call dword [edx + eax*4 + 0x40]
mov edx, dword [edi + 0x17f8]
mov ecx, dword [esp + 0x24c]
mov edi, dword [esp + 0x240]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x60]
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 + 0x21c]
add eax, 8
lea eax, [ebp + eax]
mov dword [esp], eax
call dword [edx + ebx*4 + 0x40]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x24c]
mov ebx, dword [esp + 0x220]
mov edi, dword [esp + 0x224]
mov esi, dword [esp + 0x24c]
mov edx, dword [eax + 0x17fc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x240]
sar ebx, 2
sar edi, 2
imul esi, ebx
mov eax, edi
add ebx, 8
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x60]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x218]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x24c]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x240]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x60]
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 + 0x218]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x24c]
imul ebx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x17fc]
mov ecx, dword [esp + 0x240]
mov dword [esp + 8], eax
mov eax, edi
add eax, dword [ecx + 0x20]
add eax, ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, ebp
add eax, dword [ebx + 0x170c]
mov dword [esp], eax
mov eax, dword [esp + 0x218]
call dword [edx + eax*4 + 0x40]
mov edx, dword [ebx + 0x17fc]
mov ecx, dword [esp + 0x24c]
mov ebx, dword [esp + 0x240]
mov dword [esp + 8], ecx
add edi, dword [ebx + 0x20]
lea esi, [esi + edi + 8]
mov edi, dword [esp + 0x218]
lea esi, [ebp + esi]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x60]
mov eax, dword [esi + 0x170c]
add eax, 8
lea eax, [ebp + eax]
mov dword [esp], eax
call dword [edx + edi*4 + 0x40]
jmp 0x893475
mov dword [esp + 8], 0x304
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbae99e
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x304
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbae990
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x304
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbae982
call sub.msvcrt.dll__assert
mov dword [esp + 8], 0x304
mov dword [esp + 4], 0xbae693
mov dword [esp], 0xbae974
call sub.msvcrt.dll__assert
lea esi, [esi]
lea edi, [edi]