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

Disassembly:
mov eax, 0x3eec
call fcn.100d0e60
mov eax, dword [0x1018f074]
xor eax, esp
mov dword [esp + 0x3ee8], eax
mov eax, dword [esp + 0x3ef8]
push ebx
push ebp
mov ebp, dword [esp + 0x3f04]
push esi
mov esi, dword [esp + 0x3efc]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x3f18]
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0xb0]
lea ebx, [esi + 4]
mov ecx, dword [esi + 0x34]
mov dword [esp + 0x2c], eax
push edi
mov eax, dword [eax + 0x218]
mov edi, dword [esi]
push 0x80
mov dword [esp + 0x4c], esi
mov eax, dword [eax + 0x220]
shl eax, 0x10
mov dword [esp + 0x88], eax
xor eax, eax
push eax
mov dword [esp + 0x68], eax
lea eax, [esp + 0x3e80]
push eax
mov dword [esp + 0x98], ebp
mov dword [esp + 0x50], 0
mov dword [esp + 0x78], ebx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x5c], 0
mov byte [esp + 0x74], 0
mov byte [esp + 0x37], 0
mov dword [esp + 0x84], 0x1312d00
call fcn.100d26e0
xorps xmm0, xmm0
mov dword [esp + 0x3e64], 0
push 0x2e04
lea eax, [esp + 0x140]
movq qword [esp + 0x3e60], xmm0
push 0
push eax
movups xmmword [esp + 0x3e78], xmm0
mov dword [esp + 0xf4], edi
movq qword [esp + 0x3e88], xmm0
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xfc], 0x10
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0xd4], edi
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], 0x14
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], 0x14
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
movlpd qword [esp + 0x114], xmm0
movlpd qword [esp + 0x11c], xmm0
movlpd qword [esp + 0x124], xmm0
mov dword [esp + 0x110], ebx
call fcn.100d26e0
mov eax, dword [esp + 0x8c]
movaps xmm0, xmmword [0x1010dc10]
push 0xf1c
mov dword [esp + 0x150], eax
lea eax, [esp + 0x1f8c]
mov dword [esp + 0x14c], esi
mov dword [esp + 0x2ea8], edi
mov dword [esp + 0x2eac], ebx
movups xmmword [esp + 0x2eb0], xmm0
mov dword [esp + 0x2ec0], 0
push 0
push eax
call fcn.100d26e0
mov eax, dword [esp + 0xac]
mov bl, byte [esi + 0xb8]
mov dword [esp + 0x1fa4], eax
lea eax, [esp + 0x1f94]
mov dword [esp + 0x1f98], eax
lea eax, [esp + 0x2eb0]
push 0xf1c
mov dword [esp + 0x1fa0], eax
lea eax, [esp + 0x107c]
push 0
push eax
mov byte [esp + 0x1fad], bl
mov dword [esp + 0x1fa0], esi
call fcn.100d26e0
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x1094], eax
lea eax, [esp + 0x1fa0]
mov dword [esp + 0x1088], eax
lea eax, [esp + 0x2ebc]
push 0xf1c
mov dword [esp + 0x1090], eax
lea eax, [esp + 0x16c]
push 0
push eax
mov byte [esp + 0x109d], bl
mov dword [esp + 0x1090], esi
call fcn.100d26e0
mov ecx, dword [esp + 0xc4]
lea eax, [esp + 0x1fac]
mov dword [esp + 0x178], eax
add esp, 0x3c
lea eax, [esp + 0x2e8c]
mov byte [esp + 0x145], bl
mov dword [esp + 0x140], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x2ea8], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0x2eac], eax
mov eax, dword [ebp]
mov dword [esp + 0x2eb4], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0x2ec0], eax
lea eax, [esp + 0xa0]
mov dword [esp + 0x2ec4], eax
lea eax, [esp + 0xf8]
mov dword [esp + 0x2ec8], eax
lea eax, [esi + 0xf0]
mov dword [esp + 0x2ed0], eax
mov al, byte [esi + 0xb9]
mov byte [esp + 0x2ebe], al
mov eax, dword [esp + 0x48]
mov dword [esp + 0x148], ecx
mov dword [esp + 0x138], esi
mov esi, dword [esi + 0xe4]
mov ebx, dword [eax + 0xe8]
mov eax, esi
cdq
mov dword [esp + 0x2eb0], ecx
mov ecx, dword [ebp + 4]
mov ebp, dword [esp + 0x3f18]
mov dword [esp + 0x2eb8], ecx
mov ecx, eax
xor ecx, edx
mov dword [esp + 0x1c], ebp
sub ecx, edx
mov dword [esp + 0x2ecc], ebp
mov eax, ebx
mov dword [esp + 0x2ed4], esi
cdq
xor eax, edx
mov dword [esp + 0x2ed8], ebx
sub eax, edx
cmp ecx, eax
jle 0x10098efe
test esi, esi
jmp 0x10098f02
mov esi, ebx
test ebx, ebx
jns 0x10098f06
neg esi
mov ecx, dword [esp + 0x30]
lea eax, [esi + esi]
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x2edc], eax
mov dword [esp + 0x2ee0], 0x199a
cmp byte [edx + 9], 0
mov byte [esp + 0x2ebf], 1
mov word [esp + 0x2ebc], 0
setne byte [esp + 0x23]
mov byte [esp + 0x2f0c], 0
mov eax, dword [ecx + 0x218]
mov eax, dword [eax + 0x21c]
shl eax, 0x10
mov dword [esi], eax
cmp byte [edx + 9], 0
je 0x10098f6f
mov eax, dword [ecx + 0x214]
mov ebx, dword [eax + 0x614]
jmp 0x10098f74
mov ebx, 0x30
lea eax, [esp + 0x9c]
mov dword [esp + 0x70], ebx
push eax
push 0x14
push edi
call fcn.1005f8e0
add esp, 0xc
mov esi, eax
cmp dword [esp + 0x9c], 0
mov dword [esp + 0x64], esi
jne 0x10098fd3
mov eax, dword [esp + 0x6c]
mov dword [esi + 4], eax
lea eax, [esp + 0x9c]
push eax
push 0
push ebx
push 0
push 8
push edi
mov dword [esi], edi
call fcn.1005f930
add esp, 0x18
mov dword [esi + 8], eax
cmp dword [esp + 0x9c], 0
je 0x10098fdf
push esi
push edi
call fcn.1005f8c0
add esp, 8
xor esi, esi
xor edi, edi
lea eax, [esi + 0x40]
jmp 0x1009cc7b
mov dword [esi + 0xc], eax
lea eax, [esp + 0xdc]
push 0x11
push eax
mov dword [esi + 0x10], ebx
call fcn.100958e0
mov ecx, dword [esp + 0xf4]
add esp, 8
mov edi, dword [esp + 0xf4]
test al, al
mov eax, dword [esp + 0x6c]
mov edx, 0x11
cmovne ecx, edx
mov dword [esp + 0x24], edi
mov ebx, edi
mov dword [esp + 0x94], ecx
mov dword [esp + 0x18], ebx
cmp dword [eax], 0
jne 0x1009d0ac
mov eax, dword [esp + 0x3f04]
xor ecx, ecx
mov edx, dword [esp + 0x3f14]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x98], eax
movups xmmword [edi], xmm0
mov edi, dword [esp + 0xe0]
mov dword [esp + 0x90], edi
jmp 0x10099075
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jb 0x10099092
test ecx, ecx
mov ebx, 0xb
mov eax, 0xe
cmove ebx, eax
mov dword [esp + 0x38], ebx
jmp 0x100990c0
mov cl, byte [eax]
inc eax
mov dword [ebx + 0xc], eax
mov bl, cl
mov dword [esp + 0x38], ebx
cmp cl, 0xb
je 0x100990a8
cmp cl, 0xe
jne 0x100990bc
mov ecx, dword [esp + 0x48]
xor edi, edi
movzx ebx, bl
cmp byte [ecx + 9], 0
cmovne ebx, edi
mov dword [esp + 0x38], ebx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x48]
mov al, byte [eax + 8]
mov ah, byte [esp + 0x2b]
test al, al
je 0x10099160
test ah, ah
jne 0x1009910e
cmp bl, 1
je 0x1009910e
cmp bl, 3
je 0x1009910e
cmp bl, 0xd
je 0x1009910e
cmp bl, 0xa
je 0x1009910e
cmp bl, 0xb
je 0x1009910e
cmp bl, 0xc
je 0x1009910e
cmp bl, 0xe
je 0x1009910e
cmp bl, 0x20
jae 0x1009910e
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x10099075
mov edi, dword [esp + 0x60]
test edi, edi
jle 0x10099139
cmp bl, 0xa
je 0x10099139
cmp bl, 0xb
je 0x10099139
cmp bl, 0xc
je 0x10099139
cmp bl, 0x20
mov dword [esp + 0x40], 0
cmovb edi, dword [esp + 0x40]
mov dword [esp + 0x60], edi
cmp byte [esp + 0x68], 0
mov edx, dword [esp + 0x10]
je 0x10099160
cmp bl, 0x20
jae 0x10099160
mov ecx, dword [esp + 0x68]
xor edi, edi
movzx ecx, cl
cmp bl, 0xc
cmovne ecx, edi
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x6c]
cmp dword [edi], 0
jne 0x1009cc73
sub dword [esp + 0x78], 1
je 0x1009cb49
movzx edi, bl
cmp edi, 0x1f
ja case.default.0x10099184
jmp dword [edi*4 + 0x1009d0b4]
mov ebx, dword [esp + 0x48]
cmp byte [ebx + 9], 0
je case.0x10099184.0
cmp byte [ebx + 0x5d], 0
jne 0x1009cb49
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x100991d1
mov eax, dword [esi + 4]
test eax, eax
je 0x100991bd
cmp dword [eax], 0
jne 0x100991bd
mov dword [eax], 0xa1
xor eax, eax
mov dword [ebx + 0x78], eax
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x10099075
cmp dword [eax - 4], 2
je 0x100991fd
mov eax, dword [esi + 4]
test eax, eax
je 0x100991e9
cmp dword [eax], 0
jne 0x100991e9
mov dword [eax], 0xa0
xor eax, eax
mov dword [ebx + 0x78], eax
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x10099075
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
test eax, eax
js case.0x10099184.0
mov dword [ebx + 0x78], eax
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x10099075
mov ebx, dword [esp + 0x48]
cmp byte [ebx + 9], 0
je case.0x10099184.0
cmp dword [ebx + 0x60], 0
je 0x1009cb49
push dword [ebx + 0x80]
mov eax, dword [ebx + 0x224]
lea edi, [ebx + 0x5c]
push dword [ebx + 0x7c]
push dword [ebx + 0x78]
mov eax, dword [eax + 0xc]
push edi
call eax
add esp, 0x10
test al, al
je 0x10099280
push dword [ebx + 0x80]
mov eax, dword [ebx + 0x224]
push dword [ebx + 0x7c]
push dword [ebx + 0x78]
mov eax, dword [eax + 0x10]
push edi
call eax
add esp, 0x10
mov dword [esp + 0x44], eax
test eax, eax
jne 0x1009cc77
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1009929e
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x1009929a
cmp dword [ecx], 0
jne 0x1009929a
mov dword [ecx], 0xa1
xor eax, eax
jmp 0x100992c2
cmp dword [eax - 4], 2
je 0x100992ba
mov eax, dword [esi + 4]
test eax, eax
je 0x100992b6
cmp dword [eax], 0
jne 0x100992b6
mov dword [eax], 0xa0
xor eax, eax
jmp 0x100992c2
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
cmp eax, dword [esp + 0x70]
ja 0x1009cb49
push eax
push esi
push edi
call fcn.10096430
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov byte [ebx + 0x5d], 1
jmp 0x1009906d
test al, al
jne 0x100992f9
cmp byte [esp + 0xfc], al
jne case.0x10099184.0
mov edi, dword [esp + 0x30]
xor eax, eax
jmp 0x10099303
mov edi, dword [esp + 0x30]
mov eax, dword [edi + 0x20]
mov eax, dword [eax + 4]
push eax
lea eax, [esp + 0x27]
push eax
push dword [esp + 0x60]
lea eax, [esp + 0xc8]
push eax
push esi
push dword [esp + 0x5c]
call fcn.10096940
add esp, 0x18
cmp byte [edi + 0x224], 0
jne 0x1009cc73
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x10099075
test al, al
jne 0x1009936c
cmp byte [esp + 0xfc], al
jne case.0x10099184.0
mov edi, dword [esp + 0x30]
xor eax, eax
push eax
lea eax, [esp + 0x27]
push eax
push dword [esp + 0x60]
lea eax, [esp + 0xac]
jmp 0x10099314
mov edi, dword [esp + 0x30]
mov eax, dword [edi + 0x20]
mov eax, dword [eax]
push eax
lea eax, [esp + 0x27]
push eax
push dword [esp + 0x60]
lea eax, [esp + 0xac]
jmp 0x10099314
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp eax, 1
jbe 0x100993d2
cmp byte [esp + 0x23], 0
jne 0x100993d2
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x100993b3
sub eax, 1
jne 0x100993c3
shl ecx, 0x10
jmp 0x100993c3
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x84]
add eax, ecx
mov ecx, dword [esp + 0x58]
mov dword [ecx], eax
mov edi, dword [esp + 0x30]
mov byte [esp + 0x23], 1
cmp byte [edi + 0x224], 0
jne 0x1009cc73
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x10099406
mov eax, dword [esi + 4]
test eax, eax
je 0x10099402
cmp dword [eax], 0
jne 0x10099402
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x10099430
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x10099420
sub eax, 1
jne 0x10099430
shl ecx, 0x10
jmp 0x10099430
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add ebp, ecx
cmp dword [edi + 0x1d4], 0
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x3f18], ebp
jne 0x1009932f
mov eax, dword [esp + 0x10]
push ebp
push eax
lea eax, [esp + 0x138]
push eax
call fcn.10097b80
mov eax, dword [esi + 8]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x10099075
mov ebp, dword [esi + 0xc]
xor ebx, ebx
sub ebp, dword [esi + 8]
sar ebp, 3
test ebp, ebp
je 0x1009c7b3
nop word [eax + eax]
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp ebx, eax
jb 0x100994bd
mov eax, dword [esi + 4]
test eax, eax
je 0x100994b9
cmp dword [eax], 0
jne 0x100994b9
mov dword [eax], 0x82
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor edi, edi
jmp 0x100994e3
mov eax, dword [edx + ebx*8 + 4]
mov edi, dword [edx + ebx*8]
sub eax, 1
je 0x100994d3
sub eax, 1
jne 0x100994e3
shl edi, 0x10
jmp 0x100994e3
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
add dword [esp + 0x10], edi
lea eax, [ebx + 1]
mov edi, dword [esp + 0x10]
sub ecx, edx
sar ecx, 3
mov dword [esp + 0x3f14], edi
cmp eax, ecx
jb 0x10099514
mov eax, dword [esi + 4]
test eax, eax
je 0x10099510
cmp dword [eax], 0
jne 0x10099510
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1009953b
mov eax, dword [edx + ebx*8 + 0xc]
mov ecx, dword [edx + ebx*8 + 8]
sub eax, 1
je 0x1009952b
sub eax, 1
jne 0x1009953b
shl ecx, 0x10
jmp 0x1009953b
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
add eax, ecx
push eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x3f1c], eax
lea eax, [esp + 0x134]
push edi
push eax
call fcn.10097a00
add ebx, 2
add esp, 0xc
cmp ebx, ebp
jb 0x10099490
mov eax, dword [esi + 8]
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [esi + 0xc], eax
jmp 0x1009906d
mov ebp, dword [esi + 0xc]
sub ebp, dword [esi + 8]
sar ebp, 3
cmp bl, 6
sete bl
xor edi, edi
test ebp, ebp
je 0x1009c7b3
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x100995ba
mov eax, dword [esi + 4]
test eax, eax
je 0x100995b6
cmp dword [eax], 0
jne 0x100995b6
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x100995e0
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + edi*8]
sub eax, 1
je 0x100995d0
sub eax, 1
jne 0x100995e0
shl ecx, 0x10
jmp 0x100995e0
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
test bl, bl
je 0x100995f7
add edx, ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x3f14], edx
jmp 0x10099604
add eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3f18], eax
push eax
push edx
lea eax, [esp + 0x138]
xor bl, 1
push eax
call fcn.10097a00
mov edx, dword [esp + 0x1c]
inc edi
add esp, 0xc
cmp edi, ebp
jb 0x10099595
mov eax, dword [esi + 8]
mov ebp, dword [esp + 0x1c]
mov dword [esi + 0xc], eax
jmp 0x1009906d
mov eax, dword [esi + 0xc]
xor ebp, ebp
sub eax, dword [esi + 8]
sar eax, 3
mov dword [esp + 0x5c], eax
mov dword [esp + 0x2c], ebp
cmp eax, 6
jb 0x100998b6
lea ebx, [ebp + 2]
mov edi, dword [esi + 0xc]
mov eax, edi
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp ebp, eax
jb 0x10099681
mov eax, dword [esi + 4]
test eax, eax
je 0x1009967d
cmp dword [eax], 0
jne 0x1009967d
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x100996a8
mov eax, dword [edx + ebx*8 - 0xc]
mov ecx, dword [edx + ebx*8 - 0x10]
sub eax, 1
je 0x10099698
sub eax, 1
jne 0x100996a8
shl ecx, 0x10
jmp 0x100996a8
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x10]
add eax, ecx
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x34], eax
sar ecx, 3
lea eax, [ebx - 1]
cmp eax, ecx
jb 0x100996dc
mov eax, dword [esi + 4]
test eax, eax
je 0x100996d8
cmp dword [eax], 0
jne 0x100996d8
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x10099703
mov eax, dword [edx + ebx*8 - 4]
mov ecx, dword [edx + ebx*8 - 8]
sub eax, 1
je 0x100996f3
sub eax, 1
jne 0x10099703
shl ecx, 0x10
jmp 0x10099703
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebp, dword [esp + 0x1c]
mov eax, edi
sub eax, edx
add ebp, ecx
sar eax, 3
mov dword [esp + 0x40], ebp
cmp ebx, eax
jb 0x10099734
mov eax, dword [esi + 4]
test eax, eax
je 0x10099730
cmp dword [eax], 0
jne 0x10099730
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1009975a
mov eax, dword [edx + ebx*8 + 4]
mov ecx, dword [edx + ebx*8]
sub eax, 1
je 0x1009974a
sub eax, 1
jne 0x1009975a
shl ecx, 0x10
jmp 0x1009975a
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x34]
add eax, ecx
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x3c], eax
sar ecx, 3
lea eax, [ebx + 1]
cmp eax, ecx
jb 0x1009978e
mov eax, dword [esi + 4]
test eax, eax
je 0x1009978a
cmp dword [eax], 0
jne 0x1009978a
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x100997b5
mov eax, dword [edx + ebx*8 + 0xc]
mov ecx, dword [edx + ebx*8 + 8]
sub eax, 1
je 0x100997a5
sub eax, 1
jne 0x100997b5
shl ecx, 0x10
jmp 0x100997b5
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add ebp, ecx
lea eax, [ebx + 2]
mov ecx, edi
sub ecx, edx
sar ecx, 3
cmp eax, ecx
jb 0x100997e1
mov eax, dword [esi + 4]
test eax, eax
je 0x100997dd
cmp dword [eax], 0
jne 0x100997dd
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x10099808
mov eax, dword [edx + ebx*8 + 0x14]
mov ecx, dword [edx + ebx*8 + 0x10]
sub eax, 1
je 0x100997f8
sub eax, 1
jne 0x10099808
shl ecx, 0x10
jmp 0x10099808
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x3c]
sub edi, edx
add eax, ecx
sar edi, 3
mov dword [esp + 0x10], eax
lea eax, [ebx + 3]
cmp eax, edi
jb 0x10099834
mov eax, dword [esi + 4]
test eax, eax
je 0x10099830
cmp dword [eax], 0
jne 0x10099830
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1009985b
mov eax, dword [edx + ebx*8 + 0x1c]
mov ecx, dword [edx + ebx*8 + 0x18]
sub eax, 1
je 0x1009984b
sub eax, 1
jne 0x1009985b
shl ecx, 0x10
jmp 0x1009985b
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edi, dword [esp + 0x10]
lea eax, [ecx + ebp]
push eax
push edi
push ebp
push dword [esp + 0x48]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x140]
push dword [esp + 0x50]
push dword [esp + 0x48]
push eax
call fcn.100976a0
mov eax, dword [esp + 0x38]
add ebx, 6
mov ebp, dword [esp + 0x48]
add esp, 0x1c
mov dword [esp + 0x3f18], eax
add ebp, 6
mov dword [esp + 0x3f14], edi
lea eax, [ebx + 4]
mov dword [esp + 0x2c], ebp
cmp eax, dword [esp + 0x5c]
jbe 0x10099654
mov ebx, dword [esp + 0x38]
cmp bl, 0x18
jne 0x1009c337
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov edi, dword [esi + 8]
sub eax, edi
sar eax, 3
cmp ebp, eax
jb 0x100998ec
mov eax, dword [esi + 4]
test eax, eax
je 0x100998e8
cmp dword [eax], 0
jne 0x100998e8
mov dword [eax], 0x82
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
xor edx, edx
jmp 0x10099912
mov eax, dword [edi + ebp*8 + 4]
mov edx, dword [edi + ebp*8]
sub eax, 1
je 0x10099902
sub eax, 1
jne 0x10099912
shl edx, 0x10
jmp 0x10099912
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov ebx, dword [esp + 0x10]
lea eax, [ebp + 1]
sub ecx, edi
add ebx, edx
sar ecx, 3
mov dword [esp + 0x10], ebx
mov dword [esp + 0x3f14], ebx
cmp eax, ecx
jb 0x10099945
mov eax, dword [esi + 4]
test eax, eax
je 0x10099941
cmp dword [eax], 0
jne 0x10099941
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1009996b
mov ecx, dword [edi + eax*8]
mov eax, dword [edi + eax*8 + 4]
sub eax, 1
je 0x1009995b
sub eax, 1
jne 0x1009996b
shl ecx, 0x10
jmp 0x1009996b
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebp, dword [esp + 0x1c]
lea eax, [esp + 0x130]
add ebp, ecx
push ebp
push ebx
push eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x3f24], ebp
call fcn.10097a00
mov eax, dword [esi + 8]
add esp, 0xc
mov edx, dword [esp + 0x10]
mov dword [esi + 0xc], eax
jmp 0x1009906d
test al, al
je case.0x10099184.0
cmp byte [esp + 0x2ebc], 0
je 0x10099a29
push dword [esp + 0x2f08]
lea eax, [esp + 0x134]
mov byte [esp + 0x2ec1], 1
push dword [esp + 0x2f08]
push eax
call fcn.10097a00
add esp, 0xc
cmp byte [esp + 0x2f0c], 0
je 0x10099a0f
push 1
push dword [esp + 0x2ef4]
lea eax, [esp + 0x2eec]
push dword [esp + 0x2ef4]
push eax
lea eax, [esp + 0x148]
push eax
lea eax, [esp + 0x144]
push eax
call fcn.10097cd0
add esp, 0x18
mov byte [esp + 0x2ebf], 1
mov word [esp + 0x2ebc], 0
mov byte [esp + 0x2f0c], 0
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov byte [esp + 0x23], 1
mov dword [esi + 0xc], eax
jmp 0x10099075
cmp ecx, 0x10
jg 0x1009cb49
inc ecx
cmp ecx, dword [esp + 0x94]
jb 0x10099a70
mov eax, dword [esp + 0x90]
test eax, eax
je 0x10099a6e
cmp dword [eax], 0
jne 0x10099a6e
mov dword [eax], 0x82
xor ecx, ecx
mov edx, dword [esp + 0x98]
mov eax, dword [esi + 0xc]
imul edx, ecx
add edx, dword [esp + 0x24]
mov dword [esp + 0x18], edx
cmp eax, dword [esi + 8]
jne 0x10099aa0
mov eax, dword [esi + 4]
test eax, eax
je 0x10099a9c
cmp dword [eax], 0
jne 0x10099a9c
mov dword [eax], 0xa1
xor eax, eax
jmp 0x10099ac4
cmp dword [eax - 4], 2
je 0x10099abc
mov eax, dword [esi + 4]
test eax, eax
je 0x10099ab8
cmp dword [eax], 0
jne 0x10099ab8
mov dword [eax], 0xa0
xor eax, eax
jmp 0x10099ac4
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x30]
cmp byte [ecx + 8], 0
je 0x10099af1
mov ecx, dword [edi + 0x268]
test ecx, ecx
je 0x10099af1
push ecx
push eax
call fcn.1005f490
add esp, 8
test eax, eax
je 0x10099aee
mov eax, dword [eax]
jmp 0x10099af1
or eax, 0xffffffff
cmp bl, 0x1d
xorps xmm0, xmm0
mov ebx, dword [esp + 0x18]
movups xmmword [ebx], xmm0
je 0x10099b86
mov ecx, dword [edi + 0x234]
add ecx, eax
cmp ecx, dword [edi + 0x22c]
jb 0x10099b1e
mov eax, 1
jmp 0x10099bbb
mov eax, dword [edi + 0x23c]
lea edx, [ecx*4]
mov ecx, dword [edx + eax]
mov dword [ebx + 4], ecx
cmp byte [edi + 0x30], 0
je 0x10099b6a
mov eax, dword [edi + 0x264]
test eax, eax
je 0x10099b50
test ecx, ecx
je 0x10099b4c
mov eax, dword [edx + eax]
add eax, ecx
jmp 0x10099b74
xor eax, eax
jmp 0x10099b74
mov eax, dword [edi + 0x260]
test eax, eax
mov dword [esp + 0x5c], 0
cmovs eax, dword [esp + 0x5c]
add eax, ecx
mov dword [ebx + 4], eax
mov eax, dword [edi + 0x23c]
mov eax, dword [edx + eax + 4]
mov edx, 8
mov ecx, ebx
mov dword [edx + ecx], eax
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
jmp 0x10099bb9
mov ecx, dword [edi + 0x238]
add ecx, eax
cmp ecx, dword [edi + 0x230]
jb 0x10099b9d
mov eax, 1
jmp 0x10099bbb
mov eax, dword [edi + 0x240]
mov eax, dword [eax + ecx*4]
mov dword [ebx + 0xc], eax
mov dword [ebx + 4], eax
mov eax, dword [edi + 0x240]
mov eax, dword [eax + ecx*4 + 4]
mov dword [ebx + 8], eax
xor eax, eax
test eax, eax
jne 0x1009cb49
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x14], ecx
jmp 0x10099075
cmp ecx, 1
jl 0x1009cb49
dec ecx
mov ebx, ecx
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x94]
jb 0x10099c06
mov edi, dword [esp + 0x90]
test edi, edi
je 0x10099c04
cmp dword [edi], 0
jne 0x10099c04
mov dword [edi], 0x82
xor ebx, ebx
imul ebx, dword [esp + 0x98]
add ebx, dword [esp + 0x24]
mov dword [esp + 0x18], ebx
jmp 0x10099075
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x10099c2f
mov dl, byte [eax]
inc eax
mov dword [ebx + 0xc], eax
jmp 0x10099c42
mov eax, dword [ebx]
test eax, eax
je 0x10099c40
cmp dword [eax], 0
jne 0x10099c40
mov dword [eax], 0x55
xor dl, dl
movzx ecx, dl
mov byte [esp + 0x57], dl
lea eax, [ecx - 8]
cmp eax, 0x1d
ja case.0x10099c5c.9
movzx eax, byte [eax + 0x1009d14c]
jmp dword [eax*4 + 0x1009d134]
push 0
push 0x1010d98c
jmp 0x10099cc9
push 0
push 0x1010d998
lea eax, [esp + 0x138]
push eax
lea eax, [esp + 0x3f24]
push eax
lea eax, [esp + 0x3f24]
push eax
push esi
call fcn.10096640
mov ebp, dword [esp + 0x3f30]
add esp, 0x18
mov edx, dword [esp + 0x3f14]
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x10], edx
mov dword [esi + 0xc], eax
jmp 0x10099075
push 0
push 0x1010d9a4
jmp 0x10099cc9
push 1
push 0x1010d9b0
lea eax, [esp + 0x138]
push eax
lea eax, [esp + 0x3f24]
push eax
lea eax, [esp + 0x3f24]
push eax
push esi
call fcn.10096640
mov ebp, dword [esp + 0x3f30]
add esp, 0x18
mov edx, dword [esp + 0x3f14]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x10], edx
jmp 0x10099071
mov eax, dword [esp + 0x48]
cmp byte [eax + 9], 0
jne case.0x10099d52.0
cmp dl, 0x26
jae case.0x10099d52.0
mov al, byte [eax + 8]
mov edi, dword [esp + 0x60]
test al, al
je 0x10099d49
test edi, edi
jle 0x10099d49
cmp dl, 0x11
je 0x10099d49
mov edx, dword [esp + 0x10]
xor eax, eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x60], eax
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x10099075
cmp ecx, 0x21
ja case.0x10099d52.0
jmp dword [ecx*4 + 0x1009d16c]
test al, al
je case.0x10099d52.0
mov edx, dword [esi + 0xc]
mov eax, edx
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
test eax, eax
jne 0x10099d8e
mov eax, dword [esi + 4]
test eax, eax
je 0x10099d8a
cmp dword [eax], 0
jne 0x10099d8a
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor ebp, ebp
jmp 0x10099db2
mov eax, dword [ecx + 4]
mov ebp, dword [ecx]
sub eax, 1
je 0x10099da2
sub eax, 1
jne 0x10099db2
shl ebp, 0x10
jmp 0x10099db2
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
mov eax, edx
sub eax, ecx
sar eax, 3
cmp eax, 2
ja 0x10099de0
mov eax, dword [esi + 4]
test eax, eax
je 0x10099dd6
cmp dword [eax], 0
jne 0x10099dd6
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov dword [esp + 0x2c], 0
jmp 0x10099e0d
mov eax, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x2c], ebx
sub eax, 1
je 0x10099df9
sub eax, 1
jne 0x10099e0d
shl ebx, 0x10
jmp 0x10099e09
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
mov dword [esp + 0x2c], ebx
mov eax, edx
sub eax, ecx
sar eax, 3
cmp eax, 4
ja 0x10099e35
mov eax, dword [esi + 4]
test eax, eax
je 0x10099e31
cmp dword [eax], 0
jne 0x10099e31
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor ebx, ebx
jmp 0x10099e5a
mov eax, dword [ecx + 0x24]
mov ebx, dword [ecx + 0x20]
sub eax, 1
je 0x10099e4a
sub eax, 1
jne 0x10099e5a
shl ebx, 0x10
jmp 0x10099e5a
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
mov eax, edx
sub eax, ecx
sar eax, 3
cmp eax, 1
ja 0x10099e82
mov eax, dword [esi + 4]
test eax, eax
je 0x10099e7e
cmp dword [eax], 0
jne 0x10099e7e
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x10099ea7
mov eax, dword [ecx + 0xc]
mov edi, dword [ecx + 8]
sub eax, 1
je 0x10099e97
sub eax, 1
jne 0x10099ea7
shl edi, 0x10
jmp 0x10099ea7
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
sub edx, ecx
sar edx, 3
cmp edx, 2
jae 0x10099ec5
mov eax, dword [esi + 4]
test eax, eax
je 0x10099eda
cmp dword [eax], 0
jne 0x10099eda
mov dword [eax], 0x82
jmp 0x10099eda
mov eax, dword [esp + 0x2c]
sub eax, ebp
sub eax, edi
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 8]
mov dword [eax + 0x14], 0
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov edi, dword [esi + 8]
sub eax, edi
sar eax, 3
cmp eax, 3
ja 0x10099f08
mov eax, dword [esi + 4]
test eax, eax
je 0x10099f04
cmp dword [eax], 0
jne 0x10099f04
mov dword [eax], 0x82
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
xor edx, edx
jmp 0x10099f2d
mov eax, dword [edi + 0x1c]
mov edx, dword [edi + 0x18]
sub eax, 1
je 0x10099f1d
sub eax, 1
jne 0x10099f2d
shl edx, 0x10
jmp 0x10099f2d
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
sub ecx, edi
sar ecx, 3
cmp ecx, 4
jae 0x10099f4b
mov eax, dword [esi + 4]
test eax, eax
je 0x10099f5e
cmp dword [eax], 0
jne 0x10099f5e
mov dword [eax], 0x82
jmp 0x10099f5e
sub ebx, dword [esp + 0x2c]
sub ebx, edx
mov dword [edi + 0x20], ebx
mov eax, dword [esi + 8]
mov dword [eax + 0x24], 0
cmp byte [esp + 0x57], 1
mov edi, dword [esp + 0x30]
mov eax, dword [edi + 0x20]
jne 0x10099f70
mov eax, dword [eax]
jmp 0x10099f73
mov eax, dword [eax + 4]
push eax
lea eax, [esp + 0x27]
push eax
push dword [esp + 0x60]
lea edx, [esp + 0xc8]
lea eax, [esp + 0xac]
cmovne eax, edx
push eax
push esi
push dword [esp + 0x5c]
call fcn.10096940
add esp, 0x18
cmp byte [edi + 0x224], 0
jne 0x1009cc73
mov eax, dword [esi + 8]
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov dword [esi + 0xc], eax
jmp 0x10099075
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x10099fea
mov eax, dword [esi + 4]
test eax, eax
je 0x10099fe6
cmp dword [eax], 0
jne 0x10099fe6
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebx, ebx
jmp 0x1009a016
lea eax, [ecx - 8]
mov ecx, eax
mov dword [esi + 0xc], eax
mov eax, dword [eax + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x1009a006
sub eax, 1
jne 0x1009a016
shl ebx, 0x10
jmp 0x1009a016
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
cmp ecx, edx
jne 0x1009a06d
mov eax, dword [esi + 4]
test eax, eax
je 0x1009a032
cmp dword [eax], 0
jne 0x1009a032
mov dword [eax], 0xa1
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
xor edi, edi
mov eax, dword [esi + 0x10]
lea eax, [edx + eax*8]
cmp ecx, eax
jne 0x1009a155
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x10099075
cmp dword [eax], 0
jne 0x10099075
mov dword [eax], 0x82
jmp 0x1009906d
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1009a087
sub eax, 1
jne 0x1009a097
shl edi, 0x10
jmp 0x1009a097
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
test edi, edi
je 0x1009a032
test ebx, ebx
je 0x1009a032
mov edi, 1
jmp 0x1009a034
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x1009a0cc
mov eax, dword [esi + 4]
test eax, eax
je 0x1009a0c8
cmp dword [eax], 0
jne 0x1009a0c8
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebx, ebx
jmp 0x1009a0f8
lea eax, [ecx - 8]
mov ecx, eax
mov dword [esi + 0xc], eax
mov eax, dword [eax + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x1009a0e8
sub eax, 1
jne 0x1009a0f8
shl ebx, 0x10
jmp 0x1009a0f8
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
cmp ecx, edx
jne 0x1009a116
mov eax, dword [esi + 4]
test eax, eax
je 0x1009a148
cmp dword [eax], 0
jne 0x1009a148
mov dword [eax], 0xa1
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
jmp 0x1009a148
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1009a130
sub eax, 1
jne 0x1009a140
shl edi, 0x10
jmp 0x1009a140
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
test edi, edi
jne 0x1009a09f
test ebx, ebx
jne 0x1009a09f
jmp 0x1009a032
mov edx, dword [esp + 0x10]
mov dword [ecx], edi
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1009906d
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp ecx, edi
jne 0x1009a194
mov eax, dword [esi + 4]
test eax, eax
je 0x1009a190
cmp dword [eax], 0
jne 0x1009a190
mov dword [eax], 0xa1
mov edi, dword [esi + 8]
mov ecx, dword [esi + 0xc]
xor edx, edx
jmp 0x1009a1c0
lea eax, [ecx - 8]
mov ecx, eax
mov dword [esi + 0xc], eax
mov eax, dword [eax + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1009a1b0
sub eax, 1
jne 0x1009a1c0
shl edx, 0x10
jmp 0x1009a1c0
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esi + 0x10]
lea eax, [edi + eax*8]
cmp ecx, eax
jne 0x1009a1f1
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x10099075
cmp dword [eax], 0
jne 0x10099075
mov dword [eax], 0x82
jmp 0x10099071
xor eax, eax
test edx, edx
mov edx, dword [esp + 0x10]
sete al
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x10099071
test al, al
jne 0x1009cafe
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x10099075
test al, al
je case.0x10099d52.0
push esi
call fcn.1009d2c0
mov edi, dword [esp + 0x34]
push esi
mov ecx, dword [edi + 0x24]
mov dword [ecx + 4], eax
call fcn.1009d2c0
mov ecx, dword [edi + 0x24]
push esi
mov dword [ecx], eax
call fcn.1009d2c0
push esi
mov edi, eax
call fcn.1009d2c0
mov edx, dword [esp + 0x40]
add esp, 0x10
mov byte [esp + 0x23], 1
mov ecx, dword [edx + 0x20]
add dword [ecx], eax
mov ecx, dword [edx + 0x20]
add dword [ecx + 4], edi
cmp byte [edx + 0x2f], 0
jne 0x1009cc73
cmp byte [esp + 0x2b], 0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
je 0x1009933b
add edx, eax
mov eax, dword [esi + 8]
add ebp, edi
mov dword [esp + 0x10], edx
mov dword [esp + 0x3f14], edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x3f18], ebp
mov dword [esi + 0xc], eax
jmp 0x10099075
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp edx, edi
jne 0x1009a2ee
mov eax, dword [esi + 4]
test eax, eax
je 0x1009a2d2
cmp dword [eax], 0
jne 0x1009a2d2
mov dword [eax], 0xa1
xor ecx, ecx
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
push eax
push esi
call fcn.1009d360
mov edx, dword [esp + 0x18]
add esp, 8
jmp 0x10099071
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1009a308
sub eax, 1
jne 0x1009a318
shl ecx, 0x10
jmp 0x1009a318
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
cmp ecx, 0x80000001
jge 0x1009a2d4
mov eax, dword [esi + 0x10]
lea eax, [edi + eax*8]
cmp edx, eax
jne 0x1009a34d
mov eax, dword [esi + 4]
test eax, eax
je 0x1009b09c
cmp dword [eax], 0
mov edx, dword [esp + 0x10]
jne 0x10099071
mov dword [eax], 0x82
jmp 0x10099071
mov dword [edx], 0x7fffffff
jmp 0x1009b08e
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x1009a37e
mov eax, dword [esi + 4]
test eax, eax
je 0x1009a37a
cmp dword [eax], 0
jne 0x1009a37a
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebx, ebx
jmp 0x1009a3aa
lea eax, [ecx - 8]
mov ecx, eax
mov dword [esi + 0xc], eax
mov eax, dword [eax + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x1009a39a
sub eax, 1
jne 0x1009a3aa
shl ebx, 0x10
jmp 0x1009a3aa
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
cmp ecx, edx
jne 0x1009a3ca
mov eax, dword [esi + 4]
test eax, eax
je 0x1009a3c6
cmp dword [eax], 0
jne 0x1009a3c6
mov dword [eax], 0xa1
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
xor edi, edi
jmp 0x1009a3f4
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1009a3e4
sub eax, 1
jne 0x1009a3f4
shl edi, 0x10
jmp 0x1009a3f4
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esi + 0x10]
lea eax, [edx + eax*8]
cmp ecx, eax
je 0x1009a042
mov edx, dword [esp + 0x10]
lea eax, [edi + ebx]
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1009906d
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x1009a444
mov eax, dword [esi + 4]
test eax, eax
je 0x1009a440
cmp dword [eax], 0
jne 0x1009a440
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebx, ebx
jmp 0x1009a470
lea eax, [ecx - 8]
mov ecx, eax
mov dword [esi + 0xc], eax
mov eax, dword [eax + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x1009a460
sub eax, 1
jne 0x1009a470
shl ebx, 0x10
jmp 0x1009a470
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
cmp ecx, edx
jne 0x1009a490
mov eax, dword [esi + 4]
test eax, eax
je 0x1009a48c
cmp dword [eax], 0
jne 0x1009a48c
mov dword [eax], 0xa1
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
xor edi, edi
jmp 0x1009a4ba
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1009a4aa
sub eax, 1
jne 0x1009a4ba
shl edi, 0x10
jmp 0x1009a4ba
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esi + 0x10]
lea eax, [edx + eax*8]
cmp ecx, eax
je 0x1009a042
mov edx, dword [esp + 0x10]
sub edi, ebx
mov dword [ecx], edi
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1009906d
test al, al
je 0x1009a503
cmp byte [esp + 0x68], 0
je 0x1009a503
push esi
call fcn.1009d310
push esi
mov edi, eax
call fcn.1009d310
mov byte [esp + 0x70], 0
jmp 0x1009a511
push esi
call fcn.1009d2c0
push esi
mov edi, eax
call fcn.1009d2c0
add esp, 8
push edi
push eax
call fcn.10059750
mov edx, dword [esi + 0x10]
add esp, 8
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea ecx, [ecx + edx*8]
cmp edi, ecx
je 0x1009a32a
mov dword [edi], eax
jmp 0x1009b08e
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp edx, edi
jne 0x1009a56c
mov eax, dword [esi + 4]
test eax, eax
je 0x1009a555
cmp dword [eax], 0
jne 0x1009a555
mov dword [eax], 0xa1
xor ecx, ecx
neg ecx
push ecx
push esi
call fcn.1009d360
mov edx, dword [esp + 0x18]
add esp, 8
jmp 0x10099071
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1009a586
sub eax, 1
jne 0x1009a596
shl ecx, 0x10
jmp 0x1009a596
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
cmp ecx, 0x80000001
jl 0x1009a320
neg ecx
push ecx
push esi
call fcn.1009d360
mov edx, dword [esp + 0x18]
add esp, 8
jmp 0x10099071
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x1009a5dd
mov eax, dword [esi + 4]
test eax, eax
je 0x1009a5d9
cmp dword [eax], 0
jne 0x1009a5d9
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebx, ebx
jmp 0x1009a609
lea eax, [ecx - 8]
mov ecx, eax
mov dword [esi + 0xc], eax
mov eax, dword [eax + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x1009a5f9
sub eax, 1
jne 0x1009a609
shl ebx, 0x10
jmp 0x1009a609
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
cmp ecx, edx
jne 0x1009a629
mov eax, dword [esi + 4]
test eax, eax
je 0x1009a625
cmp dword [eax], 0
jne 0x1009a625
mov dword [eax], 0xa1
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
xor edi, edi
jmp 0x1009a653
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1009a643
sub eax, 1
jne 0x1009a653
shl edi, 0x10
jmp 0x1009a653
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esi + 0x10]
lea eax, [edx + eax*8]
cmp ecx, eax
je 0x1009a042
mov edx, dword [esp + 0x10]
xor eax, eax
cmp edi, ebx
sete al
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1009906d
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
test al, al
je 0x10099075
push esi
call fcn.1009d310
push esi
mov edx, eax
call fcn.1009d310
mov ebp, dword [esi + 0xc]
mov ebx, eax
mov ecx, dword [esi + 8]
add esp, 8
sub ebp, ecx
mov dword [esp + 0x2c], ebx
sar ebp, 3
cmp ebx, ebp
ja 0x1009cb49
sub ebp, ebx
mov dword [esp + 0x50], 0
xor eax, eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x60], eax
cmp edx, 0x1c
ja case.0x1009a6df.4
movzx eax, byte [edx + 0x1009d234]
jmp dword [eax*4 + 0x1009d1f4]
cmp ebx, 3
jne 0x1009cb49
cmp byte [esp + 0x2b], 0
je 0x1009a714
mov edi, dword [esp + 0x30]
cmp dword [edi + 0x1d4], 0
je 0x1009cb49
cmp dword [edi + 0x1d8], 7
jne 0x1009cb49
mov eax, dword [esp + 0x10]
push eax
push esi
call fcn.1009d360
mov ebp, dword [esp + 0x24]
push ebp
push esi
call fcn.1009d360
mov edx, dword [esp + 0x20]
add esp, 0x10
mov dword [esp + 0x50], 2
jmp 0x1009906d
test ebx, ebx
jne 0x1009cb49
cmp byte [esp + 0x2b], bl
je 0x1009caf1
mov edi, dword [esp + 0x30]
mov edx, dword [edi + 0xc]
movsx eax, word [edx + 0x16]
movsx ecx, word [edx + 0x3a]
add eax, 6
add eax, ecx
cmp eax, dword [edx + 4]
jbe 0x1009a77d
push ebx
push 6
push edx
call fcn.1005a030
add esp, 0xc
test eax, eax
jne 0x1009cc73
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [edi + 0x1d4], 1
mov dword [edi + 0x1d8], 0
jmp 0x1009906d
test ebx, ebx
jne 0x1009cb49
cmp byte [esp + 0x2b], bl
je 0x1009caf1
mov ecx, dword [esp + 0x30]
cmp dword [ecx + 0x1d4], ebx
je 0x1009cb49
mov edi, dword [ecx + 0x1d8]
lea eax, [edi + 1]
mov dword [ecx + 0x1d8], eax
lea eax, [edi - 1]
cmp eax, 5
ja 0x1009caf1
push 1
push ecx
call fcn.10093290
add esp, 8
test eax, eax
jne 0x1009cb49
lea eax, [edi - 3]
cmp edi, 3
jg 0x1009a7f8
mov eax, edi
mov edx, dword [esp + 0x10]
add eax, eax
mov ebp, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x3e58], edx
mov dword [esp + eax*4 + 0x3e5c], ebp
cmp edi, 3
je 0x1009a81e
cmp edi, 6
jne 0x1009906d
push dword [esp + 0x3e74]
lea eax, [esp + 0x134]
push dword [esp + 0x3e74]
push dword [esp + 0x3e74]
push dword [esp + 0x3e74]
push dword [esp + 0x3e74]
push dword [esp + 0x3e74]
push eax
call fcn.100976a0
mov edx, dword [esp + 0x2c]
add esp, 0x1c
jmp 0x1009906d
cmp ebx, 1
jne 0x1009cb49
cmp byte [esp + 0x2b], 0
je 0x1009a8bb
mov eax, dword [esp + 0x6c]
xorps xmm0, xmm0
movups xmmword [esp + 0xf8], xmm0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xcc], 0
movq qword [esp + 0x108], xmm0
mov dword [esp + 0x110], 0
mov dword [esp + 0xf8], eax
mov word [esp + 0xfc], 0x100
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x50], 1
jmp 0x1009906d
mov eax, dword [esp + 0x30]
mov ebx, dword [eax + 0x284]
mov dword [esp + 0x38], ebx
test ebx, ebx
je 0x1009cb49
xor eax, eax
cmp edx, 0x12
sete al
lea ecx, [eax - 0xd]
mov eax, dword [ebx]
add ecx, edx
mov edx, dword [esp + 0x2c]
imul eax, ecx
mov dword [esp + 0x50], ecx
cmp edx, eax
jne 0x1009cb49
lea edi, [ecx + ebp]
test ecx, ecx
je 0x1009a9be
mov dword [esp + 0x34], ecx
push ebp
push esi
call fcn.1009d260
add esp, 8
mov ebp, eax
cmp dword [ebx], 1
jbe 0x1009a99b
mov eax, 1
mov ebx, 4
sub eax, edi
mov dword [esp + 0x4c], eax
push edi
push esi
call fcn.1009d260
mov dword [esp + 0x64], eax
add esp, 8
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x88]
mov eax, dword [ebx + eax]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x40]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0xd8], eax
mov ecx, dword [esp + 0x38]
lea ebx, [ebx + 4]
mov eax, dword [esp + 0x4c]
inc edi
add ebp, dword [esp + 0xd8]
add eax, edi
cmp eax, dword [ecx]
jb 0x1009a938
mov ebx, ecx
push ebp
mov ebp, dword [esp + 0x40]
push ebp
push esi
call fcn.1009d3a0
inc ebp
add esp, 0xc
sub dword [esp + 0x34], 1
mov dword [esp + 0x3c], ebp
jne 0x1009a917
mov edx, dword [esp + 0x2c]
mov ecx, dword [esi + 0xc]
mov eax, ecx
sub eax, dword [esi + 8]
sub edx, dword [esp + 0x50]
sar eax, 3
cmp edx, eax
jbe 0x1009a9f8
mov eax, dword [esi + 4]
test eax, eax
je 0x1009c7b9
cmp dword [eax], 0
jne 0x1009c7b9
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [eax], 0xa1
jmp 0x1009906d
lea eax, [edx*8]
sub ecx, eax
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [esi + 0xc], ecx
jmp 0x1009906d
mov ebp, dword [esp + 0x30]
mov edi, dword [ebp + 0x284]
mov edx, dword [ebp + 0x28c]
cmp ebx, 1
jne 0x1009cb49
test edi, edi
je 0x1009cb49
push esi
call fcn.1009d310
mov ebx, eax
add esp, 4
mov eax, dword [edi]
cmp edx, eax
jb 0x1009cb49
sub edx, eax
cmp edx, ebx
jb 0x1009cb49
mov edx, dword [ebp + 0x288]
test edx, edx
je 0x1009caf1
mov ecx, dword [edi + 0x88]
test ecx, ecx
je 0x1009caf1
shl eax, 2
push eax
push ecx
lea eax, [edx + ebx*4]
push eax
call fcn.100d2160
mov ebp, dword [esp + 0x28]
add esp, 0xc
mov edx, dword [esp + 0x10]
jmp 0x1009906d
cmp ebx, 2
jne 0x1009cb49
push esi
call fcn.1009d2c0
push esi
mov edi, eax
call fcn.1009d2c0
add eax, edi
push eax
push esi
call fcn.1009d360
mov ebp, dword [esp + 0x2c]
add esp, 0x10
mov edx, dword [esp + 0x10]
mov dword [esp + 0x50], 1
jmp 0x1009906d
cmp ebx, 2
jne 0x1009cb49
push esi
call fcn.1009d2c0
push esi
mov edi, eax
call fcn.1009d2c0
sub eax, edi
jmp 0x1009aaa4
cmp ebx, 2
jne 0x1009cb49
push esi
call fcn.1009d2c0
push esi
mov dword [esp + 0x64], eax
call fcn.1009d2c0
add esp, 8
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x5c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x7c], eax
push dword [esp + 0x7c]
push esi
call fcn.1009d360
mov ebp, dword [esp + 0x24]
add esp, 8
mov edx, dword [esp + 0x10]
mov dword [esp + 0x50], 1
jmp 0x1009906d
cmp ebx, 2
jne 0x1009cb49
push esi
call fcn.1009d2c0
push esi
mov edi, eax
call fcn.1009d2c0
add esp, 8
test edi, edi
je 0x1009cb49
push edi
push eax
call fcn.10059750
jmp 0x1009aaa4
cmp ebx, 2
jne 0x1009cb49
mov ebx, dword [esp + 0x30]
cmp dword [ebx + 0x284], 0
je 0x1009cb49
push esi
call fcn.1009d310
mov edi, eax
add esp, 4
cmp edi, dword [ebx + 0x28c]
jae 0x1009cb49
push esi
call fcn.1009d2c0
mov ecx, dword [ebx + 0x288]
add esp, 4
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [ecx + edi*4], eax
jmp 0x1009906d
cmp ebx, 1
jne 0x1009cb49
mov edi, dword [esp + 0x30]
cmp dword [edi + 0x284], 0
je 0x1009cb49
push esi
call fcn.1009d310
add esp, 4
cmp eax, dword [edi + 0x28c]
jae 0x1009cb49
mov ecx, dword [edi + 0x288]
push dword [ecx + eax*4]
push esi
call fcn.1009d360
mov ebp, dword [esp + 0x24]
add esp, 8
mov edx, dword [esp + 0x10]
mov dword [esp + 0x50], ebx
jmp 0x1009906d
cmp ebx, 4
jne 0x1009cb49
push esi
call fcn.1009d2c0
push esi
mov ebp, eax
call fcn.1009d2c0
push esi
mov ebx, eax
call fcn.1009d2c0
push esi
mov edi, eax
call fcn.1009d2c0
cmp ebx, ebp
cmovle edi, eax
push edi
push esi
call fcn.1009d360
mov ebp, dword [esp + 0x34]
add esp, 0x18
mov edx, dword [esp + 0x10]
mov dword [esp + 0x50], 1
jmp 0x1009906d
test ebx, ebx
jne 0x1009cb49
mov eax, dword [esp + 0x30]
mov edi, dword [eax + 0x218]
mov edx, dword [edi + 0x288]
mov ecx, edx
mov eax, ecx
shl eax, 0xd
xor ecx, eax
mov eax, ecx
shr eax, 0x11
xor ecx, eax
mov eax, ecx
shl eax, 5
xor eax, ecx
mov dword [edi + 0x288], eax
movzx eax, dx
inc eax
push eax
push esi
call fcn.1009d360
mov ebp, dword [esp + 0x24]
add esp, 8
mov edx, dword [esp + 0x10]
mov dword [esp + 0x50], 1
jmp 0x1009906d
test ebx, ebx
js 0x1009cb49
test edx, edx
js 0x1009cb49
cmp ebx, 3
mov eax, ebx
mov ecx, 3
cmovg eax, ecx
mov dword [esp + 0x60], eax
cmp eax, 1
jb 0x1009caf1
lea edi, [esp + eax*4 + 0x3e4c]
mov ebx, eax
nop dword [eax]
push esi
call fcn.1009d2c0
add esp, 4
mov dword [edi], eax
lea edi, [edi - 4]
sub ebx, 1
jne 0x1009acf0
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
jmp 0x1009906d
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
test al, al
je 0x10099075
cmp dword [esp + 0x50], 0
jle 0x1009ad30
dec dword [esp + 0x50]
jmp 0x10099071
test edi, edi
je 0x1009cb49
push dword [esp + edi*4 + 0x3e4c]
dec edi
push esi
mov dword [esp + 0x68], edi
call fcn.1009d360
mov edx, dword [esp + 0x18]
add esp, 8
jmp 0x10099071
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x10]
cmp eax, dword [esi + 8]
jne 0x1009ad85
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x10099075
cmp dword [eax], 0
jne 0x10099075
mov dword [eax], 0xa1
jmp 0x10099071
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
jmp 0x10099071
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
cmp eax, ecx
jne 0x1009adb3
mov eax, dword [esi + 4]
test eax, eax
je 0x1009adaf
cmp dword [eax], 0
jne 0x1009adaf
mov dword [eax], 0xa1
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1009adda
cmp dword [eax - 4], 2
je 0x1009add2
mov eax, dword [esi + 4]
test eax, eax
je 0x1009adce
cmp dword [eax], 0
jne 0x1009adce
mov dword [eax], 0xa0
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1009adda
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov edi, dword [eax]
mov edx, dword [esi + 0xc]
cmp edx, ecx
jne 0x1009adf7
mov eax, dword [esi + 4]
test eax, eax
je 0x1009adf3
cmp dword [eax], 0
jne 0x1009adf3
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1009ae21
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1009ae11
sub eax, 1
jne 0x1009ae21
shl ecx, 0x10
jmp 0x1009ae21
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edx, dword [esp + 0x10]
cmp edi, 0x20
jae 0x10099071
mov dword [esp + edi*4 + 0x3e78], ecx
jmp 0x10099071
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jne 0x1009ae58
mov eax, dword [esi + 4]
test eax, eax
je 0x1009ae54
cmp dword [eax], 0
jne 0x1009ae54
mov dword [eax], 0xa1
xor eax, eax
jmp 0x1009ae7c
cmp dword [eax - 4], 2
je 0x1009ae74
mov eax, dword [esi + 4]
test eax, eax
je 0x1009ae70
cmp dword [eax], 0
jne 0x1009ae70
mov dword [eax], 0xa0
xor eax, eax
jmp 0x1009ae7c
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp eax, 0x20
jae 0x10099075
push dword [esp + eax*4 + 0x3e78]
push esi
call fcn.1009d360
mov edx, dword [esp + 0x18]
add esp, 8
jmp 0x10099071
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x1009aed2
mov eax, dword [esi + 4]
test eax, eax
je 0x1009aec8
cmp dword [eax], 0
jne 0x1009aec8
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov dword [esp + 0x2c], 0
jmp 0x1009af0e
lea eax, [ecx - 8]
mov ecx, eax
mov dword [esi + 0xc], eax
mov eax, dword [eax + 4]
sub eax, 1
je 0x1009aef8
sub eax, 1
mov eax, dword [ecx]
je 0x1009aeef
mov dword [esp + 0x2c], eax
jmp 0x1009af0e
shl eax, 0x10
mov dword [esp + 0x2c], eax
jmp 0x1009af0e
mov ebx, dword [ecx]
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
mov dword [esp + 0x2c], ebx
cmp ecx, edx
jne 0x1009af2e
mov eax, dword [esi + 4]
test eax, eax
je 0x1009af2a
cmp dword [eax], 0
jne 0x1009af2a
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ebp, ebp
jmp 0x1009af58
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebp, dword [ecx]
sub eax, 1
je 0x1009af48
sub eax, 1
jne 0x1009af58
shl ebp, 0x10
jmp 0x1009af58
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
cmp ecx, edx
jne 0x1009af78
mov eax, dword [esi + 4]
test eax, eax
je 0x1009af74
cmp dword [eax], 0
jne 0x1009af74
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor edi, edi
jmp 0x1009afa2
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
sub eax, 1
je 0x1009af92
sub eax, 1
jne 0x1009afa2
shl edi, 0x10
jmp 0x1009afa2
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
cmp ecx, edx
jne 0x1009afc2
mov eax, dword [esi + 4]
test eax, eax
je 0x1009afbe
cmp dword [eax], 0
jne 0x1009afbe
mov dword [eax], 0xa1
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
xor ebx, ebx
jmp 0x1009afec
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
sub eax, 1
je 0x1009afdc
sub eax, 1
jne 0x1009afec
shl ebx, 0x10
jmp 0x1009afec
mov eax, ebx
shr eax, 0x1f
sub ebx, eax
add ebx, 0x2000
sar ebx, 0xe
mov eax, dword [esi + 0x10]
lea eax, [edx + eax*8]
mov edx, dword [esp + 0x10]
cmp ecx, eax
jne 0x1009b02d
mov ebp, dword [esp + 0x1c]
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x10099075
cmp dword [eax], 0
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
jne 0x10099075
mov dword [eax], 0x82
jmp 0x1009906d
cmp ebp, dword [esp + 0x2c]
cmovle edi, ebx
mov dword [ecx], edi
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x10099069
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x218]
mov ecx, dword [edx + 0x288]
mov eax, ecx
shl eax, 0xd
movzx edi, cx
xor ecx, eax
mov eax, ecx
inc edi
shr eax, 0x11
xor ecx, eax
mov eax, ecx
shl eax, 5
xor eax, ecx
mov dword [edx + 0x288], eax
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
je 0x1009a32a
mov dword [edx], edi
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
mov edx, dword [esp + 0x10]
jmp 0x10099071
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp edx, edi
jne 0x1009b0d1
mov eax, dword [esi + 4]
test eax, eax
je 0x1009b0c7
cmp dword [eax], 0
jne 0x1009b0c7
mov dword [eax], 0xa1
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 8]
mov dword [esp + 0x34], 0
jmp 0x1009b10d
lea eax, [edx - 8]
mov edx, eax
mov dword [esi + 0xc], eax
mov eax, dword [eax + 4]
sub eax, 1
je 0x1009b0f7
sub eax, 1
mov eax, dword [edx]
je 0x1009b0ee
mov dword [esp + 0x34], eax
jmp 0x1009b10d
shl eax, 0x10
mov dword [esp + 0x34], eax
jmp 0x1009b10d
mov ecx, dword [edx]
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov dword [esp + 0x34], ecx
cmp edx, edi
jne 0x1009b12d
mov eax, dword [esi + 4]
test eax, eax
je 0x1009b123
cmp dword [eax], 0
jne 0x1009b123
mov dword [eax], 0xa1
mov dword [esp + 0x2c], 0
jmp 0x1009b164
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1009b151
sub eax, 1
je 0x1009b148
mov dword [esp + 0x2c], ecx
jmp 0x1009b164
shl ecx, 0x10
mov dword [esp + 0x2c], ecx
jmp 0x1009b164
mov eax, dword [edx]
shr ecx, 0x1f
sub eax, ecx
add eax, 0x2000
sar eax, 0xe
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x80], eax
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
je 0x1009a32a
mov eax, dword [esp + 0x80]
mov dword [edx], eax
jmp 0x1009b08e
mov ebp, dword [esi + 0xc]
cmp ebp, dword [esi + 8]
jne 0x1009b1e8
mov eax, dword [esi + 4]
test eax, eax
je 0x1009b1c9
cmp dword [eax], 0
jne 0x1009b1c9
mov dword [eax], 0xa1
xor ebx, ebx
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov ebp, dword [esp + 0x1c]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1009b252
mov edx, dword [esp + 0x10]
jmp 0x1009affe
add ebp, 0xfffffff8
mov dword [esi + 0xc], ebp
mov eax, dword [ebp + 4]
mov ebp, dword [ebp]
sub eax, 1
je 0x1009b203
sub eax, 1
jne 0x1009b213
shl ebp, 0x10
jmp 0x1009b213
mov eax, ebp
shr eax, 0x1f
sub ebp, eax
add ebp, 0x2000
sar ebp, 0xe
test ebp, ebp
jle 0x1009b1c9
mov eax, ebp
mov edi, ebp
sar eax, 1
cmp ebp, 0xa
cmovge edi, eax
push edi
push ebp
call fcn.10059750
lea ebx, [edi + 1]
add esp, 8
add ebx, eax
sar ebx, 1
cmp ebx, edi
je 0x1009b1cb
push ebx
push ebp
mov edi, ebx
call fcn.10059750
inc ebx
add esp, 8
add ebx, eax
sar ebx, 1
cmp ebx, edi
jne 0x1009b238
jmp 0x1009b1cb
mov dword [edx], ebx
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x10]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1009906d
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
cmp edx, ecx
jne 0x1009b291
mov eax, dword [esi + 4]
test eax, eax
je 0x1009b28d
cmp dword [eax], 0
jne 0x1009b28d
mov dword [eax], 0xa1
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
xor edi, edi
jmp 0x1009b2bd
lea eax, [edx - 8]
mov edx, eax
mov dword [esi + 0xc], eax
mov eax, dword [eax + 4]
mov edi, dword [edx]
sub eax, 1
je 0x1009b2ad
sub eax, 1
jne 0x1009b2bd
shl edi, 0x10
jmp 0x1009b2bd
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esi + 0x10]
lea eax, [ecx + eax*8]
cmp edx, eax
jne 0x1009b2db
mov eax, dword [esi + 4]
test eax, eax
je 0x1009b2ee
cmp dword [eax], 0
jne 0x1009b2ee
mov dword [eax], 0x82
jmp 0x1009b2eb
mov dword [edx], edi
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1009b08c
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x10]
test eax, eax
je 0x10099075
cmp dword [eax], 0
mov ecx, dword [esp + 0x14]
jne 0x10099075
mov dword [eax], 0x82
jmp 0x10099071
mov edi, dword [esi + 0xc]
cmp edi, dword [esi + 8]
jne 0x1009b348
mov eax, dword [esi + 4]
test eax, eax
je 0x1009b344
cmp dword [eax], 0
jne 0x1009b344
mov dword [eax], 0xa1
xor edi, edi
jmp 0x1009b372
add edi, 0xfffffff8
mov dword [esi + 0xc], edi
mov eax, dword [edi + 4]
mov edi, dword [edi]
sub eax, 1
je 0x1009b362
sub eax, 1
jne 0x1009b372
shl edi, 0x10
jmp 0x1009b372
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
push esi
call fcn.1009d2c0
push edi
push esi
mov ebx, eax
call fcn.1009d360
mov edx, dword [esi + 0x10]
add esp, 0xc
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
lea ecx, [ecx + edx*8]
cmp edi, ecx
jne 0x1009b3b7
mov eax, dword [esi + 4]
test eax, eax
je 0x1009caf5
cmp dword [eax], 0
mov edx, dword [esp + 0x10]
jne 0x1009906d
mov dword [eax], 0x82
jmp 0x1009906d
mov edx, dword [esp + 0x10]
mov dword [edi], ebx
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
jmp 0x1009906d
push esi
call fcn.1009d310
mov ecx, dword [esi + 0xc]
add esp, 4
sub ecx, dword [esi + 8]
sar ecx, 3
test ecx, ecx
je 0x1009b09c
test eax, eax
js 0x1009b3f8
cmp eax, ecx
jb 0x1009b3f6
xor ecx, ecx
jmp 0x1009b3f9
sub ecx, eax
dec ecx
push ecx
push esi
call fcn.1009d260
push eax
push esi
call fcn.1009d360
add esp, 0x10
nop word [eax + eax]
mov edx, dword [esp + 0x10]
jmp 0x10099071
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
cmp eax, ecx
jne 0x1009b43c
mov eax, dword [esi + 4]
test eax, eax
je 0x1009b438
cmp dword [eax], 0
jne 0x1009b438
mov dword [eax], 0xa1
mov ecx, dword [esi + 8]
xor edx, edx
jmp 0x1009b463
cmp dword [eax - 4], 2
je 0x1009b45b
mov eax, dword [esi + 4]
test eax, eax
je 0x1009b457
cmp dword [eax], 0
jne 0x1009b457
mov dword [eax], 0xa0
mov ecx, dword [esi + 8]
xor edx, edx
jmp 0x1009b463
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov edx, dword [eax]
mov eax, dword [esi + 0xc]
cmp eax, ecx
jne 0x1009b480
mov eax, dword [esi + 4]
test eax, eax
je 0x1009b47c
cmp dword [eax], 0
jne 0x1009b47c
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1009b4a4
cmp dword [eax - 4], 2
je 0x1009b49c
mov eax, dword [esi + 4]
test eax, eax
je 0x1009b498
cmp dword [eax], 0
jne 0x1009b498
mov dword [eax], 0xa0
xor ecx, ecx
jmp 0x1009b4a4
add eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov ecx, dword [eax]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 2
cmp ecx, 2
jl 0x1009b410
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp ecx, eax
ja 0x1009b2ff
test edx, edx
jns 0x1009b4e7
neg edx
mov eax, edx
cdq
idiv ecx
mov ebx, edx
neg ebx
mov dword [esp + 0x3c], ebx
jmp 0x1009b4f2
mov eax, edx
cdq
idiv ecx
mov ebx, edx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x10]
test ebx, ebx
je 0x1009906d
or ebp, 0xffffffff
mov dword [esp + 0x40], ecx
or edi, ebp
lea eax, [ecx*8]
shl ebx, 3
mov dword [esp + 0x4c], ebx
lea edx, [ebp - 7]
mov ebx, dword [esi + 8]
cmp ebp, edi
jne 0x1009b53f
inc ebp
mov eax, dword [ebx + ebp*8]
lea edx, [ebp*8]
mov dword [esp + 0x38], eax
mov edi, ebp
mov eax, dword [ebx + edx + 4]
mov dword [esp + 0x34], eax
lea eax, [ecx*8]
add edi, dword [esp + 0x3c]
add edx, dword [esp + 0x4c]
cmp edi, ecx
jl 0x1009b551
sub edi, ecx
sub edx, eax
jmp 0x1009b559
test edi, edi
jns 0x1009b559
add edi, ecx
add edx, eax
sub dword [esp + 0x40], 1
mov eax, dword [ebx + edx]
mov ecx, dword [ebx + edx + 4]
mov esi, dword [esp + 0x38]
mov dword [ebx + edx], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ebx + edx + 4], esi
mov esi, dword [esp + 0x64]
mov dword [esp + 0x38], eax
lea eax, [ecx*8]
jne 0x1009b518
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
jmp 0x1009906d
test al, al
je case.0x10099d52.0
cmp byte [esp + 0x2b], 0
je case.0x10099d52.0
push esi
call fcn.1009d2c0
mov ebp, eax
push esi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x3f20], ebp
call fcn.1009d2c0
mov edx, eax
add esp, 8
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], edx
mov dword [esp + 0x3f14], edx
mov dword [eax + 0x1d4], 0
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x10099075
test al, al
je case.0x10099184.0
mov ecx, dword [esi + 0xc]
cmp ecx, dword [esi + 8]
jne 0x1009b619
mov eax, dword [esi + 4]
test eax, eax
je 0x1009b615
cmp dword [eax], 0
jne 0x1009b615
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1009b643
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1009b633
sub eax, 1
jne 0x1009b643
shl ecx, 0x10
jmp 0x1009b643
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edi, dword [esp + 0x30]
mov eax, dword [edi + 0x24]
mov dword [eax], ecx
mov eax, dword [edi + 0x24]
mov dword [eax + 4], 0
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x1009b674
mov eax, dword [esi + 4]
test eax, eax
je 0x1009b670
cmp dword [eax], 0
jne 0x1009b670
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1009b69e
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1009b68e
sub eax, 1
jne 0x1009b69e
shl ecx, 0x10
jmp 0x1009b69e
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [edi + 0x20]
mov byte [esp + 0x23], 1
add dword [eax], ecx
cmp byte [edi + 0x2f], 0
jne 0x1009cc73
cmp byte [esp + 0x2b], 0
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
je 0x1009b5e4
mov eax, dword [esi + 8]
add edx, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
mov dword [esp + 0x3f14], edx
mov dword [esi + 0xc], eax
jmp 0x10099075
test al, al
je 0x1009cecc
test ah, ah
jne 0x1009cecc
push ebp
push edx
lea eax, [esp + 0x138]
push eax
call fcn.10097b80
mov ecx, dword [esp + 0x20]
xorps xmm0, xmm0
mov eax, dword [esp + 0x78]
add esp, 0xc
mov byte [esp + 0x2b], 1
mov dword [esp + 0xb0], 0
mov dword [esp + 0xcc], 0
movq qword [esp + 0x108], xmm0
mov dword [esp + 0x110], 0
movups xmmword [esp + 0xf8], xmm0
mov dword [esp + 0xf8], eax
mov word [esp + 0xfc], 0x100
test ecx, ecx
jle 0x1009b7a6
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x98]
nop
lea eax, [ecx - 1]
cmp eax, edx
jb 0x1009b788
test esi, esi
je 0x1009b786
cmp dword [esi], 0
jne 0x1009b786
mov dword [esi], 0x82
xor eax, eax
mov ebp, ebx
dec ecx
imul ebp, eax
add ebp, dword [esp + 0x24]
mov dword [esp + 0x18], ebp
test ecx, ecx
jg 0x1009b770
mov esi, dword [esp + 0x64]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x10099075
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp eax, 1
jbe 0x1009b7db
cmp byte [esp + 0xfc], 0
jne case.0x10099184.0
push 0
lea eax, [esp + 0x27]
push eax
push dword [esp + 0x60]
lea eax, [esp + 0xac]
push eax
push esi
push dword [esp + 0x5c]
call fcn.10096940
mov eax, dword [esp + 0x48]
add esp, 0x18
cmp byte [eax + 0x224], 0
jne 0x1009cc73
cmp bl, 0x13
jne 0x1009b848
mov eax, dword [esp + 0xb0]
add eax, dword [esp + 0xcc]
mov ebx, dword [esp + 0x18]
push eax
lea eax, [esp + 0xfc]
push ebx
push eax
call fcn.10098ab0
mov eax, dword [esi + 8]
add esp, 0xc
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x10099075
push 0xf1c
lea eax, [esp + 0x2f38]
push 0
push eax
call fcn.100d26e0
mov ecx, dword [esp + 0x54]
xorps xmm0, xmm0
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x2f40], ecx
movlpd qword [esp + 0x124], xmm0
mov al, byte [ecx + 0xb8]
mov byte [esp + 0x2f4d], al
mov eax, dword [esp + 0x94]
mov dword [esp + 0x2f50], eax
lea eax, [esp + 0x1f7c]
mov dword [esp + 0x2f44], eax
lea eax, [esp + 0x2e98]
mov dword [esp + 0x2f48], eax
lea eax, [ecx + 4]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0xbc]
add eax, dword [esp + 0xd8]
push eax
lea eax, [esp + 0x124]
movlpd qword [esp + 0x130], xmm0
push ebx
push eax
movlpd qword [esp + 0x140], xmm0
call fcn.10098ab0
push 0
push 0
lea eax, [esp + 0x134]
push eax
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0xe4]
push eax
lea eax, [esp + 0x2f60]
push eax
call fcn.10098330
add esp, 0x30
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0xc], eax
jmp 0x10099075
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp eax, 2
jbe 0x1009b970
cmp byte [esp + 0x23], 0
jne 0x1009b970
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1009b951
sub eax, 1
jne 0x1009b961
shl ecx, 0x10
jmp 0x1009b961
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x84]
add eax, ecx
mov ecx, dword [esp + 0x58]
mov dword [ecx], eax
mov ebx, dword [esp + 0x30]
mov byte [esp + 0x23], 1
cmp byte [ebx + 0x224], 0
jne 0x1009cc73
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp ecx, edi
jne 0x1009b9ac
mov eax, dword [esi + 4]
test eax, eax
je 0x1009b9a8
cmp dword [eax], 0
jne 0x1009b9a8
mov dword [eax], 0xa1
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
xor edx, edx
jmp 0x1009b9d6
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, 1
je 0x1009b9c6
sub eax, 1
jne 0x1009b9d6
shl edx, 0x10
jmp 0x1009b9d6
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
add ebp, edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x3f18], ebp
cmp ecx, edi
jne 0x1009b9fd
mov eax, dword [esi + 4]
test eax, eax
je 0x1009b9f9
cmp dword [eax], 0
jne 0x1009b9f9
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1009ba27
lea edx, [ecx - 8]
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1009ba17
sub eax, 1
jne 0x1009ba27
shl ecx, 0x10
jmp 0x1009ba27
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edi, dword [esp + 0x10]
add edi, ecx
cmp dword [ebx + 0x1d4], 0
mov dword [esp + 0x10], edi
mov dword [esp + 0x3f14], edi
jne 0x1009932f
push ebp
push edi
jmp 0x10099450
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp eax, 1
jbe 0x1009ba96
cmp byte [esp + 0x23], 0
jne 0x1009ba96
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1009ba77
sub eax, 1
jne 0x1009ba87
shl ecx, 0x10
jmp 0x1009ba87
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x84]
add eax, ecx
mov ecx, dword [esp + 0x58]
mov dword [ecx], eax
mov ebx, dword [esp + 0x30]
mov byte [esp + 0x23], 1
cmp byte [ebx + 0x224], 0
jne 0x1009cc73
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x1009bad5
mov eax, dword [esi + 4]
test eax, eax
je 0x1009b9f9
cmp dword [eax], 0
jne 0x1009b9f9
mov dword [eax], 0xa1
xor ecx, ecx
jmp 0x1009ba27
add edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, 1
je 0x1009ba17
sub eax, 1
jne 0x1009ba27
shl ecx, 0x10
jmp 0x1009ba27
mov eax, dword [esi + 0xc]
xor ebx, ebx
sub eax, dword [esi + 8]
sar eax, 3
mov dword [esp + 0x38], eax
cmp eax, 6
jbe 0x1009bbf9
lea ebp, [ebx + 6]
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov edx, dword [esi + 8]
sub eax, edx
sar eax, 3
cmp ebx, eax
jb 0x1009bb42
mov eax, dword [esi + 4]
test eax, eax
je 0x1009bb3e
cmp dword [eax], 0
jne 0x1009bb3e
mov dword [eax], 0x82
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor edi, edi
jmp 0x1009bb68
mov eax, dword [edx + ebx*8 + 4]
mov edi, dword [edx + ebx*8]
sub eax, 1
je 0x1009bb58
sub eax, 1
jne 0x1009bb68
shl edi, 0x10
jmp 0x1009bb68
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
add dword [esp + 0x10], edi
lea eax, [ebp - 5]
mov edi, dword [esp + 0x10]
sub ecx, edx
sar ecx, 3
mov dword [esp + 0x3f14], edi
cmp eax, ecx
jb 0x1009bb99
mov eax, dword [esi + 4]
test eax, eax
je 0x1009bb95
cmp dword [eax], 0
jne 0x1009bb95
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1009bbc0
mov eax, dword [edx + ebx*8 + 0xc]
mov ecx, dword [edx + ebx*8 + 8]
sub eax, 1
je 0x1009bbb0
sub eax, 1
jne 0x1009bbc0
shl ecx, 0x10
jmp 0x1009bbc0
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x1c]
add eax, ecx
push eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x3f1c], eax
lea eax, [esp + 0x134]
push edi
push eax
call fcn.10097a00
mov eax, dword [esp + 0x44]
add ebp, 2
add esp, 0xc
add ebx, 2
cmp ebp, eax
jb 0x1009bb15
mov ebp, dword [esp + 0x1c]
cmp ebx, eax
jae 0x1009be63
add ebx, 2
mov edi, dword [esi + 0xc]
lea eax, [ebx - 2]
mov edx, dword [esi + 8]
mov ecx, edi
sub ecx, edx
sar ecx, 3
cmp eax, ecx
jb 0x1009bc34
mov eax, dword [esi + 4]
test eax, eax
je 0x1009bc30
cmp dword [eax], 0
jne 0x1009bc30
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1009bc5b
mov eax, dword [edx + ebx*8 - 0xc]
mov ecx, dword [edx + ebx*8 - 0x10]
sub eax, 1
je 0x1009bc4b
sub eax, 1
jne 0x1009bc5b
shl ecx, 0x10
jmp 0x1009bc5b
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x10]
add eax, ecx
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x3c], eax
sar ecx, 3
lea eax, [ebx - 1]
cmp eax, ecx
jb 0x1009bc8f
mov eax, dword [esi + 4]
test eax, eax
je 0x1009bc8b
cmp dword [eax], 0
jne 0x1009bc8b
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1009bcb6
mov eax, dword [edx + ebx*8 - 4]
mov ecx, dword [edx + ebx*8 - 8]
sub eax, 1
je 0x1009bca6
sub eax, 1
jne 0x1009bcb6
shl ecx, 0x10
jmp 0x1009bcb6
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, edi
add ebp, ecx
sub eax, edx
mov dword [esp + 0x4c], ebp
sar eax, 3
cmp ebx, eax
jb 0x1009bce3
mov eax, dword [esi + 4]
test eax, eax
je 0x1009bcdf
cmp dword [eax], 0
jne 0x1009bcdf
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1009bd09
mov eax, dword [edx + ebx*8 + 4]
mov ecx, dword [edx + ebx*8]
sub eax, 1
je 0x1009bcf9
sub eax, 1
jne 0x1009bd09
shl ecx, 0x10
jmp 0x1009bd09
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x3c]
add eax, ecx
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x40], eax
sar ecx, 3
lea eax, [ebx + 1]
cmp eax, ecx
jb 0x1009bd3d
mov eax, dword [esi + 4]
test eax, eax
je 0x1009bd39
cmp dword [eax], 0
jne 0x1009bd39
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1009bd64
mov eax, dword [edx + ebx*8 + 0xc]
mov ecx, dword [edx + ebx*8 + 8]
sub eax, 1
je 0x1009bd54
sub eax, 1
jne 0x1009bd64
shl ecx, 0x10
jmp 0x1009bd64
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
add ebp, ecx
lea eax, [ebx + 2]
mov ecx, edi
sub ecx, edx
sar ecx, 3
cmp eax, ecx
jb 0x1009bd90
mov eax, dword [esi + 4]
test eax, eax
je 0x1009bd8c
cmp dword [eax], 0
jne 0x1009bd8c
mov dword [eax], 0x82
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
jmp 0x1009bdb7
mov eax, dword [edx + ebx*8 + 0x14]
mov ecx, dword [edx + ebx*8 + 0x10]
sub eax, 1
je 0x1009bda7
sub eax, 1
jne 0x1009bdb7
shl ecx, 0x10
jmp 0x1009bdb7
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x40]
sub edi, edx
add eax, ecx
sar edi, 3
mov dword [esp + 0x10], eax
lea eax, [ebx + 3]
cmp eax, edi
jb 0x1009bde3
mov eax, dword [esi + 4]
test eax, eax
je 0x1009bddf
cmp dword [eax], 0
jne 0x1009bddf
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1009be0a
mov eax, dword [edx + ebx*8 + 0x1c]
mov ecx, dword [edx + ebx*8 + 0x18]
sub eax, 1
je 0x1009bdfa
sub eax, 1
jne 0x1009be0a
shl ecx, 0x10
jmp 0x1009be0a
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x10]
lea edi, [ecx + ebp]
push edi
push eax
push ebp
push dword [esp + 0x4c]
lea eax, [esp + 0x140]
mov dword [esp + 0x2c], edi
push dword [esp + 0x5c]
push dword [esp + 0x50]
push eax
call fcn.100976a0
mov edx, dword [esp + 0x2c]
add ebx, 6
add esp, 0x1c
mov dword [esp + 0x3f14], edx
mov dword [esp + 0x3f18], edi
mov ebp, edi
lea eax, [ebx - 2]
cmp eax, dword [esp + 0x38]
jb 0x1009bc04
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x10099069
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x10]
mov dword [esi + 0xc], eax
jmp 0x10099069
mov ebx, dword [esi + 0xc]
sub ebx, dword [esi + 8]
sar ebx, 3
mov ecx, ebx
and ecx, 0xfffffffd
sub ebx, ecx
mov dword [esp + 0x4c], ecx
cmp ebx, ecx
jae 0x1009c33b
mov edi, dword [esp + 0x10]
lea eax, [ebx + 3]
lea ebp, [ebx + 2]
mov dword [esp + 0x2c], eax
lea edx, [ebx + 1]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x34], edx
mov eax, ecx
sub eax, ebx
test al, 1
je 0x1009bf0b
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x1009bed4
mov eax, dword [esi + 4]
test eax, eax
je 0x1009bed0
cmp dword [eax], 0
jne 0x1009bed0
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1009befa
mov eax, dword [ecx + ebx*8 + 4]
mov ecx, dword [ecx + ebx*8]
sub eax, 1
je 0x1009beea
sub eax, 1
jne 0x1009befa
shl ecx, 0x10
jmp 0x1009befa
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
inc edx
inc ebp
add edi, ecx
mov dword [esp + 0x34], edx
inc ebx
mov dword [esp + 0x38], ebp
inc dword [esp + 0x2c]
mov edx, dword [esi + 0xc]
mov eax, edx
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
mov dword [esp + 0x3c], edi
cmp ebx, eax
jb 0x1009bf3c
mov eax, dword [esi + 4]
test eax, eax
je 0x1009bf38
cmp dword [eax], 0
jne 0x1009bf38
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1009bf62
mov eax, dword [ecx + ebx*8 + 4]
mov edi, dword [ecx + ebx*8]
sub eax, 1
je 0x1009bf52
sub eax, 1
jne 0x1009bf62
shl edi, 0x10
jmp 0x1009bf62
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov ebp, dword [esp + 0x1c]
mov eax, edx
sub eax, ecx
add ebp, edi
mov edi, dword [esp + 0x34]
sar eax, 3
cmp edi, eax
jb 0x1009bf93
mov eax, dword [esi + 4]
test eax, eax
je 0x1009bf8f
cmp dword [eax], 0
jne 0x1009bf8f
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1009bfb9
mov eax, dword [ecx + edi*8 + 4]
mov edi, dword [ecx + edi*8]
sub eax, 1
je 0x1009bfa9
sub eax, 1
jne 0x1009bfb9
shl edi, 0x10
jmp 0x1009bfb9
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esp + 0x3c]
add eax, edi
mov edi, dword [esp + 0x38]
mov dword [esp + 0x10], eax
mov eax, edx
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x1009bfee
mov eax, dword [esi + 4]
test eax, eax
je 0x1009bfea
cmp dword [eax], 0
jne 0x1009bfea
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1009c014
mov eax, dword [ecx + edi*8 + 4]
mov edi, dword [ecx + edi*8]
sub eax, 1
je 0x1009c004
sub eax, 1
jne 0x1009c014
shl edi, 0x10
jmp 0x1009c014
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esp + 0x2c]
sub edx, ecx
sar edx, 3
add edi, ebp
cmp eax, edx
jb 0x1009c039
mov eax, dword [esi + 4]
test eax, eax
je 0x1009c035
cmp dword [eax], 0
jne 0x1009c035
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1009c060
lea ecx, [ecx + eax*8]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
sub eax, 1
je 0x1009c050
sub eax, 1
jne 0x1009c060
shl ecx, 0x10
jmp 0x1009c060
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [edi + ecx]
push eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
push eax
push edi
mov edi, eax
lea eax, [esp + 0x13c]
push edi
push ebp
push dword [esp + 0x50]
push eax
call fcn.100976a0
mov edx, dword [esp + 0x50]
add ebx, 4
mov ebp, dword [esp + 0x54]
add edx, 4
add dword [esp + 0x48], 4
add ebp, 4
mov ecx, dword [esp + 0x68]
add esp, 0x1c
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3f14], edi
mov dword [esp + 0x3f18], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ebp
cmp ebx, ecx
jb 0x1009bea7
mov ebp, eax
mov edx, edi
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
jmp 0x1009906d
mov ebx, dword [esi + 0xc]
sub ebx, dword [esi + 8]
sar ebx, 3
mov ecx, ebx
and ecx, 0xfffffffd
sub ebx, ecx
mov dword [esp + 0x5c], ecx
cmp ebx, ecx
jae 0x1009c33b
lea eax, [ebx + 3]
lea ebp, [ebx + 2]
mov dword [esp + 0x2c], eax
lea edx, [ebx + 1]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], edx
mov eax, ecx
sub eax, ebx
test al, 1
je 0x1009c170
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x1009c12f
mov eax, dword [esi + 4]
test eax, eax
je 0x1009c12b
cmp dword [eax], 0
jne 0x1009c12b
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1009c155
mov eax, dword [ecx + ebx*8 + 4]
mov ecx, dword [ecx + ebx*8]
sub eax, 1
je 0x1009c145
sub eax, 1
jne 0x1009c155
shl ecx, 0x10
jmp 0x1009c155
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov edi, dword [esp + 0x1c]
inc edx
add edi, ecx
mov dword [esp + 0x38], edx
inc ebp
mov dword [esp + 0x3c], edi
inc ebx
mov dword [esp + 0x34], ebp
inc dword [esp + 0x2c]
jmp 0x1009c178
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
mov edx, dword [esi + 0xc]
mov eax, edx
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x1009c1a5
mov eax, dword [esi + 4]
test eax, eax
je 0x1009c1a1
cmp dword [eax], 0
jne 0x1009c1a1
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1009c1cb
mov eax, dword [ecx + ebx*8 + 4]
mov edi, dword [ecx + ebx*8]
sub eax, 1
je 0x1009c1bb
sub eax, 1
jne 0x1009c1cb
shl edi, 0x10
jmp 0x1009c1cb
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov ebp, dword [esp + 0x10]
mov eax, edx
sub eax, ecx
add ebp, edi
mov edi, dword [esp + 0x38]
sar eax, 3
mov dword [esp + 0x4c], ebp
cmp edi, eax
jb 0x1009c200
mov eax, dword [esi + 4]
test eax, eax
je 0x1009c1fc
cmp dword [eax], 0
jne 0x1009c1fc
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1009c226
mov eax, dword [ecx + edi*8 + 4]
mov edi, dword [ecx + edi*8]
sub eax, 1
je 0x1009c216
sub eax, 1
jne 0x1009c226
shl edi, 0x10
jmp 0x1009c226
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, edx
add ebp, edi
mov edi, dword [esp + 0x34]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x1009c253
mov eax, dword [esi + 4]
test eax, eax
je 0x1009c24f
cmp dword [eax], 0
jne 0x1009c24f
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1009c279
mov eax, dword [ecx + edi*8 + 4]
mov edi, dword [ecx + edi*8]
sub eax, 1
je 0x1009c269
sub eax, 1
jne 0x1009c279
shl edi, 0x10
jmp 0x1009c279
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esp + 0x3c]
sub edx, ecx
add eax, edi
sar edx, 3
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
cmp edi, edx
jb 0x1009c2a6
mov eax, dword [esi + 4]
test eax, eax
je 0x1009c2a2
cmp dword [eax], 0
jne 0x1009c2a2
mov dword [eax], 0x82
xor ecx, ecx
jmp 0x1009c2ce
mov eax, dword [ecx + edi*8 + 4]
lea ecx, [ecx + edi*8]
mov ecx, dword [ecx]
sub eax, 1
je 0x1009c2be
sub eax, 1
jne 0x1009c2ce
shl ecx, 0x10
jmp 0x1009c2ce
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
lea eax, [ecx + ebp]
mov ecx, dword [esp + 0x1c]
push ecx
push eax
push ecx
push ebp
push dword [esp + 0x4c]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x144]
push dword [esp + 0x60]
push eax
call fcn.100976a0
mov edx, dword [esp + 0x54]
add ebx, 4
mov ebp, dword [esp + 0x50]
add edx, 4
mov eax, dword [esp + 0x2c]
add ebp, 4
mov ecx, dword [esp + 0x78]
add edi, 4
add esp, 0x1c
mov dword [esp + 0x3f14], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3f18], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x2c], edi
cmp ebx, ecx
jb 0x1009c102
mov ebp, dword [esp + 0x1c]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x10]
mov dword [esi + 0xc], eax
jmp 0x1009906d
mov ebp, dword [esi + 0xc]
sub ebp, dword [esi + 8]
sar ebp, 3
cmp bl, 0x1f
mov eax, ebp
sete bl
and eax, 0xfffffffd
sub ebp, eax
mov dword [esp + 0x34], eax
cmp ebp, eax
jae 0x1009c7b3
mov edi, dword [esp + 0x10]
mov edx, dword [esi + 0xc]
mov eax, edx
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 3
test bl, bl
je 0x1009c58b
cmp ebp, eax
jb 0x1009c3a5
mov eax, dword [esi + 4]
test eax, eax
je 0x1009c3a1
cmp dword [eax], 0
jne 0x1009c3a1
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1009c3cb
mov eax, dword [ecx + ebp*8 + 4]
mov edi, dword [ecx + ebp*8]
sub eax, 1
je 0x1009c3bb
sub eax, 1
jne 0x1009c3cb
shl edi, 0x10
jmp 0x1009c3cb
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esp + 0x10]
lea ebx, [ebp + 1]
add eax, edi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
mov eax, edx
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x1009c40b
mov eax, dword [esi + 4]
test eax, eax
je 0x1009c407
cmp dword [eax], 0
jne 0x1009c407
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1009c431
mov eax, dword [ecx + ebx*8 + 4]
mov edi, dword [ecx + ebx*8]
sub eax, 1
je 0x1009c421
sub eax, 1
jne 0x1009c431
shl edi, 0x10
jmp 0x1009c431
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esp + 0x38]
lea ebx, [ebp + 2]
add eax, edi
mov dword [esp + 0x2c], eax
mov eax, edx
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x1009c465
mov eax, dword [esi + 4]
test eax, eax
je 0x1009c461
cmp dword [eax], 0
jne 0x1009c461
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1009c48b
mov eax, dword [ecx + ebx*8 + 4]
mov edi, dword [ecx + ebx*8]
sub eax, 1
je 0x1009c47b
sub eax, 1
jne 0x1009c48b
shl edi, 0x10
jmp 0x1009c48b
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov ebx, dword [esp + 0x1c]
lea eax, [ebp + 3]
sub edx, ecx
add ebx, edi
sar edx, 3
mov dword [esp + 0x40], ebx
cmp eax, edx
jb 0x1009c4b7
mov eax, dword [esi + 4]
test eax, eax
je 0x1009c4b3
cmp dword [eax], 0
jne 0x1009c4b3
mov dword [eax], 0x82
xor edx, edx
jmp 0x1009c4dd
mov edx, dword [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1009c4cd
sub eax, 1
jne 0x1009c4dd
shl edx, 0x10
jmp 0x1009c4dd
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
lea eax, [ebx + edx]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x34]
sub eax, ebp
cmp eax, 5
jne 0x1009c57c
mov eax, dword [esi + 0xc]
lea edx, [ebp + 4]
mov edi, dword [esi + 8]
sub eax, edi
sar eax, 3
cmp edx, eax
jb 0x1009c52e
mov eax, dword [esi + 4]
test eax, eax
je 0x1009c517
cmp dword [eax], 0
jne 0x1009c517
mov dword [eax], 0x82
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov ebp, dword [esp + 0x4c]
add eax, ecx
mov dword [esp + 0x10], eax
xor bl, bl
jmp 0x1009c76b
mov eax, dword [edi + edx*8 + 4]
mov ecx, dword [edi + edx*8]
sub eax, 1
je 0x1009c557
sub eax, 1
jne 0x1009c567
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x4c]
shl ecx, 0x10
add eax, ecx
xor bl, bl
mov dword [esp + 0x10], eax
jmp 0x1009c76b
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x4c]
add eax, ecx
mov dword [esp + 0x10], eax
xor bl, bl
jmp 0x1009c76b
mov eax, dword [esp + 0x2c]
xor bl, bl
mov dword [esp + 0x10], eax
jmp 0x1009c76b
mov dword [esp + 0x38], edi
cmp ebp, eax
jb 0x1009c5af
mov eax, dword [esi + 4]
test eax, eax
je 0x1009c5ab
cmp dword [eax], 0
jne 0x1009c5ab
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1009c5d5
mov eax, dword [ecx + ebp*8 + 4]
mov edi, dword [ecx + ebp*8]
sub eax, 1
je 0x1009c5c5
sub eax, 1
jne 0x1009c5d5
shl edi, 0x10
jmp 0x1009c5d5
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esp + 0x1c]
lea ebx, [ebp + 1]
add eax, edi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x3c], eax
mov eax, edx
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x1009c60d
mov eax, dword [esi + 4]
test eax, eax
je 0x1009c609
cmp dword [eax], 0
jne 0x1009c609
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1009c633
mov eax, dword [ecx + ebx*8 + 4]
mov edi, dword [ecx + ebx*8]
sub eax, 1
je 0x1009c623
sub eax, 1
jne 0x1009c633
shl edi, 0x10
jmp 0x1009c633
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov eax, dword [esp + 0x10]
lea ebx, [ebp + 2]
add eax, edi
mov dword [esp + 0x2c], eax
mov eax, edx
sub eax, ecx
sar eax, 3
cmp ebx, eax
jb 0x1009c667
mov eax, dword [esi + 4]
test eax, eax
je 0x1009c663
cmp dword [eax], 0
jne 0x1009c663
mov dword [eax], 0x82
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
xor edi, edi
jmp 0x1009c68d
mov eax, dword [ecx + ebx*8 + 4]
mov edi, dword [ecx + ebx*8]
sub eax, 1
je 0x1009c67d
sub eax, 1
jne 0x1009c68d
shl edi, 0x10
jmp 0x1009c68d
mov eax, edi
shr eax, 0x1f
sub edi, eax
add edi, 0x2000
sar edi, 0xe
mov ebx, dword [esp + 0x3c]
lea eax, [ebp + 3]
sub edx, ecx
add ebx, edi
sar edx, 3
mov dword [esp + 0x40], ebx
cmp eax, edx
jb 0x1009c6b9
mov eax, dword [esi + 4]
test eax, eax
je 0x1009c6b5
cmp dword [eax], 0
jne 0x1009c6b5
mov dword [eax], 0x82
xor edx, edx
jmp 0x1009c6df
mov edx, dword [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 4]
sub eax, 1
je 0x1009c6cf
sub eax, 1
jne 0x1009c6df
shl edx, 0x10
jmp 0x1009c6df
mov eax, edx
shr eax, 0x1f
sub edx, eax
add edx, 0x2000
sar edx, 0xe
mov eax, dword [esp + 0x2c]
add eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
sub eax, ebp
cmp eax, 5
jne 0x1009c765
mov eax, dword [esi + 0xc]
lea edx, [ebp + 4]
mov edi, dword [esi + 8]
sub eax, edi
sar eax, 3
cmp edx, eax
jb 0x1009c727
mov eax, dword [esi + 4]
test eax, eax
je 0x1009c718
cmp dword [eax], 0
jne 0x1009c718
mov dword [eax], 0x82
mov ebp, dword [esp + 0x4c]
xor ecx, ecx
lea eax, [ebx + ecx]
mov dword [esp + 0x1c], eax
jmp 0x1009c769
mov eax, dword [edi + edx*8 + 4]
mov ecx, dword [edi + edx*8]
sub eax, 1
je 0x1009c748
sub eax, 1
jne 0x1009c758
mov ebp, dword [esp + 0x4c]
shl ecx, 0x10
lea eax, [ebx + ecx]
mov dword [esp + 0x1c], eax
jmp 0x1009c769
mov eax, ecx
shr eax, 0x1f
sub ecx, eax
add ecx, 0x2000
sar ecx, 0xe
mov ebp, dword [esp + 0x4c]
lea eax, [ebx + ecx]
mov dword [esp + 0x1c], eax
jmp 0x1009c769
mov dword [esp + 0x1c], ebx
mov bl, 1
push dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
lea eax, [esp + 0x134]
push edi
push dword [esp + 0x48]
push dword [esp + 0x38]
push dword [esp + 0x4c]
push dword [esp + 0x4c]
push eax
call fcn.100976a0
mov eax, dword [esp + 0x38]
add ebp, 4
add esp, 0x1c
mov dword [esp + 0x3f14], edi
mov dword [esp + 0x3f18], eax
cmp ebp, dword [esp + 0x34]
jb 0x1009c370
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
jmp 0x1009906d
mov ebx, dword [esp + 0x18]
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
cmp edx, ecx
jae 0x1009c7df
mov al, byte [edx]
inc edx
mov dword [ebx + 0xc], edx
movzx edi, al
jmp 0x1009c7f8
mov eax, dword [ebx]
test eax, eax
je 0x1009c7f6
cmp dword [eax], 0
jne 0x1009c7f6
mov dword [eax], 0x55
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
xor edi, edi
cmp edx, ecx
jae 0x1009c809
mov cl, byte [edx]
lea eax, [edx + 1]
mov dword [ebx + 0xc], eax
movzx eax, cl
jmp 0x1009c81c
mov eax, dword [ebx]
test eax, eax
je 0x1009c81a
cmp dword [eax], 0
jne 0x1009c81a
mov dword [eax], 0x55
xor eax, eax
mov ecx, dword [esi + 0x10]
shl edi, 8
movsx edx, di
mov edi, dword [esi + 0xc]
or edx, eax
mov eax, dword [esi + 8]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x14]
cmp edi, eax
je 0x1009b303
mov dword [edi], edx
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x10]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x10099075
cmp bl, 0xf6
ja 0x1009c8b4
mov ecx, dword [esi + 0x10]
add edi, 0xffffff75
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1009c89b
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x10099075
cmp dword [eax], 0
jne 0x10099075
mov dword [eax], 0x82
jmp 0x1009906d
mov dword [edx], edi
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x10]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1009906d
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 8]
cmp bl, 0xfa
ja 0x1009c920
shl edi, 8
mov ebx, eax
cmp edx, ecx
jae 0x1009c8d9
mov cl, byte [edx]
lea eax, [edx + 1]
mov dword [ebx + 0xc], eax
movzx eax, cl
jmp 0x1009c8ec
mov eax, dword [ebx]
test eax, eax
je 0x1009c8ea
cmp dword [eax], 0
jne 0x1009c8ea
mov dword [eax], 0x55
xor eax, eax
mov ecx, dword [esi + 0x10]
add eax, 0xffff096c
mov edx, dword [esi + 0xc]
add edi, eax
mov eax, dword [esi + 8]
lea eax, [eax + ecx*8]
cmp edx, eax
je 0x1009b2ff
mov dword [edx], edi
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x10]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x10099071
cmp bl, 0xfe
mov ebx, dword [esp + 0x18]
ja 0x1009c986
shl edi, 8
cmp edx, ecx
jae 0x1009c93d
mov cl, byte [edx]
lea eax, [edx + 1]
mov dword [ebx + 0xc], eax
movzx eax, cl
jmp 0x1009c950
mov eax, dword [ebx]
test eax, eax
je 0x1009c94e
cmp dword [eax], 0
jne 0x1009c94e
mov dword [eax], 0x55
xor eax, eax
mov ecx, dword [esi + 0x10]
mov edx, 0xfa94
sub edx, edi
mov edi, dword [esi + 0xc]
sub edx, eax
mov eax, dword [esi + 8]
lea eax, [eax + ecx*8]
cmp edi, eax
je 0x1009b2ff
mov dword [edi], edx
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x10]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x10099071
cmp edx, ecx
jae 0x1009c995
mov al, byte [edx]
inc edx
mov dword [ebx + 0xc], edx
movzx edi, al
jmp 0x1009c9ae
mov eax, dword [ebx]
test eax, eax
je 0x1009c9ac
cmp dword [eax], 0
jne 0x1009c9ac
mov dword [eax], 0x55
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
xor edi, edi
cmp edx, ecx
jae 0x1009c9bd
mov al, byte [edx]
inc edx
mov dword [ebx + 0xc], edx
movzx ebp, al
jmp 0x1009c9d6
mov eax, dword [ebx]
test eax, eax
je 0x1009c9d4
cmp dword [eax], 0
jne 0x1009c9d4
mov dword [eax], 0x55
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
xor ebp, ebp
cmp edx, ecx
jae 0x1009c9e5
mov al, byte [edx]
inc edx
mov dword [ebx + 0xc], edx
movzx ebx, al
jmp 0x1009c9fe
mov eax, dword [ebx]
test eax, eax
je 0x1009c9fc
cmp dword [eax], 0
jne 0x1009c9fc
mov dword [eax], 0x55
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
xor ebx, ebx
cmp edx, ecx
jae 0x1009ca13
mov cl, byte [edx]
lea eax, [edx + 1]
mov edx, dword [esp + 0x18]
mov dword [edx + 0xc], eax
movzx eax, cl
jmp 0x1009ca2a
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
test eax, eax
je 0x1009ca28
cmp dword [eax], 0
jne 0x1009ca28
mov dword [eax], 0x55
xor eax, eax
shl edi, 8
or edi, ebp
shl edi, 8
or edi, ebx
shl edi, 8
or edi, eax
mov eax, dword [esp + 0x48]
cmp byte [eax + 8], 0
je 0x1009cac8
cmp edi, 0x7d00
jg 0x1009ca57
cmp edi, 0xffff8300
jge 0x1009ca6c
mov ecx, dword [esp + 0x68]
test cl, cl
movzx eax, cl
mov ecx, 1
cmove eax, ecx
mov byte [esp + 0x68], al
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1009caab
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x10099075
cmp dword [eax], 0
jne 0x10099075
mov dword [eax], 0x82
jmp 0x1009906d
mov ebp, dword [esp + 0x1c]
mov dword [edx], edi
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x10]
mov dword [eax + 4], 2
add dword [esi + 0xc], 8
jmp 0x1009906d
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
lea eax, [eax + ecx*8]
cmp edx, eax
jne 0x1009cae1
mov edx, dword [esp + 0x10]
jmp 0x1009affa
mov dword [edx], edi
mov eax, dword [esi + 0xc]
mov dword [eax + 4], 0
add dword [esi + 0xc], 8
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
jmp 0x1009906d
mov eax, dword [esp + 0x30]
push esi
mov eax, dword [eax + 4]
mov dword [esp + 0x68], eax
call fcn.1009d310
mov edi, eax
push esi
mov dword [esp + 0x48], edi
call fcn.1009d310
push esi
mov ebp, eax
call fcn.1009d2c0
push esi
mov dword [esp + 0x80], eax
call fcn.1009d2c0
push esi
mov ebx, eax
call fcn.1009d2c0
add esp, 0x14
mov dword [esp + 0x78], eax
cmp byte [esp + 0x3f10], 0
je 0x1009cb53
mov eax, 0x12
jmp 0x1009cc77
mov edx, dword [esp + 0x30]
cmp byte [edx + 0x2f], 0
je 0x1009cb67
mov eax, 0x12
jmp 0x1009cc77
cmp dword [edx + 0x244], 0
mov ecx, dword [esp + 0x64]
jne 0x1009cb8a
mov eax, dword [ecx + 0x80]
cmp dword [eax + 0x34], 0
jne 0x1009cb8a
mov eax, 0x12
jmp 0x1009cc77
mov eax, dword [edx + 0x20]
add ebx, dword [eax]
mov eax, dword [ecx + 0x80]
cmp dword [eax + 0x34], 0
jne 0x1009cbbb
push ebp
push edx
call fcn.1009d9b0
push edi
push dword [esp + 0x3c]
mov ebp, eax
call fcn.1009d9b0
mov edx, dword [esp + 0x40]
mov edi, eax
add esp, 0x10
mov dword [esp + 0x40], edi
test ebp, ebp
js 0x1009cb49
test edi, edi
js 0x1009cb49
cmp byte [edx + 0x2e], 0
je 0x1009cd90
mov eax, dword [edx + 8]
mov dword [esp + 0x80], eax
push 2
mov eax, dword [eax + 0x9c]
mov edi, dword [eax]
push edi
mov dword [esp + 0x84], edi
call fcn.1005a1d0
add esp, 8
test eax, eax
jne 0x1009cc77
mov edi, dword [edi + 0x58]
mov eax, 0x202
sub ebx, dword [esp + 0x78]
push ebx
mov word [edi + 4], ax
mov eax, dword [esp + 0x44]
mov dword [edi + 0x20], eax
mov eax, 2
mov dword [edi], ebp
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov word [edi + 0x24], ax
call fcn.1005d1a0
push dword [esp + 0x74]
sar eax, 0x10
mov dword [edi + 0x28], eax
call fcn.1005d1a0
mov ecx, dword [esp + 0x88]
add esp, 8
mov edx, dword [esp + 0x7c]
sar eax, 0x10
mov dword [edi + 0x2c], eax
mov dword [ecx + 0x80], 2
mov eax, dword [edx + 0x34]
mov dword [ecx + 0x84], eax
mov dword [ecx + 0x48], 0x636f6d70
mov dword [edx + 0x54], 2
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x6c]
test ebx, ebx
je 0x1009cc8a
cmp dword [ebx], 0
jne 0x1009cc8a
mov dword [ebx], eax
push dword [esp + 0x2ea4]
mov dword [esp + 0x2e9c], 0
push dword [esp + 0x2e90]
mov dword [esp + 0x2ea4], 0
mov dword [esp + 0x2ea8], 0
call fcn.1005f8c0
push dword [esp + 0xc0]
mov dword [esp + 0x2eb0], 0
push dword [esp + 0xac]
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
call fcn.1005f8c0
push dword [esp + 0xe4]
mov dword [esp + 0xcc], 0
push dword [esp + 0xd0]
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
call fcn.1005f8c0
push edi
push dword [esp + 0xf8]
mov dword [esp + 0xf4], 0
call fcn.1005f8c0
add esp, 0x20
test esi, esi
je 0x1009cd77
push dword [esi + 8]
mov edi, dword [esi]
push edi
call fcn.1005f8c0
push esi
push edi
mov dword [esi + 8], 0
call fcn.1005f8c0
add esp, 0x10
mov ecx, dword [esp + 0x3ef8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100d0b93
add esp, 0x3eec
ret
push dword [edx + 0xc]
call fcn.1005a2f0
lea eax, [esp + 0x3e54]
push eax
push ebp
push dword [esp + 0x3c]
call fcn.10097000
add esp, 0x10
test eax, eax
jne 0x1009cc77
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x20]
mov ebp, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x64], eax
mov eax, dword [ecx + 0x24]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x4c]
push eax
push 0
push 0
push 1
push dword [esp + 0x9c]
lea eax, [esp + 0x3e64]
mov dword [esp + 0x54], ecx
push dword [esp + 0x88]
push eax
push dword [esp + 0x64]
call fcn.10098b30
lea eax, [esp + 0x3e70]
push eax
push dword [esp + 0x54]
call fcn.10096eb0
mov edx, dword [esp + 0x58]
add esp, 0x28
cmp byte [esp + 0x23], 0
jne 0x1009ce3a
mov eax, dword [edx + 0x20]
mov ebp, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x64], eax
mov eax, dword [edx + 0x24]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], eax
mov eax, dword [edx + 0x20]
mov dword [eax], 0
mov eax, dword [edx + 0x20]
mov dword [eax + 4], 0
lea eax, [esp + 0x3e50]
push eax
push edi
push edx
call fcn.10097000
add esp, 0xc
test eax, eax
jne 0x1009cc77
sub ebx, dword [esp + 0x78]
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x74]
lea eax, [esp + 0x3e58]
push ebx
push 1
push dword [esp + 0x9c]
push dword [esp + 0x88]
push eax
push dword [esp + 0x64]
call fcn.10098b30
mov ebx, dword [esp + 0x50]
lea eax, [esp + 0x3e70]
push eax
push ebx
call fcn.10096eb0
mov eax, dword [ebx + 0x20]
add esp, 0x28
mov ecx, dword [esp + 0x64]
mov dword [eax], ebp
mov dword [eax + 4], ecx
mov eax, dword [ebx + 0x24]
mov ecx, dword [esp + 0x40]
mov dword [eax], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], ecx
jmp 0x1009cc73
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp eax, 1
je 0x1009cedf
cmp eax, 5
jne 0x1009cefe
cmp byte [esp + 0x23], 0
jne 0x1009cefe
push 0
push esi
call fcn.1009d260
mov ecx, dword [esp + 0x60]
add esp, 8
add eax, dword [esp + 0x84]
mov dword [ecx], eax
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x224], 0
jne 0x1009cc73
cmp byte [esp + 0x2ebc], 0
je 0x1009cf97
push dword [esp + 0x2f08]
lea eax, [esp + 0x134]
mov byte [esp + 0x2ec1], 1
push dword [esp + 0x2f08]
push eax
call fcn.10097a00
add esp, 0xc
cmp byte [esp + 0x2f0c], 0
je 0x1009cf7d
push 1
push dword [esp + 0x2ef4]
lea eax, [esp + 0x2eec]
push dword [esp + 0x2ef4]
push eax
lea eax, [esp + 0x148]
push eax
lea eax, [esp + 0x144]
push eax
call fcn.10097cd0
add esp, 0x18
mov byte [esp + 0x2ebf], 1
mov word [esp + 0x2ebc], 0
mov byte [esp + 0x2f0c], 0
mov eax, dword [esp + 0x48]
cmp byte [eax + 9], 0
jne 0x1009cc73
cmp byte [eax + 8], 0
jne 0x1009cc73
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 3
cmp eax, 1
jbe 0x1009cc73
cmp byte [esp + 0x3f10], 0
je 0x1009cfd5
mov eax, 0x12
jmp 0x1009cc77
push esi
call fcn.1009d310
push esi
mov edi, eax
call fcn.1009d310
push esi
mov ebx, eax
call fcn.1009d2c0
push esi
mov ebp, eax
call fcn.1009d2c0
mov dword [esp + 0x90], eax
lea eax, [esp + 0x3e60]
push eax
push edi
mov edi, dword [esp + 0x48]
push edi
call fcn.10096f30
add esp, 0x1c
test eax, eax
jne 0x1009cc77
lea eax, [esp + 0x7c]
push eax
push ebp
push dword [esp + 0x88]
mov ebp, dword [esp + 0x54]
lea eax, [esp + 0x3e5c]
push 1
push dword [esp + 0x9c]
push dword [esp + 0x88]
push eax
push ebp
call fcn.10098b30
lea eax, [esp + 0x3e70]
push eax
push edi
call fcn.10096e80
lea eax, [esp + 0x3e78]
push eax
push ebx
push edi
call fcn.10096f30
add esp, 0x34
test eax, eax
jne 0x1009cc77
lea eax, [esp + 0x7c]
push eax
push 0
push 0
push 1
push dword [esp + 0x9c]
lea eax, [esp + 0x3e64]
push dword [esp + 0x88]
push eax
push ebp
call fcn.10098b30
lea eax, [esp + 0x3e70]
push eax
push edi
call fcn.10096e80
add esp, 0x28
jmp 0x1009cc73
xor eax, eax
jmp 0x1009cc7b