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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x194
mov eax, dword [0x1008a2c0]
xor eax, esp
mov dword [esp + 0x190], eax
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx + 0x18]
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [edx + 0x14]
mov dword [esp + 0xc0], esi
mov dword [esp + 0xb4], edx
mov dword [esp + 0x104], edi
cmp ecx, 3
ja case.default.0x1003cc6d
jmp dword [ecx*4 + 0x1003d22c]
mov ecx, dword [edx]
mov esi, dword [ecx]
mov dword [esp + 0x2c], esi
mov esi, dword [ecx + 4]
mov dword [esp + 0x30], esi
mov esi, dword [ecx + 8]
mov dword [esp + 0x34], esi
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x38], ecx
lea ecx, [eax + 2]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
lea ecx, [eax + 4]
add eax, 6
mov dword [esp + 0xd0], eax
xor eax, eax
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xb0], eax
cmp dword [ebp + 0x10], eax
jle case.default.0x1003cc6d
jmp 0x10035dc9
mov edx, dword [esp + 0xb4]
xor eax, eax
mov esi, dword [edx + 0x10]
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xb8], eax
movsx eax, word [edx]
mov edx, dword [esp + 0xcc]
movsx ebx, word [edx]
add eax, 0x8000
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0xc8]
movsx eax, word [eax]
add eax, 0x8000
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0xd0]
movsx edi, word [eax]
add ebx, 0x8000
mov ecx, 0xf
add edi, 0x8000
mov dword [esp + 0x58], ecx
mov dword [esp + 0x110], ebx
mov dword [esp + 0x114], edi
lea ebx, [ebx]
lea eax, [edi*8]
shr eax, cl
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x58]
and eax, 8
mov dword [esp + 0x48], eax
lea eax, [ebx*4]
shr eax, cl
mov ecx, dword [esp + 0x10c]
mov dword [esp + 0x5c], edx
and eax, 4
or dword [esp + 0x48], eax
lea eax, [ecx + ecx]
mov ecx, dword [esp + 0x58]
shr eax, cl
and eax, 2
or dword [esp + 0x48], eax
mov eax, dword [esp + 0x108]
shr eax, cl
mov ecx, dword [esp + 0x48]
and eax, 1
or ecx, eax
mov dword [esp + 0x40], ecx
mov eax, edx
and eax, dword [esp + 0x108]
mov ecx, edx
and ecx, dword [esp + 0x10c]
or dword [esp + 0x6c], eax
or dword [esp + 0x70], ecx
mov eax, edx
and eax, ebx
or dword [esp + 0x74], eax
mov ecx, edx
and ecx, edi
or dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x40]
mov eax, 1
shl eax, cl
movzx ecx, word [esi]
test ecx, eax
je 0x1003940e
mov edx, dword [esp + 0x40]
mov eax, dword [esi + edx*4 + 4]
mov ecx, dword [esp + 0x2c]
movsx ecx, word [ecx + eax*2]
mov edx, dword [esp + 0x30]
add ecx, 0x8000
mov dword [esp + 0xf4], ecx
movsx ecx, word [edx + eax*2]
mov edx, dword [esp + 0x34]
movsx edx, word [edx + eax*2]
add edx, 0x8000
mov dword [esp + 0xfc], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x18], eax
movsx eax, word [edx + eax*2]
add eax, 0x8000
add ecx, 0x8000
mov edx, eax
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 0xf8], ecx
sub ecx, dword [esp + 0x10c]
sub edx, edi
sub eax, ebx
or edx, eax
mov eax, dword [esp + 0x108]
or edx, ecx
mov ecx, dword [esp + 0xf4]
sub ecx, eax
or edx, ecx
je 0x100393e7
mov edx, 0x10
sub edx, dword [esp + 0x58]
cmp edx, dword [esp + 0x104]
je 0x100393e7
sub eax, dword [esp + 0xf4]
mov ecx, edi
sub ecx, dword [esp + 0x100]
imul eax, eax
mov dword [esp + 0xac], ecx
mov ecx, ebx
sub ecx, dword [esp + 0xfc]
shr eax, 2
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0xf8]
imul ecx, ecx
shr ecx, 2
add eax, ecx
mov ecx, dword [esp + 0x68]
imul ecx, ecx
shr ecx, 2
add eax, ecx
mov ecx, dword [esp + 0xac]
imul ecx, ecx
shr ecx, 2
add eax, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x5c]
jmp 0x10036000
xor edx, edx
mov dword [esp + 0xa8], edx
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa0], edx
mov dword [esp + 0x9c], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x40]
and edx, 1
mov dword [esp + 0xbc], edx
je 0x100364d7
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x6c]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x10036999
mov ecx, dword [esp + 0x108]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
ja 0x100362c4
mov edx, dword [esp + 0x5c]
sub edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x108]
add ecx, edx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x40]
ja 0x100361cc
mov edx, 1
xor ecx, edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0xa0], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003617f
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xac]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x18]
jmp 0x10036957
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10036999
mov edx, dword [esp + 0x58]
dec edx
push 0
push edx
mov edx, dword [esp + 0x74]
sub edx, dword [esp + 0x64]
push edx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10027210
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x130]
jmp 0x10036996
mov edx, 2
xor ecx, 1
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0xa0], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x10036967
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xac]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x18]
jmp 0x10036957
mov ecx, dword [esp + 0x6c]
sub ecx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
jne 0x100363df
mov edx, 1
xor ecx, edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0xa0], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x100363c0
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xac]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x18]
jmp 0x10036957
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10036999
mov edx, dword [esp + 0x58]
push 0
dec edx
push edx
push 0
jmp 0x100361a0
mov edx, 2
xor ecx, 1
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0xa0], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x10036967
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xac]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x18]
jmp 0x10036957
sub ecx, dword [esp + 0x108]
add ecx, dword [esp + 0x6c]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jb 0x10036999
mov ecx, 0x10000
sub ecx, dword [esp + 0x108]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jae 0x1003675f
mov ecx, dword [esp + 0x5c]
lea edx, [ecx + ecx]
sub edx, dword [esp + 0x108]
mov ecx, dword [esp + 0x6c]
add ecx, edx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x40]
jae 0x10036667
mov edx, 1
xor ecx, edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0xa0], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003661a
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xac]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x18]
jmp 0x10036957
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10036999
mov edx, dword [esp + 0x58]
push 0
dec edx
push edx
mov edx, dword [esp + 0x64]
add edx, dword [esp + 0x74]
push edx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10026f80
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x130]
jmp 0x10036996
mov edx, 2
xor ecx, 1
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0xa0], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x10036967
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xac]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x18]
jmp 0x10036957
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x5c]
lea ecx, [ecx + edx*2]
cmp ecx, 0x10000
mov ecx, dword [esp + 0x40]
jne 0x10036864
mov edx, 1
xor ecx, edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0xa0], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003661a
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xac]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x18]
jmp 0x10036957
mov edx, 2
xor ecx, 1
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0xa0], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x10036967
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xac]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x18]
cmp ecx, eax
jae 0x10036999
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, ecx
jmp 0x10036999
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10036999
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
mov ecx, dword [esp + 0x40]
and ecx, 2
mov dword [esp + 0xac], ecx
je 0x10036e2a
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x70]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x100372e2
mov ecx, dword [esp + 0x10c]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
ja 0x10036c21
mov ecx, dword [esp + 0x5c]
sub ecx, dword [esp + 0x70]
add ecx, dword [esp + 0x10c]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x40]
ja 0x10036b2e
inc dword [esp + 0x94]
xor ecx, 2
mov edx, 1
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa4], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10036ae1
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x54]
jmp 0x100372a0
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x100372e2
mov edx, dword [esp + 0x58]
dec edx
push 1
push edx
mov edx, dword [esp + 0x78]
sub edx, dword [esp + 0x64]
push edx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10027210
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x130]
jmp 0x100372df
add dword [esp + 0x94], 2
mov edx, 2
xor ecx, 2
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa4], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x100372b0
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x54]
jmp 0x100372a0
mov ecx, dword [esp + 0x70]
sub ecx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
jne 0x10036d37
inc dword [esp + 0x94]
xor ecx, 2
mov edx, 1
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa4], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10036d18
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x54]
jmp 0x100372a0
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x100372e2
mov edx, dword [esp + 0x58]
push 1
dec edx
push edx
push 0
jmp 0x10036b02
add dword [esp + 0x94], 2
mov edx, 2
xor ecx, 2
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa4], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x100372b0
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x54]
jmp 0x100372a0
mov ecx, dword [esp + 0x5c]
sub ecx, dword [esp + 0x10c]
add ecx, dword [esp + 0x70]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jb 0x100372e2
mov ecx, 0x10000
sub ecx, dword [esp + 0x10c]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jae 0x100370b2
mov ecx, dword [esp + 0x5c]
lea edx, [ecx + ecx]
sub edx, dword [esp + 0x10c]
mov ecx, dword [esp + 0x70]
add ecx, edx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x40]
jae 0x10036fbf
inc dword [esp + 0x94]
xor ecx, 2
mov edx, 1
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa4], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10036f72
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
add edx, 0xffff8000
mov ecx, edx
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x44]
mov dword [esp + 0x68], edx
jmp 0x100372a0
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x100372e2
mov edx, dword [esp + 0x58]
push 1
dec edx
push edx
mov edx, dword [esp + 0x64]
add edx, dword [esp + 0x78]
push edx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10026f80
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x130]
jmp 0x100372df
add dword [esp + 0x94], 2
mov edx, 2
xor ecx, 2
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa4], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x100372b0
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x44]
jmp 0x100372a0
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
lea ecx, [ecx + edx*2]
cmp ecx, 0x10000
mov ecx, dword [esp + 0x40]
jne 0x100371b2
inc dword [esp + 0x94]
xor ecx, 2
mov edx, 1
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa4], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10036f72
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x44]
jmp 0x100372a0
add dword [esp + 0x94], 2
mov edx, 2
xor ecx, 2
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa4], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x100372b0
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x44]
cmp ecx, eax
jae 0x100372e2
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, ecx
jmp 0x100372e2
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x100372e2
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
mov ecx, dword [esp + 0x40]
and ecx, 4
mov dword [esp + 0x68], ecx
je 0x1003775c
mov ecx, ebx
sub ecx, dword [esp + 0x74]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x10037bf5
mov ecx, ebx
imul ecx, ebx
shr ecx, 2
mov edx, 1
cmp eax, ecx
ja 0x10037553
mov ecx, dword [esp + 0x5c]
sub ecx, dword [esp + 0x74]
add ecx, ebx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x40]
ja 0x10037465
inc dword [esp + 0x98]
inc dword [esp + 0x9c]
xor ecx, 4
mov dword [esp + 0xa8], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10037418
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x44]
jmp 0x10037bb3
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10037bf5
mov edx, dword [esp + 0x58]
dec edx
push 2
push edx
mov edx, dword [esp + 0x7c]
sub edx, dword [esp + 0x64]
push edx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10027210
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x130]
jmp 0x10037bf2
add dword [esp + 0x98], 2
add dword [esp + 0x9c], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0xa8], 2
mov dword [esp + 0x48], 1
test ecx, edx
je 0x10037bc3
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x44]
jmp 0x10037bb3
mov ecx, dword [esp + 0x74]
sub ecx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
jne 0x10037668
inc dword [esp + 0x98]
inc dword [esp + 0x9c]
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0xa8], 1
test ecx, edx
je 0x10037649
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x44]
jmp 0x10037bb3
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10037bf5
mov edx, dword [esp + 0x58]
push 2
dec edx
push edx
push 0
jmp 0x10037439
add dword [esp + 0x98], 2
add dword [esp + 0x9c], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0xa8], 2
mov dword [esp + 0x48], 1
test ecx, edx
je 0x10037bc3
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
add edx, 0xffff8000
mov ecx, edx
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], edx
jmp 0x10037bb3
mov ecx, dword [esp + 0x5c]
sub ecx, ebx
add ecx, dword [esp + 0x74]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jb 0x10037bf5
mov ecx, 0x10000
sub ecx, ebx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jae 0x100379ca
mov ecx, dword [esp + 0x5c]
lea edx, [ecx + ecx]
mov ecx, dword [esp + 0x74]
sub edx, ebx
add ecx, edx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x40]
mov edx, 1
jae 0x100378dc
inc dword [esp + 0x98]
inc dword [esp + 0x9c]
xor ecx, 4
mov dword [esp + 0xa8], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003788f
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x3c]
jmp 0x10037bb3
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10037bf5
mov edx, dword [esp + 0x58]
push 2
dec edx
push edx
mov edx, dword [esp + 0x64]
add edx, dword [esp + 0x7c]
push edx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10026f80
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x130]
jmp 0x10037bf2
add dword [esp + 0x98], 2
add dword [esp + 0x9c], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0xa8], 2
mov dword [esp + 0x48], 1
test ecx, edx
je 0x10037bc3
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x3c]
jmp 0x10037bb3
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x74]
lea ecx, [ecx + edx*2]
cmp ecx, 0x10000
mov ecx, dword [esp + 0x40]
mov edx, 1
jne 0x10037aca
inc dword [esp + 0x98]
inc dword [esp + 0x9c]
xor ecx, 4
mov dword [esp + 0xa8], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003788f
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x3c]
jmp 0x10037bb3
add dword [esp + 0x98], 2
add dword [esp + 0x9c], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0xa8], 2
mov dword [esp + 0x48], 1
test ecx, edx
je 0x10037bc3
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x3c]
cmp ecx, eax
jae 0x10037bf5
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, ecx
jmp 0x10037bf5
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10037bf5
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
mov ecx, dword [esp + 0x40]
and ecx, 8
mov dword [esp + 0x18], ecx
je 0x10038062
mov ecx, edi
sub ecx, dword [esp + 0x78]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x100384f8
mov ecx, edi
imul ecx, edi
shr ecx, 2
mov edx, 1
cmp eax, ecx
ja 0x10037e66
mov ecx, dword [esp + 0x5c]
sub ecx, dword [esp + 0x78]
add ecx, edi
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x40]
ja 0x10037d7b
inc dword [esp + 0xa0]
inc dword [esp + 0xa4]
inc dword [esp + 0xa8]
xor ecx, 8
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10037d2b
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x3c]
jmp 0x100384b6
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x100384f8
mov edx, dword [esp + 0x58]
dec edx
push 3
push edx
mov edx, dword [esp + 0x80]
sub edx, dword [esp + 0x64]
push edx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10027210
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x130]
jmp 0x100384f5
add dword [esp + 0xa0], 2
add dword [esp + 0xa4], 2
add dword [esp + 0xa8], 2
xor ecx, 8
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x100384c6
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x3c]
jmp 0x100384b6
mov ecx, dword [esp + 0x78]
sub ecx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
jne 0x10037f77
inc dword [esp + 0xa0]
inc dword [esp + 0xa4]
inc dword [esp + 0xa8]
xor ecx, 8
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10037f58
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x3c]
jmp 0x100384b6
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x100384f8
mov edx, dword [esp + 0x58]
push 3
dec edx
push edx
push 0
jmp 0x10037d4f
add dword [esp + 0xa0], 2
add dword [esp + 0xa4], 2
add dword [esp + 0xa8], 2
xor ecx, 8
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x100384c6
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x3c]
jmp 0x100384b6
mov ecx, dword [esp + 0x5c]
sub ecx, edi
add ecx, dword [esp + 0x78]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jb 0x100384f8
mov ecx, 0x10000
sub ecx, edi
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jae 0x100382d0
mov ecx, dword [esp + 0x5c]
lea edx, [ecx + ecx]
mov ecx, dword [esp + 0x78]
sub edx, edi
add ecx, edx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x40]
mov edx, 1
jae 0x100381e5
inc dword [esp + 0xa0]
inc dword [esp + 0xa4]
inc dword [esp + 0xa8]
xor ecx, 8
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10038195
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x3c]
jmp 0x100384b6
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x100384f8
mov edx, dword [esp + 0x58]
push 3
dec edx
push edx
mov edx, dword [esp + 0x64]
add edx, dword [esp + 0x80]
push edx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10026f80
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x130]
jmp 0x100384f5
add dword [esp + 0xa0], 2
add dword [esp + 0xa4], 2
add dword [esp + 0xa8], 2
xor ecx, 8
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x100384c6
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x3c]
jmp 0x100384b6
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x78]
lea ecx, [ecx + edx*2]
cmp ecx, 0x10000
mov ecx, dword [esp + 0x40]
mov edx, 1
jne 0x100383d0
inc dword [esp + 0xa0]
inc dword [esp + 0xa4]
inc dword [esp + 0xa8]
xor ecx, 8
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10038195
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x3c]
jmp 0x100384b6
add dword [esp + 0xa0], 2
add dword [esp + 0xa4], 2
add dword [esp + 0xa8], 2
xor ecx, 8
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x100384c6
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x3c]
cmp ecx, eax
jae 0x100384f8
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, ecx
jmp 0x100384f8
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x100384f8
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
mov ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x98]
add ecx, dword [esp + 0x9c]
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0x94]
add ecx, dword [esp + 0xa0]
add ecx, dword [esp + 0xa4]
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0x98]
add ecx, dword [esp + 0xa0]
add ecx, dword [esp + 0xa8]
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0x9c]
add ecx, dword [esp + 0xa4]
add ecx, dword [esp + 0xa8]
mov dword [esp + 0xe0], ecx
add ecx, dword [esp + 0xdc]
add ecx, dword [esp + 0xd8]
add ecx, dword [esp + 0xd4]
cmp dword [esp + 0x94], 2
mov dword [esp + 0x20], ecx
jl 0x100386ae
mov ecx, dword [esp + 0x40]
xor ecx, 3
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003867c
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
add ecx, 0x8000
mov edx, dword [esp + 0x10]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x38]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x3c]
mov dword [esp + 0x60], ecx
mov ecx, edi
sub ecx, dword [esp + 0x44]
mov dword [esp + 0x44], ecx
mov ecx, ebx
sub ecx, dword [esp + 0x54]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x14]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x60]
cmp ecx, eax
jae 0x100386ae
mov eax, edx
mov dword [esp + 0x4c], eax
mov eax, ecx
jmp 0x100386ae
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x100386ae
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0x98], 2
jl 0x100387d5
mov ecx, dword [esp + 0x40]
xor ecx, 5
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x100387a3
mov edx, dword [esp + 0x10]
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, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x38]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov edx, edi
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esp + 0x60]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x3c]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x1c]
cmp ecx, eax
jae 0x100387d5
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, ecx
jmp 0x100387d5
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x100387d5
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0x9c], 2
jl 0x100388fc
mov ecx, dword [esp + 0x40]
xor ecx, 6
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x100388ca
mov edx, dword [esp + 0x10]
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, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x38]
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 + 0x54], edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x60]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x1c]
cmp ecx, eax
jae 0x100388fc
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, ecx
jmp 0x100388fc
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x100388fc
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0xa0], 2
jl 0x10038a23
mov ecx, dword [esp + 0x40]
xor ecx, 9
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x100389f1
mov edx, dword [esp + 0x10]
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, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x38]
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 + 0x54], edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x60]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x1c]
cmp ecx, eax
jae 0x10038a23
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, ecx
jmp 0x10038a23
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10038a23
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0xa4], 2
jl 0x10038b4a
mov ecx, dword [esp + 0x40]
xor ecx, 0xa
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10038b18
mov edx, dword [esp + 0x10]
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, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x38]
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 + 0x54], edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x60]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x1c]
cmp ecx, eax
jae 0x10038b4a
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, ecx
jmp 0x10038b4a
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10038b4a
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0xa8], 2
jl 0x10038c71
mov ecx, dword [esp + 0x40]
xor ecx, 0xc
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10038c3f
mov edx, dword [esp + 0x10]
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, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x38]
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 + 0x54], edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x60]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x1c]
cmp ecx, eax
jae 0x10038c71
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, ecx
jmp 0x10038c71
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10038c71
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0xd4], 3
jl 0x10038d98
mov ecx, dword [esp + 0x40]
xor ecx, 7
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10038d66
mov edx, dword [esp + 0x10]
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, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x38]
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 + 0x54], edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x60]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x1c]
cmp ecx, eax
jae 0x10038d98
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, ecx
jmp 0x10038d98
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10038d98
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0xd8], 3
jl 0x10038ebf
mov ecx, dword [esp + 0x40]
xor ecx, 0xb
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10038e8d
mov edx, dword [esp + 0x10]
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, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x38]
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 + 0x54], edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x60]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x1c]
cmp ecx, eax
jae 0x10038ebf
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, ecx
jmp 0x10038ebf
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10038ebf
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0xdc], 3
jl 0x10038fe6
mov ecx, dword [esp + 0x40]
xor ecx, 0xd
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10038fb4
mov edx, dword [esp + 0x10]
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, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x38]
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 + 0x54], edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x60]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x1c]
cmp ecx, eax
jae 0x10038fe6
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, ecx
jmp 0x10038fe6
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10038fe6
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0xe0], 3
jl 0x10039113
mov ecx, dword [esp + 0x40]
xor ecx, 0xe
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x100390e1
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
add ecx, 0x8000
mov edx, dword [esp + 0x10]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x38]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x60]
mov dword [esp + 0x60], ecx
mov ecx, edi
sub ecx, dword [esp + 0x3c]
mov dword [esp + 0x1c], ecx
mov ecx, ebx
sub ecx, dword [esp + 0x44]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x1c]
cmp ecx, eax
jae 0x10039113
mov eax, edx
mov dword [esp + 0x4c], eax
mov eax, ecx
jmp 0x10039113
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10039113
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x60]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0x20], 4
jl 0x10039215
mov ecx, dword [esp + 0x40]
xor ecx, 0xf
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x100391e3
mov edx, dword [esp + 0x10]
mov esi, dword [esi + edx*4 + 4]
mov ecx, dword [esp + 0x2c]
movsx edx, word [ecx + esi*2]
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + esi*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + esi*2]
add ecx, 0x8000
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x38]
movsx ecx, word [ecx + esi*2]
add ecx, 0x8000
mov dword [esp + 0x3c], esi
mov esi, edi
sub esi, ecx
add edx, 0x8000
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x10c]
sub esi, dword [esp + 0x1c]
mov ecx, ebx
sub ecx, dword [esp + 0x20]
imul esi, esi
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x108]
sub ecx, edx
mov edx, dword [esp + 0x20]
imul ecx, ecx
imul edx, edx
shr ecx, 2
shr edx, 2
shr esi, 2
add ecx, esi
add ecx, edx
mov edx, dword [esp + 0x60]
imul edx, edx
shr edx, 2
add ecx, edx
cmp ecx, eax
jae 0x10039215
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x4c], edx
mov eax, ecx
jmp 0x10039215
mov ecx, dword [esp + 0x10]
mov esi, dword [esi + ecx*4 + 4]
test esi, esi
je 0x10039215
mov ecx, dword [esp + 0x10c]
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x10c]
push edi
push ebx
push ecx
push edx
lea ecx, [esp + 0x60]
push ecx
push eax
push esi
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0xbc], 0
je 0x10039252
mov ecx, dword [esp + 0x5c]
mov edx, ecx
sub edx, dword [esp + 0x108]
add edx, dword [esp + 0x6c]
imul edx, edx
shr edx, 2
cmp eax, edx
jb 0x10039279
mov edx, dword [esp + 0x6c]
add edx, ecx
cmp edx, 0x10000
je 0x10039279
mov dword [esp + 0x48], 1
jmp 0x10039279
mov edx, dword [esp + 0x6c]
mov ecx, edx
sub ecx, dword [esp + 0x108]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x10039275
test edx, edx
je 0x10039275
mov dword [esp + 0x48], 1
mov ecx, dword [esp + 0x5c]
cmp dword [esp + 0xac], 0
je 0x100392a8
mov edx, ecx
sub edx, dword [esp + 0x10c]
add edx, dword [esp + 0x70]
imul edx, edx
shr edx, 2
cmp eax, edx
jb 0x100392cc
mov edx, dword [esp + 0x70]
add edx, ecx
cmp edx, 0x10000
jmp 0x100392c2
mov edx, dword [esp + 0x70]
sub edx, dword [esp + 0x10c]
imul edx, edx
shr edx, 2
cmp eax, edx
jbe 0x100392cc
cmp dword [esp + 0x70], 0
je 0x100392cc
mov dword [esp + 0x48], 1
cmp dword [esp + 0x68], 0
je 0x100392f3
mov edx, ecx
sub edx, ebx
add edx, dword [esp + 0x74]
imul edx, edx
shr edx, 2
cmp eax, edx
jb 0x10039312
mov edx, dword [esp + 0x74]
add edx, ecx
cmp edx, 0x10000
jmp 0x10039308
mov edx, dword [esp + 0x74]
sub edx, ebx
imul edx, edx
shr edx, 2
cmp eax, edx
jbe 0x10039312
cmp dword [esp + 0x74], 0
je 0x10039312
mov dword [esp + 0x48], 1
cmp dword [esp + 0x18], 0
je 0x10039339
mov edx, ecx
sub edx, edi
add edx, dword [esp + 0x78]
imul edx, edx
shr edx, 2
cmp eax, edx
jb 0x10039358
mov edx, dword [esp + 0x78]
add edx, ecx
cmp edx, 0x10000
jmp 0x1003934e
mov edx, dword [esp + 0x78]
sub edx, edi
imul edx, edx
shr edx, 2
cmp eax, edx
jbe 0x10039358
cmp dword [esp + 0x78], 0
je 0x10039358
mov dword [esp + 0x48], 1
mov edx, ecx
and edx, dword [esp + 0x108]
inc dword [esp + 0x58]
not edx
and dword [esp + 0x6c], edx
mov edx, ecx
and edx, dword [esp + 0x10c]
not edx
and dword [esp + 0x70], edx
mov edx, ecx
and edx, ebx
not edx
and dword [esp + 0x74], edx
mov edx, ecx
and edx, edi
not edx
and dword [esp + 0x78], edx
mov edx, dword [esp + 0xb8]
mov esi, dword [esp + edx*8 + 0x114]
dec edx
add ecx, ecx
cmp dword [esp + 0x48], 0
mov dword [esp + 0x40], esi
mov esi, dword [esp + edx*8 + 0x118]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0xb8], edx
jne 0x10036000
mov eax, dword [esp + 0xb4]
mov cx, word [eax + 0xc]
add cx, word [esp + 0x4c]
mov edx, dword [esp + 0xc0]
mov eax, dword [esp + 0xb0]
mov word [edx + eax*2], cx
jmp 0x1003c7b6
mov ecx, dword [esp + 0xb4]
mov dx, word [ecx + 0xc]
add dx, word [esp + 0x18]
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xb0]
mov word [eax + ecx*2], dx
jmp 0x1003c7b6
mov ecx, dword [esp + 0x40]
mov eax, dword [esi + ecx*4 + 4]
test eax, eax
je 0x10039440
mov eax, dword [esp + 0xb8]
mov dword [esp + eax*8 + 0x118], esi
mov esi, dword [esi + ecx*4 + 4]
mov dword [esp + eax*8 + 0x11c], ecx
inc eax
mov dword [esp + 0xb8], eax
jmp 0x1003c7be
or eax, 0xffffffff
jmp 0x10039450
xor ecx, ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x40]
and ecx, 1
mov dword [esp + 0xbc], ecx
je 0x10039900
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x6c]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x10039d9a
mov ecx, dword [esp + 0x108]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
ja 0x100396ff
mov edx, dword [esp + 0x5c]
sub edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x108]
add ecx, edx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x40]
ja 0x10039610
mov edx, 1
xor ecx, edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x88], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x100395c3
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x10039d58
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10039d9a
mov edx, dword [esp + 0x58]
dec edx
push 0
push edx
mov edx, dword [esp + 0x74]
sub edx, dword [esp + 0x64]
push edx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10027210
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x130]
jmp 0x10039d97
mov edx, 2
xor ecx, 1
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x88], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x10039d68
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x10039d58
mov ecx, dword [esp + 0x6c]
sub ecx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
jne 0x10039811
mov edx, 1
xor ecx, edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x88], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x100397f2
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x10039d58
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10039d9a
mov edx, dword [esp + 0x58]
push 0
dec edx
push edx
push 0
jmp 0x100395e4
mov edx, 2
xor ecx, 1
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x88], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x10039d68
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x10039d58
sub edx, dword [esp + 0x108]
mov ecx, dword [esp + 0x6c]
add ecx, edx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jb 0x10039d9a
mov edx, dword [esp + 0x5c]
mov ecx, 0x10000
sub ecx, dword [esp + 0x108]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jae 0x10039b76
lea ecx, [edx + edx]
sub ecx, dword [esp + 0x108]
add ecx, dword [esp + 0x6c]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x40]
jae 0x10039a87
mov edx, 1
xor ecx, edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x88], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10039a3a
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x10039d58
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10039d9a
mov edx, dword [esp + 0x58]
push 0
dec edx
push edx
mov edx, dword [esp + 0x64]
add edx, dword [esp + 0x74]
push edx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10026f80
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x130]
jmp 0x10039d97
mov edx, 2
xor ecx, 1
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x88], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x10039d68
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x10039d58
mov ecx, dword [esp + 0x6c]
lea ecx, [ecx + edx*2]
cmp ecx, 0x10000
mov ecx, dword [esp + 0x40]
jne 0x10039c6e
mov edx, 1
xor ecx, edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x88], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10039a3a
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x10039d58
mov edx, 2
xor ecx, 1
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x88], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x10039d68
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
cmp ecx, eax
jae 0x10039d9a
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov eax, ecx
jmp 0x10039d9a
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10039d9a
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
mov ecx, dword [esp + 0x40]
and ecx, 2
mov dword [esp + 0xac], ecx
je 0x1003a21f
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x70]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x1003a6c5
mov ecx, dword [esp + 0x10c]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
ja 0x1003a01c
mov ecx, dword [esp + 0x5c]
sub ecx, dword [esp + 0x70]
add ecx, dword [esp + 0x10c]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x40]
ja 0x10039f2c
inc dword [esp + 0x7c]
xor ecx, 2
mov edx, 1
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10039edf
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003a683
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003a6c5
mov edx, dword [esp + 0x58]
dec edx
push 1
push edx
mov edx, dword [esp + 0x78]
sub edx, dword [esp + 0x64]
push edx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10027210
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x130]
jmp 0x1003a6c2
add dword [esp + 0x7c], 2
mov edx, 2
xor ecx, 2
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x1003a693
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003a683
mov ecx, dword [esp + 0x70]
sub ecx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
jne 0x1003a12f
inc dword [esp + 0x7c]
xor ecx, 2
mov edx, 1
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003a110
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003a683
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003a6c5
mov edx, dword [esp + 0x58]
push 1
dec edx
push edx
push 0
jmp 0x10039f00
add dword [esp + 0x7c], 2
mov edx, 2
xor ecx, 2
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x1003a693
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003a683
mov ecx, dword [esp + 0x5c]
sub ecx, dword [esp + 0x10c]
add ecx, dword [esp + 0x70]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jb 0x1003a6c5
mov ecx, 0x10000
sub ecx, dword [esp + 0x10c]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jae 0x1003a49b
mov ecx, dword [esp + 0x5c]
lea edx, [ecx + ecx]
sub edx, dword [esp + 0x10c]
mov ecx, dword [esp + 0x70]
add ecx, edx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x40]
jae 0x1003a3ab
inc dword [esp + 0x7c]
xor ecx, 2
mov edx, 1
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003a35e
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003a683
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003a6c5
mov edx, dword [esp + 0x58]
push 1
dec edx
push edx
mov edx, dword [esp + 0x64]
add edx, dword [esp + 0x78]
push edx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10026f80
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x130]
jmp 0x1003a6c2
add dword [esp + 0x7c], 2
mov edx, 2
xor ecx, 2
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x1003a693
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003a683
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
lea ecx, [ecx + edx*2]
cmp ecx, 0x10000
mov ecx, dword [esp + 0x40]
jne 0x1003a598
inc dword [esp + 0x7c]
xor ecx, 2
mov edx, 1
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003a35e
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003a683
add dword [esp + 0x7c], 2
mov edx, 2
xor ecx, 2
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x1003a693
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
cmp ecx, eax
jae 0x1003a6c5
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov eax, ecx
jmp 0x1003a6c5
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003a6c5
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
mov ecx, dword [esp + 0x40]
and ecx, 4
mov dword [esp + 0x68], ecx
je 0x1003ab3f
mov ecx, ebx
sub ecx, dword [esp + 0x74]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x1003afd8
mov ecx, ebx
imul ecx, ebx
shr ecx, 2
mov edx, 1
cmp eax, ecx
ja 0x1003a93c
mov ecx, dword [esp + 0x5c]
sub ecx, dword [esp + 0x74]
add ecx, ebx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x40]
ja 0x1003a848
inc dword [esp + 0x80]
inc dword [esp + 0x84]
xor ecx, 4
mov dword [esp + 0x90], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003a7fb
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003af96
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003afd8
mov edx, dword [esp + 0x58]
dec edx
push 2
push edx
mov edx, dword [esp + 0x7c]
sub edx, dword [esp + 0x64]
push edx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10027210
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x130]
jmp 0x1003afd5
add dword [esp + 0x80], 2
add dword [esp + 0x84], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x90], 2
mov dword [esp + 0x48], 1
test ecx, edx
je 0x1003afa6
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
add edx, 0xffff8000
mov ecx, edx
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], edx
jmp 0x1003af96
mov ecx, dword [esp + 0x74]
sub ecx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
jne 0x1003aa51
inc dword [esp + 0x80]
inc dword [esp + 0x84]
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x90], 1
test ecx, edx
je 0x1003aa32
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003af96
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003afd8
mov edx, dword [esp + 0x58]
push 2
dec edx
push edx
push 0
jmp 0x1003a81c
add dword [esp + 0x80], 2
add dword [esp + 0x84], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x90], 2
mov dword [esp + 0x48], 1
test ecx, edx
je 0x1003afa6
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003af96
mov ecx, dword [esp + 0x5c]
sub ecx, ebx
add ecx, dword [esp + 0x74]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jb 0x1003afd8
mov ecx, 0x10000
sub ecx, ebx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jae 0x1003adad
mov ecx, dword [esp + 0x5c]
lea edx, [ecx + ecx]
mov ecx, dword [esp + 0x74]
sub edx, ebx
add ecx, edx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x40]
mov edx, 1
jae 0x1003acbf
inc dword [esp + 0x80]
inc dword [esp + 0x84]
xor ecx, 4
mov dword [esp + 0x90], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003ac72
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003af96
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003afd8
mov edx, dword [esp + 0x58]
push 2
dec edx
push edx
mov edx, dword [esp + 0x64]
add edx, dword [esp + 0x7c]
push edx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10026f80
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x130]
jmp 0x1003afd5
add dword [esp + 0x80], 2
add dword [esp + 0x84], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x90], 2
mov dword [esp + 0x48], 1
test ecx, edx
je 0x1003afa6
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003af96
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x74]
lea ecx, [ecx + edx*2]
cmp ecx, 0x10000
mov ecx, dword [esp + 0x40]
mov edx, 1
jne 0x1003aead
inc dword [esp + 0x80]
inc dword [esp + 0x84]
xor ecx, 4
mov dword [esp + 0x90], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003ac72
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003af96
add dword [esp + 0x80], 2
add dword [esp + 0x84], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x90], 2
mov dword [esp + 0x48], 1
test ecx, edx
je 0x1003afa6
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
cmp ecx, eax
jae 0x1003afd8
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov eax, ecx
jmp 0x1003afd8
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003afd8
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
mov ecx, dword [esp + 0x40]
and ecx, 8
mov dword [esp + 0x18], ecx
je 0x1003b44b
mov ecx, edi
sub ecx, dword [esp + 0x78]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x1003b8e1
mov ecx, edi
imul ecx, edi
shr ecx, 2
mov edx, 1
cmp eax, ecx
ja 0x1003b24f
mov ecx, dword [esp + 0x5c]
sub ecx, dword [esp + 0x78]
add ecx, edi
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x40]
ja 0x1003b164
inc dword [esp + 0x88]
inc dword [esp + 0x8c]
inc dword [esp + 0x90]
xor ecx, 8
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003b114
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
add edx, 0xffff8000
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
mov dword [esp + 0x3c], edx
jmp 0x1003b89f
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003b8e1
mov edx, dword [esp + 0x58]
dec edx
push 3
push edx
mov edx, dword [esp + 0x80]
sub edx, dword [esp + 0x64]
push edx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10027210
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x130]
jmp 0x1003b8de
add dword [esp + 0x88], 2
add dword [esp + 0x8c], 2
add dword [esp + 0x90], 2
xor ecx, 8
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x1003b8af
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003b89f
mov ecx, dword [esp + 0x78]
sub ecx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
jne 0x1003b360
inc dword [esp + 0x88]
inc dword [esp + 0x8c]
inc dword [esp + 0x90]
xor ecx, 8
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003b341
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003b89f
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003b8e1
mov edx, dword [esp + 0x58]
push 3
dec edx
push edx
push 0
jmp 0x1003b138
add dword [esp + 0x88], 2
add dword [esp + 0x8c], 2
add dword [esp + 0x90], 2
xor ecx, 8
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x1003b8af
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003b89f
mov ecx, dword [esp + 0x5c]
sub ecx, edi
add ecx, dword [esp + 0x78]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jb 0x1003b8e1
mov ecx, 0x10000
sub ecx, edi
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jae 0x1003b6b9
mov ecx, dword [esp + 0x5c]
lea edx, [ecx + ecx]
mov ecx, dword [esp + 0x78]
sub edx, edi
add ecx, edx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
mov ecx, dword [esp + 0x40]
mov edx, 1
jae 0x1003b5ce
inc dword [esp + 0x88]
inc dword [esp + 0x8c]
inc dword [esp + 0x90]
xor ecx, 8
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003b57e
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003b89f
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003b8e1
mov edx, dword [esp + 0x58]
push 3
dec edx
push edx
mov edx, dword [esp + 0x64]
add edx, dword [esp + 0x80]
push edx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10026f80
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x130]
jmp 0x1003b8de
add dword [esp + 0x88], 2
add dword [esp + 0x8c], 2
add dword [esp + 0x90], 2
xor ecx, 8
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x1003b8af
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003b89f
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x78]
lea ecx, [ecx + edx*2]
cmp ecx, 0x10000
mov ecx, dword [esp + 0x40]
mov edx, 1
jne 0x1003b7b9
inc dword [esp + 0x88]
inc dword [esp + 0x8c]
inc dword [esp + 0x90]
xor ecx, 8
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003b57e
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
jmp 0x1003b89f
add dword [esp + 0x88], 2
add dword [esp + 0x8c], 2
add dword [esp + 0x90], 2
xor ecx, 8
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
mov dword [esp + 0x48], 1
test ecx, edx
je 0x1003b8af
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
movsx ecx, word [edx + ecx*2]
mov edx, edi
sub edx, ecx
mov ecx, dword [esp + 0x34]
add edx, 0xffff8000
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x30]
add edx, 0xffff8000
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, 0xffff8000
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10]
movsx ecx, word [ecx + edx*2]
mov edx, dword [esp + 0x108]
sub edx, ecx
lea ecx, [edx - 0x8000]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
cmp ecx, eax
jae 0x1003b8e1
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov eax, ecx
jmp 0x1003b8e1
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003b8e1
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
mov ecx, dword [esp + 0x7c]
add ecx, dword [esp + 0x80]
add ecx, dword [esp + 0x84]
mov dword [esp + 0xe4], ecx
mov ecx, dword [esp + 0x7c]
add ecx, dword [esp + 0x88]
add ecx, dword [esp + 0x8c]
mov dword [esp + 0xe8], ecx
mov ecx, dword [esp + 0x80]
add ecx, dword [esp + 0x88]
add ecx, dword [esp + 0x90]
mov dword [esp + 0xec], ecx
mov ecx, dword [esp + 0x84]
add ecx, dword [esp + 0x8c]
add ecx, dword [esp + 0x90]
mov dword [esp + 0xf0], ecx
add ecx, dword [esp + 0xec]
add ecx, dword [esp + 0xe8]
add ecx, dword [esp + 0xe4]
cmp dword [esp + 0x7c], 2
mov dword [esp + 0x54], ecx
jl 0x1003ba88
mov ecx, dword [esp + 0x40]
xor ecx, 3
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003ba56
mov edx, dword [esp + 0x10]
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, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x38]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov edx, edi
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
cmp ecx, eax
jae 0x1003ba88
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov eax, ecx
jmp 0x1003ba88
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003ba88
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0x80], 2
jl 0x1003bbaf
mov ecx, dword [esp + 0x40]
xor ecx, 5
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003bb7d
mov edx, dword [esp + 0x10]
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, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x38]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov edx, edi
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
cmp ecx, eax
jae 0x1003bbaf
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov eax, ecx
jmp 0x1003bbaf
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003bbaf
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0x84], 2
jl 0x1003bcd6
mov ecx, dword [esp + 0x40]
xor ecx, 6
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003bca4
mov edx, dword [esp + 0x10]
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, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x38]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov edx, edi
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
cmp ecx, eax
jae 0x1003bcd6
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov eax, ecx
jmp 0x1003bcd6
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003bcd6
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0x88], 2
jl 0x1003bdfd
mov ecx, dword [esp + 0x40]
xor ecx, 9
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003bdcb
mov edx, dword [esp + 0x10]
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, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x38]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov edx, edi
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
cmp ecx, eax
jae 0x1003bdfd
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov eax, ecx
jmp 0x1003bdfd
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003bdfd
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0x8c], 2
jl 0x1003bf24
mov ecx, dword [esp + 0x40]
xor ecx, 0xa
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003bef2
mov edx, dword [esp + 0x10]
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, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x38]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov edx, edi
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
cmp ecx, eax
jae 0x1003bf24
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov eax, ecx
jmp 0x1003bf24
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003bf24
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0x90], 2
jl 0x1003c04b
mov ecx, dword [esp + 0x40]
xor ecx, 0xc
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003c019
mov edx, dword [esp + 0x10]
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, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x38]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov edx, edi
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
cmp ecx, eax
jae 0x1003c04b
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov eax, ecx
jmp 0x1003c04b
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003c04b
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0xe4], 3
jl 0x1003c172
mov ecx, dword [esp + 0x40]
xor ecx, 7
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003c140
mov edx, dword [esp + 0x10]
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, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x38]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov edx, edi
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
cmp ecx, eax
jae 0x1003c172
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov eax, ecx
jmp 0x1003c172
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003c172
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0xe8], 3
jl 0x1003c299
mov ecx, dword [esp + 0x40]
xor ecx, 0xb
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003c267
mov edx, dword [esp + 0x10]
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, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x38]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov edx, edi
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
cmp ecx, eax
jae 0x1003c299
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov eax, ecx
jmp 0x1003c299
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003c299
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0xec], 3
jl 0x1003c3c0
mov ecx, dword [esp + 0x40]
xor ecx, 0xd
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003c38e
mov edx, dword [esp + 0x10]
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, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x38]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov edx, edi
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
cmp ecx, eax
jae 0x1003c3c0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov eax, ecx
jmp 0x1003c3c0
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003c3c0
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0xf0], 3
jl 0x1003c4e7
mov ecx, dword [esp + 0x40]
xor ecx, 0xe
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003c4b5
mov edx, dword [esp + 0x10]
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, dword [esp + 0x10]
add ecx, 0x8000
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x38]
movsx ecx, word [ecx + edx*2]
add ecx, 0x8000
mov edx, edi
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10c]
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x108]
sub ecx, dword [esp + 0x60]
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
imul ecx, ecx
shr ecx, 2
add dword [esp + 0x14], ecx
mov ecx, edx
imul ecx, ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
cmp ecx, eax
jae 0x1003c4e7
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov eax, ecx
jmp 0x1003c4e7
mov ecx, dword [esp + 0x10]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003c4e7
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x110]
push edi
push ebx
push edx
mov edx, dword [esp + 0x118]
push edx
lea edx, [esp + 0x64]
push edx
push eax
push ecx
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0x54], 4
jl 0x1003c5e9
mov ecx, dword [esp + 0x40]
xor ecx, 0xf
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003c5b7
mov edx, dword [esp + 0x10]
mov esi, dword [esi + edx*4 + 4]
mov ecx, dword [esp + 0x2c]
movsx edx, word [ecx + esi*2]
mov ecx, dword [esp + 0x30]
movsx ecx, word [ecx + esi*2]
add ecx, 0x8000
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + esi*2]
add ecx, 0x8000
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x38]
movsx ecx, word [ecx + esi*2]
add ecx, 0x8000
mov dword [esp + 0x3c], esi
mov esi, edi
sub esi, ecx
add edx, 0x8000
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x10c]
sub esi, dword [esp + 0x1c]
mov ecx, ebx
sub ecx, dword [esp + 0x20]
imul esi, esi
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x108]
sub ecx, edx
mov edx, dword [esp + 0x20]
imul ecx, ecx
imul edx, edx
shr ecx, 2
shr edx, 2
shr esi, 2
add ecx, esi
add ecx, edx
mov edx, dword [esp + 0x60]
imul edx, edx
shr edx, 2
add ecx, edx
cmp ecx, eax
jae 0x1003c5e9
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x50], edx
mov eax, ecx
jmp 0x1003c5e9
mov ecx, dword [esp + 0x10]
mov esi, dword [esi + ecx*4 + 4]
test esi, esi
je 0x1003c5e9
mov ecx, dword [esp + 0x10c]
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x10c]
push edi
push ebx
push ecx
push edx
lea ecx, [esp + 0x64]
push ecx
push eax
push esi
call fcn.10026e60
add esp, 0x20
cmp dword [esp + 0xbc], 0
je 0x1003c626
mov edx, dword [esp + 0x5c]
mov ecx, edx
sub ecx, dword [esp + 0x108]
add ecx, dword [esp + 0x6c]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jb 0x1003c64d
mov ecx, dword [esp + 0x6c]
add ecx, edx
cmp ecx, 0x10000
je 0x1003c64d
mov dword [esp + 0x48], 1
jmp 0x1003c64d
mov edx, dword [esp + 0x6c]
mov ecx, edx
sub ecx, dword [esp + 0x108]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x1003c649
test edx, edx
je 0x1003c649
mov dword [esp + 0x48], 1
mov edx, dword [esp + 0x5c]
cmp dword [esp + 0xac], 0
je 0x1003c67c
mov ecx, edx
sub ecx, dword [esp + 0x10c]
add ecx, dword [esp + 0x70]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jb 0x1003c6a0
mov ecx, dword [esp + 0x70]
add ecx, edx
cmp ecx, 0x10000
jmp 0x1003c696
mov ecx, dword [esp + 0x70]
sub ecx, dword [esp + 0x10c]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x1003c6a0
cmp dword [esp + 0x70], 0
je 0x1003c6a0
mov dword [esp + 0x48], 1
cmp dword [esp + 0x68], 0
je 0x1003c6c7
mov ecx, edx
sub ecx, ebx
add ecx, dword [esp + 0x74]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jb 0x1003c6e6
mov ecx, dword [esp + 0x74]
add ecx, edx
cmp ecx, 0x10000
jmp 0x1003c6dc
mov ecx, dword [esp + 0x74]
sub ecx, ebx
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x1003c6e6
cmp dword [esp + 0x74], 0
je 0x1003c6e6
mov dword [esp + 0x48], 1
cmp dword [esp + 0x18], 0
je 0x1003c70d
mov ecx, edx
sub ecx, edi
add ecx, dword [esp + 0x78]
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jb 0x1003c72c
mov ecx, dword [esp + 0x78]
add ecx, edx
cmp ecx, 0x10000
jmp 0x1003c722
mov ecx, dword [esp + 0x78]
sub ecx, edi
imul ecx, ecx
shr ecx, 2
cmp eax, ecx
jbe 0x1003c72c
cmp dword [esp + 0x78], 0
je 0x1003c72c
mov dword [esp + 0x48], 1
mov ecx, edx
and ecx, dword [esp + 0x108]
inc dword [esp + 0x58]
not ecx
and dword [esp + 0x6c], ecx
mov ecx, edx
and ecx, dword [esp + 0x10c]
not ecx
and dword [esp + 0x70], ecx
mov ecx, edx
and ecx, ebx
not ecx
and dword [esp + 0x74], ecx
mov ecx, edx
and ecx, edi
not ecx
and dword [esp + 0x78], ecx
mov ecx, dword [esp + 0xb8]
mov esi, dword [esp + ecx*8 + 0x114]
dec ecx
add edx, edx
cmp dword [esp + 0x48], 0
mov dword [esp + 0x40], esi
mov esi, dword [esp + ecx*8 + 0x118]
mov dword [esp + 0x5c], edx
mov dword [esp + 0xb8], ecx
jne 0x10039450
mov edx, dword [esp + 0xb4]
mov ax, word [edx + 0xc]
add ax, word [esp + 0x50]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xb0]
mov word [ecx + edx*2], ax
mov dword [esp + 0x10], 1
mov ecx, dword [esp + 0x58]
dec ecx
cmp dword [esp + 0x10], 0
mov dword [esp + 0x58], ecx
je 0x10035e50
mov eax, 8
add dword [esp + 0xc4], eax
add dword [esp + 0xc8], eax
add dword [esp + 0xcc], eax
add dword [esp + 0xd0], eax
mov eax, dword [esp + 0xb0]
inc eax
mov dword [esp + 0xb0], eax
cmp eax, dword [ebp + 0x10]
jl 0x10035dc0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x190]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
mov ecx, dword [edx + 0x20]
dec ecx
je 0x1003cc36
dec ecx
jne case.default.0x1003cc6d
mov ecx, dword [edx + 0x10]
mov ebx, 0x10
sub ebx, edi
mov dword [esp + 0xb0], ecx
mov ecx, ebx
mov edx, 1
shl edx, cl
lea ecx, [eax + 2]
mov dword [esp + 0x48], ecx
lea ecx, [edi - 1]
dec edx
add eax, 4
mov dword [esp + 0x18], ebx
not edx
cmp ecx, 7
ja case.default.0x1003cc6d
jmp dword [ecx*4 + 0x1003d23c]
sub ebx, edi
mov dword [esp + 0x3c], ebx
sub ebx, edi
mov ecx, ebx
sub ecx, edi
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x58], 0
jle case.default.0x1003cc6d
mov edi, dword [esp + 0x48]
sub edi, eax
mov dword [esp + 0x48], edi
jmp 0x1003c8ad
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
movsx edi, word [eax + edi - 2]
add edi, 0x8000
and edi, edx
sar edi, cl
mov ecx, dword [esp + 0x48]
movsx ecx, word [eax + ecx]
add ecx, 0x8000
and ecx, edx
mov dword [esp + 0x60], ecx
mov ecx, ebx
mov ebx, dword [esp + 0x60]
sar ebx, cl
mov ecx, dword [esp + 0x48]
add eax, 8
or edi, ebx
movsx ebx, word [eax + ecx - 4]
mov ecx, dword [esp + 0x18]
add ebx, 0x8000
and ebx, edx
sar ebx, cl
mov ecx, dword [esp + 0x3c]
or edi, ebx
movsx ebx, word [eax - 8]
add ebx, 0x8000
and ebx, edx
sar ebx, cl
mov ecx, dword [esp + 0xb0]
or edi, ebx
mov di, word [ecx + edi*2]
mov ecx, dword [esp + 0x58]
mov word [esi + ecx*2], di
inc ecx
mov dword [esp + 0x58], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x1003c8a1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x190]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x58], 0
jle case.default.0x1003cc6d
mov ecx, dword [esp + 0x48]
mov edi, edx
sar edi, 4
mov dword [esp + 0x20], edi
sub ecx, eax
jmp 0x1003c974
mov edi, dword [esp + 0x20]
movsx ebx, word [eax + ecx + 4]
add ebx, 0x8000
sar ebx, 4
and ebx, edi
movsx edi, word [eax]
add edi, 0x8000
and edi, edx
or ebx, edi
movsx edi, word [eax + ecx]
add edi, 0x8000
and edi, edx
sar ebx, 4
or ebx, edi
movsx edi, word [eax + ecx - 2]
add edi, 0x8000
and edi, edx
sar ebx, 4
or ebx, edi
mov edi, dword [esp + 0xb0]
mov bx, word [edi + ebx*2]
mov edi, dword [esp + 0x58]
mov word [esi + edi*2], bx
inc edi
add eax, 8
mov dword [esp + 0x58], edi
cmp edi, dword [ebp + 0x10]
jl 0x1003c970
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x190]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x58], 0
jle case.default.0x1003cc6d
mov ecx, edx
shl ecx, 4
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x48]
mov edi, edx
sar edi, 5
sub ecx, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x48], ecx
jmp 0x1003ca28
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x48]
movsx ebx, word [eax + ecx + 4]
add ebx, 0x8000
sar ebx, 5
and ebx, edi
movsx edi, word [eax]
add edi, 0x8000
and edi, edx
or ebx, edi
movsx edi, word [eax + ecx]
movsx ecx, word [eax + ecx - 2]
add ecx, 0x8000
add edi, 0x8000
sar ebx, 5
shl ecx, 4
and ecx, dword [esp + 0x1c]
and edi, edx
or ebx, edi
sar ebx, 1
or ebx, ecx
mov ecx, dword [esp + 0xb0]
mov di, word [ecx + ebx*2]
mov ecx, dword [esp + 0x58]
mov word [esi + ecx*2], di
inc ecx
add eax, 8
mov dword [esp + 0x58], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x1003ca20
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x190]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
sub ebx, edi
lea ecx, [edi*4 - 0x10]
mov dword [esp + 0x60], ebx
mov ebx, ecx
sub ebx, edi
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x58], 0
jle case.default.0x1003cc6d
mov edi, dword [esp + 0x48]
sub edi, eax
mov dword [esp + 0x48], edi
jmp 0x1003cae8
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
movsx ebx, word [eax + edi - 2]
movsx edi, word [eax + edi]
add edi, 0x8000
add ebx, 0x8000
and edi, edx
and ebx, edx
shl ebx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, dword [esp + 0x48]
add eax, 8
or ebx, edi
movsx edi, word [eax + ecx - 4]
mov ecx, dword [esp + 0x18]
add edi, 0x8000
and edi, edx
sar edi, cl
mov ecx, dword [esp + 0x60]
or ebx, edi
movsx edi, word [eax - 8]
add edi, 0x8000
and edi, edx
sar edi, cl
mov ecx, dword [esp + 0xb0]
or ebx, edi
mov di, word [ecx + ebx*2]
mov ecx, dword [esp + 0x58]
mov word [esi + ecx*2], di
inc ecx
mov dword [esp + 0x58], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x1003cae0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x190]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x58], 0
jle case.default.0x1003cc6d
mov ecx, edx
sar ecx, 8
mov dword [esp + 0x60], ecx
mov ecx, edx
shl ecx, 8
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x48]
mov edi, edx
shl edi, 0x10
sub ecx, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x48], ecx
jmp 0x1003cbb8
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x20]
movsx ebx, word [eax + ecx - 2]
movsx ecx, word [eax + ecx]
add ecx, 0x8000
shl ecx, 8
and ecx, dword [esp + 0x1c]
sub ebx, 0x8000
shl ebx, 0x10
and ebx, edi
or ebx, ecx
mov ecx, dword [esp + 0x48]
movsx ecx, word [eax + ecx + 4]
add ecx, 0x8000
sar ecx, 8
and ecx, dword [esp + 0x60]
add eax, 8
or ebx, ecx
movsx ecx, word [eax - 8]
add ecx, 0x8000
and ecx, edx
or ebx, ecx
mov ecx, dword [esp + 0xb0]
mov di, word [ecx + ebx*2]
mov ecx, dword [esp + 0x58]
mov word [esi + ecx*2], di
inc ecx
mov dword [esp + 0x58], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x1003cbb0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x190]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
mov edx, dword [edx + 0x10]
mov dword [esp + 0xb0], edx
mov ebx, 0x10
sub ebx, edi
mov ecx, ebx
mov edx, 1
shl edx, cl
lea ecx, [eax + 2]
mov dword [esp + 0x48], ecx
lea ecx, [edi - 1]
dec edx
add eax, 4
mov dword [esp + 0x18], ebx
not edx
cmp ecx, 7
ja case.default.0x1003cc6d
jmp dword [ecx*4 + 0x1003d25c]
sub ebx, edi
mov dword [esp + 0x3c], ebx
sub ebx, edi
mov ecx, ebx
sub ecx, edi
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x58], 0
jle case.default.0x1003cc6d
mov edi, dword [esp + 0x48]
sub edi, eax
mov dword [esp + 0x48], edi
jmp 0x1003ccbc
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
movsx edi, word [eax + edi - 2]
add edi, 0x8000
and edi, edx
sar edi, cl
mov ecx, dword [esp + 0x48]
movsx ecx, word [eax + ecx]
add ecx, 0x8000
and ecx, edx
mov dword [esp + 0x60], ecx
mov ecx, ebx
mov ebx, dword [esp + 0x60]
sar ebx, cl
mov ecx, dword [esp + 0x48]
add eax, 8
or edi, ebx
movsx ebx, word [eax + ecx - 4]
mov ecx, dword [esp + 0x18]
add ebx, 0x8000
and ebx, edx
sar ebx, cl
mov ecx, dword [esp + 0x3c]
or edi, ebx
movsx ebx, word [eax - 8]
add ebx, 0x8000
and ebx, edx
sar ebx, cl
mov ecx, dword [esp + 0xb0]
or edi, ebx
movzx edi, byte [edi + ecx]
mov ecx, dword [esp + 0x58]
mov word [esi + ecx*2], di
inc ecx
mov dword [esp + 0x58], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x1003ccb0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x190]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x58], 0
jle case.default.0x1003cc6d
mov ecx, dword [esp + 0x48]
mov edi, edx
sar edi, 4
mov dword [esp + 0x20], edi
sub ecx, eax
jmp 0x1003cd84
mov edi, dword [esp + 0x20]
movsx ebx, word [eax + ecx + 4]
add ebx, 0x8000
sar ebx, 4
and ebx, edi
movsx edi, word [eax]
add edi, 0x8000
and edi, edx
or ebx, edi
movsx edi, word [eax + ecx]
add edi, 0x8000
and edi, edx
sar ebx, 4
or ebx, edi
movsx edi, word [eax + ecx - 2]
add edi, 0x8000
and edi, edx
sar ebx, 4
or ebx, edi
mov edi, dword [esp + 0xb0]
movzx ebx, byte [ebx + edi]
mov edi, dword [esp + 0x58]
mov word [esi + edi*2], bx
inc edi
add eax, 8
mov dword [esp + 0x58], edi
cmp edi, dword [ebp + 0x10]
jl 0x1003cd80
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x190]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x58], 0
jle case.default.0x1003cc6d
mov ecx, edx
shl ecx, 4
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x48]
mov edi, edx
sar edi, 5
sub ecx, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x48], ecx
jmp 0x1003ce38
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x20]
movsx ebx, word [eax + ecx + 4]
add ebx, 0x8000
sar ebx, 5
and ebx, edi
movsx edi, word [eax]
add edi, 0x8000
and edi, edx
or ebx, edi
movsx edi, word [eax + ecx]
movsx ecx, word [eax + ecx - 2]
add ecx, 0x8000
add edi, 0x8000
sar ebx, 5
shl ecx, 4
and ecx, dword [esp + 0x1c]
and edi, edx
or ebx, edi
sar ebx, 1
or ebx, ecx
mov ecx, dword [esp + 0xb0]
movzx edi, byte [ebx + ecx]
mov ecx, dword [esp + 0x58]
mov word [esi + ecx*2], di
inc ecx
add eax, 8
mov dword [esp + 0x58], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x1003ce30
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x190]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
sub ebx, edi
lea ecx, [edi*4 - 0x10]
mov dword [esp + 0x60], ebx
mov ebx, ecx
sub ebx, edi
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x58], 0
jle case.default.0x1003cc6d
mov edi, dword [esp + 0x48]
sub edi, eax
mov dword [esp + 0x48], edi
jmp 0x1003cef8
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
movsx ebx, word [eax + edi - 2]
movsx edi, word [eax + edi]
add edi, 0x8000
add ebx, 0x8000
and edi, edx
and ebx, edx
shl ebx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, dword [esp + 0x48]
add eax, 8
or ebx, edi
movsx edi, word [eax + ecx - 4]
mov ecx, dword [esp + 0x18]
add edi, 0x8000
and edi, edx
sar edi, cl
mov ecx, dword [esp + 0x60]
or ebx, edi
movsx edi, word [eax - 8]
add edi, 0x8000
and edi, edx
sar edi, cl
mov ecx, dword [esp + 0xb0]
or ebx, edi
movzx edi, byte [ebx + ecx]
mov ecx, dword [esp + 0x58]
mov word [esi + ecx*2], di
inc ecx
mov dword [esp + 0x58], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x1003cef0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x190]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x58], 0
jle case.default.0x1003cc6d
mov ecx, edx
sar ecx, 8
mov dword [esp + 0x60], ecx
mov ecx, edx
shl ecx, 8
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x48]
mov edi, edx
shl edi, 0x10
sub ecx, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x48], ecx
jmp 0x1003cfc8
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x20]
movsx ebx, word [eax + ecx - 2]
movsx ecx, word [eax + ecx]
add ecx, 0x8000
shl ecx, 8
and ecx, dword [esp + 0x1c]
sub ebx, 0x8000
shl ebx, 0x10
and ebx, edi
or ebx, ecx
mov ecx, dword [esp + 0x48]
movsx ecx, word [eax + ecx + 4]
add ecx, 0x8000
sar ecx, 8
and ecx, dword [esp + 0x60]
add eax, 8
or ebx, ecx
movsx ecx, word [eax - 8]
add ecx, 0x8000
and ecx, edx
or ebx, ecx
mov ecx, dword [esp + 0xb0]
movzx edi, byte [ebx + ecx]
mov ecx, dword [esp + 0x58]
mov word [esi + ecx*2], di
inc ecx
mov dword [esp + 0x58], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x1003cfc0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x190]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
mov ecx, dword [edx + 0xc]
dec ecx
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x1c], ecx
mov ecx, dword [edx + 0x1c]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xac], edx
mov dword [esp + 0xb4], 0
jle case.default.0x1003cc6d
add eax, 4
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x68]
movsx ecx, word [eax - 4]
movsx edx, word [eax - 2]
mov dword [esp + 0x20], ecx
movsx ecx, word [eax]
fild dword [esp + 0x20]
mov dword [esp + 0x20], edx
movsx edx, word [eax + 2]
fild dword [esp + 0x20]
mov eax, dword [esp + 0xac]
mov dword [esp + 0x20], ecx
mov edi, 1
mov dword [esp + 0x18], 0x7fffffff
fild dword [esp + 0x20]
mov dword [esp + 0x20], edx
mov ebx, edi
fst qword [esp + 0x60]
fild dword [esp + 0x20]
fst qword [esp + 0x20]
fld qword [eax]
fsub st(4)
fld qword [eax + 8]
fsub st(4)
fld qword [eax + 0x10]
fsubrp st(4)
fld qword [eax + 0x18]
fsubrp st(3)
cmp dword [esp + 0xbc], edi
jl 0x1003d1b9
mov esi, eax
add esi, 0x30
jmp 0x1003d100
fxch st(2)
fxch st(3)
fxch st(1)
fxch st(2)
fxch st(1)
fld st(1)
fmulp st(2)
fld qword [esi - 0x10]
fsub st(6)
fld st(1)
fmulp st(2)
fxch st(1)
faddp st(2)
fld qword [esi - 8]
fsub st(5)
fld st(4)
fmulp st(5)
fxch st(4)
faddp st(2)
fld qword [esi]
fsub qword [esp + 0x60]
fld st(3)
fmulp st(4)
fxch st(3)
faddp st(2)
fld qword [esi + 8]
fsub qword [esp + 0x20]
fxch st(2)
fmul qword [0x1007e240]
call fcn.1007d380
mov ecx, dword [esp + 0x18]
neg ecx
sub ecx, eax
mov eax, ecx
sar eax, 0x1f
mov edx, eax
and edx, ecx
add dword [esp + 0x18], edx
mov ecx, edi
sub ecx, ebx
and ecx, eax
inc edi
add ebx, ecx
add esi, 0x20
cmp edi, dword [esp + 0xbc]
jle 0x1003d0f6
fstp st(0)
fstp st(2)
fstp st(0)
mov edx, dword [esp + 0x1c]
fstp st(0)
mov eax, dword [esp + 0xb4]
fstp st(1)
mov ecx, dword [esp + 0xc0]
fstp st(0)
add dword [esp + 0x68], 8
add edx, ebx
mov word [ecx + eax*2], dx
inc eax
mov dword [esp + 0xb4], eax
cmp eax, dword [ebp + 0x10]
jl 0x1003d07e
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x190]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
fstp st(1)
fstp st(0)
fstp st(1)
jmp 0x1003d170
mov ecx, dword [edx + 0x10]
xor edx, edx
cmp dword [ebp + 0x10], edx
jle case.default.0x1003cc6d
add eax, 4
mov edi, edi
movzx edi, word [eax + 2]
movzx ebx, word [eax - 2]
shr edi, 6
mov di, word [ecx + edi*2 + 0x1800]
shr ebx, 6
add di, word [ecx + ebx*2 + 0x800]
movzx ebx, word [eax - 4]
shr ebx, 6
add di, word [ecx + ebx*2]
movzx ebx, word [eax]
shr ebx, 6
add di, word [ecx + ebx*2 + 0x1000]
inc edx
mov word [esi + edx*2 - 2], di
add eax, 8
cmp edx, dword [ebp + 0x10]
jl 0x1003d1d0
mov ecx, dword [esp + 0x19c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret