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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14c
mov eax, dword [0x1008a2c0]
xor eax, esp
mov dword [esp + 0x148], eax
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x18]
push ebx
mov ebx, dword [edx + 0x14]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0xb8], esi
mov dword [esp + 0xa8], edx
mov dword [esp + 0xfc], ebx
cmp eax, 3
ja case.default.0x10031726
jmp dword [eax*4 + 0x10031d10]
mov eax, dword [edx]
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x2c], eax
lea eax, [edi + 2]
lea ecx, [edi + 1]
mov dword [esp + 0xc4], eax
xor eax, eax
mov dword [esp + 0xbc], edi
add edi, 3
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc8], edi
mov dword [esp + 0xb4], eax
cmp dword [ebp + 0x10], eax
jle case.default.0x10031726
jmp 0x1002b709
mov edx, dword [esp + 0xa8]
xor eax, eax
mov esi, dword [edx + 0x10]
mov edx, dword [esp + 0xbc]
movzx edi, byte [edi]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0xb0], eax
movzx eax, byte [edx]
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x100], eax
movzx eax, byte [edx]
mov edx, dword [esp + 0xc4]
movzx ebx, byte [edx]
mov ecx, 7
mov dword [esp + 0x54], ecx
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], ebx
mov dword [esp + 0x10c], edi
lea ecx, [ecx]
lea eax, [edi*8]
shr eax, cl
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x54]
and eax, 8
mov dword [esp + 0x30], eax
lea eax, [ebx*4]
shr eax, cl
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x3c], edx
and eax, 4
or dword [esp + 0x30], eax
lea eax, [ecx + ecx]
mov ecx, dword [esp + 0x54]
shr eax, cl
and eax, 2
or dword [esp + 0x30], eax
mov eax, dword [esp + 0x100]
shr eax, cl
mov ecx, dword [esp + 0x30]
and eax, 1
or ecx, eax
mov dword [esp + 0x34], ecx
mov eax, edx
and eax, dword [esp + 0x100]
mov ecx, edx
and ecx, dword [esp + 0x104]
or dword [esp + 0x5c], eax
or dword [esp + 0x60], ecx
mov eax, edx
and eax, ebx
or dword [esp + 0x64], eax
mov ecx, edx
and ecx, edi
or dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x34]
mov eax, 1
shl eax, cl
movzx ecx, word [esi]
test ecx, eax
je 0x1002e630
mov edx, dword [esp + 0x34]
mov eax, dword [esi + edx*4 + 4]
mov ecx, dword [esp + 0x20]
movzx edx, byte [eax + ecx]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [eax + ecx]
mov dword [esp + 0xec], edx
mov edx, dword [esp + 0x28]
movzx edx, byte [eax + edx]
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
movzx eax, byte [eax + edx]
mov edx, eax
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0xf0], ecx
sub ecx, dword [esp + 0x104]
sub edx, edi
sub eax, ebx
or edx, eax
mov eax, dword [esp + 0x100]
or edx, ecx
mov ecx, dword [esp + 0xec]
sub ecx, eax
or edx, ecx
je 0x1002e609
mov edx, 8
sub edx, dword [esp + 0x54]
cmp edx, dword [esp + 0xfc]
je 0x1002e609
sub eax, dword [esp + 0xec]
mov ecx, edi
sub ecx, dword [esp + 0xf8]
imul eax, eax
mov dword [esp + 0x9c], ecx
mov ecx, ebx
sub ecx, dword [esp + 0xf4]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x104]
sub ecx, dword [esp + 0xf0]
imul ecx, ecx
add eax, ecx
mov ecx, dword [esp + 0x58]
imul ecx, ecx
add eax, ecx
mov ecx, dword [esp + 0x9c]
imul ecx, ecx
add eax, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x3c]
jmp 0x1002b900
xor edx, edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x34]
and edx, 1
mov dword [esp + 0xac], edx
je 0x1002bd3e
mov ecx, dword [esp + 0x100]
sub ecx, dword [esp + 0x5c]
imul ecx, ecx
cmp eax, ecx
jbe 0x1002c163
mov ecx, dword [esp + 0x100]
imul ecx, ecx
cmp eax, ecx
ja 0x1002bb73
mov edx, dword [esp + 0x3c]
sub edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x100]
add ecx, edx
imul ecx, ecx
cmp eax, ecx
mov ecx, dword [esp + 0x34]
ja 0x1002ba9f
mov edx, 1
xor ecx, edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x90], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002ba52
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x9c]
imul ecx, ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x18]
jmp 0x1002c121
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002c163
mov edx, dword [esp + 0x54]
dec edx
push 0
push edx
mov edx, dword [esp + 0x64]
sub edx, dword [esp + 0x44]
push edx
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.10026c10
mov edi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x128]
jmp 0x1002c160
mov edx, 2
xor ecx, 1
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x90], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002c131
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x9c]
imul ecx, ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x18]
jmp 0x1002c121
mov ecx, dword [esp + 0x5c]
sub ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
jne 0x1002bc6a
mov edx, 1
xor ecx, edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x90], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002bc4b
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x9c]
imul ecx, ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x18]
jmp 0x1002c121
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002c163
mov edx, dword [esp + 0x54]
push 0
dec edx
push edx
push 0
jmp 0x1002ba73
mov edx, 2
xor ecx, 1
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x90], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002c131
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x9c]
imul ecx, ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x18]
jmp 0x1002c121
sub ecx, dword [esp + 0x100]
add ecx, dword [esp + 0x5c]
imul ecx, ecx
cmp eax, ecx
jb 0x1002c163
mov ecx, 0x100
sub ecx, dword [esp + 0x100]
imul ecx, ecx
cmp eax, ecx
jae 0x1002bf7d
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + ecx]
sub edx, dword [esp + 0x100]
mov ecx, dword [esp + 0x5c]
add ecx, edx
imul ecx, ecx
cmp eax, ecx
mov ecx, dword [esp + 0x34]
jae 0x1002bea1
mov edx, 1
xor ecx, edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x90], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002be54
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x9c]
imul ecx, ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x18]
jmp 0x1002c121
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002c163
mov edx, dword [esp + 0x54]
push 0
dec edx
push edx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x64]
push edx
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.100269c0
mov edi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x128]
jmp 0x1002c160
mov edx, 2
xor ecx, 1
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x90], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002c131
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x9c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x38]
jmp 0x1002c121
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x3c]
lea ecx, [ecx + edx*2]
cmp ecx, 0x100
mov ecx, dword [esp + 0x34]
jne 0x1002c058
mov edx, 1
xor ecx, edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x90], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002be54
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x38]
jmp 0x1002c121
mov edx, 2
xor ecx, 1
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x90], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002c131
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x38]
cmp ecx, eax
jae 0x1002c163
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x1002c163
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002c163
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
mov ecx, dword [esp + 0x34]
and ecx, 2
mov dword [esp + 0x9c], ecx
je 0x1002c55b
mov ecx, dword [esp + 0x104]
sub ecx, dword [esp + 0x60]
imul ecx, ecx
cmp eax, ecx
jbe 0x1002c974
mov ecx, dword [esp + 0x104]
imul ecx, ecx
cmp eax, ecx
ja 0x1002c39a
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x60]
add ecx, dword [esp + 0x104]
imul ecx, ecx
cmp eax, ecx
mov ecx, dword [esp + 0x34]
ja 0x1002c2cb
inc dword [esp + 0x84]
xor ecx, 2
mov edx, 1
mov dword [esp + 0x8c], edx
mov dword [esp + 0x94], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002c27e
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x38]
jmp 0x1002c932
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002c974
mov edx, dword [esp + 0x54]
dec edx
push 1
push edx
mov edx, dword [esp + 0x68]
sub edx, dword [esp + 0x44]
push edx
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.10026c10
mov edi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x128]
jmp 0x1002c971
add dword [esp + 0x84], 2
mov edx, 2
xor ecx, 2
mov dword [esp + 0x8c], edx
mov dword [esp + 0x94], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002c942
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x38]
jmp 0x1002c932
mov ecx, dword [esp + 0x60]
sub ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
jne 0x1002c48c
inc dword [esp + 0x84]
xor ecx, 2
mov edx, 1
mov dword [esp + 0x8c], edx
mov dword [esp + 0x94], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002c46d
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x38]
jmp 0x1002c932
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002c974
mov edx, dword [esp + 0x54]
push 1
dec edx
push edx
push 0
jmp 0x1002c29f
add dword [esp + 0x84], 2
mov edx, 2
xor ecx, 2
mov dword [esp + 0x8c], edx
mov dword [esp + 0x94], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002c942
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x38]
jmp 0x1002c932
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x104]
add ecx, dword [esp + 0x60]
imul ecx, ecx
cmp eax, ecx
jb 0x1002c974
mov ecx, 0x100
sub ecx, dword [esp + 0x104]
imul ecx, ecx
cmp eax, ecx
jae 0x1002c78c
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + ecx]
sub edx, dword [esp + 0x104]
mov ecx, dword [esp + 0x60]
add ecx, edx
imul ecx, ecx
cmp eax, ecx
mov ecx, dword [esp + 0x34]
jae 0x1002c6bd
inc dword [esp + 0x84]
xor ecx, 2
mov edx, 1
mov dword [esp + 0x8c], edx
mov dword [esp + 0x94], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002c670
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x38]
jmp 0x1002c932
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002c974
mov edx, dword [esp + 0x54]
push 1
dec edx
push edx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x68]
push edx
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.100269c0
mov edi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x128]
jmp 0x1002c971
add dword [esp + 0x84], 2
mov edx, 2
xor ecx, 2
mov dword [esp + 0x8c], edx
mov dword [esp + 0x94], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002c942
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x38]
jmp 0x1002c932
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x3c]
lea ecx, [ecx + edx*2]
cmp ecx, 0x100
mov ecx, dword [esp + 0x34]
jne 0x1002c868
inc dword [esp + 0x84]
xor ecx, 2
mov edx, 1
mov dword [esp + 0x8c], edx
mov dword [esp + 0x94], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002c670
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x38]
jmp 0x1002c932
add dword [esp + 0x84], 2
mov edx, 2
xor ecx, 2
mov dword [esp + 0x8c], edx
mov dword [esp + 0x94], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002c942
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x38]
cmp ecx, eax
jae 0x1002c974
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x1002c974
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002c974
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
mov ecx, dword [esp + 0x34]
and ecx, 4
mov dword [esp + 0x58], ecx
je 0x1002cd4f
mov ecx, ebx
sub ecx, dword [esp + 0x64]
imul ecx, ecx
cmp eax, ecx
jbe 0x1002d157
mov ecx, ebx
imul ecx, ebx
mov edx, 1
cmp eax, ecx
ja 0x1002cb94
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x64]
add ecx, ebx
imul ecx, ecx
cmp eax, ecx
mov ecx, dword [esp + 0x34]
ja 0x1002caca
inc dword [esp + 0x88]
inc dword [esp + 0x8c]
xor ecx, 4
mov dword [esp + 0x98], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002ca7d
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x1c]
jmp 0x1002d115
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002d157
mov edx, dword [esp + 0x54]
dec edx
push 2
push edx
mov edx, dword [esp + 0x6c]
sub edx, dword [esp + 0x44]
push edx
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.10026c10
mov edi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x128]
jmp 0x1002d154
add dword [esp + 0x88], 2
add dword [esp + 0x8c], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x98], 2
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002d125
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x1c]
jmp 0x1002d115
mov ecx, dword [esp + 0x64]
sub ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
jne 0x1002cc85
inc dword [esp + 0x88]
inc dword [esp + 0x8c]
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x98], 1
test ecx, edx
je 0x1002cc66
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x1c]
jmp 0x1002d115
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002d157
mov edx, dword [esp + 0x54]
push 2
dec edx
push edx
push 0
jmp 0x1002ca9e
add dword [esp + 0x88], 2
add dword [esp + 0x8c], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x98], 2
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002d125
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x1c]
jmp 0x1002d115
mov ecx, dword [esp + 0x3c]
sub ecx, ebx
add ecx, dword [esp + 0x64]
imul ecx, ecx
cmp eax, ecx
jb 0x1002d157
mov ecx, 0x100
sub ecx, ebx
imul ecx, ecx
cmp eax, ecx
jae 0x1002cf6c
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + ecx]
mov ecx, dword [esp + 0x64]
sub edx, ebx
add ecx, edx
imul ecx, ecx
cmp eax, ecx
mov ecx, dword [esp + 0x34]
mov edx, 1
jae 0x1002cea2
inc dword [esp + 0x88]
inc dword [esp + 0x8c]
xor ecx, 4
mov dword [esp + 0x98], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002ce55
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x1c]
jmp 0x1002d115
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002d157
mov edx, dword [esp + 0x54]
push 2
dec edx
push edx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x6c]
push edx
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.100269c0
mov edi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x128]
jmp 0x1002d154
add dword [esp + 0x88], 2
add dword [esp + 0x8c], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x98], 2
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002d125
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x1c]
jmp 0x1002d115
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x64]
lea ecx, [ecx + edx*2]
cmp ecx, 0x100
mov ecx, dword [esp + 0x34]
mov edx, 1
jne 0x1002d050
inc dword [esp + 0x88]
inc dword [esp + 0x8c]
xor ecx, 4
mov dword [esp + 0x98], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002ce55
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x48]
jmp 0x1002d115
add dword [esp + 0x88], 2
add dword [esp + 0x8c], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x98], 2
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002d125
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x48]
cmp ecx, eax
jae 0x1002d157
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x1002d157
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002d157
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
mov ecx, dword [esp + 0x34]
and ecx, 8
mov dword [esp + 0x18], ecx
je 0x1002d528
mov ecx, edi
sub ecx, dword [esp + 0x68]
imul ecx, ecx
cmp eax, ecx
jbe 0x1002d92a
mov ecx, edi
imul ecx, edi
mov edx, 1
cmp eax, ecx
ja 0x1002d374
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x68]
add ecx, edi
imul ecx, ecx
cmp eax, ecx
mov ecx, dword [esp + 0x34]
ja 0x1002d2ad
inc dword [esp + 0x90]
inc dword [esp + 0x94]
inc dword [esp + 0x98]
xor ecx, 8
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002d260
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x48]
jmp 0x1002d8e8
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002d92a
mov edx, dword [esp + 0x54]
dec edx
push 3
push edx
mov edx, dword [esp + 0x70]
sub edx, dword [esp + 0x44]
push edx
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.10026c10
mov edi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x128]
jmp 0x1002d927
add dword [esp + 0x90], 2
add dword [esp + 0x94], 2
add dword [esp + 0x98], 2
xor ecx, 8
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002d8f8
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x48]
jmp 0x1002d8e8
mov ecx, dword [esp + 0x68]
sub ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
jne 0x1002d461
inc dword [esp + 0x90]
inc dword [esp + 0x94]
inc dword [esp + 0x98]
xor ecx, 8
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002d442
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x48]
jmp 0x1002d8e8
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002d92a
mov edx, dword [esp + 0x54]
push 3
dec edx
push edx
push 0
jmp 0x1002d281
add dword [esp + 0x90], 2
add dword [esp + 0x94], 2
add dword [esp + 0x98], 2
xor ecx, 8
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002d8f8
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x48]
jmp 0x1002d8e8
mov ecx, dword [esp + 0x3c]
sub ecx, edi
add ecx, dword [esp + 0x68]
imul ecx, ecx
cmp eax, ecx
jb 0x1002d92a
mov ecx, 0x100
sub ecx, edi
imul ecx, ecx
cmp eax, ecx
jae 0x1002d742
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + ecx]
mov ecx, dword [esp + 0x68]
sub edx, edi
add ecx, edx
imul ecx, ecx
cmp eax, ecx
mov ecx, dword [esp + 0x34]
mov edx, 1
jae 0x1002d67b
inc dword [esp + 0x90]
inc dword [esp + 0x94]
inc dword [esp + 0x98]
xor ecx, 8
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002d62e
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x48]
jmp 0x1002d8e8
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002d92a
mov edx, dword [esp + 0x54]
push 3
dec edx
push edx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x70]
push edx
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.100269c0
mov edi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x128]
jmp 0x1002d927
add dword [esp + 0x90], 2
add dword [esp + 0x94], 2
add dword [esp + 0x98], 2
xor ecx, 8
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002d8f8
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x48]
jmp 0x1002d8e8
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x68]
lea ecx, [ecx + edx*2]
cmp ecx, 0x100
mov ecx, dword [esp + 0x34]
mov edx, 1
jne 0x1002d826
inc dword [esp + 0x90]
inc dword [esp + 0x94]
inc dword [esp + 0x98]
xor ecx, 8
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002d62e
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002d8e8
add dword [esp + 0x90], 2
add dword [esp + 0x94], 2
add dword [esp + 0x98], 2
xor ecx, 8
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002d8f8
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x1002d92a
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x1002d92a
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002d92a
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
mov ecx, dword [esp + 0x84]
add ecx, dword [esp + 0x88]
add ecx, dword [esp + 0x8c]
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0x84]
add ecx, dword [esp + 0x90]
add ecx, dword [esp + 0x94]
mov dword [esp + 0xd0], ecx
mov ecx, dword [esp + 0x88]
add ecx, dword [esp + 0x90]
add ecx, dword [esp + 0x98]
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0x8c]
add ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x98]
mov dword [esp + 0xd8], ecx
add ecx, dword [esp + 0xd4]
add ecx, dword [esp + 0xd0]
add ecx, dword [esp + 0xcc]
cmp dword [esp + 0x84], 2
mov dword [esp + 0x38], ecx
jl 0x1002daae
mov ecx, dword [esp + 0x34]
xor ecx, 3
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002da7c
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x1002daae
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x1002daae
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002daae
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0x88], 2
jl 0x1002dba9
mov ecx, dword [esp + 0x34]
xor ecx, 5
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002db77
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x1002dba9
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x1002dba9
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002dba9
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0x8c], 2
jl 0x1002dca4
mov ecx, dword [esp + 0x34]
xor ecx, 6
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002dc72
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x1002dca4
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x1002dca4
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002dca4
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0x90], 2
jl 0x1002dd9f
mov ecx, dword [esp + 0x34]
xor ecx, 9
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002dd6d
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x1002dd9f
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x1002dd9f
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002dd9f
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0x94], 2
jl 0x1002de9a
mov ecx, dword [esp + 0x34]
xor ecx, 0xa
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002de68
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x1002de9a
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x1002de9a
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002de9a
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0x98], 2
jl 0x1002df95
mov ecx, dword [esp + 0x34]
xor ecx, 0xc
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002df63
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x1002df95
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x1002df95
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002df95
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0xcc], 3
jl 0x1002e090
mov ecx, dword [esp + 0x34]
xor ecx, 7
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002e05e
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x1002e090
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x1002e090
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002e090
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0xd0], 3
jl 0x1002e18b
mov ecx, dword [esp + 0x34]
xor ecx, 0xb
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002e159
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x1002e18b
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x1002e18b
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002e18b
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0xd4], 3
jl 0x1002e286
mov ecx, dword [esp + 0x34]
xor ecx, 0xd
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002e254
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x1002e286
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x1002e286
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002e286
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0xd8], 3
jl 0x1002e381
mov ecx, dword [esp + 0x34]
xor ecx, 0xe
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002e34f
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x1002e381
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, ecx
jmp 0x1002e381
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002e381
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x54]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0x38], 4
jl 0x1002e44f
mov ecx, dword [esp + 0x34]
xor ecx, 0xf
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002e41d
mov edx, dword [esp + 0xc]
mov esi, dword [esi + edx*4 + 4]
mov ecx, dword [esp + 0x2c]
movzx edx, byte [esi + ecx]
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x28]
movzx edx, byte [esi + ecx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x104]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esi + ecx]
sub edx, ecx
mov ecx, dword [esp + 0x20]
imul edx, edx
mov dword [esp + 0x1c], esi
movzx esi, byte [esi + ecx]
mov ecx, dword [esp + 0x100]
sub ecx, esi
imul ecx, ecx
add ecx, edx
mov edx, dword [esp + 0x14]
imul edx, edx
add ecx, edx
mov edx, dword [esp + 0x48]
imul edx, edx
add ecx, edx
cmp ecx, eax
jae 0x1002e44f
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x40], edx
mov eax, ecx
jmp 0x1002e44f
mov ecx, dword [esp + 0xc]
mov esi, dword [esi + ecx*4 + 4]
test esi, esi
je 0x1002e44f
mov ecx, dword [esp + 0x104]
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x104]
push edi
push ebx
push ecx
push edx
lea ecx, [esp + 0x54]
push ecx
push eax
push esi
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0xac], 0
je 0x1002e489
mov ecx, dword [esp + 0x3c]
mov edx, ecx
sub edx, dword [esp + 0x100]
add edx, dword [esp + 0x5c]
imul edx, edx
cmp eax, edx
jb 0x1002e4ad
mov edx, dword [esp + 0x5c]
add edx, ecx
cmp edx, 0x100
je 0x1002e4ad
mov dword [esp + 0x30], 1
jmp 0x1002e4ad
mov edx, dword [esp + 0x5c]
mov ecx, edx
sub ecx, dword [esp + 0x100]
imul ecx, ecx
cmp eax, ecx
jbe 0x1002e4a9
test edx, edx
je 0x1002e4a9
mov dword [esp + 0x30], 1
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0x9c], 0
je 0x1002e4d9
mov edx, ecx
sub edx, dword [esp + 0x104]
add edx, dword [esp + 0x60]
imul edx, edx
cmp eax, edx
jb 0x1002e4fa
mov edx, dword [esp + 0x60]
add edx, ecx
cmp edx, 0x100
jmp 0x1002e4f0
mov edx, dword [esp + 0x60]
sub edx, dword [esp + 0x104]
imul edx, edx
cmp eax, edx
jbe 0x1002e4fa
cmp dword [esp + 0x60], 0
je 0x1002e4fa
mov dword [esp + 0x30], 1
cmp dword [esp + 0x58], 0
je 0x1002e51e
mov edx, ecx
sub edx, ebx
add edx, dword [esp + 0x64]
imul edx, edx
cmp eax, edx
jb 0x1002e53a
mov edx, dword [esp + 0x64]
add edx, ecx
cmp edx, 0x100
jmp 0x1002e530
mov edx, dword [esp + 0x64]
sub edx, ebx
imul edx, edx
cmp eax, edx
jbe 0x1002e53a
cmp dword [esp + 0x64], 0
je 0x1002e53a
mov dword [esp + 0x30], 1
cmp dword [esp + 0x18], 0
je 0x1002e55e
mov edx, ecx
sub edx, edi
add edx, dword [esp + 0x68]
imul edx, edx
cmp eax, edx
jb 0x1002e57a
mov edx, dword [esp + 0x68]
add edx, ecx
cmp edx, 0x100
jmp 0x1002e570
mov edx, dword [esp + 0x68]
sub edx, edi
imul edx, edx
cmp eax, edx
jbe 0x1002e57a
cmp dword [esp + 0x68], 0
je 0x1002e57a
mov dword [esp + 0x30], 1
mov edx, ecx
and edx, dword [esp + 0x100]
inc dword [esp + 0x54]
not edx
and dword [esp + 0x5c], edx
mov edx, ecx
and edx, dword [esp + 0x104]
not edx
and dword [esp + 0x60], edx
mov edx, ecx
and edx, ebx
not edx
and dword [esp + 0x64], edx
mov edx, ecx
and edx, edi
not edx
and dword [esp + 0x68], edx
mov edx, dword [esp + 0xb0]
mov esi, dword [esp + edx*8 + 0x10c]
dec edx
add ecx, ecx
cmp dword [esp + 0x30], 0
mov dword [esp + 0x34], esi
mov esi, dword [esp + edx*8 + 0x110]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xb0], edx
jne 0x1002b900
mov eax, dword [esp + 0xa8]
mov cx, word [eax + 0xc]
add cx, word [esp + 0x40]
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0xb4]
mov word [edx + eax*2], cx
jmp 0x1003123c
mov ecx, dword [esp + 0xa8]
mov dx, word [ecx + 0xc]
add dx, word [esp + 0x18]
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb4]
mov word [eax + ecx*2], dx
jmp 0x1003123c
mov ecx, dword [esp + 0x34]
mov eax, dword [esi + ecx*4 + 4]
test eax, eax
je 0x1002e662
mov eax, dword [esp + 0xb0]
mov dword [esp + eax*8 + 0x110], esi
mov esi, dword [esi + ecx*4 + 4]
mov dword [esp + eax*8 + 0x114], ecx
inc eax
mov dword [esp + 0xb0], eax
jmp 0x10031244
or eax, 0xffffffff
jmp 0x1002e670
xor ecx, ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x34]
and ecx, 1
mov dword [esp + 0xac], ecx
je 0x1002ea6b
mov ecx, dword [esp + 0x100]
sub ecx, dword [esp + 0x5c]
imul ecx, ecx
cmp eax, ecx
jbe 0x1002ee54
mov ecx, dword [esp + 0x100]
imul ecx, ecx
cmp eax, ecx
ja 0x1002e8b6
mov edx, dword [esp + 0x3c]
sub edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x100]
add ecx, edx
imul ecx, ecx
cmp eax, ecx
mov ecx, dword [esp + 0x34]
ja 0x1002e7f1
mov edx, 1
xor ecx, edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x78], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002e7a4
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002ee12
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002ee54
mov edx, dword [esp + 0x54]
dec edx
push 0
push edx
mov edx, dword [esp + 0x64]
sub edx, dword [esp + 0x44]
push edx
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.10026c10
mov edi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x128]
jmp 0x1002ee51
mov edx, 2
xor ecx, 1
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x78], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002ee22
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002ee12
mov ecx, dword [esp + 0x5c]
sub ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
jne 0x1002e99e
mov edx, 1
xor ecx, edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x78], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002e97f
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002ee12
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002ee54
mov edx, dword [esp + 0x54]
push 0
dec edx
push edx
push 0
jmp 0x1002e7c5
mov edx, 2
xor ecx, 1
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x78], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002ee22
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002ee12
sub edx, dword [esp + 0x100]
mov ecx, dword [esp + 0x5c]
add ecx, edx
imul ecx, ecx
cmp eax, ecx
jb 0x1002ee54
mov edx, dword [esp + 0x3c]
mov ecx, 0x100
sub ecx, dword [esp + 0x100]
imul ecx, ecx
cmp eax, ecx
jae 0x1002ec84
lea ecx, [edx + edx]
sub ecx, dword [esp + 0x100]
add ecx, dword [esp + 0x5c]
imul ecx, ecx
cmp eax, ecx
mov ecx, dword [esp + 0x34]
jae 0x1002ebbf
mov edx, 1
xor ecx, edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x78], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002eb72
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002ee12
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002ee54
mov edx, dword [esp + 0x54]
push 0
dec edx
push edx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x64]
push edx
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.100269c0
mov edi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x128]
jmp 0x1002ee51
mov edx, 2
xor ecx, 1
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x78], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002ee22
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002ee12
mov ecx, dword [esp + 0x5c]
lea ecx, [ecx + edx*2]
cmp ecx, 0x100
mov ecx, dword [esp + 0x34]
jne 0x1002ed52
mov edx, 1
xor ecx, edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x78], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002eb72
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002ee12
mov edx, 2
xor ecx, 1
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x78], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002ee22
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x1002ee54
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x1002ee54
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002ee54
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
mov ecx, dword [esp + 0x34]
and ecx, 2
mov dword [esp + 0x9c], ecx
je 0x1002f228
mov ecx, dword [esp + 0x104]
sub ecx, dword [esp + 0x60]
imul ecx, ecx
cmp eax, ecx
jbe 0x1002f625
mov ecx, dword [esp + 0x104]
imul ecx, ecx
cmp eax, ecx
ja 0x1002f079
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x60]
add ecx, dword [esp + 0x104]
imul ecx, ecx
cmp eax, ecx
mov ecx, dword [esp + 0x34]
ja 0x1002efb3
inc dword [esp + 0x6c]
xor ecx, 2
mov edx, 1
mov dword [esp + 0x74], edx
mov dword [esp + 0x7c], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002ef66
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002f5e3
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002f625
mov edx, dword [esp + 0x54]
dec edx
push 1
push edx
mov edx, dword [esp + 0x68]
sub edx, dword [esp + 0x44]
push edx
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.10026c10
mov edi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x128]
jmp 0x1002f622
add dword [esp + 0x6c], 2
mov edx, 2
xor ecx, 2
mov dword [esp + 0x74], edx
mov dword [esp + 0x7c], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002f5f3
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002f5e3
mov ecx, dword [esp + 0x60]
sub ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
jne 0x1002f162
inc dword [esp + 0x6c]
xor ecx, 2
mov edx, 1
mov dword [esp + 0x74], edx
mov dword [esp + 0x7c], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002f143
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002f5e3
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002f625
mov edx, dword [esp + 0x54]
push 1
dec edx
push edx
push 0
jmp 0x1002ef87
add dword [esp + 0x6c], 2
mov edx, 2
xor ecx, 2
mov dword [esp + 0x74], edx
mov dword [esp + 0x7c], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002f5f3
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002f5e3
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x104]
add ecx, dword [esp + 0x60]
imul ecx, ecx
cmp eax, ecx
jb 0x1002f625
mov ecx, 0x100
sub ecx, dword [esp + 0x104]
imul ecx, ecx
cmp eax, ecx
jae 0x1002f44f
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + ecx]
sub edx, dword [esp + 0x104]
mov ecx, dword [esp + 0x60]
add ecx, edx
imul ecx, ecx
cmp eax, ecx
mov ecx, dword [esp + 0x34]
jae 0x1002f389
inc dword [esp + 0x6c]
xor ecx, 2
mov edx, 1
mov dword [esp + 0x74], edx
mov dword [esp + 0x7c], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002f33c
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002f5e3
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002f625
mov edx, dword [esp + 0x54]
push 1
dec edx
push edx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x68]
push edx
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.100269c0
mov edi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x128]
jmp 0x1002f622
add dword [esp + 0x6c], 2
mov edx, 2
xor ecx, 2
mov dword [esp + 0x74], edx
mov dword [esp + 0x7c], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002f5f3
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002f5e3
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x3c]
lea ecx, [ecx + edx*2]
cmp ecx, 0x100
mov ecx, dword [esp + 0x34]
jne 0x1002f522
inc dword [esp + 0x6c]
xor ecx, 2
mov edx, 1
mov dword [esp + 0x74], edx
mov dword [esp + 0x7c], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002f33c
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002f5e3
add dword [esp + 0x6c], 2
mov edx, 2
xor ecx, 2
mov dword [esp + 0x74], edx
mov dword [esp + 0x7c], edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002f5f3
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x1002f625
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x1002f625
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002f625
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
mov ecx, dword [esp + 0x34]
and ecx, 4
mov dword [esp + 0x58], ecx
je 0x1002f9e8
mov ecx, ebx
sub ecx, dword [esp + 0x64]
imul ecx, ecx
cmp eax, ecx
jbe 0x1002fdd8
mov ecx, ebx
imul ecx, ebx
mov edx, 1
cmp eax, ecx
ja 0x1002f839
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x64]
add ecx, ebx
imul ecx, ecx
cmp eax, ecx
mov ecx, dword [esp + 0x34]
ja 0x1002f775
inc dword [esp + 0x70]
inc dword [esp + 0x74]
xor ecx, 4
mov dword [esp + 0x80], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002f728
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002fd96
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002fdd8
mov edx, dword [esp + 0x54]
dec edx
push 2
push edx
mov edx, dword [esp + 0x6c]
sub edx, dword [esp + 0x44]
push edx
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.10026c10
mov edi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x128]
jmp 0x1002fdd5
add dword [esp + 0x70], 2
add dword [esp + 0x74], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x80], 2
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002fda6
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002fd96
mov ecx, dword [esp + 0x64]
sub ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
jne 0x1002f924
inc dword [esp + 0x70]
inc dword [esp + 0x74]
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x80], 1
test ecx, edx
je 0x1002f905
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002fd96
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002fdd8
mov edx, dword [esp + 0x54]
push 2
dec edx
push edx
push 0
jmp 0x1002f749
add dword [esp + 0x70], 2
add dword [esp + 0x74], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x80], 2
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002fda6
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002fd96
mov ecx, dword [esp + 0x3c]
sub ecx, ebx
add ecx, dword [esp + 0x64]
imul ecx, ecx
cmp eax, ecx
jb 0x1002fdd8
mov ecx, 0x100
sub ecx, ebx
imul ecx, ecx
cmp eax, ecx
jae 0x1002fc01
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + ecx]
mov ecx, dword [esp + 0x64]
sub edx, ebx
add ecx, edx
imul ecx, ecx
cmp eax, ecx
mov ecx, dword [esp + 0x34]
mov edx, 1
jae 0x1002fb35
inc dword [esp + 0x70]
inc dword [esp + 0x74]
xor ecx, 4
mov dword [esp + 0x80], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002fae8
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002fd96
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002fdd8
mov edx, dword [esp + 0x54]
push 2
dec edx
push edx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x6c]
push edx
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.100269c0
mov edi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x128]
jmp 0x1002fdd5
add dword [esp + 0x70], 2
add dword [esp + 0x74], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x80], 2
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002fda6
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002fd96
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x64]
lea ecx, [ecx + edx*2]
cmp ecx, 0x100
mov ecx, dword [esp + 0x34]
mov edx, 1
jne 0x1002fcd7
inc dword [esp + 0x70]
inc dword [esp + 0x74]
xor ecx, 4
mov dword [esp + 0x80], edx
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002fae8
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x1002fd96
add dword [esp + 0x70], 2
add dword [esp + 0x74], 2
xor ecx, 4
shl edx, cl
mov dword [esp + 0x18], ecx
movzx ecx, word [esi]
mov dword [esp + 0x80], 2
mov dword [esp + 0x30], 1
test ecx, edx
je 0x1002fda6
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x1002fdd8
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x1002fdd8
mov ecx, dword [esp + 0x18]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1002fdd8
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
mov ecx, dword [esp + 0x34]
and ecx, 8
mov dword [esp + 0x18], ecx
je 0x10030191
mov ecx, edi
sub ecx, dword [esp + 0x68]
imul ecx, ecx
cmp eax, ecx
jbe 0x1003057b
mov ecx, edi
imul ecx, edi
mov edx, 1
cmp eax, ecx
ja 0x1002ffe9
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x68]
add ecx, edi
imul ecx, ecx
cmp eax, ecx
mov ecx, dword [esp + 0x34]
ja 0x1002ff28
inc dword [esp + 0x78]
inc dword [esp + 0x7c]
inc dword [esp + 0x80]
xor ecx, 8
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1002fedb
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x10030539
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003057b
mov edx, dword [esp + 0x54]
dec edx
push 3
push edx
mov edx, dword [esp + 0x70]
sub edx, dword [esp + 0x44]
push edx
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.10026c10
mov edi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x128]
jmp 0x10030578
add dword [esp + 0x78], 2
add dword [esp + 0x7c], 2
add dword [esp + 0x80], 2
xor ecx, 8
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x10030549
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x10030539
mov ecx, dword [esp + 0x68]
sub ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
jne 0x100300d0
inc dword [esp + 0x78]
inc dword [esp + 0x7c]
inc dword [esp + 0x80]
xor ecx, 8
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x100300b1
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x10030539
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003057b
mov edx, dword [esp + 0x54]
push 3
dec edx
push edx
push 0
jmp 0x1002fefc
add dword [esp + 0x78], 2
add dword [esp + 0x7c], 2
add dword [esp + 0x80], 2
xor ecx, 8
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x10030549
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x10030539
mov ecx, dword [esp + 0x3c]
sub ecx, edi
add ecx, dword [esp + 0x68]
imul ecx, ecx
cmp eax, ecx
jb 0x1003057b
mov ecx, 0x100
sub ecx, edi
imul ecx, ecx
cmp eax, ecx
jae 0x1003039f
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + ecx]
mov ecx, dword [esp + 0x68]
sub edx, edi
add ecx, edx
imul ecx, ecx
cmp eax, ecx
mov ecx, dword [esp + 0x34]
mov edx, 1
jae 0x100302de
inc dword [esp + 0x78]
inc dword [esp + 0x7c]
inc dword [esp + 0x80]
xor ecx, 8
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10030291
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x10030539
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003057b
mov edx, dword [esp + 0x54]
push 3
dec edx
push edx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x70]
push edx
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.100269c0
mov edi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x128]
jmp 0x10030578
add dword [esp + 0x78], 2
add dword [esp + 0x7c], 2
add dword [esp + 0x80], 2
xor ecx, 8
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x10030549
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x10030539
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x68]
lea ecx, [ecx + edx*2]
cmp ecx, 0x100
mov ecx, dword [esp + 0x34]
mov edx, 1
jne 0x1003047d
inc dword [esp + 0x78]
inc dword [esp + 0x7c]
inc dword [esp + 0x80]
xor ecx, 8
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10030291
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
jmp 0x10030539
add dword [esp + 0x78], 2
add dword [esp + 0x7c], 2
add dword [esp + 0x80], 2
xor ecx, 8
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
mov dword [esp + 0x30], 1
test ecx, edx
je 0x10030549
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x1003057b
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x1003057b
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x1003057b
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
mov ecx, dword [esp + 0x6c]
add ecx, dword [esp + 0x70]
add ecx, dword [esp + 0x74]
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0x6c]
add ecx, dword [esp + 0x78]
add ecx, dword [esp + 0x7c]
mov dword [esp + 0xe0], ecx
mov ecx, dword [esp + 0x70]
add ecx, dword [esp + 0x78]
add ecx, dword [esp + 0x80]
mov dword [esp + 0xe4], ecx
mov ecx, dword [esp + 0x74]
add ecx, dword [esp + 0x7c]
add ecx, dword [esp + 0x80]
mov dword [esp + 0xe8], ecx
add ecx, dword [esp + 0xe4]
add ecx, dword [esp + 0xe0]
add ecx, dword [esp + 0xdc]
cmp dword [esp + 0x6c], 2
mov dword [esp + 0xa0], ecx
jl 0x100306e1
mov ecx, dword [esp + 0x34]
xor ecx, 3
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x100306af
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x24]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x100306e1
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x100306e1
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x100306e1
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0x70], 2
jl 0x100307d9
mov ecx, dword [esp + 0x34]
xor ecx, 5
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x100307a7
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x20]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x100]
sub ecx, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x100307d9
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x100307d9
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x100307d9
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0x74], 2
jl 0x100308d1
mov ecx, dword [esp + 0x34]
xor ecx, 6
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x1003089f
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x100308d1
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x100308d1
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x100308d1
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0x78], 2
jl 0x100309c9
mov ecx, dword [esp + 0x34]
xor ecx, 9
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10030997
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x100309c9
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x100309c9
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x100309c9
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0x7c], 2
jl 0x10030ac1
mov ecx, dword [esp + 0x34]
xor ecx, 0xa
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10030a8f
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x10030ac1
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x10030ac1
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10030ac1
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0x80], 2
jl 0x10030bbc
mov ecx, dword [esp + 0x34]
xor ecx, 0xc
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10030b8a
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x10030bbc
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x10030bbc
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10030bbc
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0xdc], 3
jl 0x10030cb7
mov ecx, dword [esp + 0x34]
xor ecx, 7
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10030c85
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x10030cb7
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x10030cb7
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10030cb7
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0xe0], 3
jl 0x10030dba
mov ecx, dword [esp + 0x34]
xor ecx, 0xb
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10030d88
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x10030dba
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x10030dba
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10030dba
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0xe4], 3
jl 0x10030eb5
mov ecx, dword [esp + 0x34]
xor ecx, 0xd
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10030e83
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x10030eb5
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x10030eb5
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10030eb5
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0xe8], 3
jl 0x10030fb0
mov ecx, dword [esp + 0x34]
xor ecx, 0xe
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10030f7e
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + edx*4 + 4]
mov edx, dword [esp + 0x2c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0xc], ecx
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x104]
sub ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x100]
sub ecx, edx
imul ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp ecx, eax
jae 0x10030fb0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov eax, ecx
jmp 0x10030fb0
mov ecx, dword [esp + 0xc]
mov ecx, dword [esi + ecx*4 + 4]
test ecx, ecx
je 0x10030fb0
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x108]
push edi
push ebx
push edx
mov edx, dword [esp + 0x110]
push edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0xa0], 4
jl 0x10031087
mov ecx, dword [esp + 0x34]
xor ecx, 0xf
mov edx, 1
shl edx, cl
mov dword [esp + 0xc], ecx
movzx ecx, word [esi]
test ecx, edx
je 0x10031055
mov edx, dword [esp + 0xc]
mov esi, dword [esi + edx*4 + 4]
mov ecx, dword [esp + 0x2c]
movzx edx, byte [esi + ecx]
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x28]
movzx edx, byte [esi + ecx]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x104]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esi + ecx]
sub edx, ecx
mov ecx, dword [esp + 0x20]
imul edx, edx
mov dword [esp + 0x48], esi
movzx esi, byte [esi + ecx]
mov ecx, dword [esp + 0x100]
sub ecx, esi
imul ecx, ecx
add ecx, edx
mov edx, dword [esp + 0xa0]
imul edx, edx
add ecx, edx
mov edx, dword [esp + 0x14]
imul edx, edx
add ecx, edx
cmp ecx, eax
jae 0x10031087
mov edx, dword [esp + 0x48]
mov dword [esp + 0x44], edx
mov eax, ecx
jmp 0x10031087
mov ecx, dword [esp + 0xc]
mov esi, dword [esi + ecx*4 + 4]
test esi, esi
je 0x10031087
mov ecx, dword [esp + 0x104]
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x104]
push edi
push ebx
push ecx
push edx
lea ecx, [esp + 0x58]
push ecx
push eax
push esi
call fcn.100268d0
add esp, 0x20
cmp dword [esp + 0xac], 0
je 0x100310c1
mov edx, dword [esp + 0x3c]
mov ecx, edx
sub ecx, dword [esp + 0x100]
add ecx, dword [esp + 0x5c]
imul ecx, ecx
cmp eax, ecx
jb 0x100310e5
mov ecx, dword [esp + 0x5c]
add ecx, edx
cmp ecx, 0x100
je 0x100310e5
mov dword [esp + 0x30], 1
jmp 0x100310e5
mov edx, dword [esp + 0x5c]
mov ecx, edx
sub ecx, dword [esp + 0x100]
imul ecx, ecx
cmp eax, ecx
jbe 0x100310e1
test edx, edx
je 0x100310e1
mov dword [esp + 0x30], 1
mov edx, dword [esp + 0x3c]
cmp dword [esp + 0x9c], 0
je 0x10031111
mov ecx, edx
sub ecx, dword [esp + 0x104]
add ecx, dword [esp + 0x60]
imul ecx, ecx
cmp eax, ecx
jb 0x10031132
mov ecx, dword [esp + 0x60]
add ecx, edx
cmp ecx, 0x100
jmp 0x10031128
mov ecx, dword [esp + 0x60]
sub ecx, dword [esp + 0x104]
imul ecx, ecx
cmp eax, ecx
jbe 0x10031132
cmp dword [esp + 0x60], 0
je 0x10031132
mov dword [esp + 0x30], 1
cmp dword [esp + 0x58], 0
je 0x10031156
mov ecx, edx
sub ecx, ebx
add ecx, dword [esp + 0x64]
imul ecx, ecx
cmp eax, ecx
jb 0x10031172
mov ecx, dword [esp + 0x64]
add ecx, edx
cmp ecx, 0x100
jmp 0x10031168
mov ecx, dword [esp + 0x64]
sub ecx, ebx
imul ecx, ecx
cmp eax, ecx
jbe 0x10031172
cmp dword [esp + 0x64], 0
je 0x10031172
mov dword [esp + 0x30], 1
cmp dword [esp + 0x18], 0
je 0x10031196
mov ecx, edx
sub ecx, edi
add ecx, dword [esp + 0x68]
imul ecx, ecx
cmp eax, ecx
jb 0x100311b2
mov ecx, dword [esp + 0x68]
add ecx, edx
cmp ecx, 0x100
jmp 0x100311a8
mov ecx, dword [esp + 0x68]
sub ecx, edi
imul ecx, ecx
cmp eax, ecx
jbe 0x100311b2
cmp dword [esp + 0x68], 0
je 0x100311b2
mov dword [esp + 0x30], 1
mov ecx, edx
and ecx, dword [esp + 0x100]
inc dword [esp + 0x54]
not ecx
and dword [esp + 0x5c], ecx
mov ecx, edx
and ecx, dword [esp + 0x104]
not ecx
and dword [esp + 0x60], ecx
mov ecx, edx
and ecx, ebx
not ecx
and dword [esp + 0x64], ecx
mov ecx, edx
and ecx, edi
not ecx
and dword [esp + 0x68], ecx
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + ecx*8 + 0x10c]
dec ecx
add edx, edx
cmp dword [esp + 0x30], 0
mov dword [esp + 0x34], esi
mov esi, dword [esp + ecx*8 + 0x110]
mov dword [esp + 0x3c], edx
mov dword [esp + 0xb0], ecx
jne 0x1002e670
mov edx, dword [esp + 0xa8]
mov ax, word [edx + 0xc]
add ax, word [esp + 0x44]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
mov word [ecx + edx*2], ax
mov dword [esp + 0xc], 1
mov ecx, dword [esp + 0x54]
dec ecx
cmp dword [esp + 0xc], 0
mov dword [esp + 0x54], ecx
je 0x1002b770
mov edi, dword [esp + 0xc8]
mov eax, 4
add dword [esp + 0xbc], eax
add dword [esp + 0xc0], eax
add dword [esp + 0xc4], eax
add edi, eax
mov eax, dword [esp + 0xb4]
inc eax
mov dword [esp + 0xc8], edi
mov dword [esp + 0xb4], eax
cmp eax, dword [ebp + 0x10]
jl 0x1002b700
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x148]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
mov eax, dword [edx + 0x20]
dec eax
je 0x100316ea
dec eax
jne case.default.0x10031726
mov eax, dword [edx + 0x10]
mov ecx, 8
sub ecx, ebx
mov edx, 1
shl edx, cl
mov dword [esp + 0x14], ecx
lea ecx, [edi + 1]
mov dword [esp + 0x54], ecx
dec edx
lea ecx, [ebx - 1]
mov dword [esp + 0x3c], eax
not edx
lea eax, [edi + 2]
cmp ecx, 7
ja case.default.0x10031726
jmp dword [ecx*4 + 0x10031d20]
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x30], 0
jle case.default.0x10031726
mov ecx, dword [esp + 0x54]
mov edi, edx
sar edi, 1
mov dword [esp + 0x18], edi
sub ecx, eax
jmp 0x10031324
mov edi, dword [esp + 0x18]
movzx ebx, byte [eax + ecx + 2]
shr ebx, 1
and ebx, edi
movzx edi, byte [eax]
and edi, edx
or ebx, edi
movzx edi, byte [eax + ecx]
and edi, edx
sar ebx, 1
or ebx, edi
movzx edi, byte [eax + ecx - 1]
and edi, edx
sar ebx, 1
or ebx, edi
mov edi, dword [esp + 0x3c]
sar ebx, 4
mov bx, word [edi + ebx*2]
mov edi, dword [esp + 0x30]
mov word [esi + edi*2], bx
inc edi
add eax, 4
mov dword [esp + 0x30], edi
cmp edi, dword [ebp + 0x10]
jl 0x10031320
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x148]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x30], 0
jle case.default.0x10031726
mov ecx, dword [esp + 0x54]
mov edi, edx
sar edi, 2
mov dword [esp + 0xa0], edi
sub ecx, eax
jmp 0x100313b7
mov edi, dword [esp + 0xa0]
movzx ebx, byte [eax + ecx + 2]
shr ebx, 2
and ebx, edi
movzx edi, byte [eax]
and edi, edx
or ebx, edi
movzx edi, byte [eax + ecx]
and edi, edx
sar ebx, 2
or ebx, edi
movzx edi, byte [eax + ecx - 1]
and edi, edx
sar ebx, 2
or ebx, edi
mov edi, dword [esp + 0x3c]
mov bx, word [edi + ebx*2]
mov edi, dword [esp + 0x30]
mov word [esi + edi*2], bx
inc edi
add eax, 4
mov dword [esp + 0x30], edi
cmp edi, dword [ebp + 0x10]
jl 0x100313b0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x148]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x30], 0
jle case.default.0x10031726
mov ecx, edx
sar ecx, 3
sub edi, eax
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x18], edi
jmp 0x10031444
mov edi, dword [esp + 0x18]
movzx ecx, byte [eax + edi]
movzx ebx, byte [eax + edi + 1]
movzx edi, byte [eax + edi + 3]
and ecx, edx
add ecx, ecx
add ecx, ecx
add ecx, ecx
and ebx, edx
or ecx, ebx
movzx ebx, byte [eax]
shr edi, 3
and edi, dword [esp + 0xa0]
and ebx, edx
or edi, ebx
add ecx, ecx
sar edi, 2
or ecx, edi
mov edi, dword [esp + 0x3c]
mov di, word [edi + ecx*2]
mov ecx, dword [esp + 0x30]
mov word [esi + ecx*2], di
inc ecx
add eax, 4
mov dword [esp + 0x30], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x10031440
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x148]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x30], 0
jle case.default.0x10031726
mov ecx, edx
sar ecx, 4
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x54]
sub ecx, eax
mov dword [esp + 0x54], ecx
jmp 0x100314d6
mov ecx, dword [esp + 0x54]
movzx edi, byte [eax + ecx - 1]
movzx ebx, byte [eax + ecx]
movzx ecx, byte [eax + ecx + 2]
and edi, edx
shl edi, 4
shr ecx, 4
and ecx, dword [esp + 0xa0]
and ebx, edx
or edi, ebx
shl edi, 4
or edi, ecx
movzx ecx, byte [eax]
and ecx, edx
or edi, ecx
mov ecx, dword [esp + 0x3c]
mov di, word [ecx + edi*2]
mov ecx, dword [esp + 0x30]
mov word [esi + ecx*2], di
inc ecx
add eax, 4
mov dword [esp + 0x30], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x100314d2
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x148]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
lea ecx, [ebx*4 - 8]
mov edi, ecx
sub edi, ebx
mov dword [esp + 0x48], edi
sub edi, ebx
cmp dword [ebp + 0x10], 0
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], 0
jle case.default.0x10031726
mov edi, dword [esp + 0x54]
sub edi, eax
mov dword [esp + 0x54], edi
jmp 0x1003157b
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0xa0]
movzx ebx, byte [eax + edi - 1]
movzx edi, byte [eax + edi + 2]
and edi, edx
and ebx, edx
shl ebx, cl
mov ecx, dword [esp + 0x14]
sar edi, cl
mov ecx, dword [esp + 0x54]
add eax, 4
or ebx, edi
movzx edi, byte [eax + ecx - 4]
mov ecx, dword [esp + 0x48]
and edi, edx
shl edi, cl
mov ecx, dword [esp + 0x1c]
or ebx, edi
movzx edi, byte [eax - 4]
and edi, edx
shl edi, cl
mov ecx, dword [esp + 0x3c]
or ebx, edi
mov di, word [ecx + ebx*2]
mov ecx, dword [esp + 0x30]
mov word [esi + ecx*2], di
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x10031570
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x148]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x30], 0
jle case.default.0x10031726
mov ecx, edx
sar ecx, 1
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x54]
sub ecx, eax
mov dword [esp + 0x54], ecx
jmp 0x10031614
mov ecx, dword [esp + 0x54]
movzx edi, byte [eax + ecx - 1]
movzx ebx, byte [eax + ecx]
movzx ecx, byte [eax + ecx + 2]
and edi, edx
shl edi, 7
and ebx, edx
or edi, ebx
movzx ebx, byte [eax]
shl edi, 7
shr ecx, 1
and ecx, dword [esp + 0x18]
and ebx, edx
or edi, ebx
shl edi, 6
or edi, ecx
mov ecx, dword [esp + 0x3c]
mov di, word [ecx + edi*2]
mov ecx, dword [esp + 0x30]
mov word [esi + ecx*2], di
inc ecx
add eax, 4
mov dword [esp + 0x30], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x10031610
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x148]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x30], 0
jle case.default.0x10031726
mov ecx, dword [esp + 0x54]
sub ecx, eax
lea ebx, [ebx]
movzx edi, byte [eax + ecx - 1]
movzx ebx, byte [eax + ecx]
and edi, edx
shl edi, 8
and ebx, edx
or edi, ebx
movzx ebx, byte [eax]
shl edi, 8
and ebx, edx
or edi, ebx
movzx ebx, byte [eax + ecx + 2]
shl edi, 8
and ebx, edx
or edi, ebx
mov ebx, dword [esp + 0x3c]
mov bx, word [ebx + edi*2]
mov edi, dword [esp + 0x30]
mov word [esi + edi*2], bx
inc edi
add eax, 4
mov dword [esp + 0x30], edi
cmp edi, dword [ebp + 0x10]
jl 0x10031690
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x148]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
mov edx, dword [edx + 0x10]
mov dword [esp + 0x3c], edx
mov ecx, 8
sub ecx, ebx
mov edx, 1
shl edx, cl
mov dword [esp + 0x1c], ecx
lea ecx, [edi + 3]
lea eax, [edi + 1]
mov dword [esp + 0xa0], ecx
dec edx
lea ecx, [ebx - 1]
mov dword [esp + 0x54], eax
not edx
lea eax, [edi + 2]
cmp ecx, 7
ja case.default.0x10031726
jmp dword [ecx*4 + 0x10031d40]
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x30], 0
jle case.default.0x10031726
mov ecx, dword [esp + 0x54]
mov edi, edx
sar edi, 1
mov dword [esp + 0x18], edi
sub ecx, eax
jmp 0x10031754
mov edi, dword [esp + 0x18]
movzx ebx, byte [ecx + eax + 2]
shr ebx, 1
and ebx, edi
movzx edi, byte [eax]
and edi, edx
or ebx, edi
movzx edi, byte [ecx + eax]
and edi, edx
sar ebx, 1
or ebx, edi
movzx edi, byte [ecx + eax - 1]
and edi, edx
sar ebx, 1
or ebx, edi
mov edi, dword [esp + 0x3c]
sar ebx, 4
movzx ebx, byte [ebx + edi]
mov edi, dword [esp + 0x30]
mov word [esi + edi*2], bx
inc edi
add eax, 4
mov dword [esp + 0x30], edi
cmp edi, dword [ebp + 0x10]
jl 0x10031750
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x148]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x30], 0
jle case.default.0x10031726
mov ecx, dword [esp + 0x54]
mov edi, edx
sar edi, 2
mov dword [esp + 0xa0], edi
sub ecx, eax
jmp 0x100317e7
mov edi, dword [esp + 0xa0]
movzx ebx, byte [ecx + eax + 2]
shr ebx, 2
and ebx, edi
movzx edi, byte [eax]
and edi, edx
or ebx, edi
movzx edi, byte [ecx + eax]
and edi, edx
sar ebx, 2
or ebx, edi
movzx edi, byte [ecx + eax - 1]
and edi, edx
sar ebx, 2
or ebx, edi
mov edi, dword [esp + 0x3c]
movzx ebx, byte [ebx + edi]
mov edi, dword [esp + 0x30]
mov word [esi + edi*2], bx
inc edi
add eax, 4
mov dword [esp + 0x30], edi
cmp edi, dword [ebp + 0x10]
jl 0x100317e0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x148]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x30], 0
jle case.default.0x10031726
mov ecx, edx
sar ecx, 3
sub edi, eax
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x18], edi
jmp 0x10031874
mov edi, dword [esp + 0x18]
movzx ecx, byte [edi + eax]
movzx ebx, byte [edi + eax + 1]
movzx edi, byte [edi + eax + 3]
and ecx, edx
add ecx, ecx
add ecx, ecx
add ecx, ecx
and ebx, edx
or ecx, ebx
movzx ebx, byte [eax]
shr edi, 3
and edi, dword [esp + 0xa0]
and ebx, edx
or edi, ebx
add ecx, ecx
sar edi, 2
or ecx, edi
mov edi, dword [esp + 0x3c]
movzx edi, byte [ecx + edi]
mov ecx, dword [esp + 0x30]
mov word [esi + ecx*2], di
inc ecx
add eax, 4
mov dword [esp + 0x30], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x10031870
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x148]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x30], 0
jle case.default.0x10031726
mov ecx, edx
sar ecx, 4
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x54]
sub ecx, eax
mov dword [esp + 0x54], ecx
jmp 0x10031906
mov ecx, dword [esp + 0x54]
movzx edi, byte [ecx + eax - 1]
movzx ebx, byte [ecx + eax]
movzx ecx, byte [ecx + eax + 2]
and edi, edx
shl edi, 4
shr ecx, 4
and ecx, dword [esp + 0xa0]
and ebx, edx
or edi, ebx
shl edi, 4
or edi, ecx
movzx ecx, byte [eax]
and ecx, edx
or edi, ecx
mov ecx, dword [esp + 0x3c]
movzx edi, byte [edi + ecx]
mov ecx, dword [esp + 0x30]
mov word [esi + ecx*2], di
inc ecx
add eax, 4
mov dword [esp + 0x30], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x10031902
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x148]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
lea ecx, [ebx*4 - 8]
mov dword [esp + 0x48], ecx
sub ecx, ebx
mov edi, ecx
sub edi, ebx
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x30], 0
jle case.default.0x10031726
mov edi, dword [esp + 0xa0]
sub edi, eax
mov dword [esp + 0x18], edi
jmp 0x100319a8
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
movzx ebx, byte [edi + eax - 2]
movzx edi, byte [edi + eax - 3]
and edi, edx
and ebx, edx
shl ebx, cl
mov ecx, dword [esp + 0x48]
shl edi, cl
mov ecx, dword [esp + 0x18]
add eax, 4
or ebx, edi
movzx edi, byte [ecx + eax - 4]
mov ecx, dword [esp + 0x1c]
and edi, edx
sar edi, cl
mov ecx, dword [esp + 0x38]
or ebx, edi
movzx edi, byte [eax - 4]
and edi, edx
shl edi, cl
mov ecx, dword [esp + 0x3c]
or ebx, edi
movzx edi, byte [ebx + ecx]
mov ecx, dword [esp + 0x30]
mov word [esi + ecx*2], di
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x100319a0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x148]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x30], 0
jle case.default.0x10031726
mov ecx, edx
sar ecx, 1
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x54]
sub ecx, eax
mov dword [esp + 0x54], ecx
jmp 0x10031a44
mov ecx, dword [esp + 0x54]
movzx edi, byte [ecx + eax - 1]
movzx ebx, byte [ecx + eax]
movzx ecx, byte [ecx + eax + 2]
and edi, edx
shl edi, 7
and ebx, edx
or edi, ebx
movzx ebx, byte [eax]
shl edi, 7
shr ecx, 1
and ecx, dword [esp + 0x18]
and ebx, edx
or edi, ebx
shl edi, 6
or edi, ecx
mov ecx, dword [esp + 0x3c]
movzx edi, byte [edi + ecx]
mov ecx, dword [esp + 0x30]
mov word [esi + ecx*2], di
inc ecx
add eax, 4
mov dword [esp + 0x30], ecx
cmp ecx, dword [ebp + 0x10]
jl 0x10031a40
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x148]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x30], 0
jle case.default.0x10031726
mov ecx, dword [esp + 0x54]
sub ecx, eax
lea ebx, [ebx]
movzx edi, byte [ecx + eax - 1]
movzx ebx, byte [ecx + eax]
and edi, edx
shl edi, 8
and ebx, edx
or edi, ebx
movzx ebx, byte [eax]
shl edi, 8
and ebx, edx
or edi, ebx
movzx ebx, byte [ecx + eax + 2]
shl edi, 8
and ebx, edx
or edi, ebx
mov ebx, dword [esp + 0x3c]
movzx ebx, byte [edi + ebx]
mov edi, dword [esp + 0x30]
mov word [esi + edi*2], bx
inc edi
add eax, 4
mov dword [esp + 0x30], edi
cmp edi, dword [ebp + 0x10]
jl 0x10031ac0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x148]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x2c]
dec eax
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x1c]
mov dword [esp + 0xac], eax
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa8], 0
jle case.default.0x10031726
add edi, 2
mov dword [esp + 0x58], edi
mov eax, dword [esp + 0x58]
movzx edx, byte [eax - 2]
movzx ecx, byte [eax - 1]
mov dword [esp + 0xa0], edx
movzx edx, byte [eax]
fild dword [esp + 0xa0]
movzx eax, byte [eax + 1]
mov dword [esp + 0xa0], ecx
mov edi, 1
mov dword [esp + 0x18], 0x7fffffff
fild dword [esp + 0xa0]
mov dword [esp + 0xa0], edx
mov ebx, edi
fild dword [esp + 0xa0]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x9c]
fst qword [esp + 0x48]
fild dword [esp + 0xa0]
fst qword [esp + 0xa0]
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 + 0xac], edi
jl 0x10031ca1
mov esi, eax
add esi, 0x30
jmp 0x10031bef
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 + 0x48]
fld st(3)
fmulp st(4)
fxch st(3)
faddp st(2)
fld qword [esi + 8]
fsub qword [esp + 0xa0]
fxch st(2)
call fcn.1007d380
sub eax, dword [esp + 0x18]
add esi, 0x20
mov ecx, eax
sar ecx, 0x1f
mov edx, ecx
and edx, eax
add dword [esp + 0x18], edx
mov eax, edi
sub eax, ebx
and eax, ecx
inc edi
add ebx, eax
cmp edi, dword [esp + 0xac]
jle 0x10031be5
fstp st(0)
fstp st(2)
fstp st(0)
mov ecx, dword [esp + 0x14]
fstp st(0)
mov eax, dword [esp + 0xa8]
fstp st(1)
mov edx, dword [esp + 0xb8]
fstp st(0)
add dword [esp + 0x58], 4
add ecx, ebx
mov word [edx + eax*2], cx
inc eax
mov dword [esp + 0xa8], eax
cmp eax, dword [ebp + 0x10]
jl 0x10031b52
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x148]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
fstp st(1)
fstp st(0)
fstp st(1)
jmp 0x10031c58
mov ecx, dword [edx + 0x10]
xor edx, edx
cmp dword [ebp + 0x10], edx
jle case.default.0x10031726
lea eax, [edi + 2]
jmp 0x10031cc0
movzx edi, byte [eax + 1]
movzx ebx, byte [eax - 1]
mov di, word [ecx + edi*2 + 0x600]
add di, word [ecx + ebx*2 + 0x200]
movzx ebx, byte [eax - 2]
add di, word [ecx + ebx*2]
movzx ebx, byte [eax]
add di, word [ecx + ebx*2 + 0x400]
inc edx
mov word [esi + edx*2 - 2], di
add eax, 4
cmp edx, dword [ebp + 0x10]
jl 0x10031cc0
mov ecx, dword [esp + 0x154]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret