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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x12c
mov eax, dword [0x1008a2c0]
xor eax, esp
mov dword [esp + 0x128], eax
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 0x18]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ecx + 0x14]
mov dword [esp + 0x84], esi
mov dword [esp + 0x78], ecx
mov dword [esp + 0xa0], edi
cmp eax, 3
ja case.default.0x100358ae
jmp dword [eax*4 + 0x10035cbc]
mov eax, dword [ecx]
mov edx, dword [eax]
mov dword [esp + 0x24], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x28], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x2c], eax
lea edx, [ebx + 2]
xor eax, eax
mov dword [esp + 0x88], ebx
add ebx, 4
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x74], eax
cmp dword [ebp + 0x10], eax
jle case.default.0x100358ae
jmp 0x10031df6
mov ecx, dword [esp + 0x78]
xor eax, eax
mov esi, dword [ecx + 0x10]
mov ecx, dword [esp + 0x8c]
movsx ebx, word [ecx]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x88]
movsx eax, word [eax]
add eax, 0x8000
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x90]
movsx edi, word [eax]
add ebx, 0x8000
mov edx, 0xf
add edi, 0x8000
mov dword [esp + 0x48], edx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], edi
lea ebx, [ebx]
mov ecx, edx
mov eax, 1
shl eax, cl
mov dword [esp + 0x3c], eax
lea eax, [edi*4]
shr eax, cl
lea ecx, [ebx + ebx]
mov dword [esp + 0x14], ecx
mov ecx, edx
mov edx, dword [esp + 0x14]
shr edx, cl
mov ecx, dword [esp + 0x48]
and eax, 4
and edx, 2
or eax, edx
mov edx, dword [esp + 0xa4]
shr edx, cl
mov ecx, dword [esp + 0x3c]
and ecx, dword [esp + 0xa4]
or dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x3c]
and edx, 1
or eax, edx
mov edx, dword [esp + 0x3c]
and edx, ebx
or dword [esp + 0x50], edx
and ecx, edi
or dword [esp + 0x54], ecx
mov edx, 1
mov ecx, eax
shl edx, cl
mov dword [esp + 0x38], eax
test byte [esi], dl
je 0x10033a67
mov eax, dword [esi + eax*4 + 4]
mov edx, dword [esp + 0x24]
movsx ecx, word [edx + eax*2]
mov edx, dword [esp + 0x28]
movsx edx, word [edx + eax*2]
add edx, 0x8000
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
movsx eax, word [edx + eax*2]
add eax, 0x8000
mov edx, eax
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x98]
sub eax, ebx
sub edx, edi
add ecx, 0x8000
or edx, eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x94], ecx
sub ecx, eax
or edx, ecx
je 0x10033a46
mov ecx, 0x10
sub ecx, dword [esp + 0x48]
cmp ecx, dword [esp + 0xa0]
je 0x10033a46
sub eax, dword [esp + 0x94]
mov ecx, edi
sub ecx, dword [esp + 0x9c]
imul eax, eax
mov dword [esp + 0x64], ecx
mov ecx, ebx
sub ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x14]
imul ecx, ecx
shr ecx, 2
shr eax, 2
add eax, ecx
mov ecx, dword [esp + 0x64]
imul ecx, ecx
shr ecx, 2
add eax, ecx
mov dword [esp + 0x40], edx
xor ecx, ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x38]
and ecx, 1
mov dword [esp + 0x80], ecx
je 0x1003235e
mov ecx, dword [esp + 0xa4]
sub ecx, dword [esp + 0x4c]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x1003271b
mov ecx, dword [esp + 0xa4]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
ja 0x100321a3
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x4c]
add ecx, dword [esp + 0xa4]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x38]
ja 0x100320ec
mov edx, 1
xor ecx, edx
mov dword [esp + 0x60], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x20], edx
shl edx, cl
mov dword [esp + 0x14], ecx
test byte [esi], dl
je 0x100320c6
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xc], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0xc]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xc]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x64]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x1003271b
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x1003271b
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003271b
mov edx, dword [esp + 0x48]
dec edx
push 0
push edx
mov edx, dword [esp + 0x54]
sub edx, dword [esp + 0x44]
push edx
jmp 0x10032278
mov edx, 2
xor ecx, 1
mov dword [esp + 0x60], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x20], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x100326f1
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x64]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x14]
jmp 0x100326e1
mov ecx, dword [esp + 0x4c]
sub ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
jne 0x100322a7
mov edx, 1
xor ecx, edx
mov dword [esp + 0x60], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x20], edx
shl edx, cl
mov dword [esp + 0x14], ecx
test byte [esi], dl
je 0x1003225e
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x64]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x14]
jmp 0x100326e1
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003271b
mov edx, dword [esp + 0x48]
push 0
dec edx
push edx
push 0
lea edx, [esp + 0x30]
push edx
lea edx, [esp + 0xb4]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.10026680
mov edi, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
add esp, 0x20
jmp 0x1003271b
mov edx, 2
xor ecx, 1
mov dword [esp + 0x60], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x20], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x100326f1
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x64]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x14]
jmp 0x100326e1
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0xa4]
add ecx, dword [esp + 0x4c]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jb 0x1003271b
mov ecx, 0x10000
sub ecx, dword [esp + 0xa4]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jae 0x1003251b
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + ecx]
sub edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x4c]
add ecx, edx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x38]
jae 0x10032464
mov edx, 1
xor ecx, edx
mov dword [esp + 0x60], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x20], edx
shl edx, cl
mov dword [esp + 0x14], ecx
test byte [esi], dl
je 0x100325df
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x64]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x14]
jmp 0x100326e1
mov edx, 2
xor ecx, 1
mov dword [esp + 0x60], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x20], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x100326f1
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x64]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x14]
jmp 0x100326e1
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x3c]
lea ecx, [ecx + edx*2]
cmp ecx, 0x10000
mov ecx, dword [esp + 0x38]
jne 0x1003262f
mov edx, 1
xor ecx, edx
mov dword [esp + 0x60], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x20], edx
shl edx, cl
mov dword [esp + 0x14], ecx
test byte [esi], dl
je 0x100325df
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x64]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x14]
jmp 0x100326e1
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003271b
mov edx, dword [esp + 0x48]
push 0
dec edx
push edx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x54]
push edx
lea edx, [esp + 0x30]
push edx
lea edx, [esp + 0xb4]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.10026440
mov edi, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
add esp, 0x20
jmp 0x1003271b
mov edx, 2
xor ecx, 1
mov dword [esp + 0x60], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x20], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x100326f1
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x64]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x1003271b
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x1003271b
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003271b
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0xa8]
push edi
push ebx
push edx
lea edx, [esp + 0x50]
push edx
push eax
push ecx
call fcn.10026350
add esp, 0x1c
mov ecx, dword [esp + 0x38]
and ecx, 2
mov dword [esp + 0x64], ecx
je 0x10032aa6
mov ecx, ebx
sub ecx, dword [esp + 0x50]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x10032e4e
mov ecx, ebx
imul ecx, ebx
shr ecx, 2
mov edx, 1
cmp eax, ecx
ja 0x100328ef
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x50]
add ecx, ebx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x38]
ja 0x1003283c
inc dword [esp + 0x58]
inc dword [esp + 0x20]
xor ecx, 2
mov dword [esp + 0x5c], edx
shl edx, cl
mov dword [esp + 0x14], ecx
test byte [esi], dl
je 0x10032816
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x34]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x34]
jmp 0x10032e14
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10032e4e
mov edx, dword [esp + 0x48]
dec edx
push 1
push edx
mov edx, dword [esp + 0x58]
sub edx, dword [esp + 0x44]
push edx
jmp 0x100329c4
add dword [esp + 0x58], 2
add dword [esp + 0x20], 2
xor ecx, 2
shl edx, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x5c], 2
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x10032e24
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x34]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x34]
jmp 0x10032e14
mov ecx, dword [esp + 0x50]
sub ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
jne 0x100329f3
inc dword [esp + 0x58]
inc dword [esp + 0x20]
xor ecx, 2
shl edx, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x5c], 1
test byte [esi], dl
je 0x100329aa
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x34]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x34]
jmp 0x10032e14
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10032e4e
mov edx, dword [esp + 0x48]
push 1
dec edx
push edx
push 0
lea edx, [esp + 0x30]
push edx
lea edx, [esp + 0xb4]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.10026680
mov edi, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
add esp, 0x20
jmp 0x10032e4e
add dword [esp + 0x58], 2
add dword [esp + 0x20], 2
xor ecx, 2
shl edx, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x5c], 2
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x10032e24
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x34]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x34]
jmp 0x10032e14
mov ecx, dword [esp + 0x3c]
sub ecx, ebx
add ecx, dword [esp + 0x50]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jb 0x10032e4e
mov ecx, 0x10000
sub ecx, ebx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jae 0x10032c51
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + ecx]
mov ecx, dword [esp + 0x50]
sub edx, ebx
add ecx, edx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x38]
mov edx, 1
jae 0x10032b9e
inc dword [esp + 0x58]
inc dword [esp + 0x20]
xor ecx, 2
mov dword [esp + 0x5c], edx
shl edx, cl
mov dword [esp + 0x14], ecx
test byte [esi], dl
je 0x10032d16
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x34]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x34]
jmp 0x10032e14
add dword [esp + 0x58], 2
add dword [esp + 0x20], 2
xor ecx, 2
shl edx, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x5c], 2
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x10032e24
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x34]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x34]
jmp 0x10032e14
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
lea ecx, [ecx + edx*2]
cmp ecx, 0x10000
mov ecx, dword [esp + 0x38]
mov edx, 1
jne 0x10032d66
inc dword [esp + 0x58]
inc dword [esp + 0x20]
xor ecx, 2
mov dword [esp + 0x5c], edx
shl edx, cl
mov dword [esp + 0x14], ecx
test byte [esi], dl
je 0x10032d16
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x34]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x34]
jmp 0x10032e14
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10032e4e
mov edx, dword [esp + 0x48]
push 1
dec edx
push edx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x58]
push edx
lea edx, [esp + 0x30]
push edx
lea edx, [esp + 0xb4]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.10026440
mov edi, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
add esp, 0x20
jmp 0x10032e4e
add dword [esp + 0x58], 2
add dword [esp + 0x20], 2
xor ecx, 2
shl edx, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x5c], 2
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x10032e24
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x34]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x34]
cmp ecx, eax
jae 0x10032e4e
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x10032e4e
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10032e4e
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0xa8]
push edi
push ebx
push edx
lea edx, [esp + 0x50]
push edx
push eax
push ecx
call fcn.10026350
add esp, 0x1c
mov ecx, dword [esp + 0x38]
and ecx, 4
mov dword [esp + 0x14], ecx
je 0x100331cf
mov ecx, edi
sub ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x10033571
mov ecx, edi
imul ecx, edi
shr ecx, 2
mov edx, 1
cmp eax, ecx
ja 0x1003301f
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x54]
add ecx, edi
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x38]
ja 0x10032f6f
inc dword [esp + 0x5c]
inc dword [esp + 0x60]
inc dword [esp + 0x20]
xor ecx, 4
shl edx, cl
mov dword [esp + 0xc], ecx
test byte [esi], dl
je 0x10032f49
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x34]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x1c]
jmp 0x10033537
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10033571
mov edx, dword [esp + 0x48]
dec edx
push 2
push edx
mov edx, dword [esp + 0x5c]
sub edx, dword [esp + 0x44]
push edx
jmp 0x100330f0
add dword [esp + 0x5c], 2
add dword [esp + 0x60], 2
add dword [esp + 0x20], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x10033547
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x34]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x1c]
jmp 0x10033537
mov ecx, dword [esp + 0x54]
sub ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
jne 0x1003311f
inc dword [esp + 0x5c]
inc dword [esp + 0x60]
inc dword [esp + 0x20]
xor ecx, 4
shl edx, cl
mov dword [esp + 0xc], ecx
test byte [esi], dl
je 0x100330d6
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x34]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x1c]
jmp 0x10033537
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10033571
mov edx, dword [esp + 0x48]
push 2
dec edx
push edx
push 0
lea edx, [esp + 0x30]
push edx
lea edx, [esp + 0xb4]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.10026680
mov edi, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
add esp, 0x20
jmp 0x10033571
add dword [esp + 0x5c], 2
add dword [esp + 0x60], 2
add dword [esp + 0x20], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x10033547
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x34]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x1c]
jmp 0x10033537
mov ecx, dword [esp + 0x3c]
sub ecx, edi
add ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jb 0x10033571
mov ecx, 0x10000
sub ecx, edi
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jae 0x10033377
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + ecx]
mov ecx, dword [esp + 0x54]
sub edx, edi
add ecx, edx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x38]
mov edx, 1
jae 0x100332c7
inc dword [esp + 0x5c]
inc dword [esp + 0x60]
inc dword [esp + 0x20]
xor ecx, 4
shl edx, cl
mov dword [esp + 0xc], ecx
test byte [esi], dl
je 0x1003343c
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x34]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x1c]
jmp 0x10033537
add dword [esp + 0x5c], 2
add dword [esp + 0x60], 2
add dword [esp + 0x20], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x10033547
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x34]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x1c]
jmp 0x10033537
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x54]
lea ecx, [ecx + edx*2]
cmp ecx, 0x10000
mov ecx, dword [esp + 0x38]
mov edx, 1
jne 0x1003348c
inc dword [esp + 0x5c]
inc dword [esp + 0x60]
inc dword [esp + 0x20]
xor ecx, 4
shl edx, cl
mov dword [esp + 0xc], ecx
test byte [esi], dl
je 0x1003343c
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x34]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x1c]
jmp 0x10033537
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10033571
mov edx, dword [esp + 0x48]
push 2
dec edx
push edx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x5c]
push edx
lea edx, [esp + 0x30]
push edx
lea edx, [esp + 0xb4]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.10026440
mov edi, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
add esp, 0x20
jmp 0x10033571
add dword [esp + 0x5c], 2
add dword [esp + 0x60], 2
add dword [esp + 0x20], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x10033547
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x34]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x1c]
cmp ecx, eax
jae 0x10033571
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x10033571
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10033571
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0xa8]
push edi
push ebx
push edx
lea edx, [esp + 0x50]
push edx
push eax
push ecx
call fcn.10026350
add esp, 0x1c
cmp dword [esp + 0x58], 2
jl 0x10033659
mov ecx, dword [esp + 0x38]
xor ecx, 3
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
test byte [esi], dl
je 0x1003362f
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x28]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x2c]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov edx, edi
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xa4]
sub ecx, dword [esp + 0x34]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
cmp ecx, eax
jae 0x10033659
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x10033659
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10033659
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0xa8]
push edi
push ebx
push edx
lea edx, [esp + 0x50]
push edx
push eax
push ecx
call fcn.10026350
add esp, 0x1c
cmp dword [esp + 0x5c], 2
jl 0x10033741
mov ecx, dword [esp + 0x38]
xor ecx, 6
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
test byte [esi], dl
je 0x10033717
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x2c]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov edx, edi
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esp + 0x18]
mov dword [esp + 0x34], edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xa4]
sub ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
cmp ecx, eax
jae 0x10033741
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x10033741
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10033741
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0xa8]
push edi
push ebx
push edx
lea edx, [esp + 0x50]
push edx
push eax
push ecx
call fcn.10026350
add esp, 0x1c
cmp dword [esp + 0x60], 2
jl 0x10033829
mov ecx, dword [esp + 0x38]
xor ecx, 5
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
test byte [esi], dl
je 0x100337ff
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x2c]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov edx, edi
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esp + 0x18]
mov dword [esp + 0x34], edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xa4]
sub ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
cmp ecx, eax
jae 0x10033829
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x10033829
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10033829
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0xa8]
push edi
push ebx
push edx
lea edx, [esp + 0x50]
push edx
push eax
push ecx
call fcn.10026350
add esp, 0x1c
cmp dword [esp + 0x20], 3
jl 0x100338f1
mov ecx, dword [esp + 0x38]
xor ecx, 7
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
test byte [esi], dl
je 0x100338c7
mov edx, ecx
mov esi, dword [esi + edx*4 + 4]
mov ecx, dword [esp + 0x24]
movsx edx, word [ecx + esi*2]
mov ecx, dword [esp + 0x28]
movsx ecx, word [ecx + esi*2]
add ecx, 0x8000
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x2c]
movsx ecx, word [ecx + esi*2]
add ecx, 0x8000
mov dword [esp + 0x34], esi
mov esi, edi
sub esi, ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x1c], esi
add edx, 0x8000
sub ecx, edx
mov edx, dword [esp + 0x1c]
imul ecx, ecx
mov esi, ebx
imul edx, edx
sub esi, dword [esp + 0x18]
shr ecx, 2
imul esi, esi
shr esi, 2
add ecx, esi
shr edx, 2
add ecx, edx
cmp ecx, eax
jae 0x100338f1
mov edx, dword [esp + 0x34]
mov dword [esp + 0x40], edx
mov eax, ecx
jmp 0x100338f1
mov ecx, dword [esp + 0xc]
mov esi, dword [esi + ecx*4 + 4]
test esi, esi
je 0x100338f1
mov ecx, dword [esp + 0xa4]
lea edx, [esp + 0x24]
push edx
push edi
push ebx
push ecx
lea edx, [esp + 0x50]
push edx
push eax
push esi
call fcn.10026350
add esp, 0x1c
cmp dword [esp + 0x80], 0
je 0x1003392e
mov ecx, dword [esp + 0x3c]
mov edx, ecx
sub edx, dword [esp + 0xa4]
add edx, dword [esp + 0x4c]
imul edx, edx
shr edx, 2
cmp eax, edx
jb 0x10033955
mov edx, dword [esp + 0x4c]
add edx, ecx
cmp edx, 0x10000
je 0x10033955
mov dword [esp + 0x30], 1
jmp 0x10033955
mov edx, dword [esp + 0x4c]
mov ecx, edx
sub ecx, dword [esp + 0xa4]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x10033951
test edx, edx
je 0x10033951
mov dword [esp + 0x30], 1
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0x64], 0
je 0x1003397c
mov edx, ecx
sub edx, ebx
add edx, dword [esp + 0x50]
imul edx, edx
shr edx, 2
cmp eax, edx
jb 0x1003399b
mov edx, dword [esp + 0x50]
add edx, ecx
cmp edx, 0x10000
jmp 0x10033991
mov edx, dword [esp + 0x50]
sub edx, ebx
imul edx, edx
shr edx, 2
cmp eax, edx
jbe 0x1003399b
cmp dword [esp + 0x50], 0
je 0x1003399b
mov dword [esp + 0x30], 1
cmp dword [esp + 0x14], 0
je 0x100339c2
mov edx, ecx
sub edx, edi
add edx, dword [esp + 0x54]
imul edx, edx
shr edx, 2
cmp eax, edx
jb 0x100339e1
mov edx, dword [esp + 0x54]
add edx, ecx
cmp edx, 0x10000
jmp 0x100339d7
mov edx, dword [esp + 0x54]
sub edx, edi
imul edx, edx
shr edx, 2
cmp eax, edx
jbe 0x100339e1
cmp dword [esp + 0x54], 0
je 0x100339e1
mov dword [esp + 0x30], 1
inc dword [esp + 0x48]
mov edx, ecx
and edx, dword [esp + 0xa4]
not edx
and dword [esp + 0x4c], edx
mov edx, ecx
and edx, ebx
not edx
and dword [esp + 0x50], edx
mov edx, ecx
add ecx, ecx
and edx, edi
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + ecx*8 + 0xa8]
dec ecx
not edx
and dword [esp + 0x54], edx
cmp dword [esp + 0x30], 0
mov edx, dword [esp + ecx*8 + 0xb4]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x38], edx
jne 0x10031f92
mov eax, dword [esp + 0x78]
mov cx, word [eax + 0xc]
add cx, word [esp + 0x40]
jmp 0x1003552f
mov ecx, dword [esp + 0x78]
mov dx, word [ecx + 0xc]
add dx, word [esp + 0x14]
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x74]
mov word [eax + ecx*2], dx
jmp 0x1003553e
mov edx, dword [esi + eax*4 + 4]
test edx, edx
je 0x10033a8d
mov ecx, dword [esp + 0x7c]
mov dword [esp + ecx*8 + 0xb0], esi
mov dword [esp + ecx*8 + 0xb4], eax
inc ecx
mov dword [esp + 0x7c], ecx
mov esi, edx
jmp 0x10035546
or eax, 0xffffffff
xor ecx, ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x38]
and ecx, 1
mov dword [esp + 0x80], ecx
je 0x10033e4c
mov ecx, dword [esp + 0xa4]
sub ecx, dword [esp + 0x4c]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x10034209
mov ecx, dword [esp + 0xa4]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
ja 0x10033c91
mov edx, dword [esp + 0x3c]
sub edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0xa4]
add ecx, edx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x38]
ja 0x10033bda
mov edx, 1
xor ecx, edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x20], edx
shl edx, cl
mov dword [esp + 0x14], ecx
test byte [esi], dl
je 0x10033bb4
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x100341cf
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10034209
mov edx, dword [esp + 0x48]
dec edx
push 0
push edx
mov edx, dword [esp + 0x54]
sub edx, dword [esp + 0x44]
push edx
jmp 0x10033d66
mov edx, 2
xor ecx, 1
mov dword [esp + 0x70], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x20], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x100341df
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x100341cf
mov ecx, dword [esp + 0x4c]
sub ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
jne 0x10033d95
mov edx, 1
xor ecx, edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x20], edx
shl edx, cl
mov dword [esp + 0x14], ecx
test byte [esi], dl
je 0x10033d4c
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x100341cf
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10034209
mov edx, dword [esp + 0x48]
push 0
dec edx
push edx
push 0
lea edx, [esp + 0x30]
push edx
lea edx, [esp + 0xb4]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.10026680
mov edi, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
add esp, 0x20
jmp 0x10034209
mov edx, 2
xor ecx, 1
mov dword [esp + 0x70], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x20], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x100341df
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x100341cf
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0xa4]
add ecx, dword [esp + 0x4c]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jb 0x10034209
mov ecx, 0x10000
sub ecx, dword [esp + 0xa4]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jae 0x10034009
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + ecx]
sub edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x4c]
add ecx, edx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x38]
jae 0x10033f52
mov edx, 1
xor ecx, edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x20], edx
shl edx, cl
mov dword [esp + 0x14], ecx
test byte [esi], dl
je 0x100340cd
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x100341cf
mov edx, 2
xor ecx, 1
mov dword [esp + 0x70], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x20], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x100341df
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x100341cf
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x3c]
lea ecx, [ecx + edx*2]
cmp ecx, 0x10000
mov ecx, dword [esp + 0x38]
jne 0x1003411d
mov edx, 1
xor ecx, edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x20], edx
shl edx, cl
mov dword [esp + 0x14], ecx
test byte [esi], dl
je 0x100340cd
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x100341cf
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10034209
mov edx, dword [esp + 0x48]
push 0
dec edx
push edx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x54]
push edx
lea edx, [esp + 0x30]
push edx
lea edx, [esp + 0xb4]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.10026440
mov edi, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
add esp, 0x20
jmp 0x10034209
mov edx, 2
xor ecx, 1
mov dword [esp + 0x70], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x20], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x100341df
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
cmp ecx, eax
jae 0x10034209
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x10034209
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10034209
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0xa8]
push edi
push ebx
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.10026350
add esp, 0x1c
mov ecx, dword [esp + 0x38]
and ecx, 2
mov dword [esp + 0x64], ecx
je 0x10034594
mov ecx, ebx
sub ecx, dword [esp + 0x50]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x1003493c
mov ecx, ebx
imul ecx, ebx
shr ecx, 2
mov edx, 1
cmp eax, ecx
ja 0x100343dd
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x50]
add ecx, ebx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x38]
ja 0x1003432a
inc dword [esp + 0x68]
inc dword [esp + 0x20]
xor ecx, 2
mov dword [esp + 0x6c], edx
shl edx, cl
mov dword [esp + 0x14], ecx
test byte [esi], dl
je 0x10034304
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x10034902
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003493c
mov edx, dword [esp + 0x48]
dec edx
push 1
push edx
mov edx, dword [esp + 0x58]
sub edx, dword [esp + 0x44]
push edx
jmp 0x100344b2
add dword [esp + 0x68], 2
add dword [esp + 0x20], 2
xor ecx, 2
shl edx, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x6c], 2
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x10034912
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x10034902
mov ecx, dword [esp + 0x50]
sub ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
jne 0x100344e1
inc dword [esp + 0x68]
inc dword [esp + 0x20]
xor ecx, 2
shl edx, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x6c], 1
test byte [esi], dl
je 0x10034498
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x10034902
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003493c
mov edx, dword [esp + 0x48]
push 1
dec edx
push edx
push 0
lea edx, [esp + 0x30]
push edx
lea edx, [esp + 0xb4]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.10026680
mov edi, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
add esp, 0x20
jmp 0x1003493c
add dword [esp + 0x68], 2
add dword [esp + 0x20], 2
xor ecx, 2
shl edx, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x6c], 2
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x10034912
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x10034902
mov ecx, dword [esp + 0x3c]
sub ecx, ebx
add ecx, dword [esp + 0x50]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jb 0x1003493c
mov ecx, 0x10000
sub ecx, ebx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jae 0x1003473f
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + ecx]
mov ecx, dword [esp + 0x50]
sub edx, ebx
add ecx, edx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x38]
mov edx, 1
jae 0x1003468c
inc dword [esp + 0x68]
inc dword [esp + 0x20]
xor ecx, 2
mov dword [esp + 0x6c], edx
shl edx, cl
mov dword [esp + 0x14], ecx
test byte [esi], dl
je 0x10034804
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x10034902
add dword [esp + 0x68], 2
add dword [esp + 0x20], 2
xor ecx, 2
shl edx, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x6c], 2
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x10034912
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x10034902
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
lea ecx, [ecx + edx*2]
cmp ecx, 0x10000
mov ecx, dword [esp + 0x38]
mov edx, 1
jne 0x10034854
inc dword [esp + 0x68]
inc dword [esp + 0x20]
xor ecx, 2
mov dword [esp + 0x6c], edx
shl edx, cl
mov dword [esp + 0x14], ecx
test byte [esi], dl
je 0x10034804
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x10034902
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003493c
mov edx, dword [esp + 0x48]
push 1
dec edx
push edx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x58]
push edx
lea edx, [esp + 0x30]
push edx
lea edx, [esp + 0xb4]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.10026440
mov edi, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
add esp, 0x20
jmp 0x1003493c
add dword [esp + 0x68], 2
add dword [esp + 0x20], 2
xor ecx, 2
shl edx, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x6c], 2
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x10034912
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
cmp ecx, eax
jae 0x1003493c
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x1003493c
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003493c
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0xa8]
push edi
push ebx
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.10026350
add esp, 0x1c
mov ecx, dword [esp + 0x38]
and ecx, 4
mov dword [esp + 0x14], ecx
je 0x10034cbd
mov ecx, edi
sub ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x1003505f
mov ecx, edi
imul ecx, edi
shr ecx, 2
mov edx, 1
cmp eax, ecx
ja 0x10034b0d
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x54]
add ecx, edi
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x38]
ja 0x10034a5d
inc dword [esp + 0x6c]
inc dword [esp + 0x70]
inc dword [esp + 0x20]
xor ecx, 4
shl edx, cl
mov dword [esp + 0xc], ecx
test byte [esi], dl
je 0x10034a37
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x10035025
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003505f
mov edx, dword [esp + 0x48]
dec edx
push 2
push edx
mov edx, dword [esp + 0x5c]
sub edx, dword [esp + 0x44]
push edx
jmp 0x10034bde
add dword [esp + 0x6c], 2
add dword [esp + 0x70], 2
add dword [esp + 0x20], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x10035035
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x10035025
mov ecx, dword [esp + 0x54]
sub ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
jne 0x10034c0d
inc dword [esp + 0x6c]
inc dword [esp + 0x70]
inc dword [esp + 0x20]
xor ecx, 4
shl edx, cl
mov dword [esp + 0xc], ecx
test byte [esi], dl
je 0x10034bc4
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x10035025
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003505f
mov edx, dword [esp + 0x48]
push 2
dec edx
push edx
push 0
lea edx, [esp + 0x30]
push edx
lea edx, [esp + 0xb4]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.10026680
mov edi, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
add esp, 0x20
jmp 0x1003505f
add dword [esp + 0x6c], 2
add dword [esp + 0x70], 2
add dword [esp + 0x20], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x10035035
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x10035025
mov ecx, dword [esp + 0x3c]
sub ecx, edi
add ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jb 0x1003505f
mov ecx, 0x10000
sub ecx, edi
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jae 0x10034e65
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + ecx]
mov ecx, dword [esp + 0x54]
sub edx, edi
add ecx, edx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x38]
mov edx, 1
jae 0x10034db5
inc dword [esp + 0x6c]
inc dword [esp + 0x70]
inc dword [esp + 0x20]
xor ecx, 4
shl edx, cl
mov dword [esp + 0xc], ecx
test byte [esi], dl
je 0x10034f2a
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x10035025
add dword [esp + 0x6c], 2
add dword [esp + 0x70], 2
add dword [esp + 0x20], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x10035035
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x10035025
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x54]
lea ecx, [ecx + edx*2]
cmp ecx, 0x10000
mov ecx, dword [esp + 0x38]
mov edx, 1
jne 0x10034f7a
inc dword [esp + 0x6c]
inc dword [esp + 0x70]
inc dword [esp + 0x20]
xor ecx, 4
shl edx, cl
mov dword [esp + 0xc], ecx
test byte [esi], dl
je 0x10034f2a
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
jmp 0x10035025
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003505f
mov edx, dword [esp + 0x48]
push 2
dec edx
push edx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x5c]
push edx
lea edx, [esp + 0x30]
push edx
lea edx, [esp + 0xb4]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.10026440
mov edi, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
add esp, 0x20
jmp 0x1003505f
add dword [esp + 0x6c], 2
add dword [esp + 0x70], 2
add dword [esp + 0x20], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], 1
test byte [esi], dl
je 0x10035035
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x24]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0xa4]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
cmp ecx, eax
jae 0x1003505f
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x1003505f
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003505f
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0xa8]
push edi
push ebx
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.10026350
add esp, 0x1c
cmp dword [esp + 0x68], 2
jl 0x10035147
mov ecx, dword [esp + 0x38]
xor ecx, 3
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
test byte [esi], dl
je 0x1003511d
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x2c]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov edx, edi
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esp + 0x18]
mov dword [esp + 0x34], edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xa4]
sub ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
cmp ecx, eax
jae 0x10035147
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x10035147
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10035147
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0xa8]
push edi
push ebx
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.10026350
add esp, 0x1c
cmp dword [esp + 0x6c], 2
jl 0x1003522f
mov ecx, dword [esp + 0x38]
xor ecx, 6
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
test byte [esi], dl
je 0x10035205
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x2c]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov edx, edi
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esp + 0x18]
mov dword [esp + 0x34], edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xa4]
sub ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
cmp ecx, eax
jae 0x1003522f
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x1003522f
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003522f
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0xa8]
push edi
push ebx
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.10026350
add esp, 0x1c
cmp dword [esp + 0x70], 2
jl 0x10035317
mov ecx, dword [esp + 0x38]
xor ecx, 5
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
test byte [esi], dl
je 0x100352ed
mov edx, ecx
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x2c]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov edx, edi
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esp + 0x18]
mov dword [esp + 0x34], edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xa4]
sub ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0xc], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
cmp ecx, eax
jae 0x10035317
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x10035317
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10035317
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0xa8]
push edi
push ebx
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.10026350
add esp, 0x1c
cmp dword [esp + 0x20], 3
jl 0x100353df
mov ecx, dword [esp + 0x38]
xor ecx, 7
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
test byte [esi], dl
je 0x100353b5
mov edx, ecx
mov esi, dword [esi + edx*4 + 4]
mov ecx, dword [esp + 0x24]
movsx edx, word [ecx + esi*2]
mov ecx, dword [esp + 0x28]
movsx ecx, word [ecx + esi*2]
add ecx, 0x8000
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x2c]
movsx ecx, word [ecx + esi*2]
add ecx, 0x8000
mov dword [esp + 0x34], esi
mov esi, edi
sub esi, ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x1c], esi
add edx, 0x8000
sub ecx, edx
mov edx, dword [esp + 0x1c]
imul ecx, ecx
mov esi, ebx
imul edx, edx
sub esi, dword [esp + 0x18]
shr ecx, 2
imul esi, esi
shr esi, 2
add ecx, esi
shr edx, 2
add ecx, edx
cmp ecx, eax
jae 0x100353df
mov edx, dword [esp + 0x34]
mov dword [esp + 0x44], edx
mov eax, ecx
jmp 0x100353df
mov ecx, dword [esp + 0xc]
mov esi, dword [esi + ecx*4 + 4]
test esi, esi
je 0x100353df
mov ecx, dword [esp + 0xa4]
lea edx, [esp + 0x24]
push edx
push edi
push ebx
push ecx
lea edx, [esp + 0x54]
push edx
push eax
push esi
call fcn.10026350
add esp, 0x1c
cmp dword [esp + 0x80], 0
je 0x1003541c
mov ecx, dword [esp + 0x3c]
mov edx, ecx
sub edx, dword [esp + 0xa4]
add edx, dword [esp + 0x4c]
imul edx, edx
shr edx, 2
cmp eax, edx
jb 0x10035443
mov edx, dword [esp + 0x4c]
add edx, ecx
cmp edx, 0x10000
je 0x10035443
mov dword [esp + 0x30], 1
jmp 0x10035443
mov edx, dword [esp + 0x4c]
mov ecx, edx
sub ecx, dword [esp + 0xa4]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x1003543f
test edx, edx
je 0x1003543f
mov dword [esp + 0x30], 1
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0x64], 0
je 0x1003546a
mov edx, ecx
sub edx, ebx
add edx, dword [esp + 0x50]
imul edx, edx
shr edx, 2
cmp eax, edx
jb 0x10035489
mov edx, dword [esp + 0x50]
add edx, ecx
cmp edx, 0x10000
jmp 0x1003547f
mov edx, dword [esp + 0x50]
sub edx, ebx
imul edx, edx
shr edx, 2
cmp eax, edx
jbe 0x10035489
cmp dword [esp + 0x50], 0
je 0x10035489
mov dword [esp + 0x30], 1
cmp dword [esp + 0x14], 0
je 0x100354b0
mov edx, ecx
sub edx, edi
add edx, dword [esp + 0x54]
imul edx, edx
shr edx, 2
cmp eax, edx
jb 0x100354cf
mov edx, dword [esp + 0x54]
add edx, ecx
cmp edx, 0x10000
jmp 0x100354c5
mov edx, dword [esp + 0x54]
sub edx, edi
imul edx, edx
shr edx, 2
cmp eax, edx
jbe 0x100354cf
cmp dword [esp + 0x54], 0
je 0x100354cf
mov dword [esp + 0x30], 1
inc dword [esp + 0x48]
mov edx, ecx
and edx, dword [esp + 0xa4]
not edx
and dword [esp + 0x4c], edx
mov edx, ecx
and edx, ebx
not edx
and dword [esp + 0x50], edx
mov edx, ecx
add ecx, ecx
and edx, edi
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + ecx*8 + 0xa8]
dec ecx
not edx
and dword [esp + 0x54], edx
cmp dword [esp + 0x30], 0
mov edx, dword [esp + ecx*8 + 0xb4]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x38], edx
jne 0x10033a90
mov eax, dword [esp + 0x78]
mov cx, word [eax + 0xc]
add cx, word [esp + 0x44]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x84]
mov word [edx + eax*2], cx
mov dword [esp + 0x30], 1
mov edx, dword [esp + 0x48]
dec edx
cmp dword [esp + 0x30], 0
mov dword [esp + 0x48], edx
je 0x10031e60
mov eax, 6
add dword [esp + 0x88], eax
add dword [esp + 0x8c], eax
add dword [esp + 0x90], eax
mov eax, dword [esp + 0x74]
inc eax
mov dword [esp + 0x74], eax
cmp eax, dword [ebp + 0x10]
jl 0x10031df0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
mov ecx, dword [ecx + 0x20]
dec ecx
je 0x10035871
dec ecx
jne case.default.0x100358ae
mov ecx, 0x10
sub ecx, edi
mov edx, 1
shl edx, cl
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x78], eax
dec edx
lea eax, [ebx + 2]
lea ecx, [edi - 1]
add ebx, 4
not edx
cmp ecx, 9
ja case.default.0x100358ae
movzx ecx, byte [ecx + 0x10035cdc]
jmp dword [ecx*4 + 0x10035ccc]
mov ecx, dword [esp + 0x74]
sub ecx, edi
mov dword [esp + 0x1c], ecx
sub ecx, edi
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], 0
jle case.default.0x100358ae
mov edi, ebx
sub edi, eax
mov dword [esp + 0x48], edi
jmp 0x10035628
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
movsx ebx, word [eax + edi - 4]
movsx edi, word [eax + edi]
add ebx, 0x8000
add edi, 0x8000
and ebx, edx
sar ebx, cl
mov ecx, dword [esp + 0x74]
and edi, edx
sar edi, cl
mov ecx, dword [esp + 0x1c]
add eax, 6
or ebx, edi
movsx edi, word [eax - 6]
add edi, 0x8000
and edi, edx
sar edi, cl
mov ecx, dword [esp + 0x78]
or ebx, edi
mov di, word [ecx + ebx*2]
mov ecx, dword [esp + 0x30]
mov word [esi + ecx*2], di
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x10035620
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x74]
sub ecx, edi
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x1c], ecx
lea ecx, [edi + edi*2 - 0x10]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], 0
jle case.default.0x100358ae
mov edi, ebx
sub edi, eax
mov dword [esp + 0x48], edi
jmp 0x100356c4
mov edi, dword [esp + 0x48]
movsx ebx, word [eax + edi - 4]
movsx edi, word [eax + edi]
mov ecx, dword [esp + 0x18]
add ebx, 0x8000
add edi, 0x8000
and ebx, edx
shl ebx, cl
mov ecx, dword [esp + 0x74]
and edi, edx
sar edi, cl
mov ecx, dword [esp + 0x1c]
add eax, 6
or ebx, edi
movsx edi, word [eax - 6]
add edi, 0x8000
and edi, edx
sar edi, cl
mov ecx, dword [esp + 0x78]
or ebx, edi
mov di, word [ecx + ebx*2]
mov ecx, dword [esp + 0x30]
mov word [esi + ecx*2], di
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x100356c0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x30], 0
jle case.default.0x100358ae
mov ecx, edx
sar ecx, 8
mov dword [esp + 0x1c], ecx
mov edi, edx
shl edi, 8
mov ecx, ebx
sub ecx, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x48], ecx
jmp 0x10035768
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
movsx ebx, word [eax + ecx - 4]
movsx ecx, word [eax + ecx]
add ecx, 0x8000
sar ecx, 8
and ecx, dword [esp + 0x1c]
add ebx, 0x8000
shl ebx, 8
and ebx, edi
or ebx, ecx
movsx ecx, word [eax]
add ecx, 0x8000
and ecx, edx
or ebx, ecx
mov ecx, dword [esp + 0x78]
mov di, word [ecx + ebx*2]
mov ecx, dword [esp + 0x30]
mov word [esi + ecx*2], di
inc ecx
add eax, 6
mov dword [esp + 0x30], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x10035760
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
lea ecx, [edi + edi - 0x10]
mov dword [esp + 0x1c], ecx
add ecx, edi
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], 0
jle case.default.0x100358ae
mov edi, ebx
sub edi, eax
mov dword [esp + 0x48], edi
jmp 0x10035804
mov edi, dword [esp + 0x48]
movsx ebx, word [eax + edi - 4]
movsx edi, word [eax + edi]
mov ecx, dword [esp + 0x18]
add ebx, 0x8000
add edi, 0x8000
and ebx, edx
shl ebx, cl
mov ecx, dword [esp + 0x74]
and edi, edx
sar edi, cl
mov ecx, dword [esp + 0x1c]
add eax, 6
or ebx, edi
movsx edi, word [eax - 6]
add edi, 0x8000
and edi, edx
shl edi, cl
mov ecx, dword [esp + 0x78]
or ebx, edi
mov di, word [ecx + ebx*2]
mov ecx, dword [esp + 0x30]
mov word [esi + ecx*2], di
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x10035800
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x78]
mov ecx, 0x10
sub ecx, edi
mov dword [esp + 0x7c], ecx
mov edx, 1
shl edx, cl
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x78], ecx
lea ecx, [ebx + 4]
mov dword [esp + 0x18], ecx
dec edx
lea ecx, [edi - 1]
not edx
lea eax, [ebx + 2]
cmp ecx, 9
ja case.default.0x100358ae
movzx ecx, byte [ecx + 0x10035cf8]
jmp dword [ecx*4 + 0x10035ce8]
mov ecx, dword [esp + 0x7c]
sub ecx, edi
mov dword [esp + 0x34], ecx
sub ecx, edi
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x30], 0
jle case.default.0x100358ae
mov edi, dword [esp + 0x18]
sub edi, eax
mov dword [esp + 0x48], edi
jmp 0x100358eb
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x48]
movsx ebx, word [edi + eax - 4]
movsx edi, word [edi + eax]
add ebx, 0x8000
add edi, 0x8000
and ebx, edx
sar ebx, cl
mov ecx, dword [esp + 0x7c]
and edi, edx
sar edi, cl
mov ecx, dword [esp + 0x34]
add eax, 6
or ebx, edi
movsx edi, word [eax - 6]
add edi, 0x8000
and edi, edx
sar edi, cl
mov ecx, dword [esp + 0x78]
or ebx, edi
movzx edi, byte [ebx + ecx]
mov ecx, dword [esp + 0x30]
mov word [esi + ecx*2], di
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x100358e3
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x7c]
sub ecx, edi
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x1c], ecx
lea ecx, [edi + edi*2 - 0x10]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], 0
jle case.default.0x100358ae
sub ebx, eax
mov dword [esp + 0x74], ebx
jmp 0x10035984
mov ebx, dword [esp + 0x74]
movsx edi, word [ebx + eax]
movsx ebx, word [ebx + eax + 4]
mov ecx, dword [esp + 0x18]
add edi, 0x8000
add ebx, 0x8000
and edi, edx
shl edi, cl
mov ecx, dword [esp + 0x7c]
and ebx, edx
sar ebx, cl
mov ecx, dword [esp + 0x1c]
add eax, 6
or edi, ebx
movsx ebx, word [eax - 6]
add ebx, 0x8000
and ebx, edx
sar ebx, cl
mov ecx, dword [esp + 0x78]
or edi, ebx
movzx edi, byte [edi + ecx]
mov ecx, dword [esp + 0x30]
mov word [esi + ecx*2], di
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x10035980
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x30], 0
jle case.default.0x100358ae
mov ecx, edx
sar ecx, 8
mov dword [esp + 0x1c], ecx
mov ecx, edx
shl ecx, 8
sub ebx, eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x74], ebx
jmp 0x10035a28
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x74]
movsx edi, word [ebx + eax]
add edi, 0x8000
shl edi, 8
and edi, ecx
movsx ecx, word [ebx + eax + 4]
add ecx, 0x8000
sar ecx, 8
and ecx, dword [esp + 0x1c]
add eax, 6
or edi, ecx
movsx ecx, word [eax - 6]
add ecx, 0x8000
and ecx, edx
or edi, ecx
mov ecx, dword [esp + 0x78]
movzx edi, byte [edi + ecx]
mov ecx, dword [esp + 0x30]
mov word [esi + ecx*2], di
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x10035a20
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
lea ecx, [edi + edi - 0x10]
mov dword [esp + 0x1c], ecx
add ecx, edi
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], 0
jle case.default.0x100358ae
sub ebx, eax
mov dword [esp + 0x74], ebx
jmp 0x10035ab7
mov ebx, dword [esp + 0x74]
movsx edi, word [ebx + eax]
movsx ebx, word [ebx + eax + 4]
mov ecx, dword [esp + 0x18]
add edi, 0x8000
add ebx, 0x8000
and edi, edx
shl edi, cl
mov ecx, dword [esp + 0x7c]
and ebx, edx
sar ebx, cl
mov ecx, dword [esp + 0x1c]
add eax, 6
or edi, ebx
movsx ebx, word [eax - 6]
add ebx, 0x8000
and ebx, edx
shl ebx, cl
mov ecx, dword [esp + 0x78]
or edi, ebx
movzx edi, byte [edi + ecx]
mov ecx, dword [esp + 0x30]
mov word [esi + ecx*2], di
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x10035ab3
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 0x1c]
dec eax
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0xc], edx
mov dword [esp + 0x80], eax
mov dword [esp + 0x10], 0
jle case.default.0x100358ae
add ebx, 4
mov dword [esp + 0x64], ebx
mov eax, dword [esp + 0x64]
movsx ecx, word [eax - 4]
movsx edx, word [eax - 2]
movsx eax, word [eax]
mov dword [esp + 0x18], ecx
mov edi, 1
mov dword [esp + 0x14], 0x7fffffff
fild dword [esp + 0x18]
mov dword [esp + 0x18], edx
mov ebx, edi
fild dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x80]
fild dword [esp + 0x18]
fld qword [eax]
fsub st(3)
fld qword [eax + 8]
fsub st(3)
fld qword [eax + 0x10]
fsub st(3)
cmp dword [esp + 0xc], edi
jl 0x10035c55
mov esi, eax
add esi, 0x28
jmp 0x10035bb6
fxch st(1)
fxch st(2)
fld st(2)
fmulp st(3)
fld qword [esi - 0x10]
fsub st(6)
fld st(2)
fmulp st(3)
fxch st(2)
faddp st(3)
fld qword [esi - 8]
fsub st(5)
fld st(1)
fmulp st(2)
fxch st(1)
faddp st(3)
fld qword [esi]
fsub st(4)
fxch st(3)
fmul qword [0x1007e240]
call fcn.1007d380
mov ecx, dword [esp + 0x14]
neg ecx
sub ecx, eax
mov eax, ecx
sar eax, 0x1f
mov edx, eax
and edx, ecx
add dword [esp + 0x14], edx
mov ecx, edi
sub ecx, ebx
and ecx, eax
inc edi
add ebx, ecx
add esi, 0x18
cmp edi, dword [esp + 0xc]
jle 0x10035bb2
fstp st(1)
mov edx, dword [esp + 0x1c]
fstp st(0)
mov eax, dword [esp + 0x10]
fstp st(0)
mov ecx, dword [esp + 0x84]
fstp st(2)
add dword [esp + 0x64], 6
fstp st(0)
add edx, ebx
fstp st(0)
mov word [ecx + eax*2], dx
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [ebp + 0x10]
jl 0x10035b56
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
fstp st(2)
jmp 0x10035c0e
mov ecx, dword [ecx + 0x10]
xor edx, edx
cmp dword [ebp + 0x10], edx
jle case.default.0x100358ae
lea eax, [ebx + 2]
jmp 0x10035c70
movzx edi, word [eax + 2]
movzx ebx, word [eax - 2]
shr edi, 6
mov di, word [ecx + edi*2 + 0x1000]
shr ebx, 6
add di, word [ecx + ebx*2]
movzx ebx, word [eax]
shr ebx, 6
add di, word [ecx + ebx*2 + 0x800]
inc edx
mov word [esi + edx*2 - 2], di
add eax, 6
cmp edx, dword [ebp + 0x10]
jl 0x10035c70
mov ecx, dword [esp + 0x134]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret