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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x358
mov eax, dword [0x10164bc0]
xor eax, esp
mov dword [esp + 0x354], eax
mov ecx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [esp + 0x70], esi
mov dword [esp + 0x50], ecx
cmp dword [esi + 0x3f134], 0
lea edi, [esi + 0xc]
mov eax, dword [esi + 8]
lea edx, [esi + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x60], edx
je 0x10082906
mov edx, dword [eax + 0x8ac]
imul edx, dword [esi + 0x10]
add edx, dword [edi]
shl edx, 5
add edx, dword [eax + 0xb30]
jmp 0x1008291d
mov esi, dword [esp + 0x60]
lea edx, [esp + 0x128]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0x58], edi
lea ecx, [ecx*4 + 0x101175d0]
mov dword [esp + 0x14], edx
mov dword [esp + 0x54], ecx
mov ecx, dword [edi]
mov edi, ecx
mov dword [esp + 0x78], ecx
and edi, 0x1f
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x20], edi
mov ecx, dword [ecx]
mov dword [esp + 0x34], ecx
and ecx, 0x1f
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0x53c]
xor eax, eax
cmp ecx, 1
mov dword [esp + 0x7c], ecx
sete al
mov dword [esp + 0x74], eax
xor eax, eax
cmp ecx, 3
mov ecx, edi
setne al
mov dword [esp + 0xac], eax
mov eax, edi
shr eax, 1
cmp dword [esp + 0x7c], 3
cmovne ecx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x74]
sar eax, cl
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x5c], eax
movzx eax, byte [ecx]
movzx ecx, byte [ecx + 1]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x40], ecx
mov edi, dword [eax + 0x8b8]
sub edi, dword [esp + 0x78]
mov eax, dword [eax + 0x8bc]
mov edx, edi
cmp dword [esp + 0x3c], edx
mov edi, dword [esp + 0x3c]
cmovl edx, dword [esp + 0x3c]
sub eax, dword [esp + 0x34]
cmp ecx, eax
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x14]
cmovl eax, ecx
add edi, dword [esp + 0xac]
mov dword [esp + 0x90], eax
mov eax, edi
shr eax, 1
cmp dword [esp + 0x7c], 3
cmovne edi, eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x8c], edi
lea edi, [ecx + eax]
mov ecx, eax
mov eax, dword [esp + 0x2c]
sar edi, cl
xor ecx, ecx
mov dword [esp + 0x88], edi
mov edi, dword [eax + 0x3618]
cmp dword [esp + 0x78], edi
mov dword [esp + 0x94], edi
mov edi, dword [esp + 0x20]
setg cl
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + 0x3620]
xor eax, eax
cmp dword [esp + 0x34], ecx
mov dword [esp + 0x68], ecx
setg al
cmp dword [esp + 0x7c], 0
mov dword [esp + 0x28], eax
je 0x10082a7f
mov eax, dword [esp + 0xac]
cmp dword [esp + 0x3c], eax
ja 0x10082a62
test byte [esp + 0x78], 1
je 0x10082a7f
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x74]
cmp ecx, eax
ja 0x10082a75
test byte [esp + 0x34], 1
je 0x10082a87
mov dword [esp + 0x6c], 1
jmp 0x10082a8f
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x6c], 0
cmp dword [esi + 0x3f134], 2
jne 0x10083da7
cmp byte [edx + 3], 0
je 0x10083267
mov ecx, dword [esp + 0x1c]
push edx
push dword [ebp + 0x18]
push dword [esp + 0x58]
mov eax, dword [ecx + 0x864]
push esi
call eax
mov eax, dword [esp + 0x24]
xor edx, edx
add esp, 0x10
cmp byte [eax + 8], 0xd
movzx ecx, byte [eax + 8]
mov eax, dword [esp + 0x40]
cmovne edx, ecx
dec eax
mov dword [esp + 0x24], edx
mov dword [esp + 0xa8], eax
mov edx, 0x101
cmp eax, 0x1f
ja case.0x10082af4.3
movzx eax, byte [eax + 0x1008c03c]
jmp dword [eax*4 + 0x1008c020]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov byte [esi + eax + 0x18], cl
mov byte [esi + eax + 0xf8], 1
jmp 0x10082c85
imul eax, dword [esp + 0x24], 0x101
mov ecx, dword [esp + 0x18]
mov word [esi + ecx + 0x18], ax
mov word [esi + ecx + 0xf8], dx
jmp case.0x10082af4.3
imul eax, dword [esp + 0x24], 0x1010101
mov ecx, dword [esp + 0x18]
mov dword [esi + ecx + 0x18], eax
mov dword [esi + ecx + 0xf8], 0x1010101
jmp case.0x10082af4.3
mov eax, 0x1010101
mul dword [esp + 0x24]
mov ecx, eax
mov eax, 0x1010101
mul dword [esp + 0x24]
add ecx, edx
mov edx, dword [esp + 0x18]
mov dword [esi + edx + 0x18], eax
mov dword [esi + edx + 0x1c], ecx
mov dword [esi + edx + 0xf8], 0x1010101
mov dword [esi + edx + 0xfc], 0x1010101
jmp 0x10082c7c
mov eax, 0x1010101
mul dword [esp + 0x24]
mov ecx, eax
mov eax, 0x1010101
mul dword [esp + 0x24]
add ecx, edx
mov edx, dword [esp + 0x18]
mov dword [esi + edx + 0x18], eax
mov dword [esi + edx + 0x1c], ecx
mov dword [esi + edx + 0x20], eax
mov dword [esi + edx + 0x24], ecx
mov dword [esi + edx + 0xf8], 0x1010101
mov dword [esi + edx + 0xfc], 0x1010101
mov dword [esi + edx + 0x100], 0x1010101
mov dword [esi + edx + 0x104], 0x1010101
jmp 0x10082c7c
mov eax, 0x1010101
mul dword [esp + 0x24]
mov ecx, eax
mov eax, 0x1010101
mul dword [esp + 0x24]
add ecx, edx
mov edx, dword [esp + 0x18]
mov dword [esi + edx + 0x18], eax
mov dword [esi + edx + 0x1c], ecx
mov dword [esi + edx + 0x20], eax
mov dword [esi + edx + 0x24], ecx
mov dword [esi + edx + 0x28], eax
mov dword [esi + edx + 0x2c], ecx
mov dword [esi + edx + 0x30], eax
mov dword [esi + edx + 0x34], ecx
mov dword [esi + edx + 0xf8], 0x1010101
mov dword [esi + edx + 0xfc], 0x1010101
mov dword [esi + edx + 0x100], 0x1010101
mov dword [esi + edx + 0x104], 0x1010101
mov dword [esi + edx + 0x108], 0x1010101
mov dword [esi + edx + 0x10c], 0x1010101
mov dword [esi + edx + 0x110], 0x1010101
mov dword [esi + edx + 0x114], 0x1010101
mov edx, 0x101
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x3c]
dec eax
cmp eax, 0x1f
ja case.0x10082c9a.3
movzx eax, byte [eax + 0x1008c078]
jmp dword [eax*4 + 0x1008c05c]
mov eax, dword [esi + 0x288]
mov byte [edi + eax], cl
mov eax, dword [esi + 0x288]
mov byte [eax + edi + 0xe0], 1
jmp case.0x10082c9a.3
mov eax, dword [esi + 0x288]
imul ecx, ecx, 0x101
mov word [edi + eax], cx
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0xe0], dx
jmp case.0x10082c9a.3
mov eax, dword [esi + 0x288]
imul ecx, ecx, 0x1010101
mov dword [edi + eax], ecx
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xe0], 0x1010101
jmp case.0x10082c9a.3
mov eax, 0x1010101
mul ecx
mov edi, eax
mov eax, 0x1010101
mul ecx
mov ecx, dword [esi + 0x288]
add edi, edx
mov edx, dword [esp + 0x20]
mov dword [edx + ecx], eax
mov dword [edx + ecx + 4], edi
mov eax, dword [esi + 0x288]
mov dword [eax + edx + 0xe0], 0x1010101
mov dword [eax + edx + 0xe4], 0x1010101
jmp case.0x10082c9a.3
mov eax, 0x1010101
mul ecx
mov edi, eax
mov eax, 0x1010101
mul ecx
mov ecx, dword [esi + 0x288]
add edi, edx
mov edx, eax
mov eax, dword [esp + 0x20]
mov dword [eax + ecx], edx
mov dword [eax + ecx + 4], edi
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x20]
mov dword [eax + ecx + 8], edx
mov dword [eax + ecx + 0xc], edi
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xe0], 0x1010101
mov dword [eax + ecx + 0xe4], 0x1010101
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xe8], 0x1010101
mov dword [eax + ecx + 0xec], 0x1010101
jmp case.0x10082c9a.3
mov eax, 0x1010101
mul ecx
mov edi, eax
mov eax, 0x1010101
mul ecx
mov ecx, dword [esi + 0x288]
add edi, edx
mov edx, eax
mov eax, dword [esp + 0x20]
mov dword [eax + ecx], edx
mov dword [eax + ecx + 4], edi
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x20]
mov dword [ecx + eax + 8], edx
mov dword [ecx + eax + 0xc], edi
mov eax, dword [esi + 0x288]
mov dword [ecx + eax + 0x10], edx
mov dword [ecx + eax + 0x14], edi
mov eax, dword [esi + 0x288]
mov dword [ecx + eax + 0x18], edx
mov dword [ecx + eax + 0x1c], edi
mov eax, dword [esi + 0x288]
mov dword [ecx + eax + 0xe0], 0x1010101
mov dword [ecx + eax + 0xe4], 0x1010101
mov eax, dword [esi + 0x288]
mov dword [ecx + eax + 0xe8], 0x1010101
mov dword [ecx + eax + 0xec], 0x1010101
mov eax, dword [esi + 0x288]
mov dword [ecx + eax + 0xf0], 0x1010101
mov dword [ecx + eax + 0xf4], 0x1010101
mov eax, dword [esi + 0x288]
mov dword [ecx + eax + 0xf8], 0x1010101
mov dword [ecx + eax + 0xfc], 0x1010101
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
test byte [eax + 0xe8], 1
je 0x10082f47
mov eax, dword [esp + 0x60]
mov edx, dword [eax]
mov eax, dword [esp + 0x58]
and edx, 0x1f
add edx, dword [esp + 0x40]
mov eax, dword [eax]
lea ecx, [eax + eax*2]
mov eax, dword [esi + edx*4 + 0x2a0]
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x10082edf
lea ecx, [ecx*4 + 0xa]
mov edi, edx
add ecx, eax
mov eax, dword [esp + 0x50]
nop dword [eax + eax]
mov byte [ecx - 2], 0
lea ecx, [ecx + 0xc]
mov byte [ecx - 0xc], al
sub edi, 1
jne 0x10082ed0
mov eax, dword [esp + 0x60]
xor edi, edi
mov eax, dword [eax]
and eax, 0x1f
add eax, 0xa9
lea eax, [esi + eax*4]
mov dword [esp + 0x80], eax
cmp dword [esp + 0xa8], edi
jle 0x10082f47
mov esi, dword [esp + 0x58]
mov eax, dword [esi]
add eax, edx
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x80]
mov eax, dword [eax + edi*4]
mov byte [eax + ecx*4 - 4], 0
mov eax, dword [esi]
add eax, edx
mov edx, dword [esp + 0x50]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x80]
mov eax, dword [eax + edi*4]
inc edi
mov byte [eax + ecx*4 - 2], dl
mov edx, dword [esp + 0x3c]
cmp edi, dword [esp + 0xa8]
jl 0x10082f06
mov esi, dword [esp + 0x70]
cmp dword [esp + 0x6c], 0
je case.0x10083c11.3
mov eax, dword [esp + 0x88]
dec eax
cmp eax, 0x1f
ja case.0x10082f6a.3
movzx eax, byte [eax + 0x1008c0b4]
jmp dword [eax*4 + 0x1008c098]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x5c]
mov al, byte [edx + 9]
mov byte [esi + ecx + 0x248], al
jmp 0x1008308e
mov edx, dword [esp + 0x14]
mov edi, 0x101
mov eax, dword [esp + 0x5c]
movzx ecx, byte [edx + 9]
imul ecx, edi
mov word [esi + eax + 0x248], cx
jmp 0x10083093
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x5c]
movzx eax, byte [edx + 9]
imul eax, eax, 0x1010101
mov dword [esi + ecx + 0x248], eax
jmp 0x1008308e
mov eax, dword [esp + 0x14]
push 0x1010101
push 0x1010101
movzx eax, byte [eax + 9]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x5c]
mov dword [esi + ecx + 0x248], eax
mov dword [esi + ecx + 0x24c], edx
jmp case.0x10082f6a.3
mov eax, dword [esp + 0x14]
push 0x1010101
push 0x1010101
movzx eax, byte [eax + 9]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x5c]
mov dword [esi + ecx + 0x248], eax
mov dword [esi + ecx + 0x24c], edx
mov dword [esi + ecx + 0x250], eax
mov dword [esi + ecx + 0x254], edx
jmp case.0x10082f6a.3
mov eax, dword [esp + 0x14]
push 0x1010101
push 0x1010101
movzx eax, byte [eax + 9]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x5c]
mov dword [esi + ecx + 0x248], eax
mov dword [esi + ecx + 0x24c], edx
mov dword [esi + ecx + 0x250], eax
mov dword [esi + ecx + 0x254], edx
mov dword [esi + ecx + 0x258], eax
mov dword [esi + ecx + 0x25c], edx
mov dword [esi + ecx + 0x260], eax
mov dword [esi + ecx + 0x264], edx
mov edx, dword [esp + 0x14]
mov edi, 0x101
mov eax, dword [esp + 0x8c]
dec eax
cmp eax, 0x1f
ja case.0x10083c11.3
movzx eax, byte [eax + 0x1008c0f0]
jmp dword [eax*4 + 0x1008c0d4]
mov al, byte [edx + 9]
mov ecx, dword [esi + 0x288]
mov edx, dword [esp + 0x4c]
mov byte [ecx + edx + 0x230], al
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x354]
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret
movzx ecx, byte [edx + 9]
mov edx, dword [esp + 0x4c]
movzx eax, di
imul ecx, eax
mov eax, dword [esi + 0x288]
mov word [eax + edx + 0x230], cx
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x354]
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret
movzx eax, byte [edx + 9]
mov edx, dword [esp + 0x4c]
imul ecx, eax, 0x1010101
mov eax, dword [esi + 0x288]
mov dword [eax + edx + 0x230], ecx
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x354]
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret
movzx eax, byte [edx + 9]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov esi, dword [esp + 0x4c]
mov dword [ecx + esi + 0x230], eax
xor eax, eax
mov dword [ecx + esi + 0x234], edx
pop edi
pop esi
mov ecx, dword [esp + 0x354]
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret
movzx eax, byte [edx + 9]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x4c]
mov dword [ecx + eax + 0x230], edi
mov dword [ecx + eax + 0x234], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x4c]
mov dword [eax + ecx + 0x238], edi
mov dword [eax + ecx + 0x23c], edx
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x354]
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret
movzx eax, byte [edx + 9]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x4c]
mov dword [ecx + eax + 0x230], edi
mov dword [ecx + eax + 0x234], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x4c]
mov dword [ecx + eax + 0x238], edi
mov dword [ecx + eax + 0x23c], edx
mov eax, dword [esi + 0x288]
mov dword [ecx + eax + 0x240], edi
mov dword [ecx + eax + 0x244], edx
mov eax, dword [esi + 0x288]
mov dword [ecx + eax + 0x248], edi
mov dword [ecx + eax + 0x24c], edx
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x354]
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
test byte [eax + 0xe8], 1
je 0x10083313
cmp byte [edx + 0x14], 0
jne 0x10083313
cmp byte [edx + 0x16], 2
jne 0x10083313
mov edi, 0xffff8000
cmp word [edx + 0xc], di
mov edi, dword [esp + 0x20]
jne 0x100832aa
mov dword [esi + 0x3f100], 0
jmp 0x10083313
mov dword [esi + 0x3f100], 3
movsx eax, word [edx + 0xc]
add eax, 0x10000
mov dword [esi + 0x3f10c], eax
movsx eax, word [edx + 0xe]
mov dword [esi + 0x3f110], eax
movsx eax, word [edx + 0x10]
mov dword [esi + 0x3f114], eax
movsx eax, word [edx + 0x12]
add eax, 0x10000
mov dword [esi + 0x3f118], eax
lea eax, [esi + 0x3f100]
push dword [esi + 0x10]
push dword [esi + 0xc]
push eax
push dword [edx + 8]
push ecx
push dword [esp + 0x50]
call fcn.10092790
lea eax, [esi + 0x3f100]
push eax
call fcn.10092510
mov edx, dword [esp + 0x30]
add esp, 0x1c
mov eax, dword [esp + 0x1c]
push edx
push dword [esp + 0x54]
mov eax, dword [eax + 0x868]
push esi
call eax
add esp, 0xc
test eax, eax
jne 0x1008735d
mov eax, dword [esp + 0x14]
mov edx, 0x101
movzx ecx, byte [eax + 0x1b]
mov eax, dword [esp + 0x40]
dec eax
mov dword [esp + 0x28], ecx
cmp eax, 0x1f
ja case.0x10083356.3
movzx eax, byte [eax + 0x1008c12c]
jmp dword [eax*4 + 0x1008c110]
mov al, byte [ecx*2 + 0x10117814]
mov ecx, dword [esp + 0x18]
mov byte [esi + ecx + 0x178], al
mov eax, dword [esp + 0x28]
mov al, byte [eax*2 + 0x10117815]
mov byte [esi + ecx + 0x198], al
mov byte [esi + ecx + 0xf8], 0
jmp 0x1008363f
movzx ecx, byte [ecx*2 + 0x10117814]
mov eax, dword [esp + 0x28]
imul ecx, edx
mov edx, dword [esp + 0x18]
mov word [esi + edx + 0x178], cx
movzx ecx, byte [eax*2 + 0x10117815]
mov eax, 0x101
imul ecx, eax
xor eax, eax
mov word [esi + edx + 0x198], cx
mov word [esi + edx + 0xf8], ax
jmp 0x1008363a
movzx eax, byte [ecx*2 + 0x10117814]
mov ecx, dword [esp + 0x18]
imul eax, eax, 0x1010101
mov dword [esi + ecx + 0x178], eax
mov eax, dword [esp + 0x28]
movzx eax, byte [eax*2 + 0x10117815]
imul eax, eax, 0x1010101
mov dword [esi + ecx + 0x198], eax
mov dword [esi + ecx + 0xf8], 0
jmp 0x1008363f
movzx eax, byte [ecx*2 + 0x10117814]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x178], eax
mov eax, dword [esp + 0x30]
mov dword [esi + ecx + 0x17c], edx
movzx eax, byte [eax*2 + 0x10117815]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
mov dword [esi + ecx + 0x198], eax
mov dword [esi + ecx + 0x19c], edx
mov dword [esi + ecx + 0xf8], 0
mov dword [esi + ecx + 0xfc], 0
jmp 0x1008363a
movzx eax, byte [ecx*2 + 0x10117814]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x178], eax
mov dword [esi + ecx + 0x17c], edx
mov dword [esi + ecx + 0x180], eax
mov eax, dword [esp + 0x30]
mov dword [esi + ecx + 0x184], edx
movzx eax, byte [eax*2 + 0x10117815]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
mov dword [esi + ecx + 0x198], eax
mov dword [esi + ecx + 0x19c], edx
mov dword [esi + ecx + 0x1a0], eax
mov dword [esi + ecx + 0x1a4], edx
mov dword [esi + ecx + 0xf8], 0
mov dword [esi + ecx + 0xfc], 0
mov dword [esi + ecx + 0x100], 0
mov dword [esi + ecx + 0x104], 0
jmp 0x1008363a
movzx eax, byte [ecx*2 + 0x10117814]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x178], eax
mov dword [esi + ecx + 0x17c], edx
mov dword [esi + ecx + 0x180], eax
mov dword [esi + ecx + 0x184], edx
mov dword [esi + ecx + 0x188], eax
mov dword [esi + ecx + 0x18c], edx
mov dword [esi + ecx + 0x190], eax
mov eax, dword [esp + 0x30]
mov dword [esi + ecx + 0x194], edx
movzx eax, byte [eax*2 + 0x10117815]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
mov dword [esi + ecx + 0x198], eax
mov dword [esi + ecx + 0x19c], edx
mov dword [esi + ecx + 0x1a0], eax
mov dword [esi + ecx + 0x1a4], edx
mov dword [esi + ecx + 0x1a8], eax
mov dword [esi + ecx + 0x1ac], edx
mov dword [esi + ecx + 0x1b0], eax
mov dword [esi + ecx + 0x1b4], edx
mov dword [esi + ecx + 0xf8], 0
mov dword [esi + ecx + 0xfc], 0
mov dword [esi + ecx + 0x100], 0
mov dword [esi + ecx + 0x104], 0
mov dword [esi + ecx + 0x108], 0
mov dword [esi + ecx + 0x10c], 0
mov dword [esi + ecx + 0x110], 0
mov dword [esi + ecx + 0x114], 0
mov edx, 0x101
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x3c]
dec eax
cmp eax, 0x1f
ja case.0x10083658.3
movzx eax, byte [eax + 0x1008c168]
jmp dword [eax*4 + 0x1008c14c]
mov ecx, dword [esi + 0x288]
mov edx, dword [esp + 0x28]
mov al, byte [edx*2 + 0x10117814]
mov byte [ecx + edi + 0x160], al
mov ecx, dword [esi + 0x288]
mov al, byte [edx*2 + 0x10117815]
mov byte [ecx + edi + 0x180], al
mov eax, dword [esi + 0x288]
mov byte [eax + edi + 0xe0], 0
jmp case.0x10083658.3
movzx ecx, byte [ecx*2 + 0x10117814]
movzx eax, dx
imul ecx, eax
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0x160], cx
mov eax, dword [esp + 0x28]
movzx ecx, byte [eax*2 + 0x10117815]
movzx eax, dx
imul ecx, eax
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0x180], cx
xor ecx, ecx
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0xe0], cx
jmp case.0x10083658.3
movzx eax, byte [ecx*2 + 0x10117814]
imul ecx, eax, 0x1010101
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x160], ecx
mov eax, dword [esp + 0x28]
movzx eax, byte [eax*2 + 0x10117815]
imul ecx, eax, 0x1010101
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x180], ecx
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xe0], 0
jmp case.0x10083658.3
movzx eax, byte [ecx*2 + 0x10117814]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [edi + ecx + 0x160], eax
mov eax, dword [esp + 0x30]
mov dword [edi + ecx + 0x164], edx
movzx eax, byte [eax*2 + 0x10117815]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov dword [edi + ecx + 0x180], eax
mov dword [edi + ecx + 0x184], edx
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xe0], 0
mov dword [eax + edi + 0xe4], 0
jmp case.0x10083658.3
movzx eax, byte [ecx*2 + 0x10117814]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [ecx + eax + 0x160], edi
mov dword [ecx + eax + 0x164], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx + 0x168], edi
mov edi, ecx
mov dword [eax + edi + 0x16c], edx
mov eax, dword [esp + 0x30]
movzx eax, byte [eax*2 + 0x10117815]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0x180], eax
mov dword [ecx + edi + 0x184], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0x188], eax
mov dword [ecx + edi + 0x18c], edx
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xe0], 0
mov dword [eax + edi + 0xe4], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xe8], 0
mov dword [eax + edi + 0xec], 0
jmp case.0x10083658.3
movzx eax, byte [ecx*2 + 0x10117814]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [ecx + eax + 0x160], edi
mov dword [ecx + eax + 0x164], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x28]
mov dword [ecx + eax + 0x168], edi
mov dword [ecx + eax + 0x16c], edx
mov eax, dword [esi + 0x288]
mov dword [ecx + eax + 0x170], edi
mov dword [ecx + eax + 0x174], edx
mov eax, dword [esi + 0x288]
mov dword [ecx + eax + 0x178], edi
mov dword [ecx + eax + 0x17c], edx
mov eax, dword [esp + 0x30]
movzx eax, byte [eax*2 + 0x10117815]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
mov dword [eax + ecx + 0x180], edi
mov dword [eax + ecx + 0x184], edx
mov ecx, dword [esi + 0x288]
mov dword [eax + ecx + 0x188], edi
mov dword [eax + ecx + 0x18c], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x20]
mov dword [ecx + eax + 0x190], edi
mov dword [ecx + eax + 0x194], edx
mov eax, dword [esi + 0x288]
mov dword [ecx + eax + 0x198], edi
mov dword [ecx + eax + 0x19c], edx
mov eax, dword [esi + 0x288]
mov dword [ecx + eax + 0xe0], 0
mov dword [ecx + eax + 0xe4], 0
mov eax, dword [esi + 0x288]
mov dword [ecx + eax + 0xe8], 0
mov dword [ecx + eax + 0xec], 0
mov eax, dword [esi + 0x288]
mov dword [ecx + eax + 0xf0], 0
mov dword [ecx + eax + 0xf4], 0
mov eax, dword [esi + 0x288]
mov dword [ecx + eax + 0xf8], 0
mov dword [ecx + eax + 0xfc], 0
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
test byte [eax + 0xe8], 1
je 0x10083aea
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
and edx, 0x1f
add edx, dword [esp + 0x40]
mov edi, dword [esp + 0x14]
lea ecx, [eax + eax*2]
mov eax, dword [esi + edx*4 + 0x2a0]
lea edx, [ecx*4 + 0xa]
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x10083a54
mov esi, ecx
add edx, eax
mov ecx, dword [esp + 0x50]
mov al, byte [edi + 0x18]
lea edx, [edx + 0xc]
inc al
mov byte [edx - 0xe], al
mov eax, dword [edi + 8]
mov dword [edx - 0x16], eax
mov byte [edx - 0xc], cl
sub esi, 1
jne 0x10083a33
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esi + 0x10]
and eax, 0x1f
mov dword [esp + 0x34], 0
add eax, 0xa9
lea eax, [esi + eax*4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x40]
dec eax
mov dword [esp + 0x38], eax
test eax, eax
jle 0x10083aea
nop dword [eax + eax]
mov eax, dword [esi + 0xc]
mov dl, byte [edi + 0x18]
add eax, ecx
mov edi, dword [esp + 0x58]
inc dl
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x34]
mov eax, dword [edi + eax*4]
mov byte [eax + ecx*4 - 4], dl
mov ecx, edi
mov eax, dword [esi + 0xc]
add eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x14]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x34]
mov ecx, dword [ecx + eax*4]
mov eax, dword [edi + 8]
mov dword [ecx + edx*4 - 0xc], eax
mov eax, dword [esi + 0xc]
add eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x58]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x34]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x50]
mov byte [eax + ecx*4 - 2], dl
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x34], eax
cmp eax, dword [esp + 0x38]
jl 0x10083a80
cmp dword [esp + 0x6c], 0
je case.0x10083c11.3
mov eax, dword [esp + 0x88]
dec eax
cmp eax, 0x1f
ja case.0x10083b0d.3
movzx eax, byte [eax + 0x1008c1a4]
jmp dword [eax*4 + 0x1008c188]
mov eax, dword [esp + 0x5c]
mov byte [esi + eax + 0x248], 0
jmp case.0x10083b0d.3
mov eax, dword [esp + 0x5c]
xor ecx, ecx
mov word [esi + eax + 0x248], cx
jmp case.0x10083b0d.3
mov eax, dword [esp + 0x5c]
mov dword [esi + eax + 0x248], 0
jmp case.0x10083b0d.3
mov eax, dword [esp + 0x5c]
mov dword [esi + eax + 0x248], 0
mov dword [esi + eax + 0x24c], 0
jmp case.0x10083b0d.3
mov eax, dword [esp + 0x5c]
mov dword [esi + eax + 0x248], 0
mov dword [esi + eax + 0x24c], 0
mov dword [esi + eax + 0x250], 0
mov dword [esi + eax + 0x254], 0
jmp case.0x10083b0d.3
mov eax, dword [esp + 0x5c]
mov dword [esi + eax + 0x248], 0
mov dword [esi + eax + 0x24c], 0
mov dword [esi + eax + 0x250], 0
mov dword [esi + eax + 0x254], 0
mov dword [esi + eax + 0x258], 0
mov dword [esi + eax + 0x25c], 0
mov dword [esi + eax + 0x260], 0
mov dword [esi + eax + 0x264], 0
mov eax, dword [esp + 0x8c]
dec eax
cmp eax, 0x1f
ja case.0x10083c11.3
movzx eax, byte [eax + 0x1008c1e0]
jmp dword [eax*4 + 0x1008c1c4]
mov eax, dword [esi + 0x288]
mov edx, dword [esp + 0x4c]
mov byte [eax + edx + 0x230], 0
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x354]
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x288]
xor ecx, ecx
mov edx, dword [esp + 0x4c]
mov word [eax + edx + 0x230], cx
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x354]
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x288]
mov edx, dword [esp + 0x4c]
mov dword [eax + edx + 0x230], 0
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x354]
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x4c]
mov dword [eax + ecx + 0x230], 0
mov dword [eax + ecx + 0x234], 0
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x354]
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x4c]
mov dword [eax + ecx + 0x230], 0
mov dword [eax + ecx + 0x234], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x238], 0
mov dword [eax + ecx + 0x23c], 0
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x354]
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x4c]
mov dword [eax + ecx + 0x230], 0
mov dword [eax + ecx + 0x234], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x238], 0
mov dword [eax + ecx + 0x23c], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x240], 0
mov dword [eax + ecx + 0x244], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x248], 0
mov dword [eax + ecx + 0x24c], 0
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x354]
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x84]
add ecx, dword [esp + 0xac]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0xac]
sar dword [esp + 0x80], cl
mov ecx, dword [esp + 0x90]
add ecx, eax
mov dword [esp + 0x44], 0
mov dword [esp + 0xa8], ecx
mov ecx, eax
mov al, byte [ebp + 0xc]
sar dword [esp + 0xa8], cl
mov byte [edx], al
mov al, byte [ebp + 0x14]
mov byte [edx + 2], al
mov eax, dword [esp + 0x50]
mov byte [edx + 1], al
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], 0
mov ecx, dword [eax + 0xc]
cmp byte [ecx + 0x2d2], 0
je 0x10084088
cmp byte [ecx + 0x2d3], 0
jne 0x10083e81
mov ecx, dword [eax + 0x6c4]
test ecx, ecx
je 0x10083e6c
push dword [eax + 0x8ac]
push ecx
push dword [esp + 0x98]
push dword [esp + 0x90]
push dword [esi + 0xc]
push dword [esi + 0x10]
push eax
call fcn.1008dcd0
add esp, 0x1c
cmp eax, 8
jae 0x1008735d
mov edx, dword [esp + 0x14]
mov edi, 4
mov ecx, edx
mov byte [ecx + edi], al
jmp 0x10083fbb
mov esi, dword [esp + 0x70]
mov ecx, edx
mov edi, 4
xor al, al
mov byte [ecx + edi], al
jmp 0x10083fbb
cmp byte [ecx + 0x326], 0
je 0x10084008
cmp byte [ecx + 0x2d4], 0
je 0x10083f31
mov eax, dword [esi + 0x288]
mov edx, dword [esp + 0x2c]
movzx ecx, byte [eax + edi + 0x80]
mov eax, dword [esp + 0x18]
movzx eax, byte [esi + eax + 0x98]
add eax, 0x5e5
add ecx, eax
lea eax, [edx + ecx*4]
push eax
lea eax, [edx + 0x3600]
push eax
call fcn.10001920
add esp, 8
mov dword [esp + 0x48], eax
test eax, eax
mov eax, dword [esp + 0x1c]
je 0x10083f31
mov ecx, dword [eax + 0x6c4]
test ecx, ecx
je 0x10083f18
push dword [eax + 0x8ac]
push ecx
push dword [esp + 0x98]
push dword [esp + 0x90]
push dword [esi + 0xc]
push dword [esi + 0x10]
push eax
call fcn.1008dcd0
add esp, 0x1c
cmp eax, 8
jae 0x1008735d
jmp 0x10083f1a
xor al, al
mov edx, dword [esp + 0x14]
mov esi, 4
mov ecx, edx
mov byte [esi + ecx], al
mov esi, dword [esp + 0x70]
jmp 0x10083fbf
push dword [eax + 0x8ac]
push dword [eax + 0x6c0]
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x30]
push dword [esp + 0x38]
push dword [esi + 0xc]
push dword [esi + 0x10]
call fcn.1008db40
mov ecx, dword [esp + 0x54]
add ecx, 0xdb
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x48]
shl ecx, 4
add ecx, eax
push 7
push ecx
lea ecx, [eax + 0x3600]
push ecx
call fcn.10001720
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx + 0xc]
movsx edi, byte [ecx + 0x327]
lea ecx, [edi + 1]
push ecx
push dword [esp + 0x90]
push eax
call fcn.1008e040
mov edx, dword [esp + 0x48]
add esp, 0x34
movzx ecx, al
mov byte [esp + 0x33], al
mov byte [edx + 4], al
cmp ecx, edi
ja 0x10083fb6
cmp al, 8
jb 0x10083fbb
xor al, al
mov byte [edx + 4], al
mov edi, dword [esp + 0x20]
movzx eax, al
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
lea eax, [eax + ecx*2]
add eax, 0x2d6
mov dword [esp + 0x44], eax
je 0x10084004
cmp byte [eax + 8], 0
mov dword [esp + 0x44], eax
jne 0x10084091
cmp byte [eax + 6], 0xff
mov dword [esp + 0x44], eax
jne 0x10084091
cmp byte [eax + 7], 0
mov dword [esp + 0x44], eax
jne 0x10084091
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
cmp byte [eax + 0x37a], 0
je 0x10084091
mov ecx, dword [esp + 0x40]
mov eax, ecx
cmp dword [esp + 0x3c], ecx
mov esi, dword [esp + 0x70]
cmovb eax, dword [esp + 0x3c]
cmp eax, 1
jbe 0x10084091
mov eax, dword [esi + 0x288]
mov edx, dword [esp + 0x2c]
movzx ecx, byte [eax + edi + 0xc0]
mov eax, dword [esp + 0x18]
movzx eax, byte [esi + eax + 0xd8]
add eax, 0x5e2
add ecx, eax
lea eax, [edx + ecx*4]
push eax
lea eax, [edx + 0x3600]
push eax
call fcn.10001920
mov edx, dword [esp + 0x1c]
add esp, 8
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x48]
mov byte [edx + 5], al
mov dword [esp + 0x148], ecx
mov dword [esp + 0x48], ecx
test al, al
jne 0x100840a3
jmp 0x10084095
mov byte [edx + 4], 0
jmp 0x10084008
mov byte [edx + 5], 0
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100840a7
cmp byte [eax + 7], 0
je 0x100840a7
mov al, 1
jmp 0x100840e3
mov eax, dword [esi + 0x288]
mov edx, dword [esp + 0x2c]
movzx ecx, byte [eax + edi + 0xa0]
mov eax, dword [esp + 0x18]
movzx eax, byte [esi + eax + 0xb8]
add eax, 0x5df
add ecx, eax
lea eax, [edx + ecx*4]
push eax
lea eax, [edx + 0x3600]
push eax
call fcn.10001920
mov edx, dword [esp + 0x1c]
add esp, 8
mov ecx, 6
mov byte [esp + 0x33], al
add ecx, edx
mov dword [esp + 0x38], ecx
mov byte [ecx], al
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0xc]
mov edx, ecx
cmp byte [ecx + 0x2d2], 0
je 0x100842a4
cmp byte [ecx + 0x2d3], 0
je 0x100842a4
cmp byte [ecx + 0x326], 0
jne 0x100842a4
cmp byte [esp + 0x33], 0
jne 0x100841e1
cmp byte [ecx + 0x2d4], 0
je 0x100841e1
mov eax, dword [esi + 0x288]
movzx ecx, byte [eax + edi + 0x80]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x2c]
movzx eax, byte [esi + eax + 0x98]
add eax, 0x5e5
add ecx, eax
lea eax, [edi + ecx*4]
push eax
lea eax, [edi + 0x3600]
push eax
call fcn.10001920
add esp, 8
mov dword [esp + 0x48], eax
test eax, eax
mov eax, dword [esp + 0x1c]
je 0x100841e5
mov ecx, dword [eax + 0x6c4]
test ecx, ecx
je 0x100841cc
push dword [eax + 0x8ac]
push ecx
push dword [esp + 0x98]
push dword [esp + 0x90]
push dword [esi + 0xc]
push dword [esi + 0x10]
push eax
call fcn.1008dcd0
mov ecx, eax
add esp, 0x1c
cmp ecx, 8
jae 0x1008735d
mov edi, dword [esp + 0x14]
mov edx, 4
mov eax, edi
mov byte [eax + edx], cl
jmp 0x10084284
mov edi, dword [esp + 0x14]
mov edx, 4
mov eax, edi
xor cl, cl
mov byte [eax + edx], cl
jmp 0x10084284
mov edi, dword [esp + 0x2c]
push dword [eax + 0x8ac]
push dword [eax + 0x6c0]
lea eax, [esp + 0x6c]
push eax
push dword [esp + 0x30]
push dword [esp + 0x38]
push dword [esi + 0xc]
push dword [esi + 0x10]
call fcn.1008db40
mov edx, eax
add esp, 0x1c
mov eax, dword [esp + 0x38]
mov dword [esp + 0xbc], edx
cmp byte [eax], 0
je 0x10084227
mov edi, dword [esp + 0x14]
mov byte [edi + 4], dl
jmp 0x10084278
mov eax, dword [esp + 0x64]
add eax, 0xdb
shl eax, 4
add eax, edi
push 7
push eax
lea eax, [edi + 0x3600]
push eax
call fcn.10001720
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + 0xc]
movsx edi, byte [ecx + 0x327]
lea ecx, [edi + 1]
push ecx
push dword [esp + 0xcc]
push eax
call fcn.1008e040
mov ecx, dword [esp + 0x2c]
mov dl, al
add esp, 0x18
mov byte [ecx + 4], al
movzx eax, al
cmp eax, edi
mov edi, ecx
ja 0x1008427f
mov cl, dl
cmp dl, 8
jb 0x10084284
xor cl, cl
mov byte [edi + 4], cl
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0xc]
movzx eax, cl
lea eax, [eax + eax*4]
lea eax, [eax + 0x16b]
lea eax, [edx + eax*2]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x1c]
jmp 0x100842a8
mov edi, dword [esp + 0x14]
cmp byte [edi + 6], 0
jne 0x1008435e
mov eax, dword [eax + 4]
cmp byte [eax + 0x188], 0
je 0x100842d4
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
sar ecx, 3
sar eax, 4
and ecx, 2
and eax, 1
add ecx, eax
jmp 0x100842d6
xor ecx, ecx
mov eax, dword [esi + 0x3f12c]
mov dword [esp + 0x58], ecx
cmp byte [ecx + eax], 0xff
jne 0x1008435e
movzx eax, byte [edx + 0x350]
push eax
mov eax, dword [esp + 0x30]
add eax, 0x3600
push eax
call fcn.10082810
mov ecx, dword [esi + 0x3f12c]
add esp, 8
mov edx, dword [esp + 0x58]
mov dword [esp + 0x60], eax
mov byte [edx + ecx], al
mov ecx, dword [esp + 0x3c]
cmp ecx, 0x10
jbe 0x10084328
mov ecx, dword [esi + 0x3f12c]
mov byte [edx + ecx + 1], al
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
cmp eax, 0x10
jbe 0x10084347
mov eax, dword [esi + 0x3f12c]
mov ecx, dword [esp + 0x60]
mov byte [edx + eax + 2], cl
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
cmp ecx, 0x20
jne 0x1008435e
cmp eax, ecx
jne 0x1008435e
mov eax, dword [esi + 0x3f12c]
mov ecx, dword [esp + 0x60]
mov byte [eax + edx + 3], cl
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x38], 0xf
mov eax, dword [ecx + 4]
mov dl, byte [eax + 0x188]
mov eax, 0x1f
test dl, dl
mov byte [esp + 0x33], dl
mov edx, dword [esp + 0x2c]
cmove eax, dword [esp + 0x38]
test dword [esi + 0xc], eax
jne 0x100846d8
test dword [esi + 0x10], eax
jne 0x100846d8
mov eax, dword [edx + 0x36b8]
mov dword [esp + 0x148], eax
mov eax, dword [ecx + 0xc]
cmp byte [eax + 0x338], 0
je 0x1008460b
xor ecx, ecx
mov eax, 3
cmp byte [esp + 0x33], cl
cmovne eax, ecx
cmp dword [esp + 0x50], eax
jne 0x100843d3
cmp byte [edi + 6], cl
jne 0x1008460b
mov eax, dword [edx + 0x36bc]
lea ecx, [edx + 0x3600]
mov dword [esp + 0xc8], eax
lea eax, [edx + 0x14b0]
push 3
push eax
push ecx
mov dword [esp + 0x44], ecx
call fcn.100015c0
mov ecx, eax
add esp, 0xc
cmp ecx, 3
jne 0x10084444
xor esi, esi
mov edi, eax
push dword [esp + 0x38]
call fcn.100019a0
add esi, esi
add esp, 4
or esi, eax
sub edi, 1
jne 0x10084407
mov eax, dword [esp + 0x2c]
lea edi, [esi + 1]
add eax, 0x3600
push edi
push eax
call fcn.10082810
mov esi, dword [esp + 0x78]
mov ecx, edi
mov edx, 1
add esp, 8
shl edx, cl
lea ecx, [eax + 1]
add ecx, edx
mov edi, ecx
test ecx, ecx
je 0x1008447c
mov eax, dword [esp + 0x2c]
add eax, 0x3600
push eax
call fcn.100019a0
mov edx, edi
add esp, 4
neg edx
test eax, eax
cmove edx, edi
mov edi, dword [esp + 0x1c]
mov ecx, dword [edi + 0xc]
mov cl, byte [ecx + 0x339]
shl edx, cl
mov dword [esp + 0x38], edx
mov ecx, edx
jmp 0x10084480
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
push 0xff
push 1
mov eax, dword [edx + 0x36b8]
add eax, ecx
push eax
call fcn.1008dd90
mov dword [edx + 0x36b8], eax
add esp, 0xc
mov eax, dword [edi + 0xc]
cmp byte [eax + 0x33a], 0
je 0x1008461c
cmp byte [eax + 0x33c], 0
je 0x100844d3
xor eax, eax
cmp dword [edi + 0x53c], eax
setne al
lea eax, [eax*2 + 2]
mov dword [esp + 0x38], eax
jmp 0x100844db
mov dword [esp + 0x38], 1
mov esi, dword [esp + 0x2c]
xor edx, edx
mov dword [esp + 0x60], edx
lea ecx, [esi + 0x3600]
mov dword [esp + 0x58], ecx
nop
mov eax, dword [edi + 0xc]
add edx, 0x297
push 3
movzx eax, byte [eax + 0x33c]
add eax, edx
lea eax, [esi + eax*8]
push eax
push ecx
call fcn.100015c0
mov edx, eax
add esp, 0xc
cmp edx, 3
jne 0x1008458d
xor edi, edi
mov esi, eax
nop dword [eax]
push dword [esp + 0x58]
call fcn.100019a0
add edi, edi
add esp, 4
or edi, eax
sub esi, 1
jne 0x10084520
mov esi, dword [esp + 0x2c]
lea eax, [edi + 1]
mov edi, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 0x64], eax
mov dword [esp + 0xbc], edx
test eax, eax
je 0x1008457f
mov esi, dword [esp + 0x58]
mov edi, eax
push esi
call fcn.100019a0
mov edx, dword [esp + 0xc0]
add esp, 4
add edx, edx
or edx, eax
mov dword [esp + 0xbc], edx
sub edi, 1
jne 0x10084557
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x64]
mov eax, 1
shl eax, cl
inc eax
add edx, eax
mov dword [esp + 0x64], edx
test edx, edx
je 0x100845bc
lea eax, [esi + 0x3600]
push eax
call fcn.100019a0
mov edx, dword [esp + 0x68]
add esp, 4
mov ecx, dword [edi + 0xc]
neg edx
test eax, eax
cmove edx, dword [esp + 0x64]
mov cl, byte [ecx + 0x33b]
shl edx, cl
mov ecx, dword [esp + 0x60]
movsx eax, byte [ecx + esi + 0x36bc]
add eax, edx
cmp eax, 0xffffffc1
jge 0x100845d6
mov eax, 0xffffffc1
jmp 0x100845e1
cmp eax, 0x3f
mov edx, 0x3f
cmovg eax, edx
mov edx, dword [esp + 0x60]
inc edx
mov byte [ecx + esi + 0x36bc], al
lea ecx, [esi + 0x3600]
mov dword [esp + 0x60], edx
cmp edx, dword [esp + 0x38]
jl 0x100844f0
mov esi, dword [esp + 0x70]
mov edx, dword [esp + 0x2c]
jmp 0x1008461c
mov eax, dword [edx + 0x36bc]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0xc8], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [edx + 0x36b8]
mov dword [esp + 0x38], eax
movzx eax, byte [eax + 0x2c8]
cmp ecx, eax
jne 0x10084642
lea eax, [edi + 0x8d8]
mov dword [edx + 0x36b4], eax
jmp 0x10084674
cmp ecx, dword [esp + 0x148]
je 0x10084674
mov eax, dword [esp + 0x1c]
lea edi, [edx + 0x3654]
push edi
push ecx
push dword [esp + 0x40]
push dword [eax + 4]
call fcn.1008ddb0
mov edx, dword [esp + 0x3c]
add esp, 0x10
mov dword [edx + 0x36b4], edi
mov edi, dword [esp + 0x1c]
mov eax, dword [edx + 0x36bc]
lea ecx, [esp + 0xb4]
mov dword [esp + 0xb4], 0
cmp eax, dword [ecx]
jne 0x1008469e
lea eax, [edi + 0xc24]
mov dword [edx + 0x38c0], eax
jmp 0x100846d0
lea ecx, [esp + 0xc8]
cmp eax, dword [ecx]
je 0x100846d0
lea eax, [edx + 0x36bc]
push eax
mov eax, dword [esp + 0x20]
lea edi, [edx + 0x36c0]
push dword [eax + 0xc]
push edi
call fcn.100908f0
mov edx, dword [esp + 0x38]
add esp, 0xc
mov dword [edx + 0x38c0], edi
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
cmp byte [edi + 5], 0
je 0x100846e7
mov byte [edi + 3], 0
jmp 0x100847f9
mov eax, dword [ecx + 0xc]
test byte [eax + 0xe8], 1
je 0x100847be
mov eax, dword [esp + 0x44]
test eax, eax
je 0x10084723
mov cl, byte [eax + 6]
test cl, cl
jns 0x100847b0
cmp byte [eax + 8], 0
je 0x10084723
test cl, cl
mov edx, 3
mov ecx, edi
sete al
add ecx, edx
jmp 0x100847ed
mov ecx, dword [esp + 0x94]
cmp dword [esp + 0x78], ecx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x68]
jle 0x1008477d
mov eax, dword [esp + 0x18]
movzx eax, byte [esi + eax + 0xf8]
mov dword [esp + 0x148], eax
cmp dword [esp + 0x34], ecx
jle 0x10084778
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + 0x288]
movzx eax, byte [eax + ecx + 0xe0]
xor ecx, ecx
add eax, dword [esp + 0x148]
cmp eax, 2
sete cl
add ecx, eax
jmp 0x10084795
lea ecx, [eax + eax]
jmp 0x10084795
cmp dword [esp + 0x34], ecx
jle 0x10084793
mov ecx, dword [esp + 0x20]
movzx ecx, byte [eax + ecx + 0xe0]
add ecx, ecx
jmp 0x10084795
xor ecx, ecx
lea ecx, [ecx + 0x57d]
lea eax, [edx + ecx*4]
push eax
lea eax, [edx + 0x3600]
push eax
call fcn.10001920
add esp, 8
test eax, eax
mov edx, 3
mov ecx, edi
sete al
add ecx, edx
jmp 0x100847ed
cmp byte [eax + 0x1a3], 0
mov esi, dword [esp + 0x70]
je 0x10089033
lea eax, [edx + 0x1854]
push eax
lea eax, [edx + 0x3600]
push eax
call fcn.10001920
add esp, 8
lea ecx, [edi + 3]
test eax, eax
sete al
mov ah, al
mov byte [ecx], ah
test al, al
jne 0x10089039
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0xc]
test byte [ecx + 0xe8], 1
jne 0x10085d0b
push dword [esi + 0xc]
mov word [esp + 0x3c], 0xff00
lea eax, [esp + 0xd4]
push dword [esi + 0x10]
push dword [ebp + 0x18]
push dword [esp + 0x5c]
push dword [esp + 0x48]
push eax
lea eax, [esp + 0xec]
push eax
lea eax, [esp + 0x274]
push eax
lea eax, [esi + 0x28c]
push eax
call fcn.1007b4f0
mov ecx, dword [esp + 0x27c]
add esp, 0x24
test ecx, ecx
je 0x1008485c
mov dword [edi + 8], ecx
jmp 0x100848d2
mov ecx, dword [esp + 0x268]
test ecx, ecx
je 0x1008486c
mov dword [edi + 8], ecx
jmp 0x100848d2
mov eax, dword [esp + 0x1c]
mov edx, 0x10
mov eax, dword [eax + 4]
mov al, byte [eax + 0x188]
mov cl, al
mov byte [esp + 0x33], al
mov eax, dword [esi + 0x10]
shl edx, cl
mov ecx, dword [esp + 0x2c]
sub eax, edx
cmp eax, dword [ecx + 0x3620]
jge 0x100848bc
xor eax, eax
mov edx, 0x200
mov word [edi + 8], ax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
mov eax, 0xfffff800
mov cl, byte [ecx + 0x188]
shl dx, cl
sub ax, dx
jmp 0x100848ce
mov cl, byte [esp + 0x33]
mov eax, 0xfffffe00
shl ax, cl
mov word [edi + 8], ax
xor eax, eax
mov word [edi + 0xa], ax
mov eax, dword [esp + 0x2c]
push 0
add eax, 0x34e0
push eax
lea eax, [edi + 8]
push eax
push esi
call fcn.1008e5e0
mov ecx, dword [esp + 0x3c]
add esp, 0x10
mov edx, dword [esp + 0x3c]
mov eax, dword [ecx + 0x3618]
shl eax, 2
mov dword [esp + 0x68], eax
mov eax, dword [ecx + 0x3620]
shl eax, 2
cmp dword [esp + 0x6c], 0
mov dword [esp + 0x94], eax
je 0x10084940
cmp edx, 2
jae 0x10084928
cmp dword [esp + 0x7c], 3
je 0x10084928
add dword [esp + 0x68], 4
cmp dword [esp + 0x40], 2
jae 0x10084940
cmp dword [esp + 0x7c], 1
jne 0x10084940
add eax, 4
mov dword [esp + 0x94], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
movzx eax, ax
mov dword [esp + 0x58], eax
movsx eax, word [edi + 0xa]
sar eax, 3
lea eax, [eax + ecx*4]
mov dword [esp + 0x78], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x34], eax
movsx eax, word [edi + 8]
mov esi, dword [esp + 0x34]
sar eax, 3
lea eax, [eax + esi*4]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x78]
lea eax, [eax + edx*4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x40]
lea ecx, [eax*4]
mov eax, dword [esp + 0x44]
add eax, ecx
mov dword [esp + 0x148], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x60], eax
lea eax, [edx - 1]
not eax
mov esi, dword [ecx + 0x361c]
mov ecx, dword [esp + 0x78]
dec esi
add esi, edx
and esi, eax
mov eax, dword [esp + 0x68]
shl esi, 2
cmp ecx, eax
jge 0x100849d7
lea edx, [eax + edx*4]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x28], edx
movzx eax, ax
jmp 0x100849fb
mov edx, dword [esp + 0x58]
movzx eax, dx
mov edx, dword [esp + 0x28]
cmp edx, esi
jle 0x100849fb
mov eax, esi
mov dword [esp + 0x28], esi
sub eax, edx
add ecx, eax
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x58]
movzx eax, cx
mov ecx, dword [esp + 0x94]
mov esi, dword [esp + 0x70]
movzx eax, ax
mov dword [esp + 0x38], eax
cmp dword [esp + 0x44], ecx
jge 0x10084a24
mov eax, dword [esp + 0x148]
add eax, ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
movzx eax, byte [eax + 0x188]
lea edx, [eax + 4]
add eax, 6
mov ecx, edx
sar dword [esp + 0x24], cl
mov ecx, eax
shl dword [esp + 0x24], cl
mov ecx, edx
mov edx, dword [esi + 0x10]
sar edx, cl
mov ecx, eax
shl edx, cl
mov dword [esp + 0x34], edx
mov edx, 1
mov eax, dword [esp + 0x34]
shl edx, cl
cmp dword [esp + 0x60], eax
jle 0x10084ac5
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0x24]
jle 0x10084ac5
mov ecx, dword [esp + 0x60]
sub ecx, eax
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x94]
cmp eax, ecx
jl 0x10084a9b
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x44]
add ecx, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x60], eax
jmp 0x10084ac9
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x78]
sub ecx, dword [esp + 0x24]
sub eax, dword [esp + 0x68]
cmp eax, ecx
jl 0x10084ac1
mov ecx, dword [esp + 0x24]
mov eax, ecx
sub eax, dword [esp + 0x28]
add dword [esp + 0x78], eax
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x44]
lea edi, [edx + eax]
cmp dword [esp + 0x60], edi
mov dword [esp + 0x148], edi
mov edi, dword [esp + 0x14]
jle 0x10084aee
sub edx, dword [esp + 0x60]
add edx, eax
add ecx, edx
mov edx, dword [esp + 0x148]
jmp 0x10084af2
mov edx, dword [esp + 0x60]
cmp edx, eax
jle 0x10084b04
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x24]
jg 0x1008735d
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x78]
push dword [esp + 0x18]
shl eax, 2
sub edx, eax
shl edx, 3
mov word [edi + 0xa], dx
mov ax, word [esi + 0x10]
shl ax, 2
sub cx, ax
shl cx, 3
mov word [edi + 8], cx
mov edi, dword [esp + 0x24]
push edi
push dword [esp + 0x58]
push dword [esp + 0x20]
push esi
call fcn.1008efe0
mov eax, dword [esp + 0x30]
add esp, 0x14
cmp dword [esi + 0x3f134], 1
push dword [esp + 0x14]
push dword [esp + 0x54]
push esi
jne 0x10084b70
mov eax, dword [eax + 0x888]
call eax
mov eax, dword [esp + 0x20]
add esp, 0xc
mov byte [eax + 0x1b], 9
jmp 0x10084b87
mov eax, dword [eax + 0x868]
call eax
add esp, 0xc
test eax, eax
jne 0x1008735d
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
push dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
push dword [esp + 0x40]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x58]
mov ecx, dword [ecx + 0x854]
mov byte [esp + 0x15a], al
mov dword [esp + 0x154], 0
movq xmm0, qword [esp + 0x150]
movq qword [esp + 0xe8], xmm0
mov word [esp + 0x158], 0xff00
mov byte [esp + 0x15b], 0
mov eax, dword [esp + 0x158]
mov dword [esp + 0xf0], eax
lea eax, [esp + 0xe8]
push dword [esi + 0xc]
push eax
mov eax, dword [esi + 0x10]
and eax, 0x1f
add eax, 0xa9
lea eax, [esi + eax*4]
push eax
mov eax, dword [ecx + 0xdc74]
call eax
mov eax, dword [esp + 0x54]
add esp, 0x14
dec eax
mov edx, 0x101
cmp eax, 0x1f
ja case.0x10084c2a.3
movzx eax, byte [eax + 0x1008c21c]
jmp dword [eax*4 + 0x1008c200]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x14]
mov al, byte [eax + 3]
mov byte [esi + ecx + 0x1b8], al
mov eax, dword [esp + 0x48]
mov byte [esi + ecx + 0x18], 0
mov byte [esi + ecx + 0x268], 0
mov byte [esi + ecx + 0x1f60], 0
mov byte [esi + ecx + 0x98], al
mov byte [esi + ecx + 0xd8], 0
mov byte [esi + ecx + 0xf8], 0
mov al, byte [edx + 6]
mov byte [esi + ecx + 0xb8], al
jmp 0x1008527b
mov eax, dword [esp + 0x54]
movzx ecx, byte [eax + 3]
xor eax, eax
imul ecx, edx
mov edx, dword [esp + 0x18]
mov word [esi + edx + 0x1b8], cx
mov word [esi + edx + 0x18], ax
mov word [esi + edx + 0x268], ax
mov word [esi + edx + 0x1f60], ax
imul eax, dword [esp + 0x48], 0x101
mov word [esi + edx + 0x98], ax
xor eax, eax
mov word [esi + edx + 0xd8], ax
mov word [esi + edx + 0xf8], ax
mov eax, 0x101
mov edx, dword [esp + 0x14]
movzx ecx, byte [edx + 6]
imul ecx, eax
mov eax, dword [esp + 0x18]
mov word [esi + eax + 0xb8], cx
jmp 0x1008527b
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
movzx eax, byte [eax + 3]
imul eax, eax, 0x1010101
mov dword [esi + ecx + 0x1b8], eax
imul eax, dword [esp + 0x48], 0x1010101
mov dword [esi + ecx + 0x18], 0
mov dword [esi + ecx + 0x268], 0
mov dword [esi + ecx + 0x1f60], 0
mov dword [esi + ecx + 0x98], eax
mov dword [esi + ecx + 0xd8], 0
mov dword [esi + ecx + 0xf8], 0
movzx eax, byte [edx + 6]
imul eax, eax, 0x1010101
mov dword [esi + ecx + 0xb8], eax
jmp 0x1008527b
mov eax, dword [esp + 0x54]
push 0x1010101
push 0x1010101
movzx eax, byte [eax + 3]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x1b8], eax
mov eax, dword [esp + 0x50]
mov dword [esi + ecx + 0x1bc], edx
mov dword [esi + ecx + 0x18], 0
mov dword [esi + ecx + 0x1c], 0
cdq
mov dword [esi + ecx + 0x268], 0
mov dword [esi + ecx + 0x26c], 0
push edx
mov dword [esi + ecx + 0x1f60], 0
push eax
mov dword [esi + ecx + 0x1f64], 0
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x98], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0x9c], edx
mov dword [esi + ecx + 0xd8], 0
mov dword [esi + ecx + 0xdc], 0
mov dword [esi + ecx + 0xf8], 0
mov dword [esi + ecx + 0xfc], 0
movzx eax, byte [eax + 6]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
mov dword [esi + ecx + 0xb8], eax
mov dword [esi + ecx + 0xbc], edx
jmp case.0x10084c2a.3
mov eax, dword [esp + 0x54]
push 0x1010101
push 0x1010101
movzx eax, byte [eax + 3]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x1b8], eax
mov dword [esi + ecx + 0x1bc], edx
mov dword [esi + ecx + 0x1c0], eax
mov eax, dword [esp + 0x50]
mov dword [esi + ecx + 0x1c4], edx
mov dword [esi + ecx + 0x18], 0
mov dword [esi + ecx + 0x1c], 0
mov dword [esi + ecx + 0x20], 0
mov dword [esi + ecx + 0x24], 0
mov dword [esi + ecx + 0x268], 0
mov dword [esi + ecx + 0x26c], 0
mov dword [esi + ecx + 0x270], 0
mov dword [esi + ecx + 0x274], 0
cdq
mov dword [esi + ecx + 0x1f60], 0
mov dword [esi + ecx + 0x1f64], 0
push edx
mov dword [esi + ecx + 0x1f68], 0
push eax
mov dword [esi + ecx + 0x1f6c], 0
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x98], eax
mov dword [esi + ecx + 0x9c], edx
mov dword [esi + ecx + 0xa0], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0xa4], edx
mov dword [esi + ecx + 0xd8], 0
mov dword [esi + ecx + 0xdc], 0
mov dword [esi + ecx + 0xe0], 0
mov dword [esi + ecx + 0xe4], 0
mov dword [esi + ecx + 0xf8], 0
mov dword [esi + ecx + 0xfc], 0
mov dword [esi + ecx + 0x100], 0
mov dword [esi + ecx + 0x104], 0
movzx eax, byte [eax + 6]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
mov dword [esi + ecx + 0xb8], eax
mov dword [esi + ecx + 0xbc], edx
mov dword [esi + ecx + 0xc0], eax
mov dword [esi + ecx + 0xc4], edx
jmp case.0x10084c2a.3
mov eax, dword [esp + 0x54]
push 0x1010101
push 0x1010101
movzx eax, byte [eax + 3]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x1b8], eax
mov dword [esi + ecx + 0x1bc], edx
mov dword [esi + ecx + 0x1c0], eax
mov dword [esi + ecx + 0x1c4], edx
mov dword [esi + ecx + 0x1c8], eax
mov dword [esi + ecx + 0x1cc], edx
mov dword [esi + ecx + 0x1d0], eax
mov dword [esi + ecx + 0x1d4], edx
mov dword [esi + ecx + 0x18], 0
mov dword [esi + ecx + 0x1c], 0
mov dword [esi + ecx + 0x20], 0
mov dword [esi + ecx + 0x24], 0
mov eax, dword [esp + 0x50]
mov dword [esi + ecx + 0x28], 0
mov dword [esi + ecx + 0x2c], 0
mov dword [esi + ecx + 0x30], 0
mov dword [esi + ecx + 0x34], 0
mov dword [esi + ecx + 0x268], 0
mov dword [esi + ecx + 0x26c], 0
mov dword [esi + ecx + 0x270], 0
mov dword [esi + ecx + 0x274], 0
mov dword [esi + ecx + 0x278], 0
mov dword [esi + ecx + 0x27c], 0
mov dword [esi + ecx + 0x280], 0
mov dword [esi + ecx + 0x284], 0
mov dword [esi + ecx + 0x1f60], 0
mov dword [esi + ecx + 0x1f64], 0
mov dword [esi + ecx + 0x1f68], 0
mov dword [esi + ecx + 0x1f6c], 0
cdq
mov dword [esi + ecx + 0x1f70], 0
mov dword [esi + ecx + 0x1f74], 0
push edx
mov dword [esi + ecx + 0x1f78], 0
push eax
mov dword [esi + ecx + 0x1f7c], 0
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x98], eax
mov dword [esi + ecx + 0x9c], edx
mov dword [esi + ecx + 0xa0], eax
mov dword [esi + ecx + 0xa4], edx
mov dword [esi + ecx + 0xa8], eax
mov dword [esi + ecx + 0xac], edx
mov dword [esi + ecx + 0xb0], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0xb4], edx
mov dword [esi + ecx + 0xd8], 0
mov dword [esi + ecx + 0xdc], 0
mov dword [esi + ecx + 0xe0], 0
mov dword [esi + ecx + 0xe4], 0
mov dword [esi + ecx + 0xe8], 0
mov dword [esi + ecx + 0xec], 0
mov dword [esi + ecx + 0xf0], 0
mov dword [esi + ecx + 0xf4], 0
mov dword [esi + ecx + 0xf8], 0
mov dword [esi + ecx + 0xfc], 0
mov dword [esi + ecx + 0x100], 0
mov dword [esi + ecx + 0x104], 0
mov dword [esi + ecx + 0x108], 0
mov dword [esi + ecx + 0x10c], 0
mov dword [esi + ecx + 0x110], 0
mov dword [esi + ecx + 0x114], 0
movzx eax, byte [eax + 6]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
mov dword [esi + ecx + 0xb8], eax
mov dword [esi + ecx + 0xbc], edx
mov dword [esi + ecx + 0xc0], eax
mov dword [esi + ecx + 0xc4], edx
mov dword [esi + ecx + 0xc8], eax
mov dword [esi + ecx + 0xcc], edx
mov dword [esi + ecx + 0xd0], eax
mov dword [esi + ecx + 0xd4], edx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
dec eax
cmp eax, 0x1f
ja case.0x10085290.3
movzx eax, byte [eax + 0x1008c258]
jmp dword [eax*4 + 0x1008c23c]
mov ecx, dword [esi + 0x288]
mov eax, dword [esp + 0x54]
mov al, byte [eax + 2]
mov byte [ecx + edi + 0x1a0], al
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x48]
mov byte [edi + eax], 0
mov eax, dword [esi + 0x288]
mov byte [edi + eax + 0x250], 0
mov byte [esi + edi + 0x1f40], 0
mov eax, dword [esi + 0x288]
mov byte [edi + eax + 0x80], cl
mov eax, dword [esi + 0x288]
mov byte [edi + eax + 0xc0], 0
mov eax, dword [esi + 0x288]
mov byte [edi + eax + 0xe0], 0
mov ecx, dword [esi + 0x288]
mov al, byte [edx + 6]
mov byte [edi + ecx + 0xa0], al
jmp case.0x10085290.3
mov eax, dword [esp + 0x54]
movzx ecx, byte [eax + 2]
mov eax, 0x101
imul ecx, eax
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0x1a0], cx
xor ecx, ecx
mov eax, dword [esi + 0x288]
mov word [edi + eax], cx
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0x250], cx
xor eax, eax
imul ecx, dword [esp + 0x48], 0x101
mov word [esi + edi + 0x1f40], ax
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0x80], cx
xor ecx, ecx
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0xc0], cx
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0xe0], cx
mov eax, 0x101
movzx ecx, byte [edx + 6]
imul ecx, eax
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0xa0], cx
jmp case.0x10085290.3
mov eax, dword [esp + 0x54]
movzx eax, byte [eax + 2]
imul ecx, eax, 0x1010101
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x1a0], ecx
mov eax, dword [esi + 0x288]
imul ecx, dword [esp + 0x48], 0x1010101
mov dword [edi + eax], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x250], 0
mov dword [esi + edi + 0x1f40], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x80], ecx
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xc0], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xe0], 0
movzx eax, byte [edx + 6]
imul ecx, eax, 0x1010101
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xa0], ecx
jmp case.0x10085290.3
mov eax, dword [esp + 0x54]
push 0x1010101
push 0x1010101
movzx eax, byte [eax + 2]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [ecx + edi + 0x1a0], eax
mov dword [ecx + edi + 0x1a4], edx
mov eax, dword [esi + 0x288]
mov dword [edi + eax], 0
mov dword [edi + eax + 4], 0
mov eax, dword [esi + 0x288]
mov dword [edi + eax + 0x250], 0
mov dword [edi + eax + 0x254], 0
mov eax, dword [esp + 0x50]
cdq
push edx
mov dword [esi + edi + 0x1f40], 0
push eax
mov dword [esi + edi + 0x1f44], 0
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [edi + ecx + 0x80], eax
mov dword [edi + ecx + 0x84], edx
mov eax, dword [esi + 0x288]
mov dword [edi + eax + 0xc0], 0
mov dword [edi + eax + 0xc4], 0
mov eax, dword [esi + 0x288]
mov dword [edi + eax + 0xe0], 0
mov dword [edi + eax + 0xe4], 0
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 6]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov dword [edi + ecx + 0xa0], eax
mov dword [edi + ecx + 0xa4], edx
jmp case.0x10085290.3
mov eax, dword [esp + 0x54]
push 0x1010101
push 0x1010101
movzx eax, byte [eax + 2]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [ecx + eax + 0x1a0], edi
mov dword [ecx + eax + 0x1a4], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx + 0x1a8], edi
mov edi, ecx
mov dword [eax + edi + 0x1ac], edx
mov eax, dword [esi + 0x288]
mov dword [edi + eax], 0
mov dword [edi + eax + 4], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 8], 0
mov dword [eax + edi + 0xc], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x250], 0
mov dword [eax + edi + 0x254], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x258], 0
mov dword [eax + edi + 0x25c], 0
mov eax, dword [esp + 0x50]
cdq
mov dword [esi + edi + 0x1f40], 0
push edx
mov dword [esi + edi + 0x1f44], 0
mov dword [esi + edi + 0x1f48], 0
push eax
mov dword [esi + edi + 0x1f4c], 0
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [ecx + edi + 0x80], eax
mov dword [ecx + edi + 0x84], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0x88], eax
mov dword [ecx + edi + 0x8c], edx
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xc0], 0
mov dword [eax + edi + 0xc4], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xc8], 0
mov dword [eax + edi + 0xcc], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xe0], 0
mov dword [eax + edi + 0xe4], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xe8], 0
mov dword [eax + edi + 0xec], 0
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 6]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0xa0], eax
mov dword [ecx + edi + 0xa4], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0xa8], eax
mov dword [ecx + edi + 0xac], edx
jmp case.0x10085290.3
mov eax, dword [esp + 0x54]
push 0x1010101
push 0x1010101
movzx eax, byte [eax + 2]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [ecx + eax + 0x1a0], edi
mov dword [ecx + eax + 0x1a4], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx + 0x1a8], edi
mov dword [eax + ecx + 0x1ac], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x1b0], edi
mov dword [eax + ecx + 0x1b4], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x1b8], edi
mov dword [eax + ecx + 0x1bc], edx
mov eax, dword [esi + 0x288]
mov dword [ecx + eax], 0
mov dword [ecx + eax + 4], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 8], 0
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x10], 0
mov dword [eax + ecx + 0x14], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x18], 0
mov dword [eax + ecx + 0x1c], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x250], 0
mov dword [eax + ecx + 0x254], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x258], 0
mov dword [eax + ecx + 0x25c], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x260], 0
mov dword [eax + ecx + 0x264], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x268], 0
mov dword [eax + ecx + 0x26c], 0
mov eax, dword [esp + 0x50]
mov dword [esi + ecx + 0x1f40], 0
mov dword [esi + ecx + 0x1f44], 0
mov dword [esi + ecx + 0x1f48], 0
mov dword [esi + ecx + 0x1f4c], 0
cdq
mov dword [esi + ecx + 0x1f50], 0
mov dword [esi + ecx + 0x1f54], 0
push edx
mov dword [esi + ecx + 0x1f58], 0
push eax
mov dword [esi + ecx + 0x1f5c], 0
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
mov dword [ecx + eax + 0x80], edi
mov dword [ecx + eax + 0x84], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + eax + 0x88], edi
mov dword [ecx + eax + 0x8c], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x20]
mov dword [eax + ecx + 0x90], edi
mov dword [eax + ecx + 0x94], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x98], edi
mov dword [eax + ecx + 0x9c], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xc0], 0
mov dword [eax + ecx + 0xc4], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xc8], 0
mov dword [eax + ecx + 0xcc], 0
mov eax, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [eax + ecx + 0xd0], 0
mov dword [eax + ecx + 0xd4], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xd8], 0
mov dword [eax + ecx + 0xdc], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xe0], 0
mov dword [eax + ecx + 0xe4], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xe8], 0
mov dword [eax + ecx + 0xec], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xf0], 0
mov dword [eax + ecx + 0xf4], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xf8], 0
mov dword [eax + ecx + 0xfc], 0
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 6]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
mov dword [ecx + eax + 0xa0], edi
mov dword [ecx + eax + 0xa4], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + eax + 0xa8], edi
mov dword [ecx + eax + 0xac], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x20]
mov dword [eax + ecx + 0xb0], edi
mov dword [eax + ecx + 0xb4], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xb8], edi
mov dword [eax + ecx + 0xbc], edx
cmp dword [esp + 0x6c], 0
je case.0x10088fe2.3
mov eax, dword [esp + 0x88]
dec eax
cmp eax, 0x1f
ja case.0x10085a8f.3
movzx eax, byte [eax + 0x1008c294]
jmp dword [eax*4 + 0x1008c278]
mov eax, dword [esp + 0x5c]
mov byte [esi + eax + 0x248], 0
jmp case.0x10085a8f.3
mov eax, dword [esp + 0x5c]
xor ecx, ecx
mov word [esi + eax + 0x248], cx
jmp case.0x10085a8f.3
mov eax, dword [esp + 0x5c]
mov dword [esi + eax + 0x248], 0
jmp case.0x10085a8f.3
mov eax, dword [esp + 0x5c]
mov dword [esi + eax + 0x248], 0
mov dword [esi + eax + 0x24c], 0
jmp case.0x10085a8f.3
mov eax, dword [esp + 0x5c]
mov dword [esi + eax + 0x248], 0
mov dword [esi + eax + 0x24c], 0
mov dword [esi + eax + 0x250], 0
mov dword [esi + eax + 0x254], 0
jmp case.0x10085a8f.3
mov eax, dword [esp + 0x5c]
mov dword [esi + eax + 0x248], 0
mov dword [esi + eax + 0x24c], 0
mov dword [esi + eax + 0x250], 0
mov dword [esi + eax + 0x254], 0
mov dword [esi + eax + 0x258], 0
mov dword [esi + eax + 0x25c], 0
mov dword [esi + eax + 0x260], 0
mov dword [esi + eax + 0x264], 0
mov eax, dword [esp + 0x8c]
dec eax
cmp eax, 0x1f
ja case.0x10088fe2.3
movzx eax, byte [eax + 0x1008c2d0]
jmp dword [eax*4 + 0x1008c2b4]
mov eax, dword [esi + 0x288]
mov edx, dword [esp + 0x4c]
mov byte [eax + edx + 0x230], 0
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + 0xc]
cmp byte [eax + 0x2d2], 0
je case.0x10085bf5.3
cmp byte [eax + 0x2d3], 0
je case.0x10085bf5.3
mov edx, dword [esi + 0x10]
imul edx, dword [edi + 0x8ac]
mov eax, dword [esp + 0x3c]
dec eax
add edx, dword [esi + 0xc]
add edx, dword [edi + 0x6c0]
mov dword [esp + 0x34], edx
cmp eax, 0x1f
ja case.0x10085bf5.3
movzx eax, byte [eax + 0x1008c30c]
jmp dword [eax*4 + 0x1008c2f0]
mov eax, dword [esi + 0x288]
xor ecx, ecx
mov edx, dword [esp + 0x4c]
mov word [eax + edx + 0x230], cx
jmp case.0x10088fe2.3
mov eax, dword [esi + 0x288]
mov edx, dword [esp + 0x4c]
mov dword [eax + edx + 0x230], 0
jmp case.0x10088fe2.3
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x4c]
mov dword [eax + ecx + 0x230], 0
mov dword [eax + ecx + 0x234], 0
jmp case.0x10088fe2.3
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x4c]
mov dword [eax + ecx + 0x230], 0
mov dword [eax + ecx + 0x234], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x238], 0
mov dword [eax + ecx + 0x23c], 0
jmp case.0x10088fe2.3
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x4c]
mov dword [eax + ecx + 0x230], 0
mov dword [eax + ecx + 0x234], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x238], 0
mov dword [eax + ecx + 0x23c], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x240], 0
mov dword [eax + ecx + 0x244], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x248], 0
mov dword [eax + ecx + 0x24c], 0
jmp case.0x10088fe2.3
cmp byte [edi + 5], 0
je 0x10085d1b
mov eax, 1
jmp 0x10085e5d
mov eax, dword [esp + 0x44]
test eax, eax
je 0x10085d41
cmp byte [eax + 6], 0xff
jne 0x10085e5b
cmp byte [eax + 8], 0
jne 0x10085e5b
cmp byte [eax + 7], 0
jne 0x10085e5b
cmp byte [ecx + 0x378], 0
je 0x10085e5b
mov ecx, dword [esp + 0x40]
mov eax, ecx
cmp dword [esp + 0x3c], ecx
mov edi, dword [esp + 0x14]
cmovb eax, dword [esp + 0x3c]
cmp eax, 1
jbe 0x10085e5b
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x34], eax
mov ecx, dword [esi + 0x288]
mov eax, dword [esp + 0x94]
jle 0x10085e09
add ecx, dword [esp + 0x20]
mov dh, byte [ecx + 0x100]
cmp dword [esp + 0x78], eax
jle 0x10085df0
mov eax, dword [esp + 0x18]
mov dl, byte [esi + eax + 0x118]
test dh, dh
je 0x10085dc1
test dl, dl
je 0x10085db2
mov edx, 4
jmp 0x10085e38
cmp byte [esi + eax + 0x138], 4
sbb edx, edx
add edx, 3
jmp 0x10085e38
test dl, dl
je 0x10085dd3
cmp byte [ecx + 0x120], 4
sbb edx, edx
add edx, 3
jmp 0x10085e38
xor edx, edx
cmp byte [esi + eax + 0x138], 4
setge dl
xor eax, eax
cmp byte [ecx + 0x120], 4
setge al
xor edx, eax
jmp 0x10085e38
test dh, dh
je 0x10085dfb
mov edx, 3
jmp 0x10085e38
xor edx, edx
cmp byte [ecx + 0x120], 4
setge dl
jmp 0x10085e38
cmp dword [esp + 0x78], eax
jle 0x10085e33
mov eax, dword [esp + 0x18]
cmp byte [esi + eax + 0x118], 0
je 0x10085e24
mov edx, 3
jmp 0x10085e38
xor edx, edx
cmp byte [esi + eax + 0x138], 4
setge dl
jmp 0x10085e38
mov edx, 1
mov ecx, dword [esp + 0x2c]
lea edx, [edx + 0x581]
lea eax, [ecx + edx*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
mov edx, dword [esp + 0x24]
add esp, 8
jmp 0x10085e5d
xor eax, eax
cmp byte [edi + 5], 0
mov dword [esp + 0x58], eax
je 0x10085fe9
mov eax, dword [edx + 0xc]
mov dword [esp + 0x44], 0
mov cl, byte [eax + 0x37b]
mov byte [edi + 0x18], cl
inc cl
mov eax, dword [edx + 0xc]
mov byte [esp + 0x38], cl
mov al, byte [eax + 0x37c]
mov byte [edi + 0x19], al
inc al
mov word [edi + 0x14], 2
mov byte [edi + 0x17], 0
push dword [esi + 0xc]
mov byte [esp + 0x3d], al
lea eax, [esp + 0xdc]
push dword [esi + 0x10]
push dword [ebp + 0x18]
push dword [esp + 0x5c]
push dword [esp + 0x48]
push eax
lea eax, [esp + 0xf4]
push eax
lea eax, [esp + 0x2f4]
push eax
lea eax, [esi + 0x28c]
push eax
call fcn.1007b4f0
mov eax, dword [esp + 0x2fc]
lea ecx, [edi + 8]
mov dword [ecx], eax
add edi, 0xc
mov eax, dword [esp + 0x300]
push ecx
mov dword [edi], eax
mov eax, dword [esp + 0x44]
push dword [eax + 0xc]
call fcn.1007cab0
mov eax, dword [esp + 0x48]
push edi
push dword [eax + 0xc]
call fcn.1007cab0
mov edi, dword [esp + 0x54]
add esp, 0x34
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x1b0]
mov dword [esp + 0x24], edx
cmp edx, 4
jne 0x10087227
cmp dword [esp + 0x44], 0
je 0x1008721d
movsx eax, byte [ecx + 0x18]
xor edx, edx
cmp byte [ecx + 0x14], dl
push edi
push dword [esp + 0x1c]
setne dl
push eax
push 0
push edx
lea eax, [esi + 0x18]
mov dword [esp + 0x15c], edx
push eax
push dword [esi + 0x288]
call fcn.1008dc30
mov ecx, dword [esp + 0x48]
push 2
lea edx, [ecx + 0x3600]
add ecx, 0x1320
lea eax, [ecx + eax*8]
push eax
push edx
call fcn.100015c0
mov edx, eax
add esp, 0x28
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], edx
mov eax, dword [eax + 4]
cmp byte [eax + 0x18e], 0
je 0x10087227
mov eax, dword [esp + 0x14]
push edi
push dword [esp + 0x1c]
movsx eax, byte [eax + 0x18]
push eax
push 1
push dword [esp + 0x158]
lea eax, [esi + 0x18]
push eax
push dword [esi + 0x288]
call fcn.1008dc30
mov ecx, dword [esp + 0x48]
add eax, 0x26c
push 2
lea eax, [ecx + eax*8]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.100015c0
mov edx, dword [esp + 0x4c]
add esp, 0x28
jmp 0x10087229
test eax, eax
je 0x1008697f
push dword [esp + 0x24]
mov edi, dword [esp + 0x24]
lea eax, [esi + 0x18]
push dword [esp + 0x2c]
push edi
push dword [esp + 0x24]
push eax
push dword [esi + 0x288]
call fcn.1008d940
mov ecx, dword [esp + 0x44]
lea edx, [ecx + 0x3600]
add ecx, 0x1618
lea eax, [ecx + eax*4]
push eax
push edx
call fcn.10001920
mov edx, dword [esi + 0x288]
add esp, 0x20
push dword [esp + 0x24]
push dword [esp + 0x2c]
push edi
push dword [esp + 0x24]
test eax, eax
je 0x1008617d
lea ecx, [esi + 0x18]
push ecx
push edx
call fcn.10080ac0
mov ecx, dword [esp + 0x44]
add eax, 0x5b2
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
mov ecx, dword [esp + 0x34]
add esp, 0x20
add ecx, 0x18
test eax, eax
lea eax, [esi + 0x18]
mov dword [esp + 0x34], ecx
mov ecx, dword [esi + 0x288]
push dword [esp + 0x24]
push dword [esp + 0x2c]
push edi
push dword [esp + 0x24]
push eax
push ecx
je 0x100860bb
call fcn.100809f0
mov ecx, dword [esp + 0x44]
add eax, 0x5b8
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
add esp, 0x20
add al, 2
jmp 0x100860dc
call fcn.10080930
mov ecx, dword [esp + 0x44]
add eax, 0x5b5
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
add esp, 0x20
push dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
push dword [esp + 0x2c]
push edi
push dword [esp + 0x24]
mov byte [ecx], al
lea eax, [esi + 0x18]
push eax
push dword [esi + 0x288]
call fcn.10080840
mov ecx, dword [esp + 0x44]
add eax, 0x5bb
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
add esp, 0x20
test eax, eax
je 0x10086131
mov eax, dword [esp + 0x14]
mov edx, 0x19
mov cl, 6
mov byte [eax + edx], cl
jmp 0x10086339
push dword [esp + 0x24]
lea eax, [esi + 0x18]
push dword [esp + 0x2c]
push edi
push dword [esp + 0x24]
push eax
push dword [esi + 0x288]
call fcn.10080750
mov ecx, dword [esp + 0x44]
add eax, 0x5be
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
mov edx, 0x19
add esp, 0x20
lea ecx, [eax + 4]
mov eax, dword [esp + 0x14]
mov byte [eax + edx], cl
jmp 0x10086339
lea eax, [esi + 0x18]
push eax
push edx
call fcn.10080bb0
mov ecx, dword [esp + 0x44]
add eax, 0x5c1
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
add esp, 0x20
test eax, eax
je 0x100861c0
mov eax, dword [esp + 0x14]
lea ecx, [eax + 0x18]
mov byte [ecx], 4
mov dword [esp + 0x34], ecx
mov cl, 6
mov byte [eax + 0x19], 6
jmp 0x10086339
mov eax, dword [esp + 0x68]
xorps xmm0, xmm0
mov edx, dword [esi + 0x288]
movq qword [esp + 0x148], xmm0
mov dword [esp + 0x150], 0
cmp dword [esp + 0x34], eax
jle 0x10086229
cmp byte [edx + edi + 0xe0], 0
jne 0x10086229
movsx ecx, byte [edx + edi + 0x120]
lea eax, [ecx - 1]
cmp eax, 3
jae 0x10086208
inc dword [esp + ecx*4 + 0x144]
cmp byte [edx + edi + 0x100], 0
je 0x10086229
movsx ecx, byte [edx + edi + 0x140]
lea eax, [ecx - 1]
cmp eax, 3
jae 0x10086229
inc dword [esp + ecx*4 + 0x144]
mov eax, dword [esp + 0x94]
cmp dword [esp + 0x78], eax
jle 0x1008627d
mov ecx, dword [esp + 0x18]
add ecx, 0x18
add ecx, esi
cmp byte [ecx + 0xe0], 0
jne 0x1008627d
movsx edx, byte [ecx + 0x120]
lea eax, [edx - 1]
cmp eax, 3
jae 0x1008625e
inc dword [esp + edx*4 + 0x144]
cmp byte [ecx + 0x100], 0
je 0x1008627d
movsx ecx, byte [ecx + 0x140]
lea eax, [ecx - 1]
cmp eax, 3
jae 0x1008627d
inc dword [esp + ecx*4 + 0x144]
mov eax, dword [esp + 0x14c]
add eax, dword [esp + 0x150]
cmp dword [esp + 0x148], eax
jne 0x1008629b
mov edx, 1
jmp 0x100862b3
mov edx, 2
mov dword [esp + 0x148], 0
cmovl edx, dword [esp + 0x148]
mov eax, dword [esp + 0x14]
lea edx, [edx + 0x5c4]
mov ecx, dword [esp + 0x2c]
add eax, 0x18
mov dword [esp + 0x34], eax
mov byte [eax], 0
lea eax, [ecx + edx*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
mov ecx, dword [esp + 0x1c]
inc al
add esp, 8
mov byte [ecx + 0x19], al
mov cl, al
cmp al, 2
jne 0x10086339
push dword [esp + 0x24]
lea eax, [esi + 0x18]
push dword [esp + 0x2c]
push edi
push dword [esp + 0x24]
push eax
push dword [esi + 0x288]
call fcn.100809f0
mov ecx, dword [esp + 0x44]
add eax, 0x5c7
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
mov ecx, dword [esp + 0x34]
add esp, 0x20
add byte [ecx + 0x19], al
mov al, byte [ecx + 0x19]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x34], ecx
mov cl, al
push dword [esi + 0xc]
mov eax, dword [esp + 0x38]
inc cl
push dword [esi + 0x10]
mov byte [esp + 0x41], cl
push dword [ebp + 0x18]
mov al, byte [eax]
push dword [esp + 0x5c]
inc al
mov byte [esp + 0x48], al
lea eax, [esp + 0xdc]
push dword [esp + 0x48]
push eax
lea eax, [esp + 0xd0]
push eax
lea eax, [esp + 0x174]
push eax
lea eax, [esi + 0x28c]
push eax
call fcn.1007b4f0
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0x50]
add eax, 0xd3
shl eax, 4
add eax, ecx
push 7
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001720
mov ecx, dword [esp + 0x44]
add esp, 0x30
movzx edx, al
mov dword [esp + 0x68], edx
mov byte [ecx + 0x15], al
mov byte [ecx + 0x17], 0
cmp al, 7
jne 0x100864a5
cmp dword [esp + 0xb8], 1
mov byte [esp + 0x24], 0
jle 0x1008645b
lea eax, [esp + 0x158]
push 0
push eax
call fcn.1008dbf0
mov ecx, dword [esp + 0x34]
add eax, 0x57a
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
mov ecx, eax
add esp, 0x10
mov eax, dword [esp + 0x14]
add cl, byte [eax + 0x17]
mov dword [esp + 0x24], ecx
mov byte [eax + 0x17], cl
cmp cl, 1
jne 0x1008645b
cmp dword [esp + 0xb8], 2
mov dword [esp + 0x24], ecx
jle 0x1008645b
lea eax, [esp + 0x158]
push 1
push eax
call fcn.1008dbf0
mov ecx, dword [esp + 0x34]
add eax, 0x57a
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
mov ecx, dword [esp + 0x24]
add esp, 0x10
add byte [ecx + 0x17], al
mov al, byte [ecx + 0x17]
mov byte [esp + 0x24], al
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
mov eax, ecx
cmp dword [esp + 0x3c], ecx
cmovb eax, dword [esp + 0x3c]
cmp eax, 1
je 0x10086481
cmp byte [edx + 0x15], 6
mov dword [esp + 0x44], 0
je 0x10086489
mov dword [esp + 0x44], 1
mov eax, dword [esp + 0x68]
movzx ecx, byte [eax*2 + 0x10117728]
cmp ecx, 3
ja case.default.0x1008649e
jmp dword [ecx*4 + 0x1008c32c]
cmp byte [edx*2 + 0x10117728], 1
je 0x100864be
cmp byte [edx*2 + 0x10117729], 1
mov byte [esp + 0x24], 0
jne 0x1008645b
mov byte [ecx + 0x17], 1
cmp dword [esp + 0xb8], 2
mov byte [esp + 0x24], 1
jle 0x1008645b
lea eax, [esp + 0x158]
push 1
push eax
call fcn.1008dbf0
mov ecx, dword [esp + 0x34]
add eax, 0x57a
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
mov edx, dword [esp + 0x24]
add esp, 0x10
add al, byte [edx + 0x17]
mov byte [edx + 0x17], al
mov byte [esp + 0x24], al
cmp al, 2
jne 0x1008645f
cmp dword [esp + 0xb8], 3
mov byte [esp + 0x24], al
jle 0x1008645f
lea eax, [esp + 0x158]
push 2
push eax
call fcn.1008dbf0
mov ecx, dword [esp + 0x34]
add eax, 0x57a
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
mov edx, dword [esp + 0x24]
add esp, 0x10
add byte [edx + 0x17], al
mov al, byte [edx + 0x17]
mov byte [esp + 0x24], al
jmp 0x1008645f
mov eax, dword [esp + 0x24]
lea ecx, [edx + 8]
movzx eax, al
add eax, eax
push ecx
mov eax, dword [esp + eax*8 + 0x15c]
mov dword [ecx], eax
mov eax, dword [esp + 0x20]
push dword [eax + 0xc]
call fcn.1007cab0
add esp, 8
jmp 0x10086624
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0xc]
movsx eax, byte [edx + 0x18]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x44], edx
mov edx, 1
mov esi, dword [esp + 0x44]
lea eax, [eax + eax*8]
lea eax, [eax + 0xe0]
cmp dword [ecx + eax*4], 1
lea eax, [ecx + eax*4]
push ecx
push dword [esp + 0x44]
cmove esi, edx
push dword [esp + 0x44]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x7c]
push dword [esi + 0x10]
push dword [esi + 0xc]
push eax
call fcn.1007cb30
mov edx, dword [esp + 0x2c]
add esp, 0x18
mov dword [edx + 8], eax
mov eax, dword [esp + 0x68]
jmp 0x1008662c
mov eax, dword [esp + 0x24]
add edx, 8
movzx eax, al
xor ecx, ecx
add eax, eax
mov eax, dword [esp + eax*8 + 0x158]
mov dword [edx], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
cmp byte [eax + 0x10d], cl
mov eax, dword [esp + 0x2c]
sete cl
add eax, 0x33c0
push ecx
push eax
push edx
push esi
call fcn.1008e5e0
add esp, 0x10
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
movzx eax, byte [eax*2 + 0x10117729]
cmp eax, 3
ja case.default.0x1008663d
jmp dword [eax*4 + 0x1008c33c]
movzx eax, byte [edx + 0x17]
lea ecx, [edx + 0xc]
add eax, eax
push ecx
mov eax, dword [esp + eax*8 + 0x160]
mov dword [ecx], eax
mov eax, dword [esp + 0x20]
push dword [eax + 0xc]
call fcn.1007cab0
add esp, 8
jmp case.default.0x1008663d
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0xc]
movsx eax, byte [edx + 0x19]
push ecx
push dword [esp + 0x44]
push dword [esp + 0x44]
lea eax, [eax + eax*8]
push dword [esi + 0x10]
lea eax, [eax + 0xe0]
push dword [esi + 0xc]
lea edx, [ecx + eax*4]
xor eax, eax
cmp dword [edx], 1
push edx
sete al
or dword [esp + 0x5c], eax
call fcn.1007cb30
mov ecx, dword [esp + 0x2c]
add esp, 0x18
mov dword [ecx + 0xc], eax
jmp case.default.0x1008663d
mov eax, dword [esp + 0x14]
add edx, 0xc
xor ecx, ecx
movzx eax, byte [eax + 0x17]
add eax, eax
mov eax, dword [esp + eax*8 + 0x15c]
mov dword [edx], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
cmp byte [eax + 0x10d], cl
mov eax, dword [esp + 0x2c]
sete cl
add eax, 0x33c0
push ecx
push eax
push edx
push esi
call fcn.1008e5e0
add esp, 0x10
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 4]
cmp byte [eax + 0x18c], 0
je 0x10086826
mov eax, dword [esi + 0x288]
cmp byte [eax + edi + 0x100], 3
jb 0x10086717
mov edx, 1
jmp 0x10086729
xor edx, edx
cmp byte [eax + edi + 0x120], 6
mov eax, 3
cmove edx, eax
mov eax, dword [esp + 0x18]
cmp byte [esi + eax + 0x118], 3
jb 0x1008673e
mov ecx, 1
jmp 0x10086750
xor ecx, ecx
cmp byte [esi + eax + 0x138], 6
mov eax, 3
cmove ecx, eax
lea eax, [ecx + edx]
mov edx, dword [esp + 0x2c]
mov ecx, 5
cmp eax, ecx
cmovb ecx, eax
add ecx, 0x591
lea eax, [edx + ecx*4]
push eax
lea eax, [edx + 0x3600]
push eax
call fcn.10001920
add esp, 8
test eax, eax
je 0x10086822
mov ecx, dword [esp + 0x50]
mov eax, 1
shl eax, cl
test eax, 0x3bb80
je 0x100867fc
movzx eax, byte [ecx + 0x10117838]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x148], eax
add eax, 0x597
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
mov cl, 4
add esp, 8
sub cl, al
mov eax, dword [esp + 0x14]
mov byte [eax + 0x14], cl
cmp cl, 4
jne 0x10086804
mov eax, dword [esp + 0x148]
mov ecx, dword [esp + 0x2c]
add eax, 0x1e
shl eax, 5
add eax, ecx
push 0xf
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.100017f0
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov byte [ecx + 0x10], al
jmp 0x10086804
mov eax, dword [esp + 0x14]
mov byte [eax + 0x14], 3
mov eax, dword [esp + 0x2c]
add eax, 0x3600
push eax
call fcn.100019a0
mov ecx, dword [esp + 0x18]
add esp, 4
mov byte [ecx + 0x11], al
jmp 0x10085f13
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x14]
cmp byte [eax + 0x190], 0
je 0x1008696a
movsx eax, byte [ecx + 0x19]
imul eax, eax, 0xb8
mov eax, dword [eax + edx + 0x14]
movzx eax, byte [eax + 0xf8]
mov dword [esp + 0x64], eax
movsx eax, byte [ecx + 0x18]
mov ecx, dword [edx + 4]
imul eax, eax, 0xb8
movzx ecx, byte [ecx + 0x19c]
mov eax, dword [eax + edx + 0x14]
movzx eax, byte [eax + 0xf8]
mov dword [esp + 0x34], eax
mov eax, dword [edx + 0x51c]
movzx eax, byte [eax + 0xf8]
mov dword [esp + 0x148], eax
test ecx, ecx
jne 0x10086894
mov dword [esp + 0x38], ecx
jmp 0x100868d3
sub dword [esp + 0x34], eax
dec ecx
mov edx, 1
shl edx, cl
lea eax, [edx - 1]
and eax, dword [esp + 0x34]
and dword [esp + 0x34], edx
sub eax, dword [esp + 0x34]
cdq
xor eax, edx
sub eax, edx
mov edx, 1
shl edx, cl
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x148]
sub eax, dword [esp + 0x64]
lea ecx, [edx - 1]
and ecx, eax
and eax, edx
sub ecx, eax
mov eax, ecx
cdq
mov ecx, eax
mov eax, dword [esi + 0x288]
xor ecx, edx
sub ecx, edx
cmp byte [eax + edi + 0x100], 2
jae 0x100868fe
cmp byte [eax + edi + 0x120], 6
mov dword [esp + 0x64], 0x162c
jne 0x10086906
mov dword [esp + 0x64], 0x1630
mov eax, dword [esp + 0x18]
cmp byte [esi + eax + 0x118], 2
jae 0x10086922
cmp byte [esi + eax + 0x138], 6
je 0x10086922
xor edx, edx
jmp 0x10086927
mov edx, 4
xor eax, eax
mov esi, 0xc
cmp dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x2c]
cmove eax, esi
add eax, edx
add eax, dword [esp + 0x64]
add eax, ecx
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
mov ecx, dword [esp + 0x1c]
mov esi, 0x14
mov edx, ecx
add esp, 8
inc al
mov byte [esi + edx], al
mov esi, dword [esp + 0x70]
jmp 0x10085f13
mov esi, 0x14
mov edx, ecx
mov al, 2
mov byte [esi + edx], al
mov esi, dword [esp + 0x70]
jmp 0x10085f13
mov eax, dword [esp + 0x44]
mov byte [edi + 0x14], 0
test eax, eax
je 0x100869c2
mov cl, byte [eax + 6]
test cl, cl
jle 0x100869a4
lea eax, [edi + 0x18]
dec cl
mov edi, dword [esp + 0x20]
mov dword [esp + 0x60], eax
jmp 0x10086b40
cmp byte [eax + 8], 0
jne 0x100869b0
cmp byte [eax + 7], 0
je 0x100869c2
lea eax, [edi + 0x18]
xor cl, cl
mov edi, dword [esp + 0x20]
mov dword [esp + 0x60], eax
jmp 0x10086b40
push dword [esp + 0x24]
mov edi, dword [esp + 0x24]
lea eax, [esi + 0x18]
push dword [esp + 0x2c]
push edi
push dword [esp + 0x24]
push eax
push dword [esi + 0x288]
call fcn.10080bb0
mov ecx, dword [esp + 0x44]
lea edx, [ecx + 0x3600]
add ecx, 0x1680
lea eax, [ecx + eax*4]
push eax
push edx
call fcn.10001920
mov ecx, dword [esp + 0x34]
add esp, 0x20
add ecx, 0x18
test eax, eax
lea eax, [esi + 0x18]
mov dword [esp + 0x60], ecx
mov ecx, dword [esi + 0x288]
push dword [esp + 0x24]
push dword [esp + 0x2c]
push edi
push dword [esp + 0x24]
push eax
push ecx
je 0x10086a9a
call fcn.10080840
mov ecx, dword [esp + 0x78]
add eax, 0x5a3
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x44]
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
add esp, 0x20
test eax, eax
je 0x10086a5d
mov cl, 6
jmp 0x10086b3c
push dword [esp + 0x24]
lea eax, [esi + 0x18]
push dword [esp + 0x2c]
push edi
push dword [esp + 0x24]
push eax
push dword [esi + 0x288]
call fcn.10080750
mov ecx, dword [esp + 0x44]
add eax, 0x5af
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
lea ecx, [eax + 4]
jmp 0x10086b39
call fcn.10080ac0
mov ecx, dword [esp + 0x44]
add eax, 0x5a6
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
mov ecx, dword [esp + 0x80]
add esp, 0x20
test eax, eax
mov dword [esp + 0x7c], ecx
mov ecx, dword [esi + 0x288]
lea eax, [esi + 0x18]
push dword [esp + 0x24]
push dword [esp + 0x2c]
push edi
push dword [esp + 0x24]
push eax
push ecx
je 0x10086b11
call fcn.100809f0
mov ecx, dword [esp + 0x78]
add eax, 0x5ac
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x44]
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
add esp, 0x20
add al, 2
mov cl, al
jmp 0x10086b3c
call fcn.10080930
mov ecx, dword [esp + 0x78]
add eax, 0x5a9
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x44]
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
mov cl, al
add esp, 0x20
mov eax, dword [esp + 0x7c]
mov byte [eax], cl
mov eax, dword [esp + 0x14]
mov byte [esp + 0x39], 0xff
mov byte [eax + 0x19], 0xff
push dword [esi + 0xc]
mov eax, dword [esp + 0x64]
push dword [esi + 0x10]
push dword [ebp + 0x18]
mov al, byte [eax]
push dword [esp + 0x5c]
inc al
mov byte [esp + 0x48], al
lea eax, [esp + 0xd0]
push dword [esp + 0x48]
push eax
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0x1f4]
push eax
lea eax, [esi + 0x28c]
push eax
call fcn.1007b4f0
mov eax, dword [esp + 0x68]
add esp, 0x24
test eax, eax
je 0x10086ba7
cmp byte [eax + 7], 0
jne 0x10086c1c
cmp byte [eax + 8], 0
jne 0x10086bde
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0xc0]
and eax, 7
lea edx, [ecx + 0x3600]
add ecx, 0x15b0
lea eax, [ecx + eax*4]
push eax
push edx
call fcn.10001920
add esp, 8
test eax, eax
je 0x10086dd1
mov eax, dword [esp + 0x44]
test eax, eax
je 0x10086bea
cmp byte [eax + 7], 0
jne 0x10086c1c
cmp byte [eax + 8], 0
jne 0x10086c1c
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0xc0]
sar eax, 3
and eax, 1
lea edx, [ecx + 0x3600]
add ecx, 0x15c8
lea eax, [ecx + eax*4]
push eax
push edx
call fcn.10001920
add esp, 8
test eax, eax
jne 0x10086ca9
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov byte [eax + 0x15], 2
mov ecx, dword [ecx + 0xc]
movsx eax, byte [eax + 0x18]
push ecx
push dword [esp + 0x44]
add ecx, 0x380
push dword [esp + 0x44]
lea eax, [eax + eax*8]
push dword [esi + 0x10]
shl eax, 2
push dword [esi + 0xc]
mov dword [esp + 0x15c], eax
add eax, ecx
push eax
call fcn.1007cb30
mov ecx, dword [esp + 0x2c]
add esp, 0x18
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x40]
mov eax, ecx
cmp dword [esp + 0x3c], ecx
cmovb eax, dword [esp + 0x3c]
cmp eax, 1
je 0x10086c9c
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x148]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx + 0x380], 1
je 0x10086c9c
mov dword [esp + 0x44], 0
jmp 0x10086ed3
mov dword [esp + 0x44], 1
jmp 0x10086ed3
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0x2c]
sar eax, 4
and eax, 0xf
mov dword [esp + 0x44], 1
add eax, 0x574
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
add esp, 8
test eax, eax
je 0x10086da4
mov ecx, dword [esp + 0x14]
mov dl, 1
mov byte [ecx + 0x15], 1
mov byte [ecx + 0x17], 1
cmp dword [esp + 0xb0], 2
jle 0x10086d75
lea eax, [esp + 0x1d8]
push 1
push eax
call fcn.1008dbf0
mov ecx, dword [esp + 0x34]
add eax, 0x57a
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
mov ecx, dword [esp + 0x24]
mov edx, eax
add esp, 0x10
add dl, byte [ecx + 0x17]
mov byte [ecx + 0x17], dl
cmp dl, 2
jne 0x10086d75
cmp dword [esp + 0xb0], 3
jle 0x10086d75
lea eax, [esp + 0x1d8]
push 2
push eax
call fcn.1008dbf0
mov ecx, dword [esp + 0x34]
add eax, 0x57a
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
mov ecx, dword [esp + 0x24]
add esp, 0x10
add byte [ecx + 0x17], al
mov dl, byte [ecx + 0x17]
movzx eax, dl
add ecx, 8
add eax, eax
mov eax, dword [esp + eax*8 + 0x1d8]
mov dword [ecx], eax
cmp dl, 2
jae 0x10086ed3
mov eax, dword [esp + 0x1c]
push ecx
push dword [eax + 0xc]
call fcn.1007cab0
add esp, 8
jmp 0x10086ed3
mov eax, dword [esp + 0x14]
lea ecx, [eax + 8]
push ecx
mov byte [eax + 0x15], 0
mov byte [eax + 0x17], 0
mov eax, dword [esp + 0x1dc]
mov dword [ecx], eax
mov eax, dword [esp + 0x20]
push dword [eax + 0xc]
call fcn.1007cab0
add esp, 8
jmp 0x10086ed3
mov ecx, dword [esp + 0x14]
xor al, al
mov dword [esp + 0x44], 1
mov byte [ecx + 0x15], 3
mov byte [ecx + 0x17], 0
cmp dword [esp + 0xb0], 1
jle 0x10086e69
lea eax, [esp + 0x1d8]
push 0
push eax
call fcn.1008dbf0
mov ecx, dword [esp + 0x34]
add eax, 0x57a
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
mov ecx, dword [esp + 0x24]
add esp, 0x10
add al, byte [ecx + 0x17]
mov byte [ecx + 0x17], al
cmp al, 1
jne 0x10086e69
cmp dword [esp + 0xb0], 2
jle 0x10086e69
lea eax, [esp + 0x1d8]
push 1
push eax
call fcn.1008dbf0
mov ecx, dword [esp + 0x34]
add eax, 0x57a
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
mov ecx, dword [esp + 0x24]
add esp, 0x10
add byte [ecx + 0x17], al
mov al, byte [ecx + 0x17]
add ecx, 8
cmp dword [esp + 0xb0], 1
mov dword [esp + 0x148], ecx
jle 0x10086e8d
movzx eax, al
add eax, eax
mov eax, dword [esp + eax*8 + 0x1d8]
mov dword [ecx], eax
jmp 0x10086ea6
mov eax, dword [esp + 0x1d8]
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
push ecx
push dword [eax + 0xc]
call fcn.1007cab0
add esp, 8
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov eax, dword [eax + 0xc]
cmp byte [eax + 0x10d], cl
mov eax, dword [esp + 0x2c]
sete cl
add eax, 0x33c0
push ecx
push eax
push dword [esp + 0x150]
push esi
call fcn.1008e5e0
add esp, 0x10
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x50]
mov eax, dword [eax + 4]
movzx edx, byte [ecx + 0x10117770]
mov dword [esp + 0x148], edx
cmp byte [eax + 0x18b], 0
je 0x10086fc3
mov eax, 1
shl eax, cl
test eax, 0x33980
je 0x10086fc3
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 0x3600]
lea eax, [eax + edx*4]
mov dword [esp + 0x7c], ecx
add eax, 0x1510
push eax
push ecx
call fcn.10001920
add esp, 8
test eax, eax
je 0x10086fc3
mov ecx, dword [esp + 0x148]
mov eax, dword [esp + 0x2c]
push 3
lea eax, [eax + ecx*8]
add eax, 0x14e0
push eax
push dword [esp + 0x84]
call fcn.100015c0
mov ecx, dword [esp + 0x20]
mov byte [ecx + 0x12], al
mov eax, dword [esp + 0x5c]
movzx ecx, byte [eax + 0x10117838]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x154], ecx
lea eax, [eax + ecx*4]
add eax, 0x152c
push eax
push dword [esp + 0x8c]
call fcn.10001920
mov ecx, dword [esp + 0x28]
inc al
add esp, 0x14
mov byte [ecx + 0x1c], al
cmp al, 2
jne 0x10086fcb
mov eax, dword [esp + 0x148]
add eax, 0x1e
shl eax, 5
add eax, dword [esp + 0x2c]
push 0xf
push eax
push dword [esp + 0x84]
call fcn.100017f0
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov byte [ecx + 0x10], al
jmp 0x10086fcb
mov ecx, dword [esp + 0x14]
mov byte [ecx + 0x1c], 0
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x148], eax
cmp byte [eax + 0x1b4], 0
je 0x10087210
cmp byte [ecx + 0x1c], 0
jne 0x10087210
mov edx, dword [esp + 0x40]
mov eax, edx
cmp dword [esp + 0x3c], edx
mov edi, dword [esp + 0x20]
cmovb eax, dword [esp + 0x3c]
cmp eax, 2
jb 0x10087210
mov edx, dword [esp + 0x148]
cmp byte [edx + 0x10d], 0
jne 0x10087037
cmp byte [ecx + 0x15], 2
jne 0x10087037
movsx eax, byte [ecx + 0x18]
lea eax, [eax + eax*8]
cmp dword [edx + eax*4 + 0x380], 1
jg 0x10087210
mov eax, dword [esp + 0x94]
cmp dword [esp + 0x78], eax
jle 0x10087066
mov eax, dword [esp + 0x90]
sar eax, 1
push eax
mov eax, dword [esp + 0x1c]
add eax, 0xf9
add eax, esi
push eax
call fcn.1008d910
add esp, 8
test eax, eax
jne 0x1008709c
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x34], eax
jle 0x10087210
mov eax, dword [esp + 0x84]
sar eax, 1
push eax
mov eax, dword [esi + 0x288]
add eax, 0xe1
add eax, edi
push eax
call fcn.1008d910
add esp, 8
test eax, eax
je 0x10087210
lea eax, [esp + 0x98]
xorps xmm0, xmm0
push eax
mov eax, dword [esp + 0x18]
movlpd qword [esp + 0x9c], xmm0
movlpd qword [esp + 0xa4], xmm0
movsx eax, byte [eax + 0x18]
push eax
push dword [esp + 0x30]
push dword [esp + 0x30]
push dword [esp + 0xa0]
push dword [esp + 0x98]
push dword [esp + 0x58]
push dword [esp + 0x58]
push dword [ebp + 0x18]
push esi
call fcn.1008d640
mov eax, dword [esp + 0x3c]
add esp, 0x28
mov ecx, dword [esp + 0x1c]
movsx eax, byte [eax + 0x18]
add eax, eax
cmp dword [ecx + eax*8 + 0x7d4], 0
jne 0x1008715d
mov eax, dword [ecx + 0xc]
cmp byte [eax + 0x10d], 0
jne 0x1008715d
cmp byte [eax + 0x37d], 0
je 0x1008715d
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
or ecx, dword [esp + 0x98]
or eax, dword [esp + 0x9c]
or ecx, eax
je 0x1008715d
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x50]
add eax, 0x280
push 2
lea eax, [ecx + eax*8]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.100015c0
add esp, 0xc
jmp 0x1008717d
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x50]
add eax, 0x5e8
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
add esp, 8
mov ecx, dword [esp + 0x14]
mov byte [ecx + 0x16], al
cmp al, 2
jne 0x10085f13
lea eax, [esi + 0x3f100]
mov dword [esp + 0x44], 0
push eax
push dword [ecx + 8]
lea eax, [esp + 0xa0]
push eax
push dword [esp + 0x4c]
push dword [esp + 0x4c]
push esi
call fcn.1008d080
add esp, 0x18
cmp dword [esi + 0x3f134], 0
je 0x10085f0f
cmp dword [esi + 0x3f100], 3
mov ecx, dword [esp + 0x14]
jne 0x10087202
movzx eax, word [esi + 0x3f10c]
mov word [ecx + 0xc], ax
movzx eax, word [esi + 0x3f110]
mov word [ecx + 0xe], ax
movzx eax, word [esi + 0x3f114]
mov word [ecx + 0x10], ax
movzx eax, word [esi + 0x3f118]
mov word [ecx + 0x12], ax
jmp 0x10085f13
mov eax, 0xffff8000
mov word [ecx + 0xc], ax
jmp 0x10085f13
mov ecx, dword [esp + 0x14]
mov byte [ecx + 0x16], 0
jmp 0x10085f13
xor eax, eax
xor edx, edx
mov dword [esp + 0x24], edx
jmp 0x10087229
mov eax, edx
push dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
push edi
push dword [esp + 0x58]
mov dword [esp + 0x34], eax
mov al, byte [edx + eax*4 + 0x10117804]
push ecx
push esi
mov byte [ecx + 0x1b], al
call fcn.1008efe0
mov eax, dword [esp + 0x30]
add esp, 0x14
cmp dword [esi + 0x3f134], 1
push dword [esp + 0x14]
push dword [esp + 0x54]
push esi
jne 0x1008734a
mov eax, dword [eax + 0x888]
call eax
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0xc]
cmp byte [ecx + 0x33e], 0
jne 0x10087290
cmp byte [ecx + 0x33f], 0
je 0x100873f5
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp dword [esp + 0x58], ecx
setne cl
xor edx, edx
movzx eax, byte [eax + 0x15]
lea ecx, [ecx*4 + 2]
cmp eax, ecx
mov eax, dword [esp + 0x14]
setne dl
xor edi, edi
add edx, 2
movsx ecx, byte [eax + 0x18]
movzx eax, byte [eax + 4]
shl eax, 5
add ecx, eax
mov eax, dword [esp + 0x2c]
lea ecx, [edx + ecx*2]
mov edx, dword [esp + 0x14]
add ecx, dword [eax + 0x38c0]
mov dword [esp + 0x64], ecx
movzx eax, byte [edx + 0x1d]
mov word [esp + 0xc4], ax
movzx eax, word [edx + 0x1e]
mov word [esp + 0xc6], ax
mov eax, dword [esp + 0x1c]
movzx ecx, byte [edx + 4]
mov eax, dword [eax + 0xc]
mov cl, byte [eax + ecx + 0x328]
movzx eax, byte [edx + 7]
test cl, cl
cmove edi, eax
movzx eax, byte [edx + 0x1a]
mov dword [esp + 0x148], edi
xor edi, edi
test cl, cl
cmove edi, eax
cmp dword [esp + 0x6c], 0
mov dword [esp + 0x38], edi
je 0x10087374
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x4c]
add edi, 0x218
mov eax, dword [esi + 0x288]
add ecx, 0x200
add edi, esi
add eax, ecx
jmp 0x10087378
mov eax, dword [eax + 0x868]
call eax
add esp, 0xc
test eax, eax
je 0x10087273
or eax, 0xffffffff
pop edi
pop esi
mov ecx, dword [esp + 0x354]
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret
xor edi, edi
xor eax, eax
mov ecx, dword [esp + 0x1c]
push edi
push eax
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x28]
add eax, 0x1f8
add eax, esi
push eax
mov eax, dword [esi + 0x288]
add eax, 0x1e0
add eax, edi
push eax
push dword [ecx + 0x53c]
lea eax, [esp + 0xd8]
push dword [esp + 0x15c]
push eax
push dword [esp + 0x54]
movzx eax, byte [edx + 6]
push dword [esp + 0x70]
push eax
push dword [ecx + 0x8b4]
push dword [ecx + 0x8b0]
push dword [esi + 0x10]
push dword [esi + 0xc]
push dword [esp + 0x9c]
push dword [ecx + 0x8ac]
push dword [ecx + 0xb60]
push dword [esi + 0x3f124]
call fcn.10090a90
mov eax, dword [esp + 0x64]
add esp, 0x48
cmp dword [esp + 0x58], 0
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x854]
mov dword [esp + 0x38], eax
mov dl, byte [ecx + 0x15]
mov eax, dword [ecx + 8]
mov byte [esp + 0x33], dl
movzx edx, dl
mov dword [esp + 0x148], edx
mov dword [esp + 0x98], eax
je 0x100874ac
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x9c], eax
mov al, byte [ecx + 0x18]
inc al
movq xmm0, qword [esp + 0x98]
push dword [esp + 0x40]
mov byte [esp + 0xa4], al
mov al, byte [ecx + 0x19]
mov ecx, edx
push dword [esp + 0x40]
inc al
movq qword [esp + 0xf8], xmm0
mov edx, 1
mov byte [esp + 0xa9], al
mov eax, dword [esp + 0x58]
shl edx, cl
and dl, 0xbc
mov byte [esp + 0xaa], al
neg dl
sbb dl, dl
and dl, 2
cmp ecx, 6
sete al
or dl, al
mov byte [esp + 0xab], dl
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x100], eax
lea eax, [esp + 0xf8]
jmp 0x1008753b
mov al, byte [ecx + 0x18]
inc al
mov dword [esp + 0x9c], 0
cmp byte [ecx + 0x1c], 0
mov ecx, dword [esp + 0x40]
mov byte [esp + 0xa0], al
setne al
dec al
cmp edx, 2
mov edx, dword [esp + 0x3c]
mov byte [esp + 0xa1], al
mov eax, dword [esp + 0x50]
mov byte [esp + 0xa2], al
jne 0x100874fb
cmp edx, ecx
mov eax, ecx
cmovb eax, edx
cmp eax, 2
jb 0x100874fb
mov ah, 1
jmp 0x100874fd
xor ah, ah
cmp byte [esp + 0x33], 3
movq xmm0, qword [esp + 0x98]
setne al
movq qword [esp + 0x100], xmm0
dec al
and al, 2
or al, ah
mov byte [esp + 0xa3], al
mov eax, dword [esp + 0xa0]
push ecx
mov dword [esp + 0x10c], eax
lea eax, [esp + 0x104]
push edx
push dword [esi + 0xc]
push eax
mov eax, dword [esi + 0x10]
and eax, 0x1f
add eax, 0xa9
lea eax, [esi + eax*4]
push eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0xdc74]
call eax
mov eax, dword [esp + 0x54]
add esp, 0x14
dec eax
cmp eax, 0x1f
ja case.0x10087572.3
movzx eax, byte [eax + 0x1008c368]
jmp dword [eax*4 + 0x1008c34c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x48]
mov byte [esi + ecx + 0x98], al
mov al, byte [edx + 5]
mov byte [esi + ecx + 0xd8], al
mov byte [esi + ecx + 0xf8], 0
mov al, byte [edx + 6]
mov byte [esi + ecx + 0xb8], al
mov eax, dword [esp + 0x54]
mov byte [esi + ecx + 0x268], 0
mov byte [esi + ecx + 0x1f60], 0
mov al, byte [eax + 3]
mov byte [esi + ecx + 0x1b8], al
mov al, byte [edx + 0x14]
mov byte [esi + ecx + 0x118], al
mov eax, dword [esp + 0x24]
mov byte [esi + ecx + 0x178], al
mov eax, dword [esp + 0x28]
mov byte [esi + ecx + 0x198], al
mov al, byte [edx + 0x15]
mov byte [esi + ecx + 0x18], al
mov al, byte [edx + 0x18]
mov byte [esi + ecx + 0x138], al
mov al, byte [edx + 0x19]
mov byte [esi + ecx + 0x158], al
jmp 0x100880c8
mov edx, dword [esp + 0x14]
imul eax, dword [esp + 0x48], 0x101
mov ecx, dword [esp + 0x18]
mov word [esi + ecx + 0x98], ax
mov eax, 0x101
movzx ecx, byte [edx + 5]
imul ecx, eax
mov eax, dword [esp + 0x18]
mov word [esi + eax + 0xd8], cx
xor ecx, ecx
mov word [esi + eax + 0xf8], cx
mov eax, 0x101
movzx ecx, byte [edx + 6]
imul ecx, eax
mov eax, dword [esp + 0x18]
mov word [esi + eax + 0xb8], cx
xor ecx, ecx
mov word [esi + eax + 0x268], cx
mov word [esi + eax + 0x1f60], cx
mov eax, dword [esp + 0x54]
movzx ecx, byte [eax + 3]
mov eax, 0x101
imul ecx, eax
mov eax, dword [esp + 0x18]
mov word [esi + eax + 0x1b8], cx
mov eax, 0x101
movzx ecx, byte [edx + 0x14]
imul ecx, eax
mov eax, dword [esp + 0x18]
mov word [esi + eax + 0x118], cx
imul eax, dword [esp + 0x24], 0x101
mov ecx, dword [esp + 0x18]
mov word [esi + ecx + 0x178], ax
imul eax, dword [esp + 0x28], 0x101
mov word [esi + ecx + 0x198], ax
mov eax, 0x101
movzx ecx, byte [edx + 0x15]
imul ecx, eax
mov eax, dword [esp + 0x18]
mov word [esi + eax + 0x18], cx
mov eax, 0x101
movsx ecx, byte [edx + 0x18]
movzx ecx, cx
imul ecx, eax
mov eax, dword [esp + 0x18]
mov word [esi + eax + 0x138], cx
mov eax, 0x101
movzx ecx, byte [edx + 0x19]
imul ecx, eax
mov eax, dword [esp + 0x18]
mov word [esi + eax + 0x158], cx
jmp 0x100880c8
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, dword [esp + 0x48], 0x1010101
mov dword [esi + ecx + 0x98], eax
movzx eax, byte [edx + 5]
imul eax, eax, 0x1010101
mov dword [esi + ecx + 0xd8], eax
mov dword [esi + ecx + 0xf8], 0
movzx eax, byte [edx + 6]
imul eax, eax, 0x1010101
mov dword [esi + ecx + 0xb8], eax
mov eax, dword [esp + 0x54]
mov dword [esi + ecx + 0x268], 0
mov dword [esi + ecx + 0x1f60], 0
movzx eax, byte [eax + 3]
imul eax, eax, 0x1010101
mov dword [esi + ecx + 0x1b8], eax
movzx eax, byte [edx + 0x14]
imul eax, eax, 0x1010101
mov dword [esi + ecx + 0x118], eax
imul eax, dword [esp + 0x24], 0x1010101
mov dword [esi + ecx + 0x178], eax
imul eax, dword [esp + 0x28], 0x1010101
mov dword [esi + ecx + 0x198], eax
movzx eax, byte [edx + 0x15]
imul eax, eax, 0x1010101
mov dword [esi + ecx + 0x18], eax
movsx eax, byte [edx + 0x18]
imul eax, eax, 0x1010101
mov dword [esi + ecx + 0x138], eax
movzx eax, byte [edx + 0x19]
imul eax, eax, 0x1010101
mov dword [esi + ecx + 0x158], eax
jmp 0x100880c8
mov eax, dword [esp + 0x48]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x98], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0x9c], edx
movzx eax, byte [eax + 5]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0xd8], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0xdc], edx
mov dword [esi + ecx + 0xf8], 0
mov dword [esi + ecx + 0xfc], 0
movzx eax, byte [eax + 6]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0xb8], eax
mov eax, dword [esp + 0x5c]
mov dword [esi + ecx + 0xbc], edx
mov dword [esi + ecx + 0x268], 0
mov dword [esi + ecx + 0x26c], 0
mov dword [esi + ecx + 0x1f60], 0
mov dword [esi + ecx + 0x1f64], 0
movzx eax, byte [eax + 3]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x1b8], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0x1bc], edx
movzx eax, byte [eax + 0x14]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x118], eax
mov eax, dword [esp + 0x2c]
mov dword [esi + ecx + 0x11c], edx
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x178], eax
mov eax, dword [esp + 0x30]
mov dword [esi + ecx + 0x17c], edx
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
mov dword [esi + ecx + 0x198], eax
mov eax, dword [esp + 0x14]
mov dword [esi + ecx + 0x19c], edx
movzx eax, byte [eax + 0x15]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x18], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0x1c], edx
movsx eax, byte [eax + 0x18]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x138], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0x13c], edx
movzx eax, byte [eax + 0x19]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
mov dword [esi + ecx + 0x158], eax
mov dword [esi + ecx + 0x15c], edx
jmp case.0x10087572.3
mov eax, dword [esp + 0x48]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x98], eax
mov dword [esi + ecx + 0x9c], edx
mov dword [esi + ecx + 0xa0], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0xa4], edx
movzx eax, byte [eax + 5]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0xd8], eax
mov dword [esi + ecx + 0xdc], edx
mov dword [esi + ecx + 0xe0], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0xe4], edx
mov dword [esi + ecx + 0xf8], 0
mov dword [esi + ecx + 0xfc], 0
mov dword [esi + ecx + 0x100], 0
mov dword [esi + ecx + 0x104], 0
movzx eax, byte [eax + 6]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0xb8], eax
mov dword [esi + ecx + 0xbc], edx
mov dword [esi + ecx + 0xc0], eax
mov eax, dword [esp + 0x5c]
mov dword [esi + ecx + 0xc4], edx
mov dword [esi + ecx + 0x268], 0
mov dword [esi + ecx + 0x26c], 0
mov dword [esi + ecx + 0x270], 0
mov dword [esi + ecx + 0x274], 0
mov dword [esi + ecx + 0x1f60], 0
mov dword [esi + ecx + 0x1f64], 0
mov dword [esi + ecx + 0x1f68], 0
mov dword [esi + ecx + 0x1f6c], 0
movzx eax, byte [eax + 3]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x1b8], eax
mov dword [esi + ecx + 0x1bc], edx
mov dword [esi + ecx + 0x1c0], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0x1c4], edx
movzx eax, byte [eax + 0x14]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x118], eax
mov dword [esi + ecx + 0x11c], edx
mov dword [esi + ecx + 0x120], eax
mov eax, dword [esp + 0x2c]
mov dword [esi + ecx + 0x124], edx
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x178], eax
mov dword [esi + ecx + 0x17c], edx
mov dword [esi + ecx + 0x180], eax
mov eax, dword [esp + 0x30]
mov dword [esi + ecx + 0x184], edx
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x198], eax
mov dword [esi + ecx + 0x19c], edx
mov dword [esi + ecx + 0x1a0], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0x1a4], edx
movzx eax, byte [eax + 0x15]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x18], eax
mov dword [esi + ecx + 0x1c], edx
mov dword [esi + ecx + 0x20], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0x24], edx
movsx eax, byte [eax + 0x18]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x138], eax
mov dword [esi + ecx + 0x13c], edx
mov dword [esi + ecx + 0x140], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0x144], edx
movzx eax, byte [eax + 0x19]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
mov dword [esi + ecx + 0x158], eax
mov dword [esi + ecx + 0x15c], edx
mov dword [esi + ecx + 0x160], eax
mov dword [esi + ecx + 0x164], edx
jmp case.0x10087572.3
mov eax, dword [esp + 0x48]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x98], eax
mov dword [esi + ecx + 0x9c], edx
mov dword [esi + ecx + 0xa0], eax
mov dword [esi + ecx + 0xa4], edx
mov dword [esi + ecx + 0xa8], eax
mov dword [esi + ecx + 0xac], edx
mov dword [esi + ecx + 0xb0], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0xb4], edx
movzx eax, byte [eax + 5]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0xd8], eax
mov dword [esi + ecx + 0xdc], edx
mov dword [esi + ecx + 0xe0], eax
mov dword [esi + ecx + 0xe4], edx
mov dword [esi + ecx + 0xe8], eax
mov dword [esi + ecx + 0xec], edx
mov dword [esi + ecx + 0xf0], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0xf4], edx
mov dword [esi + ecx + 0xf8], 0
mov dword [esi + ecx + 0xfc], 0
mov dword [esi + ecx + 0x100], 0
mov dword [esi + ecx + 0x104], 0
mov dword [esi + ecx + 0x108], 0
mov dword [esi + ecx + 0x10c], 0
mov dword [esi + ecx + 0x110], 0
mov dword [esi + ecx + 0x114], 0
movzx eax, byte [eax + 6]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0xb8], eax
mov dword [esi + ecx + 0xbc], edx
mov dword [esi + ecx + 0xc0], eax
mov dword [esi + ecx + 0xc4], edx
mov dword [esi + ecx + 0xc8], eax
mov dword [esi + ecx + 0xcc], edx
mov dword [esi + ecx + 0xd0], eax
mov eax, dword [esp + 0x5c]
mov dword [esi + ecx + 0xd4], edx
mov dword [esi + ecx + 0x268], 0
mov dword [esi + ecx + 0x26c], 0
mov dword [esi + ecx + 0x270], 0
mov dword [esi + ecx + 0x274], 0
mov dword [esi + ecx + 0x278], 0
mov dword [esi + ecx + 0x27c], 0
mov dword [esi + ecx + 0x280], 0
mov dword [esi + ecx + 0x284], 0
mov dword [esi + ecx + 0x1f60], 0
mov dword [esi + ecx + 0x1f64], 0
mov dword [esi + ecx + 0x1f68], 0
mov dword [esi + ecx + 0x1f6c], 0
mov dword [esi + ecx + 0x1f70], 0
mov dword [esi + ecx + 0x1f74], 0
mov dword [esi + ecx + 0x1f78], 0
mov dword [esi + ecx + 0x1f7c], 0
movzx eax, byte [eax + 3]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x1b8], eax
mov dword [esi + ecx + 0x1bc], edx
mov dword [esi + ecx + 0x1c0], eax
mov dword [esi + ecx + 0x1c4], edx
mov dword [esi + ecx + 0x1c8], eax
mov dword [esi + ecx + 0x1cc], edx
mov dword [esi + ecx + 0x1d0], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0x1d4], edx
movzx eax, byte [eax + 0x14]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x118], eax
mov dword [esi + ecx + 0x11c], edx
mov dword [esi + ecx + 0x120], eax
mov dword [esi + ecx + 0x124], edx
mov dword [esi + ecx + 0x128], eax
mov dword [esi + ecx + 0x12c], edx
mov dword [esi + ecx + 0x130], eax
mov eax, dword [esp + 0x2c]
mov dword [esi + ecx + 0x134], edx
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x178], eax
mov dword [esi + ecx + 0x17c], edx
mov dword [esi + ecx + 0x180], eax
mov dword [esi + ecx + 0x184], edx
mov dword [esi + ecx + 0x188], eax
mov dword [esi + ecx + 0x18c], edx
mov dword [esi + ecx + 0x190], eax
mov eax, dword [esp + 0x30]
mov dword [esi + ecx + 0x194], edx
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x198], eax
mov dword [esi + ecx + 0x19c], edx
mov dword [esi + ecx + 0x1a0], eax
mov dword [esi + ecx + 0x1a4], edx
mov dword [esi + ecx + 0x1a8], eax
mov dword [esi + ecx + 0x1ac], edx
mov dword [esi + ecx + 0x1b0], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0x1b4], edx
movzx eax, byte [eax + 0x15]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x18], eax
mov dword [esi + ecx + 0x1c], edx
mov dword [esi + ecx + 0x20], eax
mov dword [esi + ecx + 0x24], edx
mov dword [esi + ecx + 0x28], eax
mov dword [esi + ecx + 0x2c], edx
mov dword [esi + ecx + 0x30], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0x34], edx
movsx eax, byte [eax + 0x18]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x138], eax
mov dword [esi + ecx + 0x13c], edx
mov dword [esi + ecx + 0x140], eax
mov dword [esi + ecx + 0x144], edx
mov dword [esi + ecx + 0x148], eax
mov dword [esi + ecx + 0x14c], edx
mov dword [esi + ecx + 0x150], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0x154], edx
movzx eax, byte [eax + 0x19]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
mov dword [esi + ecx + 0x158], eax
mov dword [esi + ecx + 0x15c], edx
mov dword [esi + ecx + 0x160], eax
mov dword [esi + ecx + 0x164], edx
mov dword [esi + ecx + 0x168], eax
mov dword [esi + ecx + 0x16c], edx
mov dword [esi + ecx + 0x170], eax
mov dword [esi + ecx + 0x174], edx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
dec eax
cmp eax, 0x1f
ja case.0x100880dd.3
movzx eax, byte [eax + 0x1008c3a4]
jmp dword [eax*4 + 0x1008c388]
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x48]
mov byte [eax + edi + 0x80], cl
mov ecx, dword [esi + 0x288]
mov al, byte [edx + 5]
mov byte [ecx + edi + 0xc0], al
mov eax, dword [esi + 0x288]
mov byte [eax + edi + 0xe0], 0
mov ecx, dword [esi + 0x288]
mov al, byte [edx + 6]
mov byte [ecx + edi + 0xa0], al
mov eax, dword [esi + 0x288]
mov byte [eax + edi + 0x250], 0
mov eax, dword [esp + 0x54]
mov byte [esi + edi + 0x1f40], 0
mov ecx, dword [esi + 0x288]
mov al, byte [eax + 2]
mov byte [ecx + edi + 0x1a0], al
mov ecx, dword [esi + 0x288]
mov al, byte [edx + 0x14]
mov byte [ecx + edi + 0x100], al
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x24]
mov byte [eax + edi + 0x160], cl
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x28]
mov byte [eax + edi + 0x180], cl
mov ecx, dword [esi + 0x288]
mov al, byte [edx + 0x15]
mov byte [edi + ecx], al
mov ecx, dword [esi + 0x288]
mov al, byte [edx + 0x18]
mov byte [ecx + edi + 0x120], al
mov ecx, dword [esi + 0x288]
mov al, byte [edx + 0x19]
mov byte [ecx + edi + 0x140], al
jmp case.0x100880dd.3
mov eax, dword [esi + 0x288]
imul ecx, dword [esp + 0x48], 0x101
mov word [eax + edi + 0x80], cx
mov eax, 0x101
movzx ecx, byte [edx + 5]
imul ecx, eax
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0xc0], cx
xor ecx, ecx
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0xe0], cx
mov eax, 0x101
movzx ecx, byte [edx + 6]
imul ecx, eax
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0xa0], cx
xor ecx, ecx
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0x250], cx
xor eax, eax
mov word [esi + edi + 0x1f40], ax
mov eax, dword [esp + 0x54]
movzx ecx, byte [eax + 2]
mov eax, 0x101
imul ecx, eax
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0x1a0], cx
mov eax, 0x101
movzx ecx, byte [edx + 0x14]
imul ecx, eax
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0x100], cx
mov eax, dword [esi + 0x288]
imul ecx, dword [esp + 0x24], 0x101
mov word [eax + edi + 0x160], cx
mov eax, dword [esi + 0x288]
imul ecx, dword [esp + 0x28], 0x101
mov word [eax + edi + 0x180], cx
mov eax, 0x101
movzx ecx, byte [edx + 0x15]
imul ecx, eax
mov eax, dword [esi + 0x288]
mov word [edi + eax], cx
mov eax, 0x101
movsx ecx, byte [edx + 0x18]
movzx ecx, cx
imul ecx, eax
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0x120], cx
mov eax, 0x101
movzx ecx, byte [edx + 0x19]
imul ecx, eax
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0x140], cx
jmp case.0x100880dd.3
mov eax, dword [esi + 0x288]
imul ecx, dword [esp + 0x48], 0x1010101
mov dword [eax + edi + 0x80], ecx
movzx eax, byte [edx + 5]
imul ecx, eax, 0x1010101
mov eax, dword [esi + 0x288]
mov dword [edi + eax + 0xc0], ecx
mov eax, dword [esi + 0x288]
mov dword [edi + eax + 0xe0], 0
movzx eax, byte [edx + 6]
imul ecx, eax, 0x1010101
mov eax, dword [esi + 0x288]
mov dword [edi + eax + 0xa0], ecx
mov eax, dword [esi + 0x288]
mov dword [edi + eax + 0x250], 0
mov eax, dword [esp + 0x54]
mov dword [esi + edi + 0x1f40], 0
movzx eax, byte [eax + 2]
imul ecx, eax, 0x1010101
mov eax, dword [esi + 0x288]
mov dword [edi + eax + 0x1a0], ecx
movzx eax, byte [edx + 0x14]
imul ecx, eax, 0x1010101
mov eax, dword [esi + 0x288]
mov dword [edi + eax + 0x100], ecx
mov eax, dword [esi + 0x288]
imul ecx, dword [esp + 0x24], 0x1010101
mov dword [edi + eax + 0x160], ecx
mov eax, dword [esi + 0x288]
imul ecx, dword [esp + 0x28], 0x1010101
mov dword [edi + eax + 0x180], ecx
movzx eax, byte [edx + 0x15]
imul ecx, eax, 0x1010101
mov eax, dword [esi + 0x288]
mov dword [edi + eax], ecx
movsx eax, byte [edx + 0x18]
imul ecx, eax, 0x1010101
mov eax, dword [esi + 0x288]
mov dword [edi + eax + 0x120], ecx
movzx eax, byte [edx + 0x19]
imul ecx, eax, 0x1010101
mov eax, dword [esi + 0x288]
mov dword [edi + eax + 0x140], ecx
jmp case.0x100880dd.3
mov eax, dword [esp + 0x48]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [ecx + edi + 0x80], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + edi + 0x84], edx
movzx eax, byte [eax + 5]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [edi + ecx + 0xc0], eax
mov dword [edi + ecx + 0xc4], edx
mov eax, dword [esi + 0x288]
mov dword [edi + eax + 0xe0], 0
mov dword [edi + eax + 0xe4], 0
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 6]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [edi + ecx + 0xa0], eax
mov dword [edi + ecx + 0xa4], edx
mov eax, dword [esi + 0x288]
mov dword [edi + eax + 0x250], 0
mov dword [edi + eax + 0x254], 0
mov eax, dword [esp + 0x5c]
mov dword [esi + edi + 0x1f40], 0
mov dword [esi + edi + 0x1f44], 0
movzx eax, byte [eax + 2]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [edi + ecx + 0x1a0], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + ecx + 0x1a4], edx
movzx eax, byte [eax + 0x14]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [edi + ecx + 0x100], eax
mov eax, dword [esp + 0x2c]
mov dword [edi + ecx + 0x104], edx
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [edi + ecx + 0x160], eax
mov eax, dword [esp + 0x30]
mov dword [edi + ecx + 0x164], edx
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov dword [edi + ecx + 0x180], eax
mov eax, dword [esp + 0x14]
mov dword [edi + ecx + 0x184], edx
push 0x1010101
push 0x1010101
movzx eax, byte [eax + 0x15]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [edi + ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + ecx + 4], edx
movsx eax, byte [eax + 0x18]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [edi + ecx + 0x120], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + ecx + 0x124], edx
movzx eax, byte [eax + 0x19]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov dword [edi + ecx + 0x140], eax
mov dword [edi + ecx + 0x144], edx
jmp case.0x100880dd.3
mov eax, dword [esp + 0x48]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [ecx + eax + 0x80], edi
mov dword [ecx + eax + 0x84], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx + 0x88], edi
mov edi, ecx
mov dword [eax + edi + 0x8c], edx
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 5]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [ecx + edi + 0xc0], eax
mov dword [ecx + edi + 0xc4], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0xc8], eax
mov dword [ecx + edi + 0xcc], edx
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xe0], 0
mov dword [eax + edi + 0xe4], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xe8], 0
mov dword [eax + edi + 0xec], 0
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 6]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [ecx + edi + 0xa0], eax
mov dword [ecx + edi + 0xa4], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0xa8], eax
mov dword [ecx + edi + 0xac], edx
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x250], 0
mov dword [eax + edi + 0x254], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x258], 0
mov dword [eax + edi + 0x25c], 0
mov eax, dword [esp + 0x5c]
mov dword [esi + edi + 0x1f40], 0
mov dword [esi + edi + 0x1f44], 0
mov dword [esi + edi + 0x1f48], 0
mov dword [esi + edi + 0x1f4c], 0
movzx eax, byte [eax + 2]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [ecx + edi + 0x1a0], eax
mov dword [ecx + edi + 0x1a4], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0x1a8], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + edi + 0x1ac], edx
movzx eax, byte [eax + 0x14]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [ecx + edi + 0x100], eax
mov dword [ecx + edi + 0x104], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0x108], eax
mov eax, dword [esp + 0x2c]
mov dword [ecx + edi + 0x10c], edx
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [ecx + edi + 0x160], eax
mov dword [ecx + edi + 0x164], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0x168], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + edi + 0x16c], edx
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [ecx + edi + 0x180], eax
mov dword [ecx + edi + 0x184], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0x188], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + edi + 0x18c], edx
movzx eax, byte [eax + 0x15]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [edi + ecx], eax
mov dword [edi + ecx + 4], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 8], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + edi + 0xc], edx
movsx eax, byte [eax + 0x18]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [ecx + edi + 0x120], eax
mov dword [ecx + edi + 0x124], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0x128], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + edi + 0x12c], edx
movzx eax, byte [eax + 0x19]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0x140], eax
mov dword [ecx + edi + 0x144], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0x148], eax
mov dword [ecx + edi + 0x14c], edx
jmp case.0x100880dd.3
mov eax, dword [esp + 0x48]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [ecx + eax + 0x80], edi
mov dword [ecx + eax + 0x84], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx + 0x88], edi
mov dword [eax + ecx + 0x8c], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x90], edi
mov dword [eax + ecx + 0x94], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x98], edi
mov dword [eax + ecx + 0x9c], edx
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 5]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [ecx + eax + 0xc0], edi
mov dword [ecx + eax + 0xc4], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + eax + 0xc8], edi
mov dword [ecx + eax + 0xcc], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx + 0xd0], edi
mov dword [eax + ecx + 0xd4], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xd8], edi
mov dword [eax + ecx + 0xdc], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xe0], 0
mov dword [eax + ecx + 0xe4], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xe8], 0
mov dword [eax + ecx + 0xec], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xf0], 0
mov dword [eax + ecx + 0xf4], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xf8], 0
mov dword [eax + ecx + 0xfc], 0
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 6]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
mov dword [ecx + eax + 0xa0], edi
mov dword [ecx + eax + 0xa4], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + eax + 0xa8], edi
mov dword [ecx + eax + 0xac], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x20]
mov dword [eax + ecx + 0xb0], edi
mov dword [eax + ecx + 0xb4], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xb8], edi
mov dword [eax + ecx + 0xbc], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x250], 0
mov dword [eax + ecx + 0x254], 0
mov eax, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [eax + ecx + 0x258], 0
mov dword [eax + ecx + 0x25c], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x260], 0
mov dword [eax + ecx + 0x264], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x268], 0
mov dword [eax + ecx + 0x26c], 0
mov eax, dword [esp + 0x5c]
mov dword [esi + ecx + 0x1f40], 0
mov dword [esi + ecx + 0x1f44], 0
mov dword [esi + ecx + 0x1f48], 0
mov dword [esi + ecx + 0x1f4c], 0
mov dword [esi + ecx + 0x1f50], 0
mov dword [esi + ecx + 0x1f54], 0
mov dword [esi + ecx + 0x1f58], 0
mov dword [esi + ecx + 0x1f5c], 0
movzx eax, byte [eax + 2]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [ecx + eax + 0x1a0], edi
mov dword [ecx + eax + 0x1a4], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + eax + 0x1a8], edi
mov dword [ecx + eax + 0x1ac], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx + 0x1b0], edi
mov dword [eax + ecx + 0x1b4], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x1b8], edi
mov dword [eax + ecx + 0x1bc], edx
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 0x14]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [ecx + eax + 0x100], edi
mov dword [ecx + eax + 0x104], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + eax + 0x108], edi
mov dword [ecx + eax + 0x10c], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx + 0x110], edi
mov dword [eax + ecx + 0x114], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x118], edi
mov dword [eax + ecx + 0x11c], edx
mov eax, dword [esp + 0x2c]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
mov dword [ecx + eax + 0x160], edi
mov dword [ecx + eax + 0x164], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + eax + 0x168], edi
mov dword [ecx + eax + 0x16c], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [eax + ecx + 0x170], edi
mov dword [eax + ecx + 0x174], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x178], edi
mov dword [eax + ecx + 0x17c], edx
mov eax, dword [esp + 0x30]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [ecx + eax + 0x180], edi
mov dword [ecx + eax + 0x184], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + eax + 0x188], edi
mov dword [ecx + eax + 0x18c], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx + 0x190], edi
mov dword [eax + ecx + 0x194], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x198], edi
mov dword [eax + ecx + 0x19c], edx
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 0x15]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [eax + ecx], edi
mov dword [eax + ecx + 4], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + eax + 8], edi
mov dword [ecx + eax + 0xc], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx + 0x10], edi
mov dword [eax + ecx + 0x14], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x18], edi
mov dword [eax + ecx + 0x1c], edx
mov eax, dword [esp + 0x1c]
movsx eax, byte [eax + 0x18]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [ecx + eax + 0x120], edi
mov dword [ecx + eax + 0x124], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + eax + 0x128], edi
mov dword [ecx + eax + 0x12c], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx + 0x130], edi
mov dword [eax + ecx + 0x134], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x138], edi
mov dword [eax + ecx + 0x13c], edx
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 0x19]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
mov dword [ecx + eax + 0x140], edi
mov dword [ecx + eax + 0x144], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + eax + 0x148], edi
mov dword [ecx + eax + 0x14c], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x20]
mov dword [eax + ecx + 0x150], edi
mov dword [eax + ecx + 0x154], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x158], edi
mov dword [eax + ecx + 0x15c], edx
cmp dword [esp + 0x6c], 0
je case.0x10088fe2.3
mov eax, dword [esp + 0x88]
dec eax
cmp eax, 0x1f
ja case.0x10088ede.3
movzx eax, byte [eax + 0x1008c3e0]
jmp dword [eax*4 + 0x1008c3c4]
mov eax, dword [esp + 0x5c]
mov byte [esi + eax + 0x248], 0
jmp case.0x10088ede.3
mov eax, dword [esp + 0x5c]
xor ecx, ecx
mov word [esi + eax + 0x248], cx
jmp case.0x10088ede.3
mov eax, dword [esp + 0x5c]
mov dword [esi + eax + 0x248], 0
jmp case.0x10088ede.3
mov eax, dword [esp + 0x5c]
mov dword [esi + eax + 0x248], 0
mov dword [esi + eax + 0x24c], 0
jmp case.0x10088ede.3
mov eax, dword [esp + 0x5c]
mov dword [esi + eax + 0x248], 0
mov dword [esi + eax + 0x24c], 0
mov dword [esi + eax + 0x250], 0
mov dword [esi + eax + 0x254], 0
jmp case.0x10088ede.3
mov eax, dword [esp + 0x5c]
mov dword [esi + eax + 0x248], 0
mov dword [esi + eax + 0x24c], 0
mov dword [esi + eax + 0x250], 0
mov dword [esi + eax + 0x254], 0
mov dword [esi + eax + 0x258], 0
mov dword [esi + eax + 0x25c], 0
mov dword [esi + eax + 0x260], 0
mov dword [esi + eax + 0x264], 0
mov eax, dword [esp + 0x8c]
dec eax
cmp eax, 0x1f
ja case.0x10088fe2.3
movzx eax, byte [eax + 0x1008c41c]
jmp dword [eax*4 + 0x1008c400]
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x4c]
mov byte [eax + ecx + 0x230], 0
jmp case.0x10088fe2.3
mov eax, dword [esi + 0x288]
xor edx, edx
mov ecx, dword [esp + 0x4c]
mov word [eax + ecx + 0x230], dx
jmp case.0x10088fe2.3
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x4c]
mov dword [eax + ecx + 0x230], 0
jmp case.0x10088fe2.3
mov byte [edi + 3], 1
jmp 0x1008903d
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0xc]
mov edi, dword [esp + 0x20]
test byte [eax + 0xe8], 1
je 0x1008905a
mov eax, dword [esp + 0x50]
movzx ecx, byte [eax + 0x10117770]
jmp 0x10089083
mov eax, dword [esi + 0x288]
movzx eax, byte [eax + edi]
movzx eax, byte [eax + 0x10117828]
add eax, 0x27
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
movzx eax, byte [esi + eax + 0x18]
movzx eax, byte [eax + 0x10117828]
add ecx, eax
mov eax, dword [esp + 0x2c]
shl ecx, 5
add ecx, eax
add eax, 0x3600
push 0xc
push ecx
push eax
mov dword [esp + 0x154], eax
call fcn.100017f0
mov cl, al
add esp, 0xc
mov eax, dword [esp + 0x14]
mov byte [esp + 0x33], cl
mov byte [eax + 8], cl
mov ecx, dword [esp + 0x54]
movzx edx, byte [ecx + 3]
movzx ecx, byte [ecx + 2]
add edx, ecx
cmp edx, 2
jb 0x100890fa
mov dl, byte [esp + 0x33]
lea ecx, [edx - 1]
cmp cl, 7
ja 0x100890fa
movzx eax, dl
add eax, 0xc9
shl eax, 4
add eax, dword [esp + 0x2c]
push 6
push eax
push dword [esp + 0x150]
call fcn.10001720
add esp, 0xc
lea ecx, [eax - 3]
mov eax, dword [esp + 0x14]
jmp 0x10089100
mov edi, dword [esp + 0x20]
xor cl, cl
cmp dword [esp + 0x6c], 0
mov esi, 0xd
mov edx, eax
mov byte [edx + esi], cl
mov esi, dword [esp + 0x70]
je 0x100892df
movzx ecx, byte [eax + 4]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
cmp byte [ecx + eax + 0x328], 0
je 0x1008914d
cmp dword [esp + 0x8c], 1
jne 0x10089149
cmp dword [esp + 0x88], 1
jne 0x10089149
mov edx, 1
jmp 0x10089164
xor edx, edx
jmp 0x10089164
mov ecx, dword [esp + 0x50]
mov edx, 1
shl edx, cl
and edx, 0x3ffb80
neg edx
sbb edx, edx
neg edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x68], edx
xor dword [esp + 0x68], 1
movzx ecx, byte [eax + 8]
imul eax, edx, 0xd
add ecx, 4
mov edx, dword [esp + 0x2c]
add ecx, eax
mov eax, 0xd
sub eax, dword [esp + 0x68]
shl ecx, 5
push eax
add ecx, edx
lea eax, [edx + 0x3600]
push ecx
push eax
call fcn.100017f0
mov edx, dword [esp + 0x20]
add esp, 0xc
mov byte [esp + 0x33], al
mov byte [edx + 9], al
mov byte [edx + 0xe], 0
cmp al, 0xd
jne 0x10089292
mov ecx, dword [esp + 0x2c]
push 7
lea eax, [ecx + 0xc90]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001720
add esp, 0xc
mov dword [esp + 0x38], 0x3e
lea edx, [eax + 1]
imul eax, edx, 0x56
sar eax, 8
mov dword [esp + 0x58], eax
lea ecx, [eax + eax*2]
sub edx, ecx
mov ecx, 0x3b
mov dword [esp + 0x64], edx
test eax, eax
je 0x1008923f
cmp dword [esp + 0x58], 2
mov eax, ecx
mov ecx, dword [esp + 0x2c]
cmove eax, dword [esp + 0x38]
add eax, edx
shl eax, 5
add eax, ecx
push 0xf
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.100017f0
mov edx, dword [esp + 0x20]
inc al
add esp, 0xc
mov ecx, 0x3b
cmp dword [esp + 0x58], 1
mov byte [edx + 0xf], al
jne 0x10089247
neg al
mov byte [edx + 0xf], al
jmp 0x10089247
mov edx, dword [esp + 0x14]
mov byte [edx + 0xf], 0
mov eax, dword [esp + 0x64]
test eax, eax
je 0x1008928c
cmp eax, 2
mov eax, dword [esp + 0x2c]
push 0xf
cmove ecx, dword [esp + 0x3c]
add ecx, dword [esp + 0x5c]
shl ecx, 5
add ecx, eax
add eax, 0x3600
push ecx
push eax
call fcn.100017f0
mov edx, dword [esp + 0x20]
inc al
add esp, 0xc
cmp dword [esp + 0x64], 1
mov byte [edx + 0x10], al
jne 0x100892e3
neg al
mov byte [edx + 0x10], al
jmp 0x100892e3
mov byte [edx + 0x10], 0
jmp 0x100892e3
mov eax, dword [esp + 0x54]
movzx ecx, byte [eax + 3]
movzx eax, byte [eax + 2]
add ecx, eax
cmp ecx, 2
jb 0x100892e3
mov al, byte [esp + 0x33]
cmp al, 1
jb 0x100892e3
cmp al, 8
ja 0x100892e3
mov ecx, dword [esp + 0x2c]
movzx eax, al
add eax, 0xc9
shl eax, 4
add eax, ecx
push 6
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001720
mov edx, dword [esp + 0x20]
add esp, 0xc
sub al, 3
mov byte [edx + 0xe], al
jmp 0x100892e3
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov word [edx + 0xb], 0
mov eax, dword [eax + 0xc]
cmp byte [eax + 0x10c], 0
je 0x1008940a
mov ecx, dword [esp + 0x40]
mov eax, ecx
cmp dword [esp + 0x3c], ecx
mov edi, dword [esp + 0x20]
cmova eax, dword [esp + 0x3c]
cmp eax, 0x10
ja 0x1008940a
mov eax, dword [esp + 0x3c]
add eax, ecx
cmp eax, 4
jb 0x1008940a
mov eax, dword [esp + 0x54]
movzx ecx, byte [eax + 3]
movzx eax, byte [eax + 2]
add eax, 0xfffffffe
add eax, ecx
cmp byte [edx + 8], 0
mov dword [esp + 0x58], eax
jne 0x100893b7
mov eax, dword [esi + 0x288]
xor cl, cl
cmp cl, byte [eax + edi + 0x250]
mov eax, dword [esp + 0x18]
sbb edx, edx
and edx, 4
cmp cl, byte [esi + eax + 0x268]
mov eax, dword [esp + 0x58]
sbb ecx, ecx
and ecx, 4
add ecx, 0x17f8
add ecx, dword [esp + 0x2c]
lea eax, [eax + eax*2]
add ecx, edx
lea eax, [ecx + eax*4]
push eax
mov eax, dword [esp + 0x30]
add eax, 0x3600
push eax
call fcn.10001920
add esp, 8
test eax, eax
je 0x100893b3
push dword [esp + 0x18]
mov eax, dword [esp + 0x20]
push edi
push dword [esp + 0x60]
mov eax, dword [eax + 0x894]
push 0
push dword [esp + 0x24]
push esi
call eax
add esp, 0x18
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x6c], 0
je 0x1008940a
cmp byte [edx + 9], 0
jne 0x1008940a
mov ecx, dword [esp + 0x2c]
xor al, al
cmp al, byte [edx + 0xb]
sbb eax, eax
and eax, 4
add eax, 0x184c
add eax, ecx
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
add esp, 8
test eax, eax
je 0x1008940a
push dword [esp + 0x18]
mov eax, dword [esp + 0x20]
push edi
push dword [esp + 0x60]
push dword [esp + 0x20]
mov eax, dword [eax + 0x898]
push esi
call eax
add esp, 0x14
mov edx, dword [esp + 0x14]
cmp byte [edx + 8], 0
jne 0x1008949d
cmp byte [edx + 0xb], 0
jne 0x100894a3
mov eax, dword [esp + 0x54]
movzx ecx, byte [eax + 3]
movzx eax, byte [eax + 2]
cmp eax, ecx
cmova ecx, eax
cmp ecx, 3
ja 0x1008949d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
cmp byte [eax + 0x189], 0
je 0x1008949d
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x50]
add eax, 0x556
lea eax, [ecx + eax*4]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.10001920
add esp, 8
test eax, eax
je 0x10089499
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
push 4
mov byte [eax + 8], 0xd
lea eax, [ecx + 0xd20]
push eax
lea eax, [ecx + 0x3600]
push eax
call fcn.100015c0
mov edx, dword [esp + 0x20]
add esp, 0xc
mov byte [edx + 0xd], al
jmp 0x1008949d
mov edx, dword [esp + 0x14]
cmp byte [edx + 0xb], 0
je 0x10089514
mov eax, dword [esi + 0x3f134]
test eax, eax
je 0x100894e7
mov ecx, dword [esp + 0x2c]
and eax, 1
lea eax, [eax + eax*2]
mov edi, dword [ecx + eax*4 + 0x3638]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x40]
imul eax, dword [esp + 0x3c]
mov dword [esp + 0x148], edi
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x20]
mov dword [ecx + 0x3638], eax
mov eax, dword [esp + 0x148]
jmp 0x100894ed
lea eax, [esi + 0x2bc0]
push dword [esp + 0x40]
push dword [esp + 0x40]
push dword [esp + 0x98]
push dword [esp + 0x90]
push 0
push edx
push eax
push esi
call fcn.1008e680
mov edx, dword [esp + 0x34]
add esp, 0x20
cmp dword [esp + 0x6c], 0
je 0x10089598
cmp byte [edx + 0xc], 0
je 0x10089598
mov eax, dword [esi + 0x3f134]
test eax, eax
je 0x10089568
mov ecx, dword [esp + 0x2c]
and eax, 1
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*4]
mov eax, dword [ecx + 0x3638]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x88]
imul eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x38]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x20]
mov dword [ecx + 0x3638], eax
mov eax, dword [esp + 0x38]
jmp 0x1008956e
lea eax, [esi + 0x33c0]
push dword [esp + 0x88]
mov ecx, dword [esp + 0xac]
push dword [esp + 0x90]
push ecx
push dword [esp + 0x8c]
push 1
push edx
push eax
push esi
call fcn.1008e680
add esp, 0x20
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
movzx ecx, byte [edx + 4]
mov eax, dword [eax + 0xc]
cmp byte [ecx + eax + 0x328], 0
je 0x100895c6
mov byte [edx + 7], 0
mov byte [edx + 0xa], 0
mov dword [esp + 0x28], 0x10117628
jmp 0x100896d0
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x50]
mov cl, byte [eax*4 + 0x101176c0]
mov eax, dword [esp + 0x1c]
mov byte [edx + 0xa], cl
mov eax, dword [eax + 0x53c]
mov al, byte [eax + esi*4 + 0x101176c0]
mov esi, dword [esp + 0x70]
mov byte [edx + 7], al
movzx eax, cl
mov ecx, dword [esp + 0x1c]
lea eax, [eax*8 + 0x10117628]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0xc]
cmp dword [eax + 0x374], 2
jne 0x100896d4
mov eax, dword [esp + 0x28]
mov al, byte [eax + 5]
mov byte [esp + 0x33], al
test al, al
je 0x100896d4
movzx edx, al
mov eax, dword [esi + 0x288]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x148], 8
movsx ecx, byte [eax + edi + 0x1a0]
xor edi, edi
movzx eax, byte [edx + 2]
cmp ecx, eax
mov eax, dword [esp + 0x18]
cmovge edi, dword [esp + 0x148]
movsx ecx, byte [esi + eax + 0x1b8]
movzx eax, byte [edx + 3]
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x38]
setge dl
lea eax, [eax + eax*2]
lea edx, [edx*8 + 0x1388]
add edx, dword [esp + 0x2c]
add edx, edi
lea ecx, [edx + eax*8]
mov eax, 2
cmp byte [esp + 0x33], al
cmovb eax, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x30]
push ecx
add eax, 0x3600
push eax
call fcn.100015c0
mov edx, dword [esp + 0x20]
mov edi, eax
add esp, 0xc
test edi, edi
je 0x100896d0
mov eax, dword [esp + 0x28]
mov cl, byte [eax + 6]
mov byte [edx + 0xa], cl
movzx ecx, cl
lea eax, [ecx*8 + 0x10117628]
sub edi, 1
jne 0x100896b7
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x1c]
cmp dword [esi + 0x3f134], 1
push edx
jne 0x100896f0
push dword [esp + 0x54]
mov eax, dword [ecx + 0x888]
push esi
call eax
add esp, 0xc
jmp 0x10089703
push dword [ebp + 0x18]
mov eax, dword [ecx + 0x864]
push dword [esp + 0x58]
push esi
call eax
add esp, 0x10
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
cmp byte [eax + 0x33e], 0
jne 0x10089720
cmp byte [eax + 0x33f], 0
je 0x100897c2
cmp dword [esp + 0x6c], 0
je 0x10089747
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x4c]
add edi, 0x218
mov eax, dword [esi + 0x288]
add ecx, 0x200
add edi, esi
add eax, ecx
jmp 0x1008974b
xor edi, edi
xor eax, eax
mov ecx, dword [esp + 0x14]
push edi
mov edi, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x20]
add edi, 0x1e0
add eax, 0x1f8
add eax, esi
push eax
mov eax, dword [esi + 0x288]
add eax, edi
push eax
push dword [edx + 0x53c]
movzx eax, byte [ecx + 7]
push eax
movzx eax, byte [ecx + 0xa]
push eax
push dword [esp + 0x6c]
movzx eax, byte [ecx + 4]
push dword [edx + 0x8b4]
mov ecx, dword [esp + 0x50]
push dword [edx + 0x8b0]
shl eax, 6
push dword [esi + 0x10]
add eax, dword [ecx + 0x38c0]
push dword [esi + 0xc]
push eax
push dword [edx + 0x8ac]
push dword [edx + 0xb60]
push dword [esi + 0x3f124]
call fcn.10090cb0
add esp, 0x40
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp byte [edx + 8], 0xd
movzx ecx, byte [edx + 8]
cmovne eax, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x40]
dec eax
cmp eax, 0x1f
ja case.0x100897f6.3
movzx eax, byte [eax + 0x1008c458]
jmp dword [eax*4 + 0x1008c43c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
add eax, esi
cmp dword [esp + 0x6c], 0
mov dword [esp + 0x68], eax
mov edi, eax
mov al, byte [ecx + 3]
mov byte [edi + 0x1b8], al
mov al, byte [ecx + 3]
mov byte [edi + 0x1d8], al
mov eax, dword [esp + 0x24]
mov byte [edi + 0x18], al
mov al, byte [edx + 0xb]
mov byte [edi + 0x268], al
mov eax, dword [esp + 0x48]
mov byte [edi + 0x98], al
mov eax, edi
mov byte [eax + 0xd8], 0
mov byte [eax + 0xf8], 1
mov al, byte [edx + 6]
mov byte [edi + 0xb8], al
je 0x10089862
mov al, byte [edx + 0xc]
mov byte [esp + 0x33], al
jmp 0x10089867
mov byte [esp + 0x33], 0
mov eax, dword [esp + 0x68]
mov dl, byte [esp + 0x33]
mov byte [eax + 0x1f60], dl
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
test byte [eax + 0xe8], 1
je 0x1008a440
mov eax, dword [esp + 0x68]
mov byte [eax + 0x118], 0
mov byte [eax + 0x138], 0xff
mov byte [eax + 0x158], 0xff
mov byte [eax + 0x178], 3
mov byte [eax + 0x198], 3
jmp 0x1008a440
mov eax, dword [esp + 0x18]
add eax, esi
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x28]
movzx ecx, byte [eax + 3]
mov eax, 0x101
imul ecx, eax
mov eax, dword [esp + 0x34]
mov word [eax + 0x1b8], cx
mov eax, dword [esp + 0x28]
movzx ecx, byte [eax + 3]
mov eax, 0x101
imul ecx, eax
mov eax, dword [esp + 0x34]
mov word [eax + 0x1d8], cx
imul eax, dword [esp + 0x24], 0x101
mov ecx, dword [esp + 0x34]
mov word [ecx + 0x18], ax
mov eax, 0x101
movzx ecx, byte [edx + 0xb]
imul ecx, eax
mov eax, dword [esp + 0x34]
mov word [eax + 0x268], cx
imul eax, dword [esp + 0x48], 0x101
mov ecx, dword [esp + 0x34]
mov word [ecx + 0x98], ax
xor eax, eax
mov word [ecx + 0xd8], ax
mov eax, 0x101
mov word [ecx + 0xf8], ax
movzx ecx, byte [edx + 6]
imul ecx, eax
cmp dword [esp + 0x6c], 0
mov eax, dword [esp + 0x34]
mov word [eax + 0xb8], cx
je 0x10089967
movzx eax, byte [edx + 0xc]
jmp 0x10089969
xor eax, eax
mov ecx, dword [esp + 0x34]
imul eax, eax, 0x101
mov word [ecx + 0x1f60], ax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
test byte [eax + 0xe8], 1
je case.0x100897f6.3
xor eax, eax
mov word [ecx + 0x118], ax
mov eax, 0xffff
mov word [ecx + 0x138], ax
mov word [ecx + 0x158], ax
mov eax, 0x303
mov word [ecx + 0x178], ax
mov word [ecx + 0x198], ax
jmp case.0x100897f6.3
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
add eax, esi
mov dword [esp + 0x58], eax
movzx eax, byte [ecx + 3]
mov edi, dword [esp + 0x58]
imul eax, eax, 0x1010101
mov dword [edi + 0x1b8], eax
movzx eax, byte [ecx + 3]
imul eax, eax, 0x1010101
mov dword [edi + 0x1d8], eax
imul eax, dword [esp + 0x24], 0x1010101
mov dword [edi + 0x18], eax
movzx eax, byte [edx + 0xb]
imul eax, eax, 0x1010101
mov dword [edi + 0x268], eax
imul eax, dword [esp + 0x48], 0x1010101
mov dword [edi + 0x98], eax
mov eax, edi
mov dword [eax + 0xd8], 0
mov dword [eax + 0xf8], 0x1010101
movzx eax, byte [edx + 6]
imul eax, eax, 0x1010101
cmp dword [esp + 0x6c], 0
mov dword [edi + 0xb8], eax
je 0x10089a50
movzx eax, byte [edx + 0xc]
jmp 0x10089a52
xor eax, eax
imul eax, eax, 0x1010101
mov dword [edi + 0x1f60], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
test byte [eax + 0xe8], 1
je 0x1008a440
mov eax, dword [esp + 0x58]
mov dword [eax + 0x118], 0
mov dword [eax + 0x138], 0xffffffff
mov dword [eax + 0x158], 0xffffffff
mov dword [eax + 0x178], 0x3030303
mov dword [eax + 0x198], 0x3030303
jmp 0x1008a440
mov eax, dword [esp + 0x18]
add eax, esi
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x28]
push 0x1010101
push 0x1010101
movzx eax, byte [eax + 3]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x34]
push 0x1010101
push 0x1010101
mov dword [ecx + 0x1b8], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + 0x1bc], edx
movzx eax, byte [eax + 3]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x34]
push 0x1010101
push 0x1010101
mov dword [ecx + 0x1d8], eax
mov eax, 0x1010101
mov dword [ecx + 0x1dc], edx
mul dword [esp + 0x2c]
mov ecx, eax
mov eax, 0x1010101
mul dword [esp + 0x2c]
add ecx, edx
mov edx, dword [esp + 0x3c]
mov dword [edx + 0x18], eax
mov eax, dword [esp + 0x1c]
mov dword [edx + 0x1c], ecx
movzx eax, byte [eax + 0xb]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x34]
push 0x1010101
push 0x1010101
mov dword [ecx + 0x268], eax
mov eax, dword [esp + 0x50]
mov dword [ecx + 0x26c], edx
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x34]
push 0x1010101
push 0x1010101
mov dword [ecx + 0x98], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 0x9c], edx
mov dword [ecx + 0xd8], 0
mov dword [ecx + 0xdc], 0
mov dword [ecx + 0xf8], 0x1010101
mov dword [ecx + 0xfc], 0x1010101
movzx eax, byte [eax + 6]
cdq
push edx
push eax
call fcn.100c4d20
cmp dword [esp + 0x6c], 0
mov ecx, dword [esp + 0x34]
mov dword [ecx + 0xb8], eax
mov dword [ecx + 0xbc], edx
je 0x10089bdf
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 0xc]
cdq
jmp 0x10089bf9
xorps xmm0, xmm0
movlpd qword [esp + 0x148], xmm0
mov edx, dword [esp + 0x14c]
mov eax, dword [esp + 0x148]
push 0x1010101
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x34]
mov dword [ecx + 0x1f60], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 0x1f64], edx
mov edx, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
test byte [eax + 0xe8], 1
je case.0x100897f6.3
mov dword [ecx + 0x118], 0
mov dword [ecx + 0x11c], 0
mov dword [ecx + 0x138], 0xffffffff
mov dword [ecx + 0x13c], 0xffffffff
mov dword [ecx + 0x158], 0xffffffff
mov dword [ecx + 0x15c], 0xffffffff
mov dword [ecx + 0x178], 0x3030303
mov dword [ecx + 0x17c], 0x3030303
mov dword [ecx + 0x198], 0x3030303
mov dword [ecx + 0x19c], 0x3030303
jmp case.0x100897f6.3
mov eax, dword [esp + 0x28]
push 0x1010101
push 0x1010101
movzx eax, byte [eax + 3]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
add ecx, esi
push 0x1010101
push 0x1010101
mov dword [esp + 0x3c], ecx
mov dword [ecx + 0x1b8], eax
mov dword [ecx + 0x1bc], edx
mov dword [ecx + 0x1c0], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + 0x1c4], edx
movzx eax, byte [eax + 3]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x34]
push 0x1010101
push 0x1010101
mov dword [ecx + 0x1d8], eax
mov dword [ecx + 0x1dc], edx
mov dword [ecx + 0x1e0], eax
mov eax, 0x1010101
mov dword [ecx + 0x1e4], edx
mul dword [esp + 0x2c]
mov ecx, eax
mov eax, 0x1010101
mul dword [esp + 0x2c]
add ecx, edx
mov edx, dword [esp + 0x3c]
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], ecx
mov dword [edx + 0x20], eax
mov eax, dword [esp + 0x1c]
mov dword [edx + 0x24], ecx
movzx eax, byte [eax + 0xb]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x34]
push 0x1010101
push 0x1010101
mov dword [ecx + 0x268], eax
mov dword [ecx + 0x26c], edx
mov dword [ecx + 0x270], eax
mov eax, dword [esp + 0x50]
mov dword [ecx + 0x274], edx
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x34]
push 0x1010101
push 0x1010101
mov dword [ecx + 0x98], eax
mov dword [ecx + 0x9c], edx
mov dword [ecx + 0xa0], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 0xa4], edx
mov dword [ecx + 0xd8], 0
mov dword [ecx + 0xdc], 0
mov dword [ecx + 0xe0], 0
mov dword [ecx + 0xe4], 0
mov dword [ecx + 0xf8], 0x1010101
mov dword [ecx + 0xfc], 0x1010101
mov dword [ecx + 0x100], 0x1010101
mov dword [ecx + 0x104], 0x1010101
movzx eax, byte [eax + 6]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x6c], 0
mov dword [ecx + 0xb8], eax
mov dword [ecx + 0xbc], edx
mov dword [ecx + 0xc0], eax
mov dword [ecx + 0xc4], edx
je 0x10089e33
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 0xc]
cdq
jmp 0x10089e4d
xorps xmm0, xmm0
movlpd qword [esp + 0x148], xmm0
mov edx, dword [esp + 0x14c]
mov eax, dword [esp + 0x148]
push 0x1010101
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x34]
mov dword [ecx + 0x1f60], eax
mov dword [ecx + 0x1f64], edx
mov dword [ecx + 0x1f68], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 0x1f6c], edx
mov edx, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
test byte [eax + 0xe8], 1
je case.0x100897f6.3
mov dword [ecx + 0x118], 0
mov dword [ecx + 0x11c], 0
mov dword [ecx + 0x120], 0
mov dword [ecx + 0x124], 0
mov dword [ecx + 0x138], 0xffffffff
mov dword [ecx + 0x13c], 0xffffffff
mov dword [ecx + 0x140], 0xffffffff
mov dword [ecx + 0x144], 0xffffffff
mov dword [ecx + 0x158], 0xffffffff
mov dword [ecx + 0x15c], 0xffffffff
mov dword [ecx + 0x160], 0xffffffff
mov dword [ecx + 0x164], 0xffffffff
mov dword [ecx + 0x178], 0x3030303
mov dword [ecx + 0x17c], 0x3030303
mov dword [ecx + 0x180], 0x3030303
mov dword [ecx + 0x184], 0x3030303
mov dword [ecx + 0x198], 0x3030303
mov dword [ecx + 0x19c], 0x3030303
mov dword [ecx + 0x1a0], 0x3030303
mov dword [ecx + 0x1a4], 0x3030303
jmp case.0x100897f6.3
mov eax, dword [esp + 0x28]
push 0x1010101
push 0x1010101
movzx eax, byte [eax + 3]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x1b8], eax
mov dword [esi + ecx + 0x1bc], edx
mov dword [esi + ecx + 0x1c0], eax
mov dword [esi + ecx + 0x1c4], edx
mov dword [esi + ecx + 0x1c8], eax
mov dword [esi + ecx + 0x1cc], edx
mov dword [esi + ecx + 0x1d0], eax
mov eax, dword [esp + 0x30]
mov dword [esi + ecx + 0x1d4], edx
movzx eax, byte [eax + 3]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x1d8], eax
mov dword [esi + ecx + 0x1dc], edx
mov dword [esi + ecx + 0x1e0], eax
mov dword [esi + ecx + 0x1e4], edx
mov dword [esi + ecx + 0x1e8], eax
mov dword [esi + ecx + 0x1ec], edx
mov dword [esi + ecx + 0x1f0], eax
mov eax, 0x1010101
mov dword [esi + ecx + 0x1f4], edx
mul dword [esp + 0x2c]
mov ecx, eax
mov eax, 0x1010101
mul dword [esp + 0x2c]
add ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esi + edx + 0x18], eax
mov dword [esi + edx + 0x1c], ecx
mov dword [esi + edx + 0x20], eax
mov dword [esi + edx + 0x24], ecx
mov dword [esi + edx + 0x28], eax
mov dword [esi + edx + 0x2c], ecx
mov dword [esi + edx + 0x30], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + edx + 0x34], ecx
movzx eax, byte [eax + 0xb]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x268], eax
mov dword [esi + ecx + 0x26c], edx
mov dword [esi + ecx + 0x270], eax
mov dword [esi + ecx + 0x274], edx
mov dword [esi + ecx + 0x278], eax
mov dword [esi + ecx + 0x27c], edx
mov dword [esi + ecx + 0x280], eax
mov eax, dword [esp + 0x50]
mov dword [esi + ecx + 0x284], edx
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
mov dword [esi + ecx + 0x98], eax
mov dword [esi + ecx + 0x9c], edx
mov dword [esi + ecx + 0xa0], eax
mov dword [esi + ecx + 0xa4], edx
mov dword [esi + ecx + 0xa8], eax
mov dword [esi + ecx + 0xac], edx
mov dword [esi + ecx + 0xb0], eax
mov eax, dword [esp + 0x14]
mov dword [esi + ecx + 0xb4], edx
mov dword [esi + ecx + 0xd8], 0
mov dword [esi + ecx + 0xdc], 0
mov dword [esi + ecx + 0xe0], 0
mov dword [esi + ecx + 0xe4], 0
mov dword [esi + ecx + 0xe8], 0
mov dword [esi + ecx + 0xec], 0
mov dword [esi + ecx + 0xf0], 0
mov dword [esi + ecx + 0xf4], 0
mov dword [esi + ecx + 0xf8], 0x1010101
mov dword [esi + ecx + 0xfc], 0x1010101
mov dword [esi + ecx + 0x100], 0x1010101
mov dword [esi + ecx + 0x104], 0x1010101
mov dword [esi + ecx + 0x108], 0x1010101
mov dword [esi + ecx + 0x10c], 0x1010101
mov dword [esi + ecx + 0x110], 0x1010101
push 0x1010101
mov dword [esi + ecx + 0x114], 0x1010101
movzx eax, byte [eax + 6]
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
cmp dword [esp + 0x6c], 0
mov ecx, dword [esp + 0x18]
mov dword [esi + ecx + 0xb8], eax
mov dword [esi + ecx + 0xbc], edx
mov dword [esi + ecx + 0xc0], eax
mov dword [esi + ecx + 0xc4], edx
mov dword [esi + ecx + 0xc8], eax
mov dword [esi + ecx + 0xcc], edx
mov dword [esi + ecx + 0xd0], eax
mov dword [esi + ecx + 0xd4], edx
je 0x1008a205
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 0xc]
cdq
jmp 0x1008a21f
xorps xmm0, xmm0
movlpd qword [esp + 0x148], xmm0
mov edx, dword [esp + 0x14c]
mov eax, dword [esp + 0x148]
push 0x1010101
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x18]
mov dword [esi + ecx + 0x1f60], eax
mov dword [esi + ecx + 0x1f64], edx
mov dword [esi + ecx + 0x1f68], eax
mov dword [esi + ecx + 0x1f6c], edx
mov dword [esi + ecx + 0x1f70], eax
mov dword [esi + ecx + 0x1f74], edx
mov dword [esi + ecx + 0x1f78], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0x1f7c], edx
mov eax, dword [eax + 0xc]
test byte [eax + 0xe8], 1
je 0x1008a438
mov dword [esi + ecx + 0x118], 0
mov dword [esi + ecx + 0x11c], 0
mov dword [esi + ecx + 0x120], 0
mov dword [esi + ecx + 0x124], 0
mov dword [esi + ecx + 0x128], 0
mov dword [esi + ecx + 0x12c], 0
mov dword [esi + ecx + 0x130], 0
mov dword [esi + ecx + 0x134], 0
mov dword [esi + ecx + 0x138], 0xffffffff
mov dword [esi + ecx + 0x13c], 0xffffffff
mov dword [esi + ecx + 0x140], 0xffffffff
mov dword [esi + ecx + 0x144], 0xffffffff
mov dword [esi + ecx + 0x148], 0xffffffff
mov dword [esi + ecx + 0x14c], 0xffffffff
mov dword [esi + ecx + 0x150], 0xffffffff
mov dword [esi + ecx + 0x154], 0xffffffff
mov dword [esi + ecx + 0x158], 0xffffffff
mov dword [esi + ecx + 0x15c], 0xffffffff
mov dword [esi + ecx + 0x160], 0xffffffff
mov dword [esi + ecx + 0x164], 0xffffffff
mov dword [esi + ecx + 0x168], 0xffffffff
mov dword [esi + ecx + 0x16c], 0xffffffff
mov dword [esi + ecx + 0x170], 0xffffffff
mov dword [esi + ecx + 0x174], 0xffffffff
mov dword [esi + ecx + 0x178], 0x3030303
mov dword [esi + ecx + 0x17c], 0x3030303
mov dword [esi + ecx + 0x180], 0x3030303
mov dword [esi + ecx + 0x184], 0x3030303
mov dword [esi + ecx + 0x188], 0x3030303
mov dword [esi + ecx + 0x18c], 0x3030303
mov dword [esi + ecx + 0x190], 0x3030303
mov dword [esi + ecx + 0x194], 0x3030303
mov dword [esi + ecx + 0x198], 0x3030303
mov dword [esi + ecx + 0x19c], 0x3030303
mov dword [esi + ecx + 0x1a0], 0x3030303
mov dword [esi + ecx + 0x1a4], 0x3030303
mov dword [esi + ecx + 0x1a8], 0x3030303
mov dword [esi + ecx + 0x1ac], 0x3030303
mov dword [esi + ecx + 0x1b0], 0x3030303
mov dword [esi + ecx + 0x1b4], 0x3030303
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x3c]
lea edi, [eax - 1]
mov dword [esp + 0x148], edi
cmp edi, 0x1f
mov edi, dword [esp + 0x20]
ja case.default.0x1008a469
mov eax, dword [esp + 0x148]
movzx eax, byte [eax + 0x1008c494]
jmp dword [eax*4 + 0x1008c478]
cmp dword [esp + 0x6c], 0
mov ecx, dword [esi + 0x288]
mov eax, dword [esp + 0x28]
mov al, byte [eax + 2]
mov byte [ecx + edi + 0x1a0], al
mov ecx, dword [esi + 0x288]
mov eax, dword [esp + 0x28]
mov al, byte [eax + 2]
mov byte [edi + ecx + 0x1c0], al
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x24]
mov byte [edi + eax], cl
mov ecx, dword [esi + 0x288]
mov al, byte [edx + 0xb]
mov byte [edi + ecx + 0x250], al
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x48]
mov byte [edi + eax + 0x80], cl
mov eax, dword [esi + 0x288]
mov byte [edi + eax + 0xc0], 0
mov eax, dword [esi + 0x288]
mov byte [edi + eax + 0xe0], 1
mov ecx, dword [esi + 0x288]
mov al, byte [edx + 6]
mov byte [edi + ecx + 0xa0], al
je 0x1008a4fe
mov al, byte [edx + 0xc]
jmp 0x1008a500
xor al, al
mov edx, dword [esp + 0x1c]
mov byte [esi + edi + 0x1f40], al
mov eax, dword [edx + 0xc]
test byte [eax + 0xe8], 1
je 0x1008a55d
mov eax, dword [esi + 0x288]
mov byte [edi + eax + 0x100], 0
mov eax, dword [esi + 0x288]
mov byte [edi + eax + 0x120], 0xff
mov eax, dword [esi + 0x288]
mov byte [edi + eax + 0x140], 0xff
mov eax, dword [esi + 0x288]
mov byte [edi + eax + 0x160], 3
mov eax, dword [esi + 0x288]
mov byte [edi + eax + 0x180], 3
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0xb], 0
je 0x1008a585
push dword [esp + 0x40]
push eax
push dword [esp + 0x20]
mov eax, dword [edx + 0x88c]
push edi
push esi
call eax
mov ecx, dword [esp + 0x28]
add esp, 0x14
cmp dword [esp + 0x6c], 0
je 0x1008b6c7
mov eax, dword [esp + 0x88]
dec eax
cmp eax, 0x1f
ja case.0x1008a5a8.3
movzx eax, byte [eax + 0x1008c4d0]
jmp dword [eax*4 + 0x1008c4b4]
movzx ecx, byte [ecx + 2]
mov eax, 0x101
imul ecx, eax
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0x1a0], cx
mov eax, dword [esp + 0x28]
movzx ecx, byte [eax + 2]
mov eax, 0x101
imul ecx, eax
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0x1c0], cx
mov eax, dword [esi + 0x288]
imul ecx, dword [esp + 0x24], 0x101
mov word [edi + eax], cx
mov eax, 0x101
movzx ecx, byte [edx + 0xb]
imul ecx, eax
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0x250], cx
mov eax, dword [esi + 0x288]
imul ecx, dword [esp + 0x48], 0x101
mov word [eax + edi + 0x80], cx
xor ecx, ecx
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0xc0], cx
mov ecx, 0x101
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0xe0], cx
mov eax, 0x101
movzx ecx, byte [edx + 6]
imul ecx, eax
cmp dword [esp + 0x6c], 0
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0xa0], cx
je 0x1008a673
movzx eax, byte [edx + 0xc]
jmp 0x1008a675
xor eax, eax
mov edx, dword [esp + 0x1c]
imul eax, eax, 0x101
mov word [esi + edi + 0x1f40], ax
mov eax, dword [edx + 0xc]
test byte [eax + 0xe8], 1
je 0x1008a55d
mov eax, dword [esi + 0x288]
xor ecx, ecx
mov word [eax + edi + 0x100], cx
mov ecx, 0xffff
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0x120], cx
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0x140], cx
mov ecx, 0x303
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0x160], cx
mov eax, dword [esi + 0x288]
mov word [eax + edi + 0x180], cx
jmp 0x1008a55d
movzx eax, byte [ecx + 2]
imul ecx, eax, 0x1010101
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x1a0], ecx
mov eax, dword [esp + 0x28]
movzx eax, byte [eax + 2]
imul ecx, eax, 0x1010101
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x1c0], ecx
mov eax, dword [esi + 0x288]
imul ecx, dword [esp + 0x24], 0x1010101
mov dword [edi + eax], ecx
movzx eax, byte [edx + 0xb]
imul ecx, eax, 0x1010101
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x250], ecx
mov eax, dword [esi + 0x288]
imul ecx, dword [esp + 0x48], 0x1010101
mov dword [eax + edi + 0x80], ecx
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xc0], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xe0], 0x1010101
movzx eax, byte [edx + 6]
imul ecx, eax, 0x1010101
cmp dword [esp + 0x6c], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xa0], ecx
je 0x1008a7a3
movzx eax, byte [edx + 0xc]
jmp 0x1008a7a5
xor eax, eax
mov edx, dword [esp + 0x1c]
imul eax, eax, 0x1010101
mov dword [esi + edi + 0x1f40], eax
mov eax, dword [edx + 0xc]
test byte [eax + 0xe8], 1
je 0x1008a55d
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x100], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x120], 0xffffffff
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x140], 0xffffffff
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x160], 0x3030303
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x180], 0x3030303
jmp 0x1008a55d
movzx eax, byte [ecx + 2]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [ecx + edi + 0x1a0], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + edi + 0x1a4], edx
movzx eax, byte [eax + 2]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [ecx + edi + 0x1c0], eax
mov eax, 0x1010101
mov dword [ecx + edi + 0x1c4], edx
mul dword [esp + 0x2c]
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, 0x1010101
mul dword [esp + 0x2c]
add edi, edx
mov edx, dword [esp + 0x28]
mov dword [edx + ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [edx + ecx + 4], edi
movzx eax, byte [eax + 0xb]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [ecx + edi + 0x250], eax
mov eax, dword [esp + 0x50]
mov dword [ecx + edi + 0x254], edx
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [ecx + edi + 0x80], eax
mov dword [ecx + edi + 0x84], edx
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xc0], 0
mov dword [eax + edi + 0xc4], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xe0], 0x1010101
mov dword [eax + edi + 0xe4], 0x1010101
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 6]
cdq
push edx
push eax
call fcn.100c4d20
cmp dword [esp + 0x6c], 0
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0xa0], eax
mov dword [ecx + edi + 0xa4], edx
je 0x1008a973
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 0xc]
cdq
jmp 0x1008a98d
xorps xmm0, xmm0
movlpd qword [esp + 0x148], xmm0
mov edx, dword [esp + 0x14c]
mov eax, dword [esp + 0x148]
push 0x1010101
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov dword [esi + edi + 0x1f40], eax
mov dword [esi + edi + 0x1f44], edx
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
test byte [eax + 0xe8], 1
je 0x1008a55d
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x100], 0
mov dword [eax + edi + 0x104], 0
mov eax, dword [esi + 0x288]
mov dword [edi + eax + 0x120], 0xffffffff
mov dword [edi + eax + 0x124], 0xffffffff
mov eax, dword [esi + 0x288]
mov dword [edi + eax + 0x140], 0xffffffff
mov dword [edi + eax + 0x144], 0xffffffff
mov eax, dword [esi + 0x288]
mov dword [edi + eax + 0x160], 0x3030303
mov dword [edi + eax + 0x164], 0x3030303
mov eax, dword [esi + 0x288]
mov dword [edi + eax + 0x180], 0x3030303
mov dword [edi + eax + 0x184], 0x3030303
jmp 0x1008a55d
movzx eax, byte [ecx + 2]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [ecx + eax + 0x1a0], edi
mov dword [ecx + eax + 0x1a4], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx + 0x1a8], edi
mov edi, ecx
mov dword [eax + edi + 0x1ac], edx
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 2]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [ecx + edi + 0x1c0], eax
mov dword [ecx + edi + 0x1c4], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0x1c8], eax
mov eax, 0x1010101
mov dword [ecx + edi + 0x1cc], edx
mul dword [esp + 0x2c]
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, 0x1010101
mul dword [esp + 0x2c]
add edi, edx
mov edx, dword [esp + 0x28]
mov dword [edx + ecx], eax
mov dword [edx + ecx + 4], edi
mov ecx, dword [esi + 0x288]
mov dword [ecx + edx + 8], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + edx + 0xc], edi
movzx eax, byte [eax + 0xb]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [ecx + edi + 0x250], eax
mov dword [ecx + edi + 0x254], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0x258], eax
mov eax, dword [esp + 0x50]
mov dword [ecx + edi + 0x25c], edx
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0x80], eax
mov dword [ecx + edi + 0x84], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0x88], eax
mov dword [ecx + edi + 0x8c], edx
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xc0], 0
mov dword [eax + edi + 0xc4], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xc8], 0
mov dword [eax + edi + 0xcc], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0xe0], 0x1010101
mov dword [eax + edi + 0xe4], 0x1010101
mov eax, dword [esi + 0x288]
push 0x1010101
push 0x1010101
mov dword [eax + edi + 0xe8], 0x1010101
mov dword [eax + edi + 0xec], 0x1010101
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 6]
cdq
push edx
push eax
call fcn.100c4d20
cmp dword [esp + 0x6c], 0
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0xa0], eax
mov dword [ecx + edi + 0xa4], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + edi + 0xa8], eax
mov dword [ecx + edi + 0xac], edx
je 0x1008ac5a
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 0xc]
cdq
jmp 0x1008ac74
xorps xmm0, xmm0
movlpd qword [esp + 0x148], xmm0
mov edx, dword [esp + 0x14c]
mov eax, dword [esp + 0x148]
push 0x1010101
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov dword [esi + edi + 0x1f40], eax
mov dword [esi + edi + 0x1f44], edx
mov dword [esi + edi + 0x1f48], eax
mov dword [esi + edi + 0x1f4c], edx
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
test byte [eax + 0xe8], 1
je 0x1008a55d
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x100], 0
mov dword [eax + edi + 0x104], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x108], 0
mov dword [eax + edi + 0x10c], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x120], 0xffffffff
mov dword [eax + edi + 0x124], 0xffffffff
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x128], 0xffffffff
mov dword [eax + edi + 0x12c], 0xffffffff
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x140], 0xffffffff
mov dword [eax + edi + 0x144], 0xffffffff
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x148], 0xffffffff
mov dword [eax + edi + 0x14c], 0xffffffff
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x160], 0x3030303
mov dword [eax + edi + 0x164], 0x3030303
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x168], 0x3030303
mov dword [eax + edi + 0x16c], 0x3030303
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x180], 0x3030303
mov dword [eax + edi + 0x184], 0x3030303
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x188], 0x3030303
mov dword [eax + edi + 0x18c], 0x3030303
jmp 0x1008a55d
movzx eax, byte [ecx + 2]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [ecx + eax + 0x1a0], edi
mov dword [ecx + eax + 0x1a4], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx + 0x1a8], edi
mov dword [eax + ecx + 0x1ac], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x1b0], edi
mov dword [eax + ecx + 0x1b4], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x1b8], edi
mov dword [eax + ecx + 0x1bc], edx
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 2]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [ecx + eax + 0x1c0], edi
mov dword [ecx + eax + 0x1c4], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + eax + 0x1c8], edi
mov dword [ecx + eax + 0x1cc], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx + 0x1d0], edi
mov dword [eax + ecx + 0x1d4], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x1d8], edi
mov dword [eax + ecx + 0x1dc], edx
mov eax, 0x1010101
mul dword [esp + 0x2c]
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, 0x1010101
mul dword [esp + 0x2c]
add edi, edx
mov edx, eax
mov eax, dword [esp + 0x28]
mov dword [eax + ecx], edx
mov dword [eax + ecx + 4], edi
mov ecx, dword [esi + 0x288]
mov dword [ecx + eax + 8], edx
mov dword [ecx + eax + 0xc], edi
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx + 0x10], edx
mov dword [eax + ecx + 0x14], edi
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x18], edx
mov dword [eax + ecx + 0x1c], edi
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 0xb]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
mov dword [ecx + eax + 0x250], edi
mov dword [ecx + eax + 0x254], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + eax + 0x258], edi
mov dword [ecx + eax + 0x25c], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [eax + ecx + 0x260], edi
mov dword [eax + ecx + 0x264], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x268], edi
mov dword [eax + ecx + 0x26c], edx
mov eax, dword [esp + 0x50]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x20]
push 0x1010101
push 0x1010101
mov dword [ecx + eax + 0x80], edi
mov dword [ecx + eax + 0x84], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + eax + 0x88], edi
mov dword [ecx + eax + 0x8c], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx + 0x90], edi
mov dword [eax + ecx + 0x94], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x98], edi
mov dword [eax + ecx + 0x9c], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xc0], 0
mov dword [eax + ecx + 0xc4], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xc8], 0
mov dword [eax + ecx + 0xcc], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xd0], 0
mov dword [eax + ecx + 0xd4], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xd8], 0
mov dword [eax + ecx + 0xdc], 0
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xe0], 0x1010101
mov dword [eax + ecx + 0xe4], 0x1010101
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xe8], 0x1010101
mov dword [eax + ecx + 0xec], 0x1010101
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xf0], 0x1010101
mov dword [eax + ecx + 0xf4], 0x1010101
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xf8], 0x1010101
mov dword [eax + ecx + 0xfc], 0x1010101
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 6]
cdq
push edx
push eax
call fcn.100c4d20
cmp dword [esp + 0x6c], 0
mov edi, eax
mov ecx, dword [esi + 0x288]
mov eax, dword [esp + 0x20]
mov dword [ecx + eax + 0xa0], edi
mov dword [ecx + eax + 0xa4], edx
mov ecx, dword [esi + 0x288]
mov dword [ecx + eax + 0xa8], edi
mov dword [ecx + eax + 0xac], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x20]
mov dword [eax + ecx + 0xb0], edi
mov dword [eax + ecx + 0xb4], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0xb8], edi
mov edi, ecx
mov dword [eax + edi + 0xbc], edx
je 0x1008b159
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 0xc]
cdq
jmp 0x1008b173
xorps xmm0, xmm0
movlpd qword [esp + 0x148], xmm0
mov edx, dword [esp + 0x14c]
mov eax, dword [esp + 0x148]
push 0x1010101
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov dword [esi + edi + 0x1f40], eax
mov dword [esi + edi + 0x1f44], edx
mov dword [esi + edi + 0x1f48], eax
mov dword [esi + edi + 0x1f4c], edx
mov dword [esi + edi + 0x1f50], eax
mov dword [esi + edi + 0x1f54], edx
mov dword [esi + edi + 0x1f58], eax
mov dword [esi + edi + 0x1f5c], edx
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
test byte [eax + 0xe8], 1
je 0x1008a55d
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x100], 0
mov dword [eax + edi + 0x104], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x108], 0
mov dword [eax + edi + 0x10c], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x110], 0
mov dword [eax + edi + 0x114], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x118], 0
mov dword [eax + edi + 0x11c], 0
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x120], 0xffffffff
mov dword [eax + edi + 0x124], 0xffffffff
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x128], 0xffffffff
mov dword [eax + edi + 0x12c], 0xffffffff
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x130], 0xffffffff
mov dword [eax + edi + 0x134], 0xffffffff
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x138], 0xffffffff
mov dword [eax + edi + 0x13c], 0xffffffff
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x140], 0xffffffff
mov dword [eax + edi + 0x144], 0xffffffff
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x148], 0xffffffff
mov dword [eax + edi + 0x14c], 0xffffffff
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x150], 0xffffffff
mov dword [eax + edi + 0x154], 0xffffffff
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x158], 0xffffffff
mov dword [eax + edi + 0x15c], 0xffffffff
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x160], 0x3030303
mov dword [eax + edi + 0x164], 0x3030303
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x168], 0x3030303
mov dword [eax + edi + 0x16c], 0x3030303
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x170], 0x3030303
mov dword [eax + edi + 0x174], 0x3030303
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x178], 0x3030303
mov dword [eax + edi + 0x17c], 0x3030303
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x180], 0x3030303
mov dword [eax + edi + 0x184], 0x3030303
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x188], 0x3030303
mov dword [eax + edi + 0x18c], 0x3030303
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x190], 0x3030303
mov dword [eax + edi + 0x194], 0x3030303
mov eax, dword [esi + 0x288]
mov dword [eax + edi + 0x198], 0x3030303
mov dword [eax + edi + 0x19c], 0x3030303
jmp 0x1008a55d
mov edx, dword [esp + 0x1c]
jmp 0x1008a55d
mov edx, dword [esp + 0x1c]
jmp 0x1008a561
mov al, byte [ecx + 9]
mov ecx, dword [esp + 0x5c]
mov byte [esi + ecx + 0x248], al
jmp case.0x1008a5a8.3
movzx ecx, byte [ecx + 9]
mov edx, 0x101
mov eax, dword [esp + 0x5c]
imul ecx, edx
mov word [esi + eax + 0x248], cx
jmp 0x1008b51d
movzx eax, byte [ecx + 9]
mov ecx, dword [esp + 0x5c]
imul eax, eax, 0x1010101
mov dword [esi + ecx + 0x248], eax
jmp case.0x1008a5a8.3
movzx eax, byte [ecx + 9]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x5c]
mov dword [esi + ecx + 0x248], eax
mov dword [esi + ecx + 0x24c], edx
jmp case.0x1008a5a8.3
movzx eax, byte [ecx + 9]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x5c]
mov dword [esi + ecx + 0x248], eax
mov dword [esi + ecx + 0x24c], edx
mov dword [esi + ecx + 0x250], eax
mov dword [esi + ecx + 0x254], edx
jmp case.0x1008a5a8.3
movzx eax, byte [ecx + 9]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x5c]
mov dword [esi + ecx + 0x248], eax
mov dword [esi + ecx + 0x24c], edx
mov dword [esi + ecx + 0x250], eax
mov dword [esi + ecx + 0x254], edx
mov dword [esi + ecx + 0x258], eax
mov dword [esi + ecx + 0x25c], edx
mov dword [esi + ecx + 0x260], eax
mov dword [esi + ecx + 0x264], edx
mov edx, 0x101
mov eax, dword [esp + 0x8c]
dec eax
cmp eax, 0x1f
ja case.0x1008b535.3
movzx eax, byte [eax + 0x1008c50c]
jmp dword [eax*4 + 0x1008c4f0]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x288]
mov edx, dword [esp + 0x4c]
mov al, byte [eax + 9]
mov byte [ecx + edx + 0x230], al
jmp case.0x1008b535.3
mov eax, dword [esp + 0x14]
movzx ecx, byte [eax + 9]
movzx eax, dx
mov edx, dword [esp + 0x4c]
imul ecx, eax
mov eax, dword [esi + 0x288]
mov word [eax + edx + 0x230], cx
jmp case.0x1008b535.3
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x4c]
movzx eax, byte [eax + 9]
imul ecx, eax, 0x1010101
mov eax, dword [esi + 0x288]
mov dword [eax + edx + 0x230], ecx
jmp case.0x1008b535.3
mov eax, dword [esp + 0x14]
push 0x1010101
push 0x1010101
movzx eax, byte [eax + 9]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, dword [esp + 0x4c]
mov dword [ecx + edi + 0x230], eax
mov dword [ecx + edi + 0x234], edx
jmp case.0x1008b535.3
mov eax, dword [esp + 0x14]
push 0x1010101
push 0x1010101
movzx eax, byte [eax + 9]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x4c]
mov dword [ecx + eax + 0x230], edi
mov dword [ecx + eax + 0x234], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x4c]
mov dword [eax + ecx + 0x238], edi
mov dword [eax + ecx + 0x23c], edx
jmp case.0x1008b535.3
mov eax, dword [esp + 0x14]
push 0x1010101
push 0x1010101
movzx eax, byte [eax + 9]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov eax, dword [esp + 0x4c]
mov dword [ecx + eax + 0x230], edi
mov dword [ecx + eax + 0x234], edx
mov eax, dword [esi + 0x288]
mov ecx, dword [esp + 0x4c]
mov dword [eax + ecx + 0x238], edi
mov dword [eax + ecx + 0x23c], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x240], edi
mov dword [eax + ecx + 0x244], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ecx + 0x248], edi
mov dword [eax + ecx + 0x24c], edx
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
cmp byte [eax + 0xc], 0
je 0x1008b6cb
push dword [esp + 0x40]
mov eax, dword [edi + 0x890]
push dword [esp + 0x40]
push dword [esp + 0x20]
push dword [esp + 0x2c]
push esi
call eax
add esp, 0x14
jmp 0x1008b6cb
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + 0xc]
test byte [eax + 0xe8], 1
jne 0x1008b6e4
cmp byte [eax + 0x1a3], 0
je 0x10085bac
push dword [esp + 0x40]
mov ecx, dword [edi + 0x854]
mov eax, dword [esp + 0x54]
push dword [esp + 0x40]
mov byte [esp + 0xaa], al
mov dword [esp + 0xa0], 0x80008000
mov dword [esp + 0xa4], 0
movq xmm0, qword [esp + 0xa0]
movq qword [esp + 0x118], xmm0
mov word [esp + 0xa8], 0xff00
mov byte [esp + 0xab], 0
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x120], eax
lea eax, [esp + 0x118]
push dword [esi + 0xc]
push eax
mov eax, dword [esi + 0x10]
and eax, 0x1f
add eax, 0xa9
lea eax, [esi + eax*4]
push eax
mov eax, dword [ecx + 0xdc74]
call eax
add esp, 0x14
jmp 0x10085bac
mov ecx, dword [esp + 0x40]
test ecx, ecx
je case.0x10085bf5.3
mov esi, dword [esp + 0x14]
nop
mov al, byte [esi + 4]
mov byte [edx], al
add edx, dword [edi + 0x8ac]
sub ecx, 1
jne 0x1008b780
jmp 0x1008b8f2
mov ecx, dword [esp + 0x40]
test ecx, ecx
je case.0x10085bf5.3
mov esi, dword [esp + 0x14]
mov dword [esp + 0x38], ecx
nop dword [eax]
movzx ecx, byte [esi + 4]
mov eax, 0x101
imul ecx, eax
mov word [edx], cx
add edx, dword [edi + 0x8ac]
sub dword [esp + 0x38], 1
jne 0x1008b7b0
jmp 0x1008b8f2
mov ecx, dword [esp + 0x40]
test ecx, ecx
je case.0x10085bf5.3
mov esi, dword [esp + 0x14]
movzx eax, byte [esi + 4]
imul eax, eax, 0x1010101
mov dword [edx], eax
add edx, dword [edi + 0x8ac]
sub ecx, 1
jne 0x1008b7e1
jmp 0x1008b8f2
mov ecx, dword [esp + 0x40]
test ecx, ecx
je case.0x10085bf5.3
mov esi, dword [esp + 0x14]
mov dword [esp + 0x38], ecx
movzx eax, byte [esi + 4]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x34]
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ecx, dword [edi + 0x8ac]
sub dword [esp + 0x38], 1
mov dword [esp + 0x34], ecx
jne 0x1008b811
jmp 0x1008b8f2
mov ecx, dword [esp + 0x40]
test ecx, ecx
je case.0x10085bf5.3
mov esi, dword [esp + 0x14]
mov dword [esp + 0x38], ecx
nop word [eax + eax]
movzx eax, byte [esi + 4]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x34]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add ecx, dword [edi + 0x8ac]
sub dword [esp + 0x38], 1
mov dword [esp + 0x34], ecx
jne 0x1008b860
jmp 0x1008b8f2
mov ecx, dword [esp + 0x40]
test ecx, ecx
je case.0x10085bf5.3
mov esi, dword [esp + 0x14]
mov dword [esp + 0x38], ecx
nop dword [eax + eax]
movzx eax, byte [esi + 4]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x34]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edx
add ecx, dword [edi + 0x8ac]
sub dword [esp + 0x38], 1
mov dword [esp + 0x34], ecx
jne 0x1008b8b0
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x14]
cmp byte [eax + 6], 0
jne 0x1008b9b2
mov ecx, dword [esp + 0x18]
or edx, 0xffffffff
mov eax, dword [esi + 0x3f124]
shr ecx, 1
lea eax, [eax + ecx*4]
mov ecx, 0x20
add eax, 0x504
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
sub ecx, eax
shr edx, cl
mov ecx, dword [esp + 0x20]
and ecx, 0xf
shl edx, cl
mov ecx, dword [esp + 0x20]
shr ecx, 4
mov dword [esp + 0x148], ecx
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x1008b9ae
mov esi, dword [esp + 0x38]
dec ecx
movzx edx, dx
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x148]
shr ecx, 1
inc ecx
cmp eax, 0x20
mov eax, dword [esp + 0x64]
lea edx, [esi + edx*2]
movzx eax, ax
mov esi, dword [esp + 0x70]
jne 0x1008b9a3
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x148]
add eax, 2
nop dword [eax]
or word [edx], di
lea edx, [edx + 4]
or word [eax], di
lea eax, [eax + 4]
sub ecx, 1
jne 0x1008b990
jmp 0x1008b9ae
or word [edx], ax
lea edx, [edx + 4]
sub ecx, 1
jne 0x1008b9a3
mov eax, dword [esp + 0x14]
cmp dword [esi + 0x3f134], 1
jne case.0x10083c11.3
cmp byte [eax + 3], 0
jne case.0x10083c11.3
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
test byte [eax + 0xe8], 1
je case.0x10083c11.3
mov ecx, dword [esp + 0x2c]
mov eax, dword [esi + 0x10]
sub eax, dword [ecx + 0x3620]
mov ecx, dword [edx + 0x8cc]
sar eax, cl
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x3650]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x44], eax
cmp byte [ecx + 0x14], 0
jne 0x1008be6d
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
cmp edi, eax
cmovb eax, edi
mov edi, dword [esp + 0x20]
cmp eax, 1
jbe 0x1008ba90
cmp byte [ecx + 0x15], 2
jne 0x1008ba5f
movsx eax, byte [ecx + 0x18]
cmp byte [eax + edx + 0x7a8], 0
je 0x1008ba5f
cmp byte [ecx + 0x16], 2
je 0x1008ba6e
movsx eax, byte [ecx + 0x18]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*8]
lea eax, [eax + 0xe0]
lea eax, [edx + eax*4]
jmp 0x1008ba74
cmp byte [ecx + 0x16], 2
jne 0x1008ba90
cmp dword [esi + 0x3f100], 1
jle 0x1008ba90
lea eax, [esi + 0x3f100]
push eax
movsx eax, byte [ecx + 0x18]
mov ecx, dword [esp + 0x48]
push dword [esp + 0x58]
lea eax, [ecx + eax*8]
push eax
push esi
call fcn.100806b0
add esp, 0x10
jmp 0x1008baf4
movsx ecx, byte [ecx + 0x18]
add edx, 0x7dc
mov eax, ecx
shl eax, 4
add eax, edx
push eax
mov eax, dword [esp + 0x18]
push 0
movsx eax, word [eax + 8]
push eax
push dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
push dword [esi + 0x10]
lea eax, [eax + ecx*8]
push eax
call fcn.1008df60
mov edx, dword [esp + 0x2c]
add esp, 0x18
cmp byte [edx + 0x16], 1
jne 0x1008baf8
push dword [esp + 0x90]
push dword [esp + 0x88]
push dword [esp + 0x20]
push edi
push dword [esp + 0x64]
push 0
push dword [esp + 0x5c]
push esi
call fcn.1008e0a0
add esp, 0x20
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x6c], 0
je case.0x10083c11.3
mov ecx, dword [esp + 0x3c]
cmp ecx, dword [esp + 0xac]
je 0x1008bb1e
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x40], eax
jne 0x1008bd35
mov eax, dword [esi + 0x10]
and eax, 0x1f
mov dword [esp + 0x24], 1
add eax, 0xa9
lea eax, [esi + eax*4]
mov dword [esp + 0x34], eax
cmp ecx, 1
jne 0x1008bb63
mov eax, dword [esi + 0xc]
mov dword [esp + 0x24], 0
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
cmp byte [eax + ecx*4 - 4], 0
mov ecx, dword [esp + 0x24]
setg cl
mov dword [esp + 0x24], ecx
jmp 0x1008bb67
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x148], ecx
cmp eax, dword [esp + 0x74]
jne 0x1008bba6
mov eax, dword [esi + 0xc]
mov dword [esp + 0x24], 0
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x34]
mov eax, dword [eax - 4]
cmp byte [eax + ecx*4 + 8], 0
mov ecx, dword [esp + 0x24]
cmovg ecx, dword [esp + 0x148]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x148], ecx
mov ecx, dword [esp + 0x3c]
cmp ecx, 1
jne 0x1008bbea
cmp eax, dword [esp + 0x74]
jne 0x1008bbea
mov eax, dword [esi + 0xc]
mov dword [esp + 0x24], 0
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x34]
mov eax, dword [eax - 4]
cmp byte [eax + ecx*4 - 4], 0
mov ecx, dword [esp + 0x24]
cmovg ecx, dword [esp + 0x148]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0x24], 0
je 0x1008bd35
mov edi, dword [esp + 0x1c]
cmp ecx, 1
jne 0x1008bc97
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x40], eax
jne 0x1008bc53
mov eax, dword [esi + 0xc]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x34]
mov eax, dword [eax - 4]
movsx edx, byte [eax + ecx*4 - 4]
lea ecx, [eax + ecx*4]
mov eax, edx
shl eax, 4
add eax, 0x7cc
add eax, edi
push eax
push dword [esp + 0x78]
movsx eax, word [ecx - 0xc]
push eax
mov eax, dword [esi + 0x10]
push dword [esp + 0x4c]
dec eax
push eax
mov eax, dword [esp + 0x58]
lea eax, [eax + edx*8]
add eax, 0xfffffffc
push eax
call fcn.1008df60
add esp, 0x18
mov eax, dword [esi + 0xc]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
movsx edx, byte [eax + ecx*4 - 4]
lea ecx, [eax + ecx*4]
mov eax, edx
shl eax, 4
add eax, 0x7cc
add eax, edi
push eax
push dword [esp + 0x78]
movsx eax, word [ecx - 0xc]
push eax
mov eax, dword [esp + 0x50]
push dword [esp + 0x4c]
push dword [esi + 0x10]
lea eax, [eax + edx*8]
add eax, 0xfffffffc
push eax
call fcn.1008df60
add esp, 0x18
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x40], eax
jne 0x1008bce7
mov eax, dword [esi + 0xc]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x34]
mov eax, dword [eax - 4]
movsx edx, byte [eax + ecx*4 + 8]
lea ecx, [eax + ecx*4]
mov eax, edx
shl eax, 4
add eax, 0x7cc
add eax, edi
push eax
push dword [esp + 0x78]
movsx eax, word [ecx]
push eax
mov eax, dword [esi + 0x10]
push dword [esp + 0x4c]
dec eax
push eax
mov eax, dword [esp + 0x58]
lea eax, [eax + edx*8]
add eax, 0xfffffffc
push eax
call fcn.1008df60
add esp, 0x18
mov edx, dword [esp + 0x14]
movsx ecx, byte [edx + 0x18]
mov eax, ecx
shl eax, 4
add eax, 0x7dc
add eax, edi
push eax
push dword [esp + 0x78]
movsx eax, word [edx + 8]
push eax
mov eax, dword [esp + 0x50]
push dword [esp + 0x4c]
push dword [esi + 0x10]
lea eax, [eax + ecx*8]
add eax, 4
push eax
call fcn.1008df60
add esp, 0x18
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x354]
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x88]
cmp dword [esp + 0x8c], eax
mov ecx, dword [esp + 0x1c]
cmovl eax, dword [esp + 0x8c]
cmp eax, 1
jle 0x1008bdcf
cmp byte [edx + 0x15], 2
jne 0x1008bd86
movsx eax, byte [edx + 0x18]
cmp byte [eax + ecx + 0x7a8], 0
je 0x1008bd86
cmp byte [edx + 0x16], 2
je 0x1008bd95
movsx eax, byte [edx + 0x18]
lea ecx, [eax + eax*8]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
lea eax, [eax + ecx*4]
add eax, 0x380
jmp 0x1008bd9b
cmp byte [edx + 0x16], 2
jne 0x1008bdcf
cmp dword [esi + 0x3f100], 1
jle 0x1008bdcf
lea eax, [esi + 0x3f100]
push eax
movsx eax, byte [edx + 0x18]
push dword [esp + 0x58]
lea eax, [eax*8 + 4]
add eax, dword [esp + 0x4c]
push eax
push esi
call fcn.100805b0
add esp, 0x10
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x354]
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret
movsx edx, byte [edx + 0x18]
add ecx, 0x7dc
mov eax, edx
shl eax, 4
add eax, ecx
xor ecx, ecx
push eax
mov eax, dword [esp + 0x18]
push dword [esp + 0x78]
movsx eax, word [eax + 8]
push eax
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x80]
sete cl
shl eax, cl
mov ecx, dword [esp + 0x80]
push eax
mov eax, dword [esi + 0x10]
not ecx
and eax, ecx
push eax
mov eax, dword [esp + 0x58]
lea eax, [eax + edx*8]
add eax, 4
push eax
call fcn.1008df60
mov eax, dword [esp + 0x2c]
add esp, 0x18
cmp byte [eax + 0x16], 1
jne case.0x10083c11.3
push dword [esp + 0x90]
push dword [esp + 0x88]
push dword [esp + 0x20]
push edi
push dword [esp + 0x64]
push 1
push dword [esp + 0x5c]
push esi
call fcn.1008e0a0
add esp, 0x20
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x354]
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x1c]
lea eax, [ecx + 0x18]
lea edx, [ecx + 8]
mov dword [esp + 0x38], eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x64], 2
nop word [eax + eax]
cmp byte [ecx + 0x15], 6
jne 0x1008bed0
movsx edx, byte [eax]
cmp byte [edx + edi + 0x7a8], 0
je 0x1008bec9
mov eax, dword [edi + 0xc]
lea ecx, [edx + edx*8]
lea eax, [eax + ecx*4]
add eax, 0x380
push eax
mov eax, dword [esp + 0x48]
push dword [esp + 0x58]
lea eax, [eax + edx*8]
push eax
push esi
call fcn.100806b0
add esp, 0x10
jmp 0x1008befd
mov edx, dword [esp + 0x80]
movsx ecx, byte [eax]
mov eax, ecx
shl eax, 4
add eax, 0x7dc
add eax, edi
push eax
movsx eax, word [edx]
push 0
push eax
push dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
push dword [esi + 0x10]
lea eax, [eax + ecx*8]
push eax
call fcn.1008df60
add esp, 0x18
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x38]
add edx, 4
mov ecx, dword [esp + 0x14]
inc eax
sub dword [esp + 0x64], 1
mov dword [esp + 0x80], edx
mov dword [esp + 0x38], eax
jne 0x1008be90
cmp dword [esp + 0x6c], 0
je case.0x10083c11.3
mov eax, ecx
mov dword [esp + 0x64], 2
lea ecx, [eax + 0x18]
lea edx, [eax + 8]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x80], edx
nop dword [eax]
cmp byte [eax + 0x15], 6
jne 0x1008bfaf
mov esi, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
cmp esi, eax
cmovl eax, esi
mov esi, dword [esp + 0x70]
cmp eax, 1
jle 0x1008bfaf
movsx edx, byte [ecx]
cmp byte [edx + edi + 0x7a8], 0
je 0x1008bfa8
mov eax, dword [edi + 0xc]
lea ecx, [edx + edx*8]
lea eax, [eax + ecx*4]
add eax, 0x380
push eax
mov eax, dword [esp + 0x48]
push dword [esp + 0x58]
lea eax, [eax + edx*8]
add eax, 4
push eax
push esi
call fcn.100805b0
add esp, 0x10
jmp 0x1008bfe1
mov edx, dword [esp + 0x80]
movsx ecx, byte [ecx]
mov eax, ecx
shl eax, 4
add eax, 0x7dc
add eax, edi
push eax
push dword [esp + 0x78]
movsx eax, word [edx]
push eax
mov eax, dword [esp + 0x50]
push dword [esp + 0x4c]
push dword [esi + 0x10]
lea eax, [eax + ecx*8]
add eax, 4
push eax
call fcn.1008df60
add esp, 0x18
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x38]
add edx, 4
mov eax, dword [esp + 0x14]
inc ecx
sub dword [esp + 0x64], 1
mov dword [esp + 0x80], edx
mov dword [esp + 0x38], ecx
jne 0x1008bf50
mov ecx, dword [esp + 0x35c]
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.100c490a
mov esp, ebp
pop ebp
ret