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

Disassembly:
sub esp, 0xc4
push ebx
push ebp
mov ebp, dword [esp + 0xd0]
mov edx, 1
push esi
push edi
mov eax, dword [ebp + 0x734]
xor edi, edi
mov ecx, eax
mov dword [esp + 0x10], edi
not ecx
shr ecx, 1
and ecx, edx
mov dword [esp + 0x34], edi
mov dword [esp + 0x94], ecx
mov ecx, eax
shr ecx, 0x12
and ecx, edx
mov dword [esp + 0x14], edi
test eax, 0x10000
mov dword [esp + 0x68], edi
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x90], edi
jne 0x10009360
mov dword [esp + 0x98], edi
jmp 0x10009378
mov eax, dword [ebp + 0x790]
cmp eax, edx
mov dword [esp + 0x98], eax
ja 0x10009378
mov dword [esp + 0x98], edx
mov dword [ebp + 0xc], edi
mov esi, dword [ebp + 0x748]
cmp esi, edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x18], esi
jne 0x10009397
mov esi, edx
mov dword [esp + 0x18], esi
mov ebx, 0xffffe482
cmp esi, 1
jb 0x100093a6
cmp esi, 7
jbe 0x100093d1
cmp esi, 8
je 0x100093d1
cmp esi, 0x80b2
je 0x100093d1
cmp esi, 0x8005
je 0x100093d1
mov dword [ebp + 0xc], ebx
mov eax, dword [ebp + 0x498]
push 2
push eax
call fcn.10013dbd
add esp, 8
jmp 0x1000939c
cmp esi, 3
jne 0x100093ea
mov al, byte [ebp + 0x76a]
xor ecx, ecx
test al, al
setne cl
mov dword [esp + 0x80], ecx
mov edx, dword [ebp + 0x75c]
mov dword [0x2c38ddc8], ebp
and edx, 0xff000000
neg edx
sbb edx, edx
neg edx
mov dword [0x2c38ddcc], edx
call fcn.1000cd10
test byte [ebp + 0x734], 8
je 0x100094c1
push 0x2c3890a4
lea esi, [ebp + 0x14]
push edi
push 0x28
push esi
call fcn.1000cfe0
mov eax, dword [esi]
add esp, 0x10
cmp eax, 0x28
je 0x10009465
ja 0x10009457
mov ebx, 0xffffe432
mov dword [ebp + 0xc], ebx
mov eax, dword [ebp + 0x498]
push 2
push eax
call fcn.10013dbd
mov eax, dword [esi]
add esp, 8
cmp eax, 0x28
jbe 0x1000943c
mov ecx, dword [esi]
sub ecx, 0x28
push ecx
call fcn.1000d0d0
add esp, 4
mov cx, word [ebp + 0x22]
cmp cx, 8
ja 0x1000947e
cmp dword [ebp + 0x34], edi
jne 0x1000947e
mov edx, 1
shl edx, cl
mov dword [ebp + 0x34], edx
mov eax, dword [ebp + 0x34]
cmp eax, edi
je 0x100094c1
mov ebx, 0x440
cmp eax, ebx
jbe 0x100094ae
mov esi, 0xffffe464
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x498]
push 2
push eax
call fcn.10013dbd
mov eax, dword [ebp + 0x34]
add esp, 8
cmp eax, ebx
ja 0x10009493
mov ecx, dword [ebp + 0x34]
lea edx, [ebp + 0x3c]
shl ecx, 2
push ecx
push edx
call fcn.1000cef0
add esp, 8
mov eax, dword [ebp + 0x1c]
push eax
call fcn.10013fb9
mov ecx, dword [ebp + 0x18]
xor edi, edi
mov di, word [ebp + 0x22]
add esp, 4
cmp edi, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x38], edi
mov ebx, 0x1000
mov esi, 0xfffffb4f
je 0x1000951b
cmp edi, 4
je 0x1000951b
cmp edi, 8
je 0x1000951b
cmp edi, 0x18
je 0x1000951b
cmp edi, 0x20
je 0x10009543
mov dword [ebp + 0xc], esi
mov edx, dword [ebp + 0x498]
push 2
push edx
call fcn.10013dbd
add esp, 8
jmp 0x100094f1
cmp edi, 0x20
je 0x10009543
mov esi, 0xffffe421
test dword [ebp + 0x738], ebx
je 0x10009543
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x498]
push 2
push eax
call fcn.10013dbd
add esp, 8
jmp 0x10009525
mov ebx, dword [esp + 0x18]
cmp ebx, 5
je 0x10009559
cmp ebx, 8
je 0x10009559
cmp ebx, 0x80b2
jne 0x10009592
mov eax, dword [ebp + 0x77c]
cmp eax, 1
jle 0x10009592
mov esi, 0xffffe440
cmp eax, 2
jne 0x10009573
cmp edi, 8
jae 0x10009592
mov dword [ebp + 0xc], esi
mov ecx, dword [ebp + 0x498]
push 2
push ecx
call fcn.10013dbd
mov eax, dword [ebp + 0x77c]
add esp, 8
cmp eax, 1
jg 0x10009569
mov esi, 0xfffffc04
mov eax, dword [esp + 0x24]
test eax, eax
je 0x100095a7
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x100095bd
mov dword [ebp + 0xc], esi
mov edx, dword [ebp + 0x498]
push 2
push edx
call fcn.10013dbd
add esp, 8
jmp 0x10009597
cmp edi, 8
ja 0x10009669
mov eax, dword [ebp + 0x34]
test eax, eax
je 0x100095da
mov edx, 1
mov ecx, edi
shl edx, cl
cmp eax, edx
jbe 0x100095e6
mov eax, 1
mov ecx, edi
shl eax, cl
mov dword [ebp + 0x34], eax
lea ecx, [ebp + 0x3c]
lea edx, [ebp + 0x14]
push ecx
push edx
call fcn.1000b940
add esp, 8
test eax, eax
je 0x1000965f
cmp ebx, 6
mov dword [esp + 0x10], 1
jne 0x10009615
cmp edi, 4
jne 0x10009615
mov edi, 8
mov dword [esp + 0x38], edi
xor ecx, ecx
cmp ebx, 2
mov dword [0x2c38de14], ecx
jb 0x100097e1
cmp ebx, 4
ja 0x100097e1
cmp edi, 1
mov dword [esp + 0x34], ecx
mov dword [esp + 0x10], 1
je 0x10009749
mov esi, 0xfffffb4f
mov dword [ebp + 0xc], esi
mov edx, dword [ebp + 0x498]
push 2
push edx
call fcn.10013dbd
add esp, 8
jmp 0x10009649
mov dword [esp + 0x34], 1
jmp 0x10009615
cmp edi, 0x20
mov dword [ebp + 0x34], 0
jne 0x10009615
mov ecx, dword [ebp + 0x75c]
xor esi, esi
mov eax, ecx
mov dword [esp + 0x88], esi
and eax, 6
mov dword [esp + 0x14], esi
cmp eax, 6
ja 0x100096a8
jmp dword [eax*4 + 0x2c37b818]
mov ecx, dword [ebp + 0x738]
mov eax, ecx
shr eax, 0xe
and eax, 1
test esi, esi
mov dword [esp + 0x70], eax
je 0x100096fb
test ch, 0x10
jne 0x100096fb
mov dword [esp + 0x8c], 1
jmp 0x10009615
cmp ebx, 1
je 0x10009615
mov esi, 0xffffe482
cmp ebx, 5
je 0x10009615
cmp ebx, 8
je 0x10009615
cmp ebx, 0x80b2
je 0x10009615
cmp ebx, 0x8005
je 0x10009615
mov dword [ebp + 0xc], esi
mov ecx, dword [ebp + 0x498]
push 2
push ecx
call fcn.10013dbd
add esp, 8
jmp 0x10009709
xor eax, eax
mov al, byte [ebp + 0x41]
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
xor eax, eax
mov al, byte [ebp + 0x42]
lea esi, [eax + eax*8]
lea esi, [eax + esi*2]
lea eax, [eax + esi*4]
lea edx, [eax + edx*2]
xor eax, eax
mov al, byte [ebp + 0x40]
lea esi, [eax*8]
sub esi, eax
lea eax, [eax + esi*4]
lea edx, [edx + eax + 0x80]
xor eax, eax
mov al, byte [ebp + 0x3d]
and dl, 0
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea esi, [eax + eax*4]
xor eax, eax
mov al, byte [ebp + 0x3e]
lea ebx, [eax + eax*8]
lea ebx, [eax + ebx*2]
lea eax, [eax + ebx*4]
lea esi, [eax + esi*2]
xor eax, eax
mov al, byte [ebp + 0x3c]
lea ebx, [eax*8]
sub ebx, eax
lea eax, [eax + ebx*4]
xor ebx, ebx
lea eax, [esi + eax + 0x80]
and al, 0
cmp eax, edx
setg bl
mov eax, ebx
mov dword [0x2c38de14], eax
mov dl, byte [ebp + 0x769]
test dl, dl
je 0x100097e1
xor edx, edx
cmp eax, ecx
sete dl
mov dword [0x2c38de14], edx
mov eax, dword [ebp + 0x75c]
mov esi, 0xffff01
test esi, eax
je 0x1000981b
mov ebx, 0xffffe431
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x1000981b
mov dword [ebp + 0xc], ebx
mov eax, dword [ebp + 0x498]
push 2
push eax
call fcn.10013dbd
mov eax, dword [ebp + 0x75c]
add esp, 8
test esi, eax
jne 0x100097f5
mov ebx, 1
call fcn.1000d600
test dword [ebp + 0x734], 0x800000
jne 0x100099c8
mov eax, dword [0x2c38ddcc]
mov ecx, dword [0x2c38ddc0]
test eax, eax
mov eax, dword [0x2c38ddbc]
jne 0x1000988a
cmp eax, ecx
jae 0x1000985d
mov byte [eax], 0x49
mov eax, dword [0x2c38ddbc]
inc eax
mov dword [0x2c38ddbc], eax
jmp 0x10009867
push 0x49
call fcn.1000d6f0
add esp, 4
mov eax, dword [0x2c38ddbc]
mov ecx, dword [0x2c38ddc0]
cmp eax, ecx
jae 0x10009886
mov byte [eax], 0x49
mov eax, dword [0x2c38ddbc]
inc eax
mov dword [0x2c38ddbc], eax
jmp 0x100098d1
push 0x49
jmp 0x100098c9
cmp eax, ecx
jae 0x1000989e
mov byte [eax], 0x4d
mov eax, dword [0x2c38ddbc]
inc eax
mov dword [0x2c38ddbc], eax
jmp 0x100098a8
push 0x4d
call fcn.1000d6f0
add esp, 4
mov eax, dword [0x2c38ddbc]
mov ecx, dword [0x2c38ddc0]
cmp eax, ecx
jae 0x100098c7
mov byte [eax], 0x4d
mov eax, dword [0x2c38ddbc]
inc eax
mov dword [0x2c38ddbc], eax
jmp 0x100098d1
push 0x4d
call fcn.1000d6f0
add esp, 4
mov ecx, dword [0x2c38ddbc]
lea eax, [ecx + 2]
mov ecx, dword [0x2c38ddc0]
cmp eax, ecx
jb 0x1000990a
mov edx, dword [0x2c38ddcc]
mov esi, dword [0x2c38dd24]
sub edx, esi
neg edx
sbb edx, edx
and edx, 0x29d6
add edx, 0x2a
push edx
call fcn.1000d790
add esp, 4
jmp 0x1000992e
mov ecx, dword [0x2c38ddcc]
mov esi, dword [0x2c38dd24]
sub ecx, esi
mov dword [0x2c38ddbc], eax
neg ecx
sbb ecx, ecx
and ecx, 0x29d6
add ecx, 0x2a
mov word [eax - 2], cx
mov dword [ebp + 0x794], 8
mov edx, dword [0x2c38ddbc]
mov ecx, dword [0x2c38ddc0]
lea eax, [edx + 4]
cmp eax, ecx
jb 0x10009972
mov eax, dword [0x2c38ddcc]
mov edx, dword [0x2c38dd24]
sub eax, edx
neg eax
sbb eax, eax
and eax, 0x7fffff8
add eax, 8
push eax
call fcn.1000d7b0
add esp, 4
jmp 0x10009de3
mov ecx, dword [0x2c38dd24]
mov esi, eax
mov eax, dword [0x2c38ddcc]
mov dword [0x2c38ddbc], esi
cmp eax, ecx
jne 0x10009997
mov eax, dword [ebp + 0x794]
mov dword [esi - 4], eax
jmp 0x10009de3
mov ecx, dword [ebp + 0x794]
mov eax, ecx
mov edx, ecx
shl eax, 0x10
and edx, 0xff00
mov dword [esp + 0x20], ecx
add eax, edx
xor edx, edx
mov dh, byte [esp + 0x22]
shl eax, 8
add eax, edx
shr ecx, 0x18
add eax, ecx
mov dword [esi - 4], eax
jmp 0x10009de3
mov eax, dword [ebp + 0x764]
test eax, eax
mov dword [esp + 0x3c], eax
jne 0x100099e8
test byte [ebp + 0x4d0], 1
je 0x100099e8
call fcn.1000dd50
mov dword [esp + 0x3c], eax
mov edx, dword [ebp + 0x4d0]
mov al, byte [ebp + 0x79c]
or edx, 0x20
test al, al
mov dword [ebp + 0x4d0], edx
jne 0x10009a31
push 0
push 0
call fcn.1000df50
mov eax, dword [0x2c38ddbc]
mov ecx, dword [0x2c38ddc0]
add eax, 2
add esp, 8
cmp eax, ecx
jbe 0x10009a26
call fcn.1000dd60
jmp 0x10009a3d
mov dword [0x2c38ddbc], eax
mov ax, word [eax - 2]
jmp 0x10009a3d
xor cx, cx
mov cl, al
mov eax, ecx
shl eax, 8
add eax, ecx
cmp ax, 0x4949
jne 0x10009a81
mov eax, dword [ebp + 0x75c]
mov edi, 0xff000000
test edi, eax
je 0x10009a75
mov esi, 0xffffe42d
mov dword [ebp + 0xc], esi
mov ecx, dword [ebp + 0x498]
push 2
push ecx
call fcn.10013dbd
mov eax, dword [ebp + 0x75c]
add esp, 8
test edi, eax
jne 0x10009a57
mov dword [0x2c38ddcc], 0
jmp 0x10009ae0
cmp ax, 0x4d4d
jne 0x10009ac8
mov edx, dword [ebp + 0x75c]
and edx, 0xff000000
cmp edx, ebx
jbe 0x10009ac0
mov esi, 0xffffe42d
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x498]
push 2
push eax
call fcn.10013dbd
mov ecx, dword [ebp + 0x75c]
add esp, 8
and ecx, 0xff000000
cmp ecx, ebx
ja 0x10009a9c
mov dword [0x2c38ddcc], ebx
jmp 0x10009ae0
mov dword [ebp + 0xc], 0xffffe4a2
mov edx, dword [ebp + 0x498]
push 2
push edx
call fcn.10013dbd
add esp, 8
mov al, byte [ebp + 0x79c]
test al, al
jne 0x10009b5d
mov eax, dword [0x2c38ddbc]
mov ecx, dword [0x2c38ddc0]
add eax, 2
cmp eax, ecx
jbe 0x10009b05
call fcn.1000dd60
mov ebx, eax
jmp 0x10009b0e
mov dword [0x2c38ddbc], eax
mov bx, word [eax - 2]
mov esi, 0xffffe4a2
mov ecx, dword [0x2c38ddcc]
mov eax, dword [0x2c38dd24]
cmp ecx, eax
jne 0x10009b2b
mov eax, ebx
and eax, 0xffff
jmp 0x10009b41
xor eax, eax
mov edx, ebx
mov al, bh
and edx, 0xff
and eax, 0xff
shl edx, 8
add eax, edx
cmp ax, 0x2a
je 0x10009b5d
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x498]
push 2
push eax
call fcn.10013dbd
add esp, 8
jmp 0x10009b13
mov eax, dword [ebp + 0x798]
test eax, eax
je 0x10009c4d
cmp eax, 4
je 0x10009bff
push eax
call fcn.1000dd80
mov ecx, dword [0x2c38ddcc]
mov edx, dword [0x2c38dd24]
add esp, 4
cmp ecx, edx
jne 0x10009b91
mov ecx, eax
jmp 0x10009ba3
xor edx, edx
xor cx, cx
mov dl, ah
movzx ax, al
mov cl, dl
shl eax, 8
add ecx, eax
mov edx, dword [ebp + 0x798]
and ecx, 0xffff
lea ecx, [ecx + ecx*2]
lea edi, [edx + ecx*4 + 2]
push edi
call fcn.1000dde0
mov ecx, dword [0x2c38ddcc]
mov edx, dword [0x2c38dd24]
add esp, 4
cmp ecx, edx
mov dword [esp + 0x1c], eax
je 0x10009d07
mov edx, eax
mov ecx, eax
shl edx, 0x10
and ecx, 0xff00
add edx, ecx
xor ecx, ecx
mov ch, byte [esp + 0x1e]
shl edx, 8
add edx, ecx
shr eax, 0x18
add edx, eax
mov dword [esp + 0x1c], edx
jmp 0x10009d07
mov edi, 4
push edi
call fcn.1000dde0
mov edx, dword [0x2c38ddcc]
mov ecx, dword [0x2c38dd24]
add esp, 4
cmp edx, ecx
mov dword [esp + 0x1c], eax
je 0x10009d07
mov ecx, eax
mov edx, eax
shl ecx, 0x10
and edx, 0xff00
add ecx, edx
xor edx, edx
mov dh, byte [esp + 0x1e]
shl ecx, 8
add ecx, edx
shr eax, 0x18
add ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x10009d07
push 0
push 4
call fcn.1000df50
add esp, 8
call fcn.1000dd50
mov ecx, dword [0x2c38ddc0]
mov edi, eax
mov eax, dword [0x2c38ddbc]
add eax, 4
cmp eax, ecx
jbe 0x10009c7b
call fcn.1000ddc0
mov esi, eax
jmp 0x10009c83
mov dword [0x2c38ddbc], eax
mov esi, dword [eax - 4]
test esi, esi
mov dword [esp + 0x20], esi
je 0x10009d07
mov ecx, dword [0x2c38ddcc]
mov eax, dword [0x2c38dd24]
cmp ecx, eax
je 0x10009cb8
mov edx, esi
mov eax, esi
shl edx, 0x10
and eax, 0xff00
xor ecx, ecx
mov ch, byte [esp + 0x22]
add edx, eax
shl edx, 8
add edx, ecx
shr esi, 0x18
add esi, edx
push esi
call fcn.1000dd80
mov edx, dword [0x2c38ddcc]
mov ecx, dword [0x2c38dd24]
add esp, 4
cmp edx, ecx
jne 0x10009cd5
mov ecx, eax
jmp 0x10009ce7
xor ecx, ecx
xor dx, dx
mov cl, ah
mov dl, al
movzx cx, cl
shl edx, 8
add ecx, edx
and ecx, 0xffff
lea eax, [ecx + ecx*2]
lea edi, [esi + eax*4 + 2]
push edi
call fcn.1000dde0
mov esi, eax
add esp, 4
test esi, esi
mov dword [esp + 0x20], esi
jne 0x10009c8b
mov esi, dword [esp + 0x3c]
test esi, esi
jne 0x10009d1b
call fcn.1000e0f0
call fcn.1000dd50
mov esi, eax
push 0
push edi
call fcn.1000daa0
push ebp
push esi
call fcn.10001640
mov dword [ebp + 0x794], eax
mov ecx, dword [0x2c38ddbc]
mov edx, dword [0x2c38ddc0]
add ecx, 4
add esp, 0x10
cmp ecx, edx
mov dword [esp + 0x2c], eax
jb 0x10009d84
mov edx, dword [0x2c38ddcc]
mov ecx, dword [0x2c38dd24]
cmp edx, ecx
mov ecx, eax
je 0x10009d79
mov edx, eax
shl ecx, 0x10
and edx, 0xff00
add ecx, edx
xor edx, edx
mov dh, byte [esp + 0x2e]
shl ecx, 8
add ecx, edx
shr eax, 0x18
add ecx, eax
push ecx
call fcn.1000d7b0
add esp, 4
jmp 0x10009dcf
mov eax, dword [0x2c38ddcc]
mov edi, ecx
mov ecx, dword [0x2c38dd24]
mov dword [0x2c38ddbc], edi
cmp eax, ecx
jne 0x10009da3
mov eax, dword [ebp + 0x794]
jmp 0x10009dcc
mov ecx, dword [ebp + 0x794]
mov eax, ecx
mov edx, ecx
shl eax, 0x10
and edx, 0xff00
mov dword [esp + 0x20], ecx
add eax, edx
xor edx, edx
mov dh, byte [esp + 0x22]
shl eax, 8
add eax, edx
shr ecx, 0x18
add eax, ecx
mov dword [edi - 4], eax
push 0
push esi
call fcn.1000daa0
mov edi, dword [esp + 0x40]
add esp, 8
mov ebx, 1
cmp edi, 8
ja 0x10009dee
mov dword [esp + 0x54], ebx
jmp 0x10009e2a
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10009e09
mov eax, dword [esp + 0x68]
neg eax
sbb eax, eax
and al, 0xfd
add eax, 4
mov dword [esp + 0x54], eax
jmp 0x10009e2a
cmp edi, 0x20
jne 0x10009e22
mov eax, dword [esp + 0x8c]
neg eax
sbb eax, eax
add eax, 4
mov dword [esp + 0x54], eax
jmp 0x10009e2a
mov dword [esp + 0x54], 3
mov eax, edi
mov ecx, dword [ebp + 0x76c]
imul eax, dword [esp + 0x24]
add eax, 0x1f
xor esi, esi
shr eax, 3
and eax, 0x1ffffffc
cmp ecx, esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x20], ecx
jne 0x10009e58
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x28]
xor edx, edx
lea eax, [ecx + eax - 1]
div ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x68]
cmp eax, esi
je 0x10009e7c
mov dword [esp + 0x10], ebx
mov dword [esp + 0x38], 8
cmp dword [esp + 0x8c], esi
je 0x10009e8d
mov dword [esp + 0x38], 0x18
cmp dword [esp + 0x10], esi
je 0x10009ea5
mov eax, dword [ebp + 0x734]
mov dword [esp + 0x6c], esi
or eax, ebx
mov dword [ebp + 0x734], eax
cmp dword [esp + 0x14], esi
je 0x10009eaf
mov dword [esp + 0x6c], esi
mov esi, dword [ebp + 0x4fc]
test esi, esi
je 0x1000a01c
mov ecx, dword [ebp + 0x504]
lea ebx, [esi + 5]
lea eax, [esi + ecx]
cmp ebx, eax
ja 0x10009fda
mov cl, byte [esi]
test cl, cl
je 0x10009fda
mov edx, dword [esi + 1]
lea edx, [esi + edx + 5]
cmp edx, eax
ja 0x10009fda
cmp cl, 0x23
jne 0x10009f5b
cmp byte [ebx], 1
je 0x10009f5b
mov ax, word [esi + 8]
test ax, ax
jbe 0x10009f5b
cmp ax, 0xc
ja 0x10009f5b
mov ecx, dword [esi + 0xa]
mov dx, word [esi + 6]
lea edi, [esi + 0xe]
push edi
push ecx
push eax
push edx
push 0
push 0x2c38e6ec
call fcn.10011d20
add esp, 0x18
test eax, eax
jne 0x10009f5b
mov dword [ebp + 0xc], 0xffffe4a5
mov eax, dword [ebp + 0x498]
push 2
push eax
call fcn.10013dbd
mov ecx, dword [esi + 0xa]
mov dx, word [esi + 8]
mov ax, word [esi + 6]
push edi
push ecx
push edx
push eax
push 0
push 0x2c38e6ec
call fcn.10011d20
add esp, 0x20
test eax, eax
je 0x10009f24
cmp byte [esi], 0x2b
jne 0x10009fba
mov ecx, dword [esi + 0xb]
mov edx, dword [esi + 7]
mov al, byte [esi + 6]
lea edi, [esi + 0xf]
push edi
push ecx
mov cl, byte [ebx]
push edx
push eax
push ecx
push 0x2c38e6ec
call fcn.10011dc0
add esp, 0x18
test eax, eax
jne 0x10009fba
mov dword [ebp + 0xc], 0xffffe4a5
mov edx, dword [ebp + 0x498]
push 2
push edx
call fcn.10013dbd
mov eax, dword [esi + 0xb]
mov ecx, dword [esi + 7]
mov dl, byte [esi + 6]
push edi
push eax
mov al, byte [ebx]
push ecx
push edx
push eax
push 0x2c38e6ec
call fcn.10011dc0
add esp, 0x20
test eax, eax
je 0x10009f84
mov ecx, dword [esi + 1]
mov edx, dword [ebp + 0x504]
mov eax, dword [ebp + 0x4fc]
lea esi, [esi + ecx + 5]
add eax, edx
lea ebx, [esi + 5]
cmp ebx, eax
jbe 0x10009ed1
mov ecx, dword [ebp + 0x4fc]
mov edx, dword [ebp + 0x504]
add ecx, edx
cmp esi, ecx
je 0x1000a01c
mov edi, 0xfffffbf6
cmp byte [esi], 0
je 0x1000a01c
mov dword [ebp + 0xc], edi
mov edx, dword [ebp + 0x498]
push 2
push edx
call fcn.10013dbd
mov eax, dword [ebp + 0x4fc]
mov edx, dword [ebp + 0x504]
add eax, edx
add esp, 8
cmp esi, eax
jne 0x10009ff1
mov eax, dword [esp + 0x24]
cmp eax, 0x10000
push eax
push 0x100
jae 0x1000a034
call fcn.1000bdd0
jmp 0x1000a039
call fcn.1000bdb0
mov eax, dword [esp + 0x30]
add esp, 8
cmp eax, 0x10000
push eax
push 0x101
jae 0x1000a054
call fcn.1000bdd0
jmp 0x1000a059
call fcn.1000bdb0
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x5c]
add esp, 8
cmp esi, 6
mov ecx, ebx
je 0x1000a080
cmp esi, 7
je 0x1000a080
cmp ebx, 8
jle 0x1000a092
mov ecx, 8
jmp 0x1000a092
mov eax, dword [esp + 0x10]
mov ecx, 8
neg eax
sbb eax, eax
and al, 0xfe
add eax, 3
mov word [esp + 0x44], cx
mov word [esp + 0x46], cx
mov word [esp + 0x48], cx
mov word [esp + 0x4a], cx
lea ecx, [esp + 0x44]
push ecx
push eax
push 3
push 0x102
call fcn.1000bd60
push esi
push 0x103
call fcn.1000bdd0
add esp, 0x18
cmp esi, 6
je 0x1000a0d0
cmp esi, 7
jne 0x1000a0db
mov edi, 1
mov dword [esp + 0x3c], edi
jmp 0x1000a0df
mov edi, dword [esp + 0x3c]
push 0
push edi
push 4
push 0x111
call fcn.1000bd60
push 0
push edi
push 4
push 0x117
call fcn.1000bd60
add esp, 0x20
cmp esi, 6
je 0x1000a11e
cmp esi, 7
je 0x1000a11e
mov edi, dword [esp + 0x10]
mov eax, 1
test edi, edi
jne 0x1000a11b
mov eax, dword [esp + 0x54]
push eax
jmp 0x1000a12f
mov edi, dword [esp + 0x10]
mov edx, edi
neg edx
sbb edx, edx
and edx, 0xfffffffe
add edx, 3
push edx
push 0x115
call fcn.1000bdd0
mov eax, dword [esp + 0x28]
add esp, 8
push eax
push 0x116
call fcn.1000bdb0
add esp, 8
cmp esi, 3
jne 0x1000a186
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x1000a172
push 0
push 0x124
call fcn.1000bdb0
add esp, 8
jmp 0x1000a36f
push 1
push 0x124
call fcn.1000bdb0
add esp, 8
jmp 0x1000a36f
cmp esi, 4
jne 0x1000a19f
push 0
push 0x125
call fcn.1000bdb0
add esp, 8
jmp 0x1000a36f
cmp esi, 6
je 0x1000a1ad
cmp esi, 7
jne 0x1000a36f
mov ecx, dword [esp + 0x94]
push esi
push edi
push ecx
call fcn.10004640
add esp, 0xc
cmp esi, 6
jne 0x1000a1f7
push 1
push 0x200
call fcn.1000bdd0
push 0
push 0x201
call fcn.1000bdb0
mov edx, dword [0x2c38de20]
push ebp
push edx
call fcn.10001640
push eax
push 0x202
call fcn.1000bdb0
add esp, 0x20
cmp ebx, 8
ja 0x1000a247
test edi, edi
je 0x1000a247
mov edi, 1
mov dword [esp + 0x4c], edi
cmp esi, 6
jne 0x1000a36a
push 0
push edi
push 4
push 0x207
call fcn.1000bd60
push 0
push edi
push 4
push 0x208
call fcn.1000bd60
push 0
push edi
push 4
push 0x209
call fcn.1000bd60
add esp, 0x30
jmp 0x1000a410
mov eax, 1
mov ecx, 2
mov word [esp + 0x84], ax
mov word [esp + 0x86], ax
mov word [esp + 0x66], ax
mov word [esp + 0x2c], ax
mov eax, dword [ebp + 0x778]
mov word [esp + 0x64], cx
cmp eax, 3
mov word [esp + 0x60], cx
mov word [esp + 0x62], cx
mov word [esp + 0x2e], cx
ja 0x1000a2bf
jmp dword [eax*4 + 0x2c37b834]
mov dword [ebp + 0xc], 0xfffffc07
mov eax, dword [ebp + 0x498]
push ecx
push eax
call fcn.10013dbd
add esp, 8
mov edi, 3
cmp esi, 7
mov dword [esp + 0x4c], edi
jne 0x1000a209
mov ecx, 0x80
mov edx, 1
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xc4], ecx
lea ecx, [esp + 0xa4]
mov eax, 0xff
push ecx
push 6
push 5
push 0x214
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd8], edx
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], edx
call fcn.1000bd60
add esp, 0x10
jmp 0x1000a3bd
cmp esi, 7
je 0x1000a3bd
push 0x200
call fcn.1000be40
push 0x201
call fcn.1000be40
push 0x202
call fcn.1000be40
push 0x212
call fcn.1000be40
push 0x207
call fcn.1000be40
push 0x208
call fcn.1000be40
push 0x209
call fcn.1000be40
add esp, 0x1c
cmp esi, 7
jne 0x1000a3fe
push 0x200
call fcn.1000be40
push 0x201
call fcn.1000be40
push 0x202
call fcn.1000be40
push 0x207
call fcn.1000be40
push 0x208
call fcn.1000be40
push 0x209
call fcn.1000be40
add esp, 0x18
jmp 0x1000a410
cmp esi, 5
je 0x1000a41d
cmp esi, 8
je 0x1000a41d
cmp esi, 0x80b2
je 0x1000a41d
push 0x13d
call fcn.1000be40
add esp, 4
cmp esi, 6
je 0x1000a427
cmp esi, 7
jne 0x1000a43e
push 0x80a3
call fcn.1000be40
push 0x80a6
call fcn.1000be40
add esp, 8
mov eax, dword [esp + 0x34]
test eax, eax
je 0x1000a4f4
cmp esi, 6
je 0x1000a4ed
cmp esi, 7
je 0x1000a4ed
push 3
push 0x106
call fcn.1000bdd0
add esp, 8
cmp esi, 6
je 0x1000a64e
cmp esi, 7
je 0x1000a64e
mov ecx, dword [esp + 0x38]
mov esi, 1
shl esi, cl
push 0
lea edi, [esi + esi*2]
push edi
push 3
push 0x140
call fcn.1000bd60
mov edx, eax
mov ecx, edi
add edx, 0xe
mov ebx, ecx
xor eax, eax
mov edi, edx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, ebx
mov ebx, dword [esp + 0x7c]
add esp, 0x10
and ecx, 3
test ebx, ebx
rep stosb byte es:[edi], al
je 0x1000a5ab
mov ecx, dword [ebp + 0x34]
xor eax, eax
test ecx, ecx
jle 0x1000a5cd
lea edi, [ebp + 0x3c]
xor ecx, ecx
add edx, 2
mov ch, byte [edi]
inc eax
mov word [edx - 2], cx
mov ecx, dword [ebp + 0x34]
add edi, 4
cmp eax, ecx
jl 0x1000a4d2
jmp 0x1000a5cd
push 6
jmp 0x1000a45e
mov eax, dword [esp + 0x68]
test eax, eax
je 0x1000a510
push 1
push 0x106
call fcn.1000bdd0
add esp, 8
jmp 0x1000a64e
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1000a55d
cmp esi, 6
je 0x1000a4fc
cmp esi, 7
je 0x1000a4fc
cmp esi, 2
jb 0x1000a540
cmp esi, 4
ja 0x1000a540
push 0
push 0x106
call fcn.1000bdd0
add esp, 8
jmp 0x1000a64e
mov bl, byte [ebp + 0x3d]
xor edx, edx
test bl, bl
sete dl
push edx
push 0x106
call fcn.1000bdd0
add esp, 8
jmp 0x1000a64e
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1000a579
push 5
push 0x106
call fcn.1000bdd0
add esp, 8
jmp 0x1000a64e
cmp esi, 6
je 0x1000a597
cmp esi, 7
je 0x1000a597
push 2
push 0x106
call fcn.1000bdd0
add esp, 8
jmp 0x1000a64e
push 6
push 0x106
call fcn.1000bdd0
add esp, 8
jmp 0x1000a64e
mov ecx, dword [ebp + 0x34]
xor eax, eax
test ecx, ecx
jle 0x1000a5cd
lea edi, [ebp + 0x3e]
xor ecx, ecx
add edx, 2
mov ch, byte [edi]
inc eax
mov word [edx - 2], cx
mov ecx, dword [ebp + 0x34]
add edi, 4
cmp eax, ecx
jl 0x1000a5b7
mov edi, dword [ebp + 0x34]
mov eax, esi
sub eax, edi
xor ecx, ecx
test edi, edi
lea eax, [edx + eax*2]
jle 0x1000a5f6
lea edi, [ebp + 0x3d]
xor edx, edx
add eax, 2
mov dh, byte [edi]
inc ecx
mov word [eax - 2], dx
mov edx, dword [ebp + 0x34]
add edi, 4
cmp ecx, edx
jl 0x1000a5e0
mov edx, dword [ebp + 0x34]
sub esi, edx
test ebx, ebx
lea eax, [eax + esi*2]
je 0x1000a623
xor ecx, ecx
test edx, edx
jle 0x1000a642
lea esi, [ebp + 0x3e]
xor edx, edx
add eax, 2
mov dh, byte [esi]
inc ecx
mov word [eax - 2], dx
mov edx, dword [ebp + 0x34]
add esi, 4
cmp ecx, edx
jl 0x1000a60b
jmp 0x1000a642
xor ecx, ecx
test edx, edx
jle 0x1000a642
lea esi, [ebp + 0x3c]
xor edx, edx
add eax, 2
mov dh, byte [esi]
inc ecx
mov word [eax - 2], dx
mov edx, dword [ebp + 0x34]
add esi, 4
cmp ecx, edx
jl 0x1000a62c
mov esi, dword [esp + 0x18]
mov dword [esp + 0x6c], 0
push 1
push 0x10a
call fcn.1000bdd0
push 1
push 0x112
call fcn.1000bdd0
add esp, 0x10
cmp esi, 5
je 0x1000a67b
cmp esi, 8
je 0x1000a67b
cmp esi, 0x80b2
jne 0x1000a698
mov ebx, dword [ebp + 0x77c]
xor eax, eax
cmp ebx, 2
sete al
inc eax
push eax
push 0x13d
call fcn.1000bdd0
add esp, 8
mov eax, dword [esp + 0x88]
test eax, eax
je 0x1000a6b9
cmp dword [esp + 0x54], 4
jne 0x1000a6b9
push 1
push 0x152
call fcn.1000bdd0
add esp, 8
push 0
push 1
push 4
push 0xfe
call fcn.1000bd20
mov al, byte [ebp + 0x760]
add esp, 0x10
cmp al, 2
je 0x1000a6da
push 2
jmp 0x1000a6dc
push 3
push 0x128
call fcn.1000bd00
add esp, 8
push 0x128
push 0
push 0x2c38e6ec
call fcn.10011d70
lea edi, [eax + 0xe]
push edi
call fcn.10011840
add esp, 0x10
cmp ax, 2
mov ebx, 0x64
jne 0x1000a730
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x30]
imul ecx, ecx, 0x64
imul edx, edx, 0x64
mov eax, 0xf61
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x2c], edx
jmp 0x1000a79f
push edi
call fcn.10011840
add esp, 4
cmp ax, 3
jne 0x1000a754
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ebx
jmp 0x1000a7a3
cmp esi, 2
jb 0x1000a789
cmp esi, 4
ja 0x1000a789
mov edx, dword [esp + 0x24]
mov ecx, 0xc8
cmp edx, 0x7d0
mov dword [esp + 0x44], ecx
jb 0x1000a792
mov eax, 0x7d0
add eax, 0x7d0
add ecx, 0xc8
cmp edx, eax
jae 0x1000a778
jmp 0x1000a78e
mov ecx, 0x48
mov dword [esp + 0x44], ecx
mov eax, 1
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x44]
push eax
push 1
push 5
push 0x11a
call fcn.1000bd20
lea ecx, [esp + 0x3c]
push ecx
push 1
push 5
push 0x11b
call fcn.1000bd20
mov eax, dword [esp + 0x34]
add esp, 0x20
test eax, eax
je 0x1000a825
mov eax, dword [esp + 0x68]
test eax, eax
jne 0x1000a825
mov eax, dword [0x2c38dd24]
test eax, eax
jne 0x1000a7f0
mov edx, dword [ebp + 0x75c]
shr edx, 8
jmp 0x1000a80b
mov eax, dword [ebp + 0x75c]
xor ecx, ecx
shr eax, 8
mov cl, ah
xor dx, dx
movzx ax, al
mov dl, cl
shl eax, 8
add edx, eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], edx
push ecx
push 2
push 1
push 0x150
call fcn.1000bd20
add esp, 0x10
push 0x111
push 0
push 0x2c38e6ec
call fcn.10011d70
push 0x117
add eax, 0xe
push 0
push 0x2c38e6ec
mov dword [esp + 0x4c], eax
call fcn.10011d70
push 0x201
mov ebx, eax
push 0
push 0x2c38e6ec
add ebx, 0xe
call fcn.10011d70
push 0x207
add eax, 0xe
push 0
push 0x2c38e6ec
mov dword [esp + 0x5c], eax
call fcn.10011d70
push 0x208
mov esi, eax
push 0
push 0x2c38e6ec
add esi, 0xe
call fcn.10011d70
push 0x209
add eax, 0xe
push 0
push 0x2c38e6ec
mov dword [esp + 0xa8], eax
call fcn.10011d70
add esp, 0x48
add eax, 0xe
mov dword [esp + 0x64], eax
lea edx, [esp + 0x7c]
push 0x2c38e6ec
lea eax, [esp + 0x78]
push edx
push eax
call fcn.100101d0
add esp, 0xc
test eax, eax
je 0x1000a8e2
mov ecx, dword [0x2c38ddc8]
mov edx, dword [ecx + 0xc]
test edx, edx
jne 0x1000a8e2
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x7c]
test ecx, ecx
jbe 0x1000a94b
mov eax, dword [esp + 0x74]
test eax, eax
je 0x1000a94f
push eax
push ecx
push 1
push 0x83bb
push 0
push 0x2c38e6ec
call fcn.10011d20
add esp, 0x18
test eax, eax
jne 0x1000a94b
mov edi, 0xffffe4a5
mov dword [ebp + 0xc], edi
mov ecx, dword [ebp + 0x498]
push 2
push ecx
call fcn.10013dbd
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x84]
push edx
push eax
push 1
push 0x83bb
push 0
push 0x2c38e6ec
call fcn.10011d20
add esp, 0x20
test eax, eax
je 0x1000a913
mov eax, dword [esp + 0x74]
push eax
call fcn.10010bf0
xor edi, edi
push 0x2c38e6ec
push ebp
mov dword [esp + 0x80], edi
mov dword [esp + 0x88], edi
call fcn.1000bb90
mov dword [0x2c38e6f8], eax
mov ecx, dword [eax]
add esp, 0xc
mov dword [esp + 0x10], edi
test ecx, ecx
je 0x1000a99e
mov edx, eax
mov eax, dword [ecx + 1]
sub eax, 9
cmp eax, 4
jbe 0x1000a993
add dword [esp + 0x10], eax
mov ecx, dword [edx + 4]
add edx, 4
inc edi
test ecx, ecx
jne 0x1000a984
mov dword [esp + 0x14], edi
call fcn.1000dd50
mov edx, dword [esp + 0x10]
lea ecx, [edi + edi*2]
lea edi, [eax + ecx*4 + 6]
mov dword [esp + 0x44], edi
add edi, edx
call fcn.1000dd50
cmp edi, eax
jae 0x1000a9e2
mov dword [ebp + 0xc], 0xfffffa0b
mov eax, dword [ebp + 0x498]
push 2
push eax
call fcn.10013dbd
add esp, 8
call fcn.1000dd50
cmp edi, eax
jb 0x1000a9c1
mov eax, dword [esp + 0x18]
cmp eax, 6
jne 0x1000ab33
mov ecx, dword [0x2c38e688]
push ebp
lea edx, [edi + ecx]
push edx
call fcn.10001640
push eax
mov eax, dword [esp + 0x40]
push eax
call fcn.10011850
mov ecx, dword [0x2c38e68c]
push ebp
push ecx
call fcn.10001640
push eax
push ebx
call fcn.10011850
mov edx, dword [0x2c38de1c]
add esp, 0x20
lea eax, [edi + edx]
push ebp
push eax
call fcn.10001640
mov ecx, dword [esp + 0x34]
push eax
push ecx
call fcn.10011850
mov eax, dword [esp + 0x5c]
add esp, 0x10
test eax, eax
jle 0x1000aaeb
mov eax, 0x2c38de30
mov edx, dword [esp + 0x4c]
sub eax, esi
mov ebx, 0x2c38de24
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x60]
sub eax, esi
sub ebx, esi
mov dword [esp + 0x60], eax
mov eax, 0x2c38de3c
sub eax, esi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x64]
sub eax, esi
mov dword [esp + 0x64], eax
mov eax, dword [ebx + esi]
push ebp
add eax, edi
push eax
call fcn.10001640
push eax
push esi
call fcn.10011850
mov ecx, dword [esp + 0x94]
push ebp
mov edx, dword [ecx + esi]
add edx, edi
push edx
call fcn.10001640
push eax
mov eax, dword [esp + 0x7c]
add eax, esi
push eax
call fcn.10011850
mov ecx, dword [esp + 0x30]
push ebp
mov edx, dword [ecx + esi]
add edx, edi
push edx
call fcn.10001640
push eax
mov eax, dword [esp + 0x90]
add eax, esi
push eax
call fcn.10011850
mov eax, dword [esp + 0x5c]
add esp, 0x30
add esi, 4
dec eax
mov dword [esp + 0x2c], eax
jne 0x1000aa87
mov ecx, dword [0x2c38ddbc]
mov esi, dword [esp + 0x14]
lea eax, [ecx + 2]
mov ecx, dword [0x2c38ddc0]
cmp eax, ecx
jb 0x1000ab6a
mov edx, dword [0x2c38ddcc]
mov eax, dword [0x2c38dd24]
cmp edx, eax
mov eax, esi
je 0x1000ab28
mov ecx, esi
sar eax, 8
and ecx, 0xff
and eax, 0xff
shl ecx, 8
add eax, ecx
push eax
call fcn.1000d790
add esp, 4
jmp 0x1000ab9c
cmp eax, 7
jne 0x1000aaeb
push ebp
push edi
call fcn.10001640
mov edx, dword [esp + 0x3c]
push eax
push edx
call fcn.10011850
mov eax, dword [0x2c38e688]
mov ecx, dword [0x2c38e68c]
add ecx, eax
push ebp
push ecx
call fcn.10001640
push eax
push ebx
call fcn.10011850
add esp, 0x20
jmp 0x1000aaeb
mov edx, dword [0x2c38ddcc]
mov ecx, eax
mov eax, dword [0x2c38dd24]
mov dword [0x2c38ddbc], ecx
cmp edx, eax
mov eax, esi
je 0x1000ab98
mov edx, esi
sar eax, 8
and edx, 0xff
and eax, 0xff
shl edx, 8
add eax, edx
mov word [ecx - 2], ax
mov eax, dword [esp + 0x44]
push ebp
push eax
call fcn.10001640
add esp, 8
xor ebx, ebx
test esi, esi
mov dword [esp + 0x9c], eax
jle 0x1000ac30
jmp 0x1000abc0
mov eax, dword [esp + 0x9c]
mov ecx, dword [0x2c38e6f8]
mov edx, dword [ecx + ebx*4]
mov cx, word [edx + 6]
cmp cx, 0x111
jne 0x1000abf4
cmp dword [esp + 0x3c], 1
jne 0x1000abee
mov ecx, dword [esp + 0x18]
cmp ecx, 6
je 0x1000abee
cmp ecx, 7
je 0x1000abee
mov dword [edx + 0xe], edi
jmp 0x1000ac0e
mov dword [esp + 0x50], eax
jmp 0x1000ac0e
cmp cx, 0x117
jne 0x1000ac0e
cmp dword [esp + 0x3c], 1
jne 0x1000ac0a
call fcn.1000dd50
add eax, 8
mov dword [esp + 0x58], eax
mov eax, dword [0x2c38e6f8]
lea edx, [esp + 0x9c]
push edx
mov ecx, dword [eax + ebx*4]
push ecx
call fcn.1000be70
mov eax, dword [esp + 0x1c]
add esp, 8
inc ebx
cmp ebx, eax
jl 0x1000abb9
mov edx, dword [0x2c38ddbc]
mov ecx, dword [0x2c38ddc0]
lea eax, [edx + 4]
cmp eax, ecx
jb 0x1000ac8f
mov eax, dword [0x2c38ddcc]
mov ecx, dword [0x2c38dd24]
cmp eax, ecx
jne 0x1000ac61
mov eax, dword [esp + 0x1c]
push eax
call fcn.1000d7b0
add esp, 4
jmp 0x1000acd2
mov ecx, dword [esp + 0x1c]
mov eax, ecx
mov edx, ecx
shl eax, 0x10
and edx, 0xff00
add eax, edx
xor edx, edx
mov dh, byte [esp + 0x1e]
shl eax, 8
add eax, edx
shr ecx, 0x18
add eax, ecx
push eax
call fcn.1000d7b0
add esp, 4
jmp 0x1000acd2
mov ecx, dword [0x2c38dd24]
mov esi, eax
mov eax, dword [0x2c38ddcc]
mov dword [0x2c38ddbc], esi
cmp eax, ecx
jne 0x1000acac
mov eax, dword [esp + 0x1c]
jmp 0x1000accf
mov ecx, dword [esp + 0x1c]
mov eax, ecx
mov edx, ecx
shl eax, 0x10
and edx, 0xff00
add eax, edx
xor edx, edx
mov dh, byte [esp + 0x1e]
shl eax, 8
add eax, edx
shr ecx, 0x18
add eax, ecx
mov dword [esi - 4], eax
mov edi, dword [esp + 0x14]
xor esi, esi
test edi, edi
jle 0x1000acf2
mov eax, dword [0x2c38e6f8]
mov ecx, dword [eax + esi*4]
push ecx
call fcn.1000c510
add esp, 4
inc esi
cmp esi, edi
jl 0x1000acdc
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
imul ebx, edi
mov esi, dword [esp + 0x40]
lea edx, [esp + 0xa0]
push edx
add ebx, 7
push esi
push ebp
shr ebx, 3
call fcn.1000f0b0
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1000ad3c
mov esi, 0xfffffc11
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x498]
push 2
push eax
call fcn.10013dbd
add esp, 8
jmp 0x1000ad26
call fcn.1000d580
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x4c], eax
test ecx, ecx
jne 0x1000ad5b
push 0
push eax
call fcn.1000d180
add esp, 8
mov ecx, dword [ebp + 0x4ac]
mov edx, dword [ebp + 0x4a0]
sub ecx, edx
mov edx, esi
imul edx, dword [esp + 0x28]
lea eax, [ecx - 1]
mov dword [esp + 0x24], 0xffffffff
cmp eax, edx
jae 0x1000ad87
xor edx, edx
div esi
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x18]
cmp esi, 2
jb 0x1000ae0c
cmp esi, 4
ja 0x1000ae0c
push edi
call fcn.10002830
add esp, 4
push ebp
call fcn.10014549
add esp, 4
cmp esi, 6
je 0x1000b7cd
cmp esi, 7
je 0x1000b7cd
mov eax, dword [esp + 0x28]
xor esi, esi
test eax, eax
jbe 0x1000b3bd
push ebp
call fcn.1000dd50
push eax
call fcn.10001640
push eax
mov eax, esi
xor edx, edx
div dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
lea eax, [edx + eax*4]
push eax
call fcn.10011850
mov eax, dword [esp + 0x28]
add esp, 0x10
cmp eax, 2
jb 0x1000ae59
cmp eax, 4
ja 0x1000ae59
call fcn.100029b0
mov dword [esp + 0x5c], 2
jmp 0x1000af33
cmp esi, 5
jne 0x1000ad9e
lea eax, [esp + 0xa0]
push eax
push 0x1000
push 0xc
call fcn.10005180
add esp, 8
push eax
push ebp
call fcn.1000f0b0
add esp, 0xc
mov dword [esp + 0x78], eax
test eax, eax
jne 0x1000ad9e
mov esi, 0xfffffc11
mov dword [ebp + 0xc], esi
mov ecx, dword [ebp + 0x498]
push 2
push ecx
call fcn.10013dbd
add esp, 8
jmp 0x1000ae43
cmp eax, 5
jne 0x1000ae8b
mov ecx, dword [esp + 0x78]
push ebp
push 0x1000
push 0x2c37b870
push 3
push 0x101
push 0x100
push 0xc
push 9
push ecx
call fcn.100051a0
add esp, 0x24
jmp 0x1000af33
cmp eax, 8
je 0x1000ae9b
cmp eax, 0x80b2
jne 0x1000af33
xor eax, eax
mov dword [0x2c38e72c], 0x2c37c770
mov dword [0x2c38e718], eax
mov dword [0x2c38e71c], eax
mov dword [0x2c38e730], 0x2c37c790
mov dword [0x2c38e734], 0x2c38e744
cmp dword [ebp + 0x77c], 2
jne 0x1000aee0
cmp dword [esp + 0x38], 8
jbe 0x1000aee0
push 0x38
push 0x2c38c9e4
push 1
jmp 0x1000aee9
push 0x38
push 0x2c38c9e4
push 0
push 8
push 0xf
push 8
push 0xffffffffffffffff
push 0x2c38e70c
call fcn.10014810
add esp, 0x20
test eax, eax
je 0x1000af33
cmp eax, 0xfffffffc
jne 0x1000af0e
mov eax, 0xfffffc11
jmp 0x1000af1f
sub eax, 0xfffffffa
neg eax
sbb eax, eax
and eax, 0xffffe2bb
add eax, 0xfffffa1d
mov dword [ebp + 0xc], eax
mov edx, dword [ebp + 0x498]
push 2
push edx
call fcn.10013dbd
add esp, 8
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], esi
add eax, esi
cmp esi, eax
mov dword [esp + 0x2c], eax
jae 0x1000b36e
inc esi
imul esi, esi, 0x64
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
cmp ecx, eax
jae 0x1000b36e
mov eax, dword [esp + 0x94]
test eax, eax
je 0x1000afe1
cmp dword [esp + 0x24], 1
jbe 0x1000afbf
mov eax, ecx
xor edx, edx
div dword [esp + 0x24]
test edx, edx
jne 0x1000afbf
mov eax, dword [esp + 0x28]
mov edx, ecx
mov ecx, dword [esp + 0x24]
sub eax, edx
cmp eax, ecx
jae 0x1000af9d
mov edx, dword [esp + 0x40]
imul edx, eax
mov eax, dword [esp + 0x4c]
push edx
jmp 0x1000afb6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
mov esi, ecx
sub eax, ecx
imul esi, edx
imul eax, edx
mov edx, dword [esp + 0x4c]
push esi
add eax, edx
push eax
call fcn.1000d180
add esp, 8
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
sub ecx, esi
dec ecx
mov esi, dword [esp + 0x4c]
imul ecx, eax
add ecx, esi
push eax
push ecx
call fcn.1000d180
add esp, 8
mov eax, dword [esp + 0x18]
cmp eax, 0x8005
ja 0x1000b192
je 0x1000b1a1
dec eax
cmp eax, 7
ja 0x1000b308
jmp dword [eax*4 + 0x2c37b844]
cmp eax, 0x80b2
jne 0x1000b308
mov eax, dword [esp + 0x18]
cmp eax, 1
jne 0x1000b1bb
mov esi, dword [0x2c38ddbc]
mov edx, dword [esp + 0x40]
mov eax, dword [0x2c38ddc0]
add edx, esi
cmp edx, eax
jbe 0x1000b1bf
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
push eax
push esi
call fcn.1000cef0
mov eax, dword [esp + 0x70]
add esp, 8
test eax, eax
je 0x1000b1de
push edi
push esi
call fcn.1000b9f0
jmp 0x1000b22e
mov eax, dword [esp + 0x88]
test eax, eax
je 0x1000b1fd
mov ecx, dword [esp + 0x8c]
test ecx, ecx
je 0x1000b1fd
push edi
push esi
call fcn.1000ba50
jmp 0x1000b22e
mov ecx, dword [esp + 0x38]
cmp ecx, 0x18
jne 0x1000b20f
push edi
push esi
call fcn.1000bb30
jmp 0x1000b22e
test eax, eax
je 0x1000b231
cmp ecx, 0x20
jne 0x1000b231
mov eax, dword [esp + 0x70]
push edi
test eax, eax
push esi
je 0x1000b229
call fcn.1000bb60
jmp 0x1000b22e
call fcn.1000ba90
add esp, 8
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x1000b25a
mov eax, dword [esp + 0x38]
cmp eax, 0x18
jne 0x1000b24b
push edi
push esi
call fcn.1000bb30
jmp 0x1000b257
cmp eax, 0x20
jne 0x1000b25a
push edi
push esi
call fcn.1000bb60
add esp, 8
mov ecx, dword [esp + 0x18]
cmp ecx, 5
je 0x1000b270
cmp ecx, 8
je 0x1000b270
cmp ecx, 0x80b2
jne 0x1000b2b4
cmp dword [ebp + 0x77c], 2
jne 0x1000b2b4
mov eax, dword [esp + 0x54]
dec eax
je 0x1000b2a2
sub eax, 2
je 0x1000b295
dec eax
jne 0x1000b2b4
mov ecx, dword [esp + 0x14]
push edi
push ecx
call fcn.1000b8f0
jmp 0x1000b2ad
mov edx, dword [esp + 0x14]
push edi
push edx
call fcn.1000b8b0
jmp 0x1000b2ad
mov eax, dword [esp + 0x14]
push edi
push eax
call fcn.1000b890
mov ecx, dword [esp + 0x20]
add esp, 8
cmp ecx, 1
jne 0x1000b2c5
push ebx
push esi
call fcn.1000d7d0
add esp, 8
jmp 0x1000b308
cmp ecx, 5
jne 0x1000b2d8
mov ecx, dword [esp + 0x78]
push ebx
push esi
push ecx
call fcn.10005340
jmp 0x1000b305
cmp ecx, 8
je 0x1000b2f9
cmp ecx, 0x80b2
je 0x1000b2f9
cmp ecx, 0x8005
jne 0x1000b308
push ebx
push esi
call fcn.10010de0
add esp, 8
jmp 0x1000b308
push ebx
push esi
push 0x2c38e70c
call fcn.1000c540
add esp, 0xc
mov eax, dword [esp + 0x1c]
xor edx, edx
div dword [esp + 0x28]
mov ecx, dword [esp + 0x98]
mov dword [ebp + 0x494], eax
mov eax, dword [esp + 0x90]
inc eax
cmp eax, ecx
mov dword [esp + 0x90], eax
jne 0x1000b34e
mov edx, dword [0x2c38ddc8]
push 3
push edx
call fcn.10001000
add esp, 8
mov dword [esp + 0x90], 0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
inc eax
add edx, 0x64
cmp eax, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], edx
jb 0x1000af51
mov eax, dword [esp + 0x18]
cmp eax, 2
jb 0x1000b383
cmp eax, 4
ja 0x1000b383
call fcn.10002a00
jmp 0x1000b3ad
cmp eax, 5
jne 0x1000b394
mov eax, dword [esp + 0x78]
push eax
call fcn.10005260
jmp 0x1000b3aa
cmp eax, 8
je 0x1000b3a0
cmp eax, 0x80b2
jne 0x1000b3ad
push 0x2c38e70c
call fcn.1000c630
add esp, 4
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
cmp esi, eax
jb 0x1000adc7
mov eax, dword [esp + 0x18]
cmp eax, 2
jb 0x1000b42e
cmp eax, 4
ja 0x1000b42e
sub eax, 2
je 0x1000b3d8
dec eax
je 0x1000b3d8
dec eax
je 0x1000b40e
jmp 0x1000b429
mov eax, dword [esp + 0x80]
mov esi, 6
test eax, eax
jne 0x1000b3fc
push 0xc
push 0x100000
call fcn.10002da0
add esp, 8
dec esi
jne 0x1000b3e8
jmp 0x1000b40e
push 0xd
push 0x180000
call fcn.10002da0
add esp, 8
dec esi
jne 0x1000b3fc
push 0xc
push 0x100000
call fcn.10002da0
push 0xc
push 0x100000
call fcn.10002da0
add esp, 0x10
call fcn.10002960
mov dword [ebp + 0x494], 0x64
call fcn.1000dd50
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x44], eax
cmp ebx, 1
jle 0x1000b513
mov ecx, dword [esp + 0x50]
push 0
push ecx
call fcn.1000daa0
add esp, 8
test ebx, ebx
jle 0x1000b513
mov esi, dword [esp + 0x34]
mov dword [esp + 0x70], ebx
push esi
call fcn.10011860
mov edx, dword [0x2c38ddbc]
add esp, 4
mov dword [esp + 0x50], eax
lea ecx, [edx + 4]
mov edx, dword [0x2c38ddc0]
cmp ecx, edx
jb 0x1000b4c7
mov ecx, dword [0x2c38ddcc]
mov edx, dword [0x2c38dd24]
cmp ecx, edx
mov ecx, eax
je 0x1000b4bc
mov edx, eax
shl ecx, 0x10
and edx, 0xff00
add ecx, edx
xor edx, edx
mov dh, byte [esp + 0x52]
shl ecx, 8
add ecx, edx
shr eax, 0x18
add ecx, eax
push ecx
call fcn.1000d7b0
add esp, 4
jmp 0x1000b501
mov edx, dword [0x2c38dd24]
mov edi, ecx
mov ecx, dword [0x2c38ddcc]
mov dword [0x2c38ddbc], edi
cmp ecx, edx
mov ecx, eax
je 0x1000b4fe
mov edx, eax
shl ecx, 0x10
and edx, 0xff00
add ecx, edx
xor edx, edx
mov dh, byte [esp + 0x52]
shl ecx, 8
add ecx, edx
shr eax, 0x18
add ecx, eax
mov dword [edi - 4], ecx
mov eax, dword [esp + 0x70]
add esi, 4
dec eax
mov dword [esp + 0x70], eax
jne 0x1000b46d
mov eax, dword [esp + 0x58]
push 0
push eax
call fcn.1000daa0
lea eax, [ebx - 1]
add esp, 8
test eax, eax
jle 0x1000b628
mov edi, dword [esp + 0x34]
mov dword [esp + 0x50], eax
push edi
call fcn.10011860
lea ebx, [edi + 4]
mov esi, eax
push ebx
call fcn.10011860
add esp, 8
cmp eax, esi
jb 0x1000b60d
mov ecx, dword [0x2c38ddbc]
mov edx, dword [0x2c38ddc0]
add ecx, 4
cmp ecx, edx
jb 0x1000b5b3
mov edx, dword [0x2c38ddcc]
mov ecx, dword [0x2c38dd24]
cmp edx, ecx
jne 0x1000b583
sub eax, esi
mov ecx, eax
push ecx
call fcn.1000d7b0
add esp, 4
jmp 0x1000b5fb
sub eax, esi
xor edx, edx
mov ecx, eax
mov dword [esp + 0x58], eax
mov dh, byte [esp + 0x5a]
shl ecx, 8
and ecx, 0xff0000
add ecx, edx
mov edx, eax
shl edx, 0x18
add ecx, edx
shr eax, 0x18
add ecx, eax
push ecx
call fcn.1000d7b0
add esp, 4
jmp 0x1000b5fb
mov edx, dword [0x2c38dd24]
mov edi, ecx
mov ecx, dword [0x2c38ddcc]
mov dword [0x2c38ddbc], edi
cmp ecx, edx
jne 0x1000b5d1
sub eax, esi
mov ecx, eax
jmp 0x1000b5f8
sub eax, esi
mov edx, eax
mov dword [esp + 0x58], eax
shl edx, 8
mov ecx, edx
xor edx, edx
mov dh, byte [esp + 0x5a]
and ecx, 0xff0000
add ecx, edx
mov edx, eax
shl edx, 0x18
add ecx, edx
shr eax, 0x18
add ecx, eax
mov dword [edi - 4], ecx
mov eax, dword [esp + 0x50]
mov edi, ebx
dec eax
mov dword [esp + 0x50], eax
je 0x1000b628
jmp 0x1000b535
mov esi, 0xfffffa0b
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x498]
push 2
push eax
call fcn.10013dbd
add esp, 8
jmp 0x1000b612
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
lea eax, [ecx + edx*4 - 4]
push eax
call fcn.10011860
mov ebx, dword [esp + 0x48]
add esp, 4
cmp ebx, eax
jae 0x1000b660
mov esi, 0xfffffa0b
mov dword [ebp + 0xc], esi
mov ecx, dword [ebp + 0x498]
push 2
push ecx
call fcn.10013dbd
add esp, 8
jmp 0x1000b64a
mov edx, dword [0x2c38ddbc]
lea ecx, [edx + 4]
mov edx, dword [0x2c38ddc0]
cmp ecx, edx
jb 0x1000b6f0
mov ecx, dword [0x2c38ddcc]
mov edx, dword [0x2c38dd24]
cmp ecx, edx
jne 0x1000b6a1
mov edx, ebx
push ebp
sub edx, eax
push edx
call fcn.10001640
add esp, 8
mov esi, eax
push esi
call fcn.1000d7b0
add esp, 4
jmp 0x1000b796
mov edi, ebx
push ebp
sub edi, eax
push edi
call fcn.10001640
mov esi, eax
push ebp
push edi
shl esi, 0x10
call fcn.10001640
and eax, 0xff00
push ebp
add esi, eax
push edi
shl esi, 8
call fcn.10001640
shr eax, 8
and eax, 0xff00
push ebp
push edi
add esi, eax
call fcn.10001640
shr eax, 0x18
add esp, 0x20
add esi, eax
push esi
call fcn.1000d7b0
add esp, 4
jmp 0x1000b796
mov edx, dword [0x2c38dd24]
mov dword [0x2c38ddbc], ecx
mov ecx, dword [0x2c38ddcc]
mov esi, ebx
cmp ecx, edx
jne 0x1000b718
sub esi, eax
push ebp
push esi
call fcn.10001640
add esp, 8
mov edi, eax
jmp 0x1000b757
sub esi, eax
push ebp
push esi
call fcn.10001640
mov edi, eax
push ebp
push esi
shl edi, 0x10
call fcn.10001640
and eax, 0xff00
push ebp
add edi, eax
push esi
shl edi, 8
call fcn.10001640
shr eax, 8
and eax, 0xff00
push ebp
push esi
add edi, eax
call fcn.10001640
shr eax, 0x18
add esp, 0x20
add edi, eax
mov edx, dword [0x2c38ddbc]
push ebp
push esi
mov dword [edx - 4], edi
mov eax, dword [0x2c38ddcc]
cmp eax, dword [0x2c38dd24]
jne 0x1000b779
call fcn.10001640
add esp, 8
jmp 0x1000b796
call fcn.10001640
push ebp
push esi
call fcn.10001640
push ebp
push esi
call fcn.10001640
push ebp
push esi
call fcn.10001640
add esp, 0x20
push 0
push ebx
call fcn.1000daa0
mov ecx, dword [0x2c38ddbc]
add esp, 8
mov dword [ebp + 0x4c4], ecx
push ebp
call fcn.1000dd50
push eax
call fcn.10001640
add esp, 8
mov dword [ebp + 0x764], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc4
ret
mov edx, dword [0x2c38de20]
mov eax, dword [0x2c38de18]
push edx
push eax
call fcn.1000d7d0
mov ecx, dword [0x2c38ddbc]
add esp, 8
mov dword [ebp + 0x4c4], ecx
push ebp
call fcn.1000dd50
push eax
call fcn.10001640
add esp, 8
mov dword [ebp + 0x764], eax
mov dword [ebp + 0xc], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc4
ret