Function at 0x1003c2d0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x56c
push esi
push edi
mov dword [ebp - 4], ecx
mov dword [ebp - 8], 0
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 4]
cmp dword [eax + 0x1c], 0
jle 0x1003c3dd
push 1
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x1c]
sub edx, 1
push edx
lea eax, [ebp - 0xbc]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
lea ecx, [ebp - 0xb4]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
mov dword [ebp - 0xa0], eax
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0xac]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
mov dword [ebp - 0xa8], eax
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ecx]
mov dword [ebp - 0xa4], edx
mov eax, dword [ebp - 0xa4]
push eax
mov ecx, dword [ebp - 0xa8]
call fcn.1002f5e0
test eax, eax
je 0x1003c373
mov dword [ebp - 0x5c], 1
jmp 0x1003c37a
mov dword [ebp - 0x5c], 0
mov cl, byte [ebp - 0x5c]
mov byte [ebp - 0x44], cl
mov edx, dword [ebp - 0xac]
sub edx, 0x10
mov dword [ebp - 0xb0], edx
mov ecx, dword [ebp - 0xb0]
call fcn.10003260
mov eax, dword [ebp - 0xb4]
sub eax, 0x10
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xb8]
call fcn.10003260
mov ecx, dword [ebp - 0xbc]
sub ecx, 0x10
mov dword [ebp - 0xc0], ecx
mov ecx, dword [ebp - 0xc0]
call fcn.10003260
movzx edx, byte [ebp - 0x44]
test edx, edx
je 0x1003c3dd
mov eax, dword [ebp - 4]
mov byte [eax + 0x1a], 0
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 0x1a]
cmp edx, 1
je 0x1003c3f1
mov eax, dword [ebp - 4]
cmp dword [eax], 0
jg 0x1003c44e
push ecx
mov dword [ebp - 0xcc], esp
mov ecx, dword [ebp + 8]
sub ecx, 0x10
mov dword [ebp - 0xc4], ecx
mov edx, dword [ebp - 0xc4]
push edx
call fcn.100306c0
add esp, 4
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xc8]
add eax, 0x10
mov ecx, dword [ebp - 0xcc]
mov dword [ecx], eax
mov ecx, dword [ebp - 4]
call fcn.10033510
mov edx, dword [ebp + 8]
sub edx, 0x10
mov dword [ebp - 0xd0], edx
mov ecx, dword [ebp - 0xd0]
call fcn.10003260
jmp 0x10040145
call fcn.10003470
push eax
lea ecx, [ebp - 0xc]
call fcn.100302f0
push ecx
mov dword [ebp - 0xdc], esp
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x34]
sub ecx, 0x10
mov dword [ebp - 0xd4], ecx
mov edx, dword [ebp - 0xd4]
push edx
call fcn.100306c0
add esp, 4
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xd8]
add eax, 0x10
mov ecx, dword [ebp - 0xdc]
mov dword [ecx], eax
mov ecx, dword [ebp - 4]
call fcn.10034d40
mov dword [ebp - 0xe0], eax
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [eax + 0x1c]
jge 0x1003c4c3
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x1c]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
mov dword [ebp - 0x14], edx
mov byte [ebp - 0x1d], 0
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jg 0x1003c50f
push ecx
mov ecx, esp
push 1
mov edx, dword [ebp - 0x1c]
sub edx, 1
push edx
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx eax, al
test eax, eax
je 0x1003c504
mov byte [ebp - 0x1d], 1
jmp 0x1003c50f
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x1003c4cf
movzx edx, byte [ebp - 0x1d]
test edx, edx
jne 0x1003c58b
push ecx
mov dword [ebp - 0xec], esp
mov eax, dword [ebp + 8]
sub eax, 0x10
mov dword [ebp - 0xe4], eax
mov ecx, dword [ebp - 0xe4]
push ecx
call fcn.100306c0
add esp, 4
mov dword [ebp - 0xe8], eax
mov edx, dword [ebp - 0xe8]
add edx, 0x10
mov eax, dword [ebp - 0xec]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
call fcn.10033510
mov ecx, dword [ebp - 0xc]
sub ecx, 0x10
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0xf0]
call fcn.10003260
mov edx, dword [ebp + 8]
sub edx, 0x10
mov dword [ebp - 0xf4], edx
mov ecx, dword [ebp - 0xf4]
call fcn.10003260
jmp 0x10040145
mov byte [ebp - 0x1d], 0
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jl 0x1003c6d1
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 0x120]
push edx
mov ecx, dword [ebp - 4]
call fcn.100475d0
mov dword [ebp - 0xfc], eax
push 1
lea eax, [ebp - 0x110]
push eax
push ecx
mov ecx, esp
push 1
mov edx, dword [ebp - 0x14]
sub edx, 1
push edx
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
lea eax, [ebp - 0x118]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov dword [ebp - 0xf8], eax
mov ecx, dword [ebp - 0xf8]
push ecx
lea edx, [ebp - 0x108]
push edx
mov ecx, dword [ebp - 4]
call fcn.100475d0
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0xfc]
mov ecx, dword [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
push edx
mov ecx, dword [ebp - 0x104]
call fcn.1002f5e0
test eax, eax
jne 0x1003c63a
mov dword [ebp - 0x60], 1
jmp 0x1003c641
mov dword [ebp - 0x60], 0
mov al, byte [ebp - 0x60]
mov byte [ebp - 0x45], al
mov cl, byte [ebp - 0x45]
mov byte [ebp - 0x46], cl
mov edx, dword [ebp - 0x108]
sub edx, 0x10
mov dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x10c]
call fcn.10003260
mov eax, dword [ebp - 0x110]
sub eax, 0x10
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0x114]
call fcn.10003260
mov ecx, dword [ebp - 0x118]
sub ecx, 0x10
mov dword [ebp - 0x11c], ecx
mov ecx, dword [ebp - 0x11c]
call fcn.10003260
mov edx, dword [ebp - 0x120]
sub edx, 0x10
mov dword [ebp - 0x124], edx
mov ecx, dword [ebp - 0x124]
call fcn.10003260
movzx eax, byte [ebp - 0x46]
test eax, eax
je 0x1003c6c3
mov byte [ebp - 0x1d], 1
jmp 0x1003c6d1
mov ecx, dword [ebp - 0x14]
sub ecx, 1
mov dword [ebp - 0x14], ecx
jmp 0x1003c58f
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0x1c]
jge 0x1003c6df
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
movzx ecx, byte [ebp - 0x1d]
test ecx, ecx
jne 0x1003c75b
push ecx
mov dword [ebp - 0x130], esp
mov edx, dword [ebp + 8]
sub edx, 0x10
mov dword [ebp - 0x128], edx
mov eax, dword [ebp - 0x128]
push eax
call fcn.100306c0
add esp, 4
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
add ecx, 0x10
mov edx, dword [ebp - 0x130]
mov dword [edx], ecx
mov ecx, dword [ebp - 4]
call fcn.10033510
mov eax, dword [ebp - 0xc]
sub eax, 0x10
mov dword [ebp - 0x134], eax
mov ecx, dword [ebp - 0x134]
call fcn.10003260
mov ecx, dword [ebp + 8]
sub ecx, 0x10
mov dword [ebp - 0x138], ecx
mov ecx, dword [ebp - 0x138]
call fcn.10003260
jmp 0x10040145
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x1c]
jl 0x1003c7a8
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x10]
cmp ecx, 3
jg 0x1003c7a8
push ecx
mov edx, esp
push 1
mov eax, dword [ebp - 0x10]
sub eax, 1
push eax
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx ecx, al
test ecx, ecx
jne 0x1003c79d
jmp 0x1003c7a8
mov edx, dword [ebp - 0x10]
sub edx, 1
mov dword [ebp - 0x10], edx
jmp 0x1003c761
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x1c]
jge 0x1003c7b6
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x14]
sub edx, dword [ebp - 0x10]
add edx, 1
push edx
mov eax, dword [ebp - 0x10]
sub eax, 1
push eax
lea ecx, [ebp - 0x140]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
mov dword [ebp - 0x13c], eax
mov edx, dword [ebp - 0x13c]
push edx
lea ecx, [ebp - 0xc]
call fcn.10030240
mov eax, dword [ebp - 0x140]
sub eax, 0x10
mov dword [ebp - 0x144], eax
mov ecx, dword [ebp - 0x144]
call fcn.10003260
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x54c]
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x50], ecx
cmp dword [ebp - 0x50], 1
je 0x1003c83f
cmp dword [ebp - 0x50], 2
je 0x1003ca71
cmp dword [ebp - 0x50], 3
je 0x1003f45f
jmp 0x1003fa5b
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
cmp eax, dword [edx]
jge 0x1003ca66
or dword [ebp - 8], 1
mov ecx, dword [ebp - 4]
add ecx, 0x34
mov dword [ebp - 0x64], ecx
cmp dword [ebp - 0x14], 0
jl 0x1003c879
mov edx, dword [ebp - 0x64]
mov eax, dword [edx]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x148], ecx
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0x148]
jle 0x1003c883
push 0x80070057
call fcn.10002e80
mov eax, dword [ebp - 0x64]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x14]
mov ax, word [ecx + edx*2]
mov word [ebp - 0x54], ax
push 0
movzx ecx, word [ebp - 0x54]
push ecx
push 0x10067f90
lea ecx, [ebp - 0x170]
call fcn.1002fa40
mov ecx, eax
call fcn.10048d30
add eax, 1
test eax, eax
jle 0x1003c945
or dword [ebp - 8], 2
or dword [ebp - 8], 4
or dword [ebp - 8], 8
push 0
push 1
lea edx, [ebp - 0x160]
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x168]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.10048bf0
mov dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x14c]
mov eax, dword [edx]
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0x150]
push ecx
push 0x10067f98
lea ecx, [ebp - 0x158]
call fcn.1002fa40
mov ecx, eax
call fcn.1002f110
mov dword [ebp - 0x154], eax
mov edx, dword [ebp - 0x154]
add edx, 1
test edx, edx
jle 0x1003c945
mov dword [ebp - 0x68], 1
jmp 0x1003c94c
mov dword [ebp - 0x68], 0
mov al, byte [ebp - 0x68]
mov byte [ebp - 0x47], al
mov ecx, dword [ebp - 8]
and ecx, 8
je 0x1003c978
and dword [ebp - 8], 0xfffffff7
mov edx, dword [ebp - 0x158]
sub edx, 0x10
mov dword [ebp - 0x15c], edx
mov ecx, dword [ebp - 0x15c]
call fcn.10003260
mov eax, dword [ebp - 8]
and eax, 4
je 0x1003c99e
and dword [ebp - 8], 0xfffffffb
mov ecx, dword [ebp - 0x160]
sub ecx, 0x10
mov dword [ebp - 0x164], ecx
mov ecx, dword [ebp - 0x164]
call fcn.10003260
mov edx, dword [ebp - 8]
and edx, 2
je 0x1003c9c4
and dword [ebp - 8], 0xfffffffd
mov eax, dword [ebp - 0x168]
sub eax, 0x10
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0x16c]
call fcn.10003260
mov ecx, dword [ebp - 8]
and ecx, 1
je 0x1003c9ea
and dword [ebp - 8], 0xfffffffe
mov edx, dword [ebp - 0x170]
sub edx, 0x10
mov dword [ebp - 0x174], edx
mov ecx, dword [ebp - 0x174]
call fcn.10003260
movzx eax, byte [ebp - 0x47]
test eax, eax
je 0x1003ca66
push ecx
mov dword [ebp - 0x180], esp
mov ecx, dword [ebp + 8]
sub ecx, 0x10
mov dword [ebp - 0x178], ecx
mov edx, dword [ebp - 0x178]
push edx
call fcn.100306c0
add esp, 4
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp - 0x17c]
add eax, 0x10
mov ecx, dword [ebp - 0x180]
mov dword [ecx], eax
mov ecx, dword [ebp - 4]
call fcn.10033510
mov edx, dword [ebp - 0xc]
sub edx, 0x10
mov dword [ebp - 0x184], edx
mov ecx, dword [ebp - 0x184]
call fcn.10003260
mov eax, dword [ebp + 8]
sub eax, 0x10
mov dword [ebp - 0x188], eax
mov ecx, dword [ebp - 0x188]
call fcn.10003260
jmp 0x10040145
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], ecx
jmp 0x1003fa5b
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx eax, al
cmp eax, 1
jne 0x1003e827
push 0x10067fa0
push 1
lea ecx, [ebp - 0x194]
push ecx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
push eax
lea edx, [ebp - 0x18c]
push edx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x48], al
mov eax, dword [ebp - 0x18c]
sub eax, 0x10
mov dword [ebp - 0x190], eax
mov ecx, dword [ebp - 0x190]
call fcn.10003260
mov ecx, dword [ebp - 0x194]
sub ecx, 0x10
mov dword [ebp - 0x198], ecx
mov ecx, dword [ebp - 0x198]
call fcn.10003260
movzx edx, byte [ebp - 0x48]
test edx, edx
je 0x1003d615
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [eax]
jge 0x1003cc84
push ecx
mov dword [ebp - 0x1a0], esp
mov edx, dword [ebp - 4]
add edx, 0x34
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x19c], edx
mov eax, dword [ebp - 0x19c]
sub eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x1a0]
push edx
mov ecx, dword [ebp - 0x6c]
call fcn.1002efb0
mov ecx, dword [ebp - 4]
call fcn.10036eb0
mov byte [ebp - 0x49], al
movzx eax, byte [ebp - 0x49]
test eax, eax
jne 0x1003cbd5
or dword [ebp - 8], 0x10
mov ecx, dword [ebp - 4]
add ecx, 0x34
mov dword [ebp - 0x70], ecx
cmp dword [ebp - 0x14], 0
jl 0x1003cb8d
mov edx, dword [ebp - 0x70]
mov eax, dword [edx]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x1a4], ecx
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0x1a4]
jle 0x1003cb97
push 0x80070057
call fcn.10002e80
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x14]
mov ax, word [ecx + edx*2]
mov word [ebp - 0x56], ax
push 0
movzx ecx, word [ebp - 0x56]
push ecx
push 0x10067fa4
lea ecx, [ebp - 0x1a8]
call fcn.1002fa40
mov ecx, eax
call fcn.10048d30
add eax, 1
test eax, eax
jle 0x1003cbd5
mov dword [ebp - 0x74], 0
jmp 0x1003cbdc
mov dword [ebp - 0x74], 1
mov dl, byte [ebp - 0x74]
mov byte [ebp - 0x4a], dl
mov eax, dword [ebp - 8]
and eax, 0x10
je 0x1003cc08
and dword [ebp - 8], 0xffffffef
mov ecx, dword [ebp - 0x1a8]
sub ecx, 0x10
mov dword [ebp - 0x1ac], ecx
mov ecx, dword [ebp - 0x1ac]
call fcn.10003260
movzx edx, byte [ebp - 0x4a]
test edx, edx
je 0x1003cc84
push ecx
mov dword [ebp - 0x1b8], esp
mov eax, dword [ebp + 8]
sub eax, 0x10
mov dword [ebp - 0x1b0], eax
mov ecx, dword [ebp - 0x1b0]
push ecx
call fcn.100306c0
add esp, 4
mov dword [ebp - 0x1b4], eax
mov edx, dword [ebp - 0x1b4]
add edx, 0x10
mov eax, dword [ebp - 0x1b8]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
call fcn.10033510
mov ecx, dword [ebp - 0xc]
sub ecx, 0x10
mov dword [ebp - 0x1bc], ecx
mov ecx, dword [ebp - 0x1bc]
call fcn.10003260
mov edx, dword [ebp + 8]
sub edx, 0x10
mov dword [ebp - 0x1c0], edx
mov ecx, dword [ebp - 0x1c0]
call fcn.10003260
jmp 0x10040145
push 0x10067fb0
push 1
lea eax, [ebp - 0x1d0]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x1d8]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov dword [ebp - 0x1c4], eax
mov eax, dword [ebp - 0x1c4]
push eax
lea ecx, [ebp - 0x1c8]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x25], al
mov dl, byte [ebp - 0x25]
mov byte [ebp - 0x26], dl
mov eax, dword [ebp - 0x1c8]
sub eax, 0x10
mov dword [ebp - 0x1cc], eax
mov ecx, dword [ebp - 0x1cc]
call fcn.10003260
mov ecx, dword [ebp - 0x1d0]
sub ecx, 0x10
mov dword [ebp - 0x1d4], ecx
mov ecx, dword [ebp - 0x1d4]
call fcn.10003260
mov edx, dword [ebp - 0x1d8]
sub edx, 0x10
mov dword [ebp - 0x1dc], edx
mov ecx, dword [ebp - 0x1dc]
call fcn.10003260
movzx eax, byte [ebp - 0x26]
test eax, eax
je 0x1003d5e7
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx edx, al
cmp edx, 2
jne 0x1003cef5
push 1
push ecx
mov eax, esp
push 1
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x1e0]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov dword [ebp - 0x550], eax
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
push ecx
mov ecx, dword [ebp - 4]
call fcn.10031d90
mov edx, dword [ebp - 0x1e0]
sub edx, 0x10
mov dword [ebp - 0x1e4], edx
mov ecx, dword [ebp - 0x1e4]
call fcn.10003260
push 1
push ecx
mov dword [ebp - 0x1e8], esp
push ecx
mov esi, esp
lea eax, [ebp + 8]
push eax
push 1
mov ecx, dword [ebp - 0x14]
sub ecx, 1
push ecx
lea edx, [ebp - 0x1ec]
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
push esi
call fcn.1002edd0
add esp, 0xc
mov eax, dword [ebp - 0x1e8]
push eax
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov dword [ebp - 0x554], eax
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 4]
add edx, 0x34
push edx
mov ecx, dword [ebp - 4]
call fcn.10031d90
mov eax, dword [ebp - 0x1ec]
sub eax, 0x10
mov dword [ebp - 0x1f0], eax
mov ecx, dword [ebp - 0x1f0]
call fcn.10003260
mov ecx, dword [ebp - 0x14]
sub ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx]
sub eax, dword [ebp - 0x10]
add eax, 1
push eax
mov ecx, dword [ebp - 0x10]
sub ecx, 1
push ecx
lea edx, [ebp - 0x1fc]
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebp - 4]
add eax, 0x2c
mov dword [ebp - 0x1f8], eax
mov ecx, dword [ebp - 0x1f4]
push ecx
mov ecx, dword [ebp - 0x1f8]
call fcn.10030240
mov edx, dword [ebp - 0x1fc]
sub edx, 0x10
mov dword [ebp - 0x200], edx
mov ecx, dword [ebp - 0x200]
call fcn.10003260
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x2c]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x204], edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x204]
mov dword [eax + 0x30], ecx
mov edx, dword [ebp - 0xc]
sub edx, 0x10
mov dword [ebp - 0x208], edx
mov ecx, dword [ebp - 0x208]
call fcn.10003260
mov eax, dword [ebp + 8]
sub eax, 0x10
mov dword [ebp - 0x20c], eax
mov ecx, dword [ebp - 0x20c]
call fcn.10003260
jmp 0x10040145
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx edx, al
cmp edx, 4
jne 0x1003d154
push 1
push ecx
mov eax, esp
push 1
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x210]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov dword [ebp - 0x558], eax
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
push ecx
mov ecx, dword [ebp - 4]
call fcn.10031d90
mov edx, dword [ebp - 0x210]
sub edx, 0x10
mov dword [ebp - 0x214], edx
mov ecx, dword [ebp - 0x214]
call fcn.10003260
push 1
push ecx
mov dword [ebp - 0x220], esp
push ecx
mov dword [ebp - 0x21c], esp
push 1
lea eax, [ebp - 0x234]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x23c]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.10048bf0
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x218]
push eax
lea ecx, [ebp + 8]
push ecx
push 1
mov edx, dword [ebp - 0x14]
sub edx, 1
push edx
lea eax, [ebp - 0x22c]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
lea ecx, [ebp - 0x224]
push ecx
call fcn.1002edd0
add esp, 0xc
push eax
mov edx, dword [ebp - 0x21c]
push edx
call fcn.1002edd0
add esp, 0xc
mov dword [ebp - 0x55c], eax
mov eax, dword [ebp - 0x220]
push eax
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov dword [ebp - 0x560], eax
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 4]
add edx, 0x34
push edx
mov ecx, dword [ebp - 4]
call fcn.10031d90
mov eax, dword [ebp - 0x224]
sub eax, 0x10
mov dword [ebp - 0x228], eax
mov ecx, dword [ebp - 0x228]
call fcn.10003260
mov ecx, dword [ebp - 0x22c]
sub ecx, 0x10
mov dword [ebp - 0x230], ecx
mov ecx, dword [ebp - 0x230]
call fcn.10003260
mov edx, dword [ebp - 0x234]
sub edx, 0x10
mov dword [ebp - 0x238], edx
mov ecx, dword [ebp - 0x238]
call fcn.10003260
mov eax, dword [ebp - 0x23c]
sub eax, 0x10
mov dword [ebp - 0x240], eax
mov ecx, dword [ebp - 0x240]
call fcn.10003260
mov ecx, dword [ebp - 0x14]
sub ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx]
sub eax, dword [ebp - 0x10]
add eax, 1
push eax
mov ecx, dword [ebp - 0x10]
sub ecx, 1
push ecx
lea edx, [ebp - 0x24c]
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
mov dword [ebp - 0x244], eax
mov eax, dword [ebp - 4]
add eax, 0x2c
mov dword [ebp - 0x248], eax
mov ecx, dword [ebp - 0x244]
push ecx
mov ecx, dword [ebp - 0x248]
call fcn.10030240
mov edx, dword [ebp - 0x24c]
sub edx, 0x10
mov dword [ebp - 0x250], edx
mov ecx, dword [ebp - 0x250]
call fcn.10003260
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x2c]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x254], edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x254]
mov dword [eax + 0x30], ecx
mov edx, dword [ebp - 0xc]
sub edx, 0x10
mov dword [ebp - 0x258], edx
mov ecx, dword [ebp - 0x258]
call fcn.10003260
mov eax, dword [ebp + 8]
sub eax, 0x10
mov dword [ebp - 0x25c], eax
mov ecx, dword [ebp - 0x25c]
call fcn.10003260
jmp 0x10040145
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx edx, al
cmp edx, 3
jne 0x1003d5c1
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [eax]
jge 0x1003d3af
or dword [ebp - 8], 0x20
mov edx, dword [ebp - 4]
add edx, 0x34
mov dword [ebp - 0x78], edx
cmp dword [ebp - 0x14], 0
jl 0x1003d1b0
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x260], edx
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x260]
jle 0x1003d1ba
push 0x80070057
call fcn.10002e80
mov ecx, dword [ebp - 0x78]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x14]
mov cx, word [edx + eax*2]
mov word [ebp - 0x52], cx
push 0
movzx edx, word [ebp - 0x52]
push edx
push 0x10067fb4
lea ecx, [ebp - 0x288]
call fcn.1002fa40
mov ecx, eax
call fcn.10048d30
add eax, 1
test eax, eax
jle 0x1003d282
or dword [ebp - 8], 0x40
or dword [ebp - 8], 0x80
or dword [ebp - 8], 0x100
push 0
push 1
lea eax, [ebp - 0x278]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x280]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.10048bf0
mov dword [ebp - 0x264], eax
mov eax, dword [ebp - 0x264]
mov ecx, dword [eax]
mov dword [ebp - 0x268], ecx
mov edx, dword [ebp - 0x268]
push edx
push 0x10067fbc
lea ecx, [ebp - 0x270]
call fcn.1002fa40
mov ecx, eax
call fcn.1002f110
mov dword [ebp - 0x26c], eax
mov eax, dword [ebp - 0x26c]
add eax, 1
test eax, eax
jle 0x1003d282
mov dword [ebp - 0x7c], 1
jmp 0x1003d289
mov dword [ebp - 0x7c], 0
mov cl, byte [ebp - 0x7c]
mov byte [ebp - 0x27], cl
mov edx, dword [ebp - 8]
and edx, 0x100
je 0x1003d2bb
and dword [ebp - 8], 0xfffffeff
mov eax, dword [ebp - 0x270]
sub eax, 0x10
mov dword [ebp - 0x274], eax
mov ecx, dword [ebp - 0x274]
call fcn.10003260
mov ecx, dword [ebp - 8]
and ecx, 0x80
je 0x1003d2e7
and dword [ebp - 8], 0xffffff7f
mov edx, dword [ebp - 0x278]
sub edx, 0x10
mov dword [ebp - 0x27c], edx
mov ecx, dword [ebp - 0x27c]
call fcn.10003260
mov eax, dword [ebp - 8]
and eax, 0x40
je 0x1003d30d
and dword [ebp - 8], 0xffffffbf
mov ecx, dword [ebp - 0x280]
sub ecx, 0x10
mov dword [ebp - 0x284], ecx
mov ecx, dword [ebp - 0x284]
call fcn.10003260
mov edx, dword [ebp - 8]
and edx, 0x20
je 0x1003d333
and dword [ebp - 8], 0xffffffdf
mov eax, dword [ebp - 0x288]
sub eax, 0x10
mov dword [ebp - 0x28c], eax
mov ecx, dword [ebp - 0x28c]
call fcn.10003260
movzx ecx, byte [ebp - 0x27]
test ecx, ecx
je 0x1003d3af
push ecx
mov dword [ebp - 0x298], esp
mov edx, dword [ebp + 8]
sub edx, 0x10
mov dword [ebp - 0x290], edx
mov eax, dword [ebp - 0x290]
push eax
call fcn.100306c0
add esp, 4
mov dword [ebp - 0x294], eax
mov ecx, dword [ebp - 0x294]
add ecx, 0x10
mov edx, dword [ebp - 0x298]
mov dword [edx], ecx
mov ecx, dword [ebp - 4]
call fcn.10033510
mov eax, dword [ebp - 0xc]
sub eax, 0x10
mov dword [ebp - 0x29c], eax
mov ecx, dword [ebp - 0x29c]
call fcn.10003260
mov ecx, dword [ebp + 8]
sub ecx, 0x10
mov dword [ebp - 0x2a0], ecx
mov ecx, dword [ebp - 0x2a0]
call fcn.10003260
jmp 0x10040145
push 1
push ecx
mov edx, esp
push 1
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x2a4]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov dword [ebp - 0x564], eax
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp - 4]
add eax, 0x34
push eax
mov ecx, dword [ebp - 4]
call fcn.10031d90
mov ecx, dword [ebp - 0x2a4]
sub ecx, 0x10
mov dword [ebp - 0x2a8], ecx
mov ecx, dword [ebp - 0x2a8]
call fcn.10003260
push 1
push ecx
mov dword [ebp - 0x2b4], esp
push ecx
mov dword [ebp - 0x2b0], esp
push 1
lea edx, [ebp - 0x2c8]
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x2d0]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.10048bf0
mov dword [ebp - 0x2ac], eax
mov edx, dword [ebp - 0x2ac]
push edx
lea eax, [ebp + 8]
push eax
push 1
mov ecx, dword [ebp - 0x14]
sub ecx, 1
push ecx
lea edx, [ebp - 0x2c0]
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
lea eax, [ebp - 0x2b8]
push eax
call fcn.1002edd0
add esp, 0xc
push eax
mov ecx, dword [ebp - 0x2b0]
push ecx
call fcn.1002edd0
add esp, 0xc
mov dword [ebp - 0x568], eax
mov edx, dword [ebp - 0x2b4]
push edx
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov dword [ebp - 0x56c], eax
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
push ecx
mov ecx, dword [ebp - 4]
call fcn.10031d90
mov edx, dword [ebp - 0x2b8]
sub edx, 0x10
mov dword [ebp - 0x2bc], edx
mov ecx, dword [ebp - 0x2bc]
call fcn.10003260
mov eax, dword [ebp - 0x2c0]
sub eax, 0x10
mov dword [ebp - 0x2c4], eax
mov ecx, dword [ebp - 0x2c4]
call fcn.10003260
mov ecx, dword [ebp - 0x2c8]
sub ecx, 0x10
mov dword [ebp - 0x2cc], ecx
mov ecx, dword [ebp - 0x2cc]
call fcn.10003260
mov edx, dword [ebp - 0x2d0]
sub edx, 0x10
mov dword [ebp - 0x2d4], edx
mov ecx, dword [ebp - 0x2d4]
call fcn.10003260
mov eax, dword [ebp - 0x14]
sub eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x10]
add edx, 1
push edx
mov eax, dword [ebp - 0x10]
sub eax, 1
push eax
lea ecx, [ebp - 0x2e0]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
mov dword [ebp - 0x2d8], eax
mov edx, dword [ebp - 4]
add edx, 0x2c
mov dword [ebp - 0x2dc], edx
mov eax, dword [ebp - 0x2d8]
push eax
mov ecx, dword [ebp - 0x2dc]
call fcn.10030240
mov ecx, dword [ebp - 0x2e0]
sub ecx, 0x10
mov dword [ebp - 0x2e4], ecx
mov ecx, dword [ebp - 0x2e4]
call fcn.10003260
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002fbd0
mov edx, dword [ebp - 4]
mov dword [edx + 0x30], eax
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx ecx, al
cmp ecx, 1
jne 0x1003d5e5
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
jmp 0x1003d610
push ecx
mov ecx, esp
lea eax, [ebp + 8]
push eax
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
jmp 0x1003e822
push 0x10067fc4
push 1
lea ecx, [ebp - 0x2ec]
push ecx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
push eax
lea edx, [ebp - 0x2e8]
push edx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x28], al
lea ecx, [ebp - 0x2e8]
call fcn.1002f760
lea ecx, [ebp - 0x2ec]
call fcn.1002f760
movzx eax, byte [ebp - 0x28]
test eax, eax
je 0x1003e0c8
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ecx]
jge 0x1003d862
push 0
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002fc50
movzx ecx, ax
push ecx
push str.c_m_n_p_t_u
lea ecx, [ebp - 0x2f0]
call fcn.1002fa40
mov ecx, eax
call fcn.10048d30
add eax, 1
test eax, eax
jg 0x1003d6b3
mov dword [ebp - 0x80], 1
jmp 0x1003d6ba
mov dword [ebp - 0x80], 0
mov dl, byte [ebp - 0x80]
mov byte [ebp - 0x29], dl
lea ecx, [ebp - 0x2f0]
call fcn.1002f760
movzx eax, byte [ebp - 0x29]
test eax, eax
je 0x1003d6fc
push ecx
mov ecx, esp
lea edx, [ebp + 8]
push edx
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
or dword [ebp - 8], 0x200
push 0
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002fc50
movzx ecx, ax
push ecx
push 0x10067fd4
lea ecx, [ebp - 0x300]
call fcn.1002fa40
mov ecx, eax
call fcn.10048d30
add eax, 1
test eax, eax
jle 0x1003d7ac
or dword [ebp - 8], 0x400
or dword [ebp - 8], 0x800
or dword [ebp - 8], 0x1000
push 0
push 1
lea edx, [ebp - 0x2f8]
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x2fc]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.10048bf0
mov ecx, eax
call fcn.1002fc40
push eax
push 0x10067fdc
lea ecx, [ebp - 0x2f4]
call fcn.1002fa40
mov ecx, eax
call fcn.1002f110
add eax, 1
test eax, eax
jle 0x1003d7ac
mov dword [ebp - 0x84], 1
jmp 0x1003d7b6
mov dword [ebp - 0x84], 0
mov dl, byte [ebp - 0x84]
mov byte [ebp - 0x2a], dl
mov eax, dword [ebp - 8]
and eax, 0x1000
je 0x1003d7db
and dword [ebp - 8], 0xffffefff
lea ecx, [ebp - 0x2f4]
call fcn.1002f760
mov ecx, dword [ebp - 8]
and ecx, 0x800
je 0x1003d7f8
and dword [ebp - 8], 0xfffff7ff
lea ecx, [ebp - 0x2f8]
call fcn.1002f760
mov edx, dword [ebp - 8]
and edx, 0x400
je 0x1003d815
and dword [ebp - 8], 0xfffffbff
lea ecx, [ebp - 0x2fc]
call fcn.1002f760
mov eax, dword [ebp - 8]
and eax, 0x200
je 0x1003d831
and dword [ebp - 8], 0xfffffdff
lea ecx, [ebp - 0x300]
call fcn.1002f760
movzx ecx, byte [ebp - 0x2a]
test ecx, ecx
je 0x1003d862
push ecx
mov ecx, esp
lea edx, [ebp + 8]
push edx
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
or dword [ebp - 8], 0x2000
or dword [ebp - 8], 0x4000
or dword [ebp - 8], 0x8000
push 0x10067fe4
push 1
lea eax, [ebp - 0x314]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x318]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea eax, [ebp - 0x310]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
movzx ecx, al
test ecx, ecx
jne 0x1003d93c
or dword [ebp - 8], 0x10000
or dword [ebp - 8], 0x20000
or dword [ebp - 8], 0x40000
push 0x10067fe8
push 1
lea edx, [ebp - 0x308]
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x30c]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea edx, [ebp - 0x304]
push edx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
movzx eax, al
test eax, eax
jne 0x1003d93c
mov dword [ebp - 0x88], 0
jmp 0x1003d946
mov dword [ebp - 0x88], 1
mov cl, byte [ebp - 0x88]
mov byte [ebp - 0x2b], cl
mov edx, dword [ebp - 8]
and edx, 0x40000
je 0x1003d96c
and dword [ebp - 8], 0xfffbffff
lea ecx, [ebp - 0x304]
call fcn.1002f760
mov eax, dword [ebp - 8]
and eax, 0x20000
je 0x1003d988
and dword [ebp - 8], 0xfffdffff
lea ecx, [ebp - 0x308]
call fcn.1002f760
mov ecx, dword [ebp - 8]
and ecx, 0x10000
je 0x1003d9a5
and dword [ebp - 8], 0xfffeffff
lea ecx, [ebp - 0x30c]
call fcn.1002f760
mov edx, dword [ebp - 8]
and edx, 0x8000
je 0x1003d9c2
and dword [ebp - 8], 0xffff7fff
lea ecx, [ebp - 0x310]
call fcn.1002f760
mov eax, dword [ebp - 8]
and eax, 0x4000
je 0x1003d9de
and dword [ebp - 8], 0xffffbfff
lea ecx, [ebp - 0x314]
call fcn.1002f760
mov ecx, dword [ebp - 8]
and ecx, 0x2000
je 0x1003d9fb
and dword [ebp - 8], 0xffffdfff
lea ecx, [ebp - 0x318]
call fcn.1002f760
movzx edx, byte [ebp - 0x2b]
test edx, edx
je 0x1003dbc0
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx ecx, al
cmp ecx, 3
jne 0x1003db97
push 1
push ecx
mov edx, esp
push 1
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x31c]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp - 4]
add eax, 0x34
push eax
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x31c]
call fcn.1002f760
push 1
push 1
lea ecx, [ebp - 0x328]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea eax, [ebp - 0x32c]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.10048bf0
push ecx
mov esi, esp
push ecx
mov edi, esp
push eax
lea ecx, [ebp + 8]
push ecx
push 1
mov edx, dword [ebp - 0x14]
sub edx, 1
push edx
lea eax, [ebp - 0x324]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
lea ecx, [ebp - 0x320]
push ecx
call fcn.1002edd0
add esp, 0xc
push eax
push edi
call fcn.1002edd0
add esp, 0xc
push esi
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 4]
add eax, 0x34
push eax
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x320]
call fcn.1002f760
lea ecx, [ebp - 0x324]
call fcn.1002f760
lea ecx, [ebp - 0x328]
call fcn.1002f760
lea ecx, [ebp - 0x32c]
call fcn.1002f760
mov ecx, dword [ebp - 0x14]
sub ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx]
sub eax, dword [ebp - 0x10]
add eax, 1
push eax
mov ecx, dword [ebp - 0x10]
sub ecx, 1
push ecx
lea edx, [ebp - 0x330]
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002f740
lea ecx, [ebp - 0x330]
call fcn.1002f760
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002fbd0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x30], eax
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx eax, al
cmp eax, 1
jne 0x1003dbbb
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], ecx
jmp 0x1003e0c3
push 0x10067fec
push 1
lea edx, [ebp - 0x338]
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x33c]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea edx, [ebp - 0x334]
push edx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x2c], al
lea ecx, [ebp - 0x334]
call fcn.1002f760
lea ecx, [ebp - 0x338]
call fcn.1002f760
lea ecx, [ebp - 0x33c]
call fcn.1002f760
movzx eax, byte [ebp - 0x2c]
test eax, eax
je 0x1003e09a
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx edx, al
cmp edx, 4
jne 0x1003dc87
push ecx
mov ecx, esp
lea eax, [ebp + 8]
push eax
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx edx, al
cmp edx, 3
jne 0x1003df69
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [eax]
jge 0x1003de1e
or dword [ebp - 8], 0x80000
push 0
mov edx, dword [ebp - 0x14]
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002fc50
movzx eax, ax
push eax
push 0x10067ff0
lea ecx, [ebp - 0x34c]
call fcn.1002fa40
mov ecx, eax
call fcn.10048d30
add eax, 1
test eax, eax
jle 0x1003dd67
or dword [ebp - 8], 0x100000
or dword [ebp - 8], 0x200000
or dword [ebp - 8], 0x400000
push 0
push 1
lea ecx, [ebp - 0x344]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea eax, [ebp - 0x348]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.10048bf0
mov ecx, eax
call fcn.1002fc40
push eax
push 0x10067ff8
lea ecx, [ebp - 0x340]
call fcn.1002fa40
mov ecx, eax
call fcn.1002f110
add eax, 1
test eax, eax
jle 0x1003dd67
mov dword [ebp - 0x8c], 1
jmp 0x1003dd71
mov dword [ebp - 0x8c], 0
mov cl, byte [ebp - 0x8c]
mov byte [ebp - 0x2d], cl
mov edx, dword [ebp - 8]
and edx, 0x400000
je 0x1003dd97
and dword [ebp - 8], 0xffbfffff
lea ecx, [ebp - 0x340]
call fcn.1002f760
mov eax, dword [ebp - 8]
and eax, 0x200000
je 0x1003ddb3
and dword [ebp - 8], 0xffdfffff
lea ecx, [ebp - 0x344]
call fcn.1002f760
mov ecx, dword [ebp - 8]
and ecx, 0x100000
je 0x1003ddd0
and dword [ebp - 8], 0xffefffff
lea ecx, [ebp - 0x348]
call fcn.1002f760
mov edx, dword [ebp - 8]
and edx, 0x80000
je 0x1003dded
and dword [ebp - 8], 0xfff7ffff
lea ecx, [ebp - 0x34c]
call fcn.1002f760
movzx eax, byte [ebp - 0x2d]
test eax, eax
je 0x1003de1e
push ecx
mov ecx, esp
lea edx, [ebp + 8]
push edx
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
push 1
push ecx
mov eax, esp
push 1
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x350]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
push ecx
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x350]
call fcn.1002f760
push 1
push 1
lea edx, [ebp - 0x358]
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x35c]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.10048bf0
push ecx
mov esi, esp
push ecx
mov edi, esp
push eax
lea edx, [ebp + 8]
push edx
mov eax, dword [ebp - 0x14]
sub eax, 1
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002fc50
movzx ecx, ax
push ecx
lea edx, [ebp - 0x354]
push edx
call fcn.1002ec70
add esp, 0xc
push eax
push edi
call fcn.1002edd0
add esp, 0xc
push esi
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
push ecx
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x354]
call fcn.1002f760
lea ecx, [ebp - 0x358]
call fcn.1002f760
lea ecx, [ebp - 0x35c]
call fcn.1002f760
mov edx, dword [ebp - 0x14]
sub edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x10]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x10]
sub edx, 1
push edx
lea eax, [ebp - 0x360]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002f740
lea ecx, [ebp - 0x360]
call fcn.1002f760
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002fbd0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x30], eax
jmp 0x1003e098
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx eax, al
cmp eax, 2
jne 0x1003e074
push 1
push ecx
mov ecx, esp
push 1
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea eax, [ebp - 0x364]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov ecx, dword [ebp - 0x1c]
push ecx
mov edx, dword [ebp - 4]
add edx, 0x34
push edx
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x364]
call fcn.1002f760
push 1
push ecx
mov esi, esp
push ecx
mov edi, esp
lea eax, [ebp + 8]
push eax
mov ecx, dword [ebp - 0x14]
sub ecx, 1
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002fc50
movzx edx, ax
push edx
push edi
call fcn.1002ec70
add esp, 0xc
push esi
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
push ecx
mov ecx, dword [ebp - 4]
call fcn.10031d90
mov edx, dword [ebp - 0x14]
sub edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x10]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x10]
sub edx, 1
push edx
lea eax, [ebp - 0x368]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002f740
lea ecx, [ebp - 0x368]
call fcn.1002f760
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002fbd0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x30], eax
jmp 0x1003e098
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx eax, al
cmp eax, 1
jne 0x1003e098
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], ecx
jmp 0x1003e0c3
push ecx
mov ecx, esp
lea edx, [ebp + 8]
push edx
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
jmp 0x1003e822
push 0x10068000
push 1
lea eax, [ebp - 0x370]
push eax
lea ecx, [ebp - 0xc]
call fcn.10048bf0
push eax
lea ecx, [ebp - 0x36c]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x2e], al
lea ecx, [ebp - 0x36c]
call fcn.1002f760
lea ecx, [ebp - 0x370]
call fcn.1002f760
movzx edx, byte [ebp - 0x2e]
test edx, edx
je 0x1003e822
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [eax]
jge 0x1003e31f
push 0
mov edx, dword [ebp - 0x14]
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002fc50
movzx eax, ax
push eax
push str.c_m_n_p_t_i
lea ecx, [ebp - 0x374]
call fcn.1002fa40
mov ecx, eax
call fcn.10048d30
add eax, 1
test eax, eax
jg 0x1003e169
mov dword [ebp - 0x90], 1
jmp 0x1003e173
mov dword [ebp - 0x90], 0
mov cl, byte [ebp - 0x90]
mov byte [ebp - 0x2f], cl
lea ecx, [ebp - 0x374]
call fcn.1002f760
movzx edx, byte [ebp - 0x2f]
test edx, edx
je 0x1003e1b8
push ecx
mov ecx, esp
lea eax, [ebp + 8]
push eax
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
or dword [ebp - 8], 0x800000
push 0
mov ecx, dword [ebp - 0x14]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002fc50
movzx edx, ax
push edx
push 0x10068010
lea ecx, [ebp - 0x384]
call fcn.1002fa40
mov ecx, eax
call fcn.10048d30
add eax, 1
test eax, eax
jle 0x1003e268
or dword [ebp - 8], 0x1000000
or dword [ebp - 8], 0x2000000
or dword [ebp - 8], 0x4000000
push 0
push 1
lea eax, [ebp - 0x37c]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x380]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.10048bf0
mov ecx, eax
call fcn.1002fc40
push eax
push 0x10068018
lea ecx, [ebp - 0x378]
call fcn.1002fa40
mov ecx, eax
call fcn.1002f110
add eax, 1
test eax, eax
jle 0x1003e268
mov dword [ebp - 0x94], 1
jmp 0x1003e272
mov dword [ebp - 0x94], 0
mov al, byte [ebp - 0x94]
mov byte [ebp - 0x30], al
mov ecx, dword [ebp - 8]
and ecx, 0x4000000
je 0x1003e298
and dword [ebp - 8], 0xfbffffff
lea ecx, [ebp - 0x378]
call fcn.1002f760
mov edx, dword [ebp - 8]
and edx, 0x2000000
je 0x1003e2b5
and dword [ebp - 8], 0xfdffffff
lea ecx, [ebp - 0x37c]
call fcn.1002f760
mov eax, dword [ebp - 8]
and eax, 0x1000000
je 0x1003e2d1
and dword [ebp - 8], 0xfeffffff
lea ecx, [ebp - 0x380]
call fcn.1002f760
mov ecx, dword [ebp - 8]
and ecx, 0x800000
je 0x1003e2ee
and dword [ebp - 8], 0xff7fffff
lea ecx, [ebp - 0x384]
call fcn.1002f760
movzx edx, byte [ebp - 0x30]
test edx, edx
je 0x1003e31f
push ecx
mov ecx, esp
lea eax, [ebp + 8]
push eax
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
push 0x10068020
push 1
lea ecx, [ebp - 0x38c]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea eax, [ebp - 0x390]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x388]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x31], al
lea ecx, [ebp - 0x388]
call fcn.1002f760
lea ecx, [ebp - 0x38c]
call fcn.1002f760
lea ecx, [ebp - 0x390]
call fcn.1002f760
movzx edx, byte [ebp - 0x31]
test edx, edx
je 0x1003e7f9
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx ecx, al
cmp ecx, 4
jne 0x1003e3e6
push ecx
mov ecx, esp
lea edx, [ebp + 8]
push edx
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx ecx, al
cmp ecx, 3
jne 0x1003e6c8
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
cmp eax, dword [edx]
jge 0x1003e57d
or dword [ebp - 8], 0x8000000
push 0
mov ecx, dword [ebp - 0x14]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002fc50
movzx edx, ax
push edx
push str.c_p_t
lea ecx, [ebp - 0x3a0]
call fcn.1002fa40
mov ecx, eax
call fcn.10048d30
add eax, 1
test eax, eax
jle 0x1003e4c6
or dword [ebp - 8], 0x10000000
or dword [ebp - 8], 0x20000000
or dword [ebp - 8], 0x40000000
push 0
push 1
lea eax, [ebp - 0x398]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x39c]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.10048bf0
mov ecx, eax
call fcn.1002fc40
push eax
push str.2_3_4
lea ecx, [ebp - 0x394]
call fcn.1002fa40
mov ecx, eax
call fcn.1002f110
add eax, 1
test eax, eax
jle 0x1003e4c6
mov dword [ebp - 0x98], 1
jmp 0x1003e4d0
mov dword [ebp - 0x98], 0
mov al, byte [ebp - 0x98]
mov byte [ebp - 0x32], al
mov ecx, dword [ebp - 8]
and ecx, 0x40000000
je 0x1003e4f6
and dword [ebp - 8], 0xbfffffff
lea ecx, [ebp - 0x394]
call fcn.1002f760
mov edx, dword [ebp - 8]
and edx, 0x20000000
je 0x1003e513
and dword [ebp - 8], 0xdfffffff
lea ecx, [ebp - 0x398]
call fcn.1002f760
mov eax, dword [ebp - 8]
and eax, 0x10000000
je 0x1003e52f
and dword [ebp - 8], 0xefffffff
lea ecx, [ebp - 0x39c]
call fcn.1002f760
mov ecx, dword [ebp - 8]
and ecx, 0x8000000
je 0x1003e54c
and dword [ebp - 8], 0xf7ffffff
lea ecx, [ebp - 0x3a0]
call fcn.1002f760
movzx edx, byte [ebp - 0x32]
test edx, edx
je 0x1003e57d
push ecx
mov ecx, esp
lea eax, [ebp + 8]
push eax
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
push 1
push ecx
mov ecx, esp
push 1
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea eax, [ebp - 0x3a4]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov ecx, dword [ebp - 0x1c]
push ecx
mov edx, dword [ebp - 4]
add edx, 0x34
push edx
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x3a4]
call fcn.1002f760
push 1
push 1
lea eax, [ebp - 0x3ac]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x3b0]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.10048bf0
push ecx
mov esi, esp
push ecx
mov edi, esp
push eax
lea eax, [ebp + 8]
push eax
mov ecx, dword [ebp - 0x14]
sub ecx, 1
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002fc50
movzx edx, ax
push edx
lea eax, [ebp - 0x3a8]
push eax
call fcn.1002ec70
add esp, 0xc
push eax
push edi
call fcn.1002edd0
add esp, 0xc
push esi
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 4]
add edx, 0x34
push edx
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x3a8]
call fcn.1002f760
lea ecx, [ebp - 0x3ac]
call fcn.1002f760
lea ecx, [ebp - 0x3b0]
call fcn.1002f760
mov eax, dword [ebp - 0x14]
sub eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x10]
add edx, 1
push edx
mov eax, dword [ebp - 0x10]
sub eax, 1
push eax
lea ecx, [ebp - 0x3b4]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002f740
lea ecx, [ebp - 0x3b4]
call fcn.1002f760
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002fbd0
mov edx, dword [ebp - 4]
mov dword [edx + 0x30], eax
jmp 0x1003e7f7
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx ecx, al
cmp ecx, 2
jne 0x1003e7d3
push 1
push ecx
mov edx, esp
push 1
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x3b8]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp - 4]
add eax, 0x34
push eax
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x3b8]
call fcn.1002f760
push 1
push ecx
mov esi, esp
push ecx
mov edi, esp
lea ecx, [ebp + 8]
push ecx
mov edx, dword [ebp - 0x14]
sub edx, 1
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002fc50
movzx eax, ax
push eax
push edi
call fcn.1002ec70
add esp, 0xc
push esi
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 4]
add edx, 0x34
push edx
mov ecx, dword [ebp - 4]
call fcn.10031d90
mov eax, dword [ebp - 0x14]
sub eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x10]
add edx, 1
push edx
mov eax, dword [ebp - 0x10]
sub eax, 1
push eax
lea ecx, [ebp - 0x3bc]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002f740
lea ecx, [ebp - 0x3bc]
call fcn.1002f760
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002fbd0
mov edx, dword [ebp - 4]
mov dword [edx + 0x30], eax
jmp 0x1003e7f7
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx ecx, al
cmp ecx, 1
jne 0x1003e7f7
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
jmp 0x1003e822
push ecx
mov ecx, esp
lea eax, [ebp + 8]
push eax
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
jmp 0x1003f45a
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx edx, al
cmp edx, 2
jne 0x1003ec01
push str.OUAEAUEOAEUIOUEYU
push 1
lea eax, [ebp - 0x3c4]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea edx, [ebp - 0x3c8]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea eax, [ebp - 0x3c0]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x33], al
lea ecx, [ebp - 0x3c0]
call fcn.1002f760
lea ecx, [ebp - 0x3c4]
call fcn.1002f760
lea ecx, [ebp - 0x3c8]
call fcn.1002f760
movzx ecx, byte [ebp - 0x33]
test ecx, ecx
je 0x1003eb00
push 0x10068038
push 1
lea edx, [ebp - 0x3d0]
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x3d4]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea edx, [ebp - 0x3cc]
push edx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x34], al
lea ecx, [ebp - 0x3cc]
call fcn.1002f760
lea ecx, [ebp - 0x3d0]
call fcn.1002f760
lea ecx, [ebp - 0x3d4]
call fcn.1002f760
movzx eax, byte [ebp - 0x34]
test eax, eax
je 0x1003ead2
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx edx, al
cmp edx, 1
jne 0x1003e968
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
jmp 0x1003ead0
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx edx, al
cmp edx, 2
jne 0x1003eaca
push 1
push ecx
mov eax, esp
push 1
push eax
push ecx
mov ecx, esp
push 1
mov edx, dword [ebp - 0x1c]
sub edx, 1
push edx
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
lea eax, [ebp - 0x3d8]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov ecx, dword [ebp - 0x1c]
push ecx
mov edx, dword [ebp - 4]
add edx, 0x34
push edx
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x3d8]
call fcn.1002f760
push 1
push ecx
mov esi, esp
push ecx
mov edi, esp
lea eax, [ebp + 8]
push eax
push 1
lea ecx, [ebp - 0x3dc]
push ecx
push ecx
mov edx, esp
push 1
mov eax, dword [ebp - 0x14]
sub eax, 1
push eax
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
lea ecx, [ebp - 0x3e0]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
push edi
call fcn.1002edd0
add esp, 0xc
push esi
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 4]
add eax, 0x34
push eax
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x3dc]
call fcn.1002f760
lea ecx, [ebp - 0x3e0]
call fcn.1002f760
mov ecx, dword [ebp - 0x14]
sub ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx]
sub eax, dword [ebp - 0x10]
add eax, 1
push eax
mov ecx, dword [ebp - 0x10]
sub ecx, 1
push ecx
lea edx, [ebp - 0x3e4]
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002f740
lea ecx, [ebp - 0x3e4]
call fcn.1002f760
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002fbd0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x30], eax
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
jmp 0x1003eafb
push ecx
mov ecx, esp
lea eax, [ebp + 8]
push eax
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
jmp 0x1003ebfc
push 0x1006803c
push 1
lea ecx, [ebp - 0x3ec]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea eax, [ebp - 0x3f0]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x3e8]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x35], al
lea ecx, [ebp - 0x3e8]
call fcn.1002f760
lea ecx, [ebp - 0x3ec]
call fcn.1002f760
lea ecx, [ebp - 0x3f0]
call fcn.1002f760
movzx edx, byte [ebp - 0x35]
test edx, edx
je 0x1003eb7f
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
jmp 0x1003ebfc
push 0x10068040
push 1
lea ecx, [ebp - 0x3f8]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea eax, [ebp - 0x3fc]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x3f4]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x36], al
lea ecx, [ebp - 0x3f4]
call fcn.1002f760
lea ecx, [ebp - 0x3f8]
call fcn.1002f760
lea ecx, [ebp - 0x3fc]
call fcn.1002f760
movzx edx, byte [ebp - 0x36]
test edx, edx
je 0x1003ebfc
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
jmp 0x1003f45a
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx edx, al
cmp edx, 3
jne 0x1003ee11
push 0x10068044
push 1
lea eax, [ebp - 0x404]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea edx, [ebp - 0x408]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea eax, [ebp - 0x400]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x3e], al
lea ecx, [ebp - 0x400]
call fcn.1002f760
lea ecx, [ebp - 0x404]
call fcn.1002f760
lea ecx, [ebp - 0x408]
call fcn.1002f760
movzx ecx, byte [ebp - 0x3e]
test ecx, ecx
je 0x1003ed24
push 0x10068048
push 1
lea edx, [ebp - 0x410]
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
push eax
lea eax, [ebp - 0x40c]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048a20
add esp, 8
mov byte [ebp - 0x37], al
lea ecx, [ebp - 0x40c]
call fcn.1002f760
lea ecx, [ebp - 0x410]
call fcn.1002f760
movzx ecx, byte [ebp - 0x37]
test ecx, ecx
je 0x1003ed19
push ecx
mov ecx, esp
lea edx, [ebp + 8]
push edx
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
jmp 0x1003ee0c
push 0x1006804c
push 1
lea ecx, [ebp - 0x418]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea eax, [ebp - 0x41c]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x414]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x38], al
lea ecx, [ebp - 0x414]
call fcn.1002f760
lea ecx, [ebp - 0x418]
call fcn.1002f760
lea ecx, [ebp - 0x41c]
call fcn.1002f760
movzx edx, byte [ebp - 0x38]
test edx, edx
je 0x1003ed9d
jmp 0x1003ee0c
push 0x10068050
push 1
lea eax, [ebp - 0x424]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea edx, [ebp - 0x428]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea eax, [ebp - 0x420]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x39], al
lea ecx, [ebp - 0x420]
call fcn.1002f760
lea ecx, [ebp - 0x424]
call fcn.1002f760
lea ecx, [ebp - 0x428]
call fcn.1002f760
jmp 0x1003f45a
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx eax, al
cmp eax, 4
jne 0x1003f454
push 0x10068054
push 1
lea ecx, [ebp - 0x430]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea eax, [ebp - 0x434]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x42c]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x3a], al
lea ecx, [ebp - 0x42c]
call fcn.1002f760
lea ecx, [ebp - 0x430]
call fcn.1002f760
lea ecx, [ebp - 0x434]
call fcn.1002f760
movzx edx, byte [ebp - 0x3a]
test edx, edx
je 0x1003eed8
push ecx
mov ecx, esp
lea eax, [ebp + 8]
push eax
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
push 0x10068058
push 1
lea ecx, [ebp - 0x43c]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea eax, [ebp - 0x440]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x438]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x3b], al
lea ecx, [ebp - 0x438]
call fcn.1002f760
lea ecx, [ebp - 0x43c]
call fcn.1002f760
lea ecx, [ebp - 0x440]
call fcn.1002f760
movzx edx, byte [ebp - 0x3b]
test edx, edx
je 0x1003f082
push 0x1006805c
push 1
lea eax, [ebp - 0x448]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x44c]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea eax, [ebp - 0x444]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x3c], al
lea ecx, [ebp - 0x444]
call fcn.1002f760
lea ecx, [ebp - 0x448]
call fcn.1002f760
lea ecx, [ebp - 0x44c]
call fcn.1002f760
movzx ecx, byte [ebp - 0x3c]
test ecx, ecx
je 0x1003efd5
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
jmp 0x1003f07d
push 0x10068060
push 1
lea eax, [ebp - 0x454]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x458]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea eax, [ebp - 0x450]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x3d], al
lea ecx, [ebp - 0x450]
call fcn.1002f760
lea ecx, [ebp - 0x454]
call fcn.1002f760
lea ecx, [ebp - 0x458]
call fcn.1002f760
movzx ecx, byte [ebp - 0x3d]
test ecx, ecx
je 0x1003f054
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
jmp 0x1003f07d
push ecx
mov ecx, esp
lea eax, [ebp + 8]
push eax
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
jmp 0x1003f452
push 0x10068064
push 1
lea ecx, [ebp - 0x460]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea eax, [ebp - 0x464]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x45c]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x43], al
lea ecx, [ebp - 0x45c]
call fcn.1002f760
lea ecx, [ebp - 0x460]
call fcn.1002f760
lea ecx, [ebp - 0x464]
call fcn.1002f760
movzx edx, byte [ebp - 0x43]
test edx, edx
je 0x1003f452
push 0x10068068
push 1
lea eax, [ebp - 0x46c]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x470]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea eax, [ebp - 0x468]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x3f], al
lea ecx, [ebp - 0x468]
call fcn.1002f760
lea ecx, [ebp - 0x46c]
call fcn.1002f760
lea ecx, [ebp - 0x470]
call fcn.1002f760
movzx ecx, byte [ebp - 0x3f]
test ecx, ecx
je 0x1003f429
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx eax, al
cmp eax, 1
jne 0x1003f25e
push 1
push ecx
mov ecx, esp
push 1
push ecx
push ecx
mov edx, esp
push 1
mov eax, dword [ebp - 0x14]
sub eax, 1
push eax
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
lea ecx, [ebp - 0x474]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 4]
add eax, 0x34
push eax
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x474]
call fcn.1002f760
mov ecx, dword [ebp - 0x14]
sub ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx]
sub eax, dword [ebp - 0x10]
add eax, 1
push eax
mov ecx, dword [ebp - 0x10]
sub ecx, 1
push ecx
lea edx, [ebp - 0x478]
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002f740
lea ecx, [ebp - 0x478]
call fcn.1002f760
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002fbd0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x30], eax
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx eax, al
cmp eax, 2
jne 0x1003f427
push 1
push ecx
mov ecx, esp
push 1
push ecx
push ecx
mov edx, esp
push 1
mov eax, dword [ebp - 0x1c]
sub eax, 1
push eax
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
lea ecx, [ebp - 0x47c]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp - 4]
add eax, 0x34
push eax
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x47c]
call fcn.1002f760
push 1
push 1
lea ecx, [ebp - 0x48c]
push ecx
push ecx
mov edx, esp
push 1
mov eax, dword [ebp - 0x14]
sub eax, 1
push eax
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
lea ecx, [ebp - 0x490]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.10048bf0
push ecx
mov esi, esp
push ecx
mov edi, esp
push eax
lea edx, [ebp + 8]
push edx
push 1
lea eax, [ebp - 0x484]
push eax
push ecx
mov ecx, esp
push 1
mov edx, dword [ebp - 0x14]
sub edx, 1
push edx
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
lea eax, [ebp - 0x488]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x480]
push ecx
call fcn.1002edd0
add esp, 0xc
push eax
push edi
call fcn.1002edd0
add esp, 0xc
push esi
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 4]
add eax, 0x34
push eax
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x480]
call fcn.1002f760
lea ecx, [ebp - 0x484]
call fcn.1002f760
lea ecx, [ebp - 0x488]
call fcn.1002f760
lea ecx, [ebp - 0x48c]
call fcn.1002f760
lea ecx, [ebp - 0x490]
call fcn.1002f760
mov ecx, dword [ebp - 0x14]
sub ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx]
sub eax, dword [ebp - 0x10]
add eax, 1
push eax
mov ecx, dword [ebp - 0x10]
sub ecx, 1
push ecx
lea edx, [ebp - 0x494]
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002f740
lea ecx, [ebp - 0x494]
call fcn.1002f760
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002fbd0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x30], eax
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
jmp 0x1003f452
push ecx
mov ecx, esp
lea edx, [ebp + 8]
push edx
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
jmp 0x1003f45a
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
jmp 0x1003fa5b
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx edx, al
cmp edx, 1
jle 0x1003f485
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
jmp 0x1003f4df
push ecx
mov ecx, esp
push 1
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002efb0
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx edx, al
cmp edx, 1
jle 0x1003f4b0
mov eax, dword [ebp - 0x14]
sub eax, 1
mov dword [ebp - 0x10], eax
jmp 0x1003f4df
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx edx, al
cmp edx, 1
jle 0x1003f4d9
mov eax, dword [ebp - 0x14]
sub eax, 2
mov dword [ebp - 0x10], eax
jmp 0x1003f4df
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], ecx
or dword [ebp - 8], 0x80000000
or dword [ebp - 0x18], 1
or dword [ebp - 0x18], 2
push 0x1006806c
push 1
lea edx, [ebp - 0x4b4]
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea ecx, [ebp - 0x4b8]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea edx, [ebp - 0x4b0]
push edx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
movzx eax, al
test eax, eax
je 0x1003f611
or dword [ebp - 0x18], 4
or dword [ebp - 0x18], 8
or dword [ebp - 0x18], 0x10
push 0x10068070
push 1
lea ecx, [ebp - 0x4a8]
push ecx
push ecx
mov edx, esp
push 1
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002efb0
lea eax, [ebp - 0x4ac]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x4a4]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
movzx edx, al
test edx, edx
je 0x1003f611
or dword [ebp - 0x18], 0x20
or dword [ebp - 0x18], 0x40
or dword [ebp - 0x18], 0x80
push 0x10068074
push 1
lea eax, [ebp - 0x49c]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea edx, [ebp - 0x4a0]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea eax, [ebp - 0x498]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x1003f611
mov dword [ebp - 0x9c], 1
jmp 0x1003f61b
mov dword [ebp - 0x9c], 0
mov dl, byte [ebp - 0x9c]
mov byte [ebp - 0x40], dl
mov eax, dword [ebp - 0x18]
and eax, 0x80
je 0x1003f640
and dword [ebp - 0x18], 0xffffff7f
lea ecx, [ebp - 0x498]
call fcn.1002f760
mov ecx, dword [ebp - 0x18]
and ecx, 0x40
je 0x1003f657
and dword [ebp - 0x18], 0xffffffbf
lea ecx, [ebp - 0x49c]
call fcn.1002f760
mov edx, dword [ebp - 0x18]
and edx, 0x20
je 0x1003f66e
and dword [ebp - 0x18], 0xffffffdf
lea ecx, [ebp - 0x4a0]
call fcn.1002f760
mov eax, dword [ebp - 0x18]
and eax, 0x10
je 0x1003f685
and dword [ebp - 0x18], 0xffffffef
lea ecx, [ebp - 0x4a4]
call fcn.1002f760
mov ecx, dword [ebp - 0x18]
and ecx, 8
je 0x1003f69c
and dword [ebp - 0x18], 0xfffffff7
lea ecx, [ebp - 0x4a8]
call fcn.1002f760
mov edx, dword [ebp - 0x18]
and edx, 4
je 0x1003f6b3
and dword [ebp - 0x18], 0xfffffffb
lea ecx, [ebp - 0x4ac]
call fcn.1002f760
mov eax, dword [ebp - 0x18]
and eax, 2
je 0x1003f6ca
and dword [ebp - 0x18], 0xfffffffd
lea ecx, [ebp - 0x4b0]
call fcn.1002f760
mov ecx, dword [ebp - 0x18]
and ecx, 1
je 0x1003f6e1
and dword [ebp - 0x18], 0xfffffffe
lea ecx, [ebp - 0x4b4]
call fcn.1002f760
mov edx, dword [ebp - 8]
and edx, 0x80000000
je 0x1003f6fe
and dword [ebp - 8], 0x7fffffff
lea ecx, [ebp - 0x4b8]
call fcn.1002f760
movzx eax, byte [ebp - 0x40]
test eax, eax
je 0x1003f734
push ecx
mov ecx, esp
lea edx, [ebp + 8]
push edx
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx ecx, al
cmp ecx, 3
jne 0x1003f8c4
push 1
push ecx
mov edx, esp
push 1
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x4bc]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp - 4]
add eax, 0x34
push eax
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x4bc]
call fcn.1002f760
push 1
push 1
lea ecx, [ebp - 0x4c8]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea eax, [ebp - 0x4cc]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.10048bf0
push ecx
mov esi, esp
push ecx
mov edi, esp
push eax
lea ecx, [ebp + 8]
push ecx
push 1
mov edx, dword [ebp - 0x14]
sub edx, 1
push edx
lea eax, [ebp - 0x4c4]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
lea ecx, [ebp - 0x4c0]
push ecx
call fcn.1002edd0
add esp, 0xc
push eax
push edi
call fcn.1002edd0
add esp, 0xc
push esi
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 4]
add eax, 0x34
push eax
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x4c0]
call fcn.1002f760
lea ecx, [ebp - 0x4c4]
call fcn.1002f760
lea ecx, [ebp - 0x4c8]
call fcn.1002f760
lea ecx, [ebp - 0x4cc]
call fcn.1002f760
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx]
sub eax, dword [ebp - 0x10]
add eax, 1
push eax
mov ecx, dword [ebp - 0x10]
sub ecx, 1
push ecx
lea edx, [ebp - 0x4d0]
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002f740
lea ecx, [ebp - 0x4d0]
call fcn.1002f760
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002fbd0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x30], eax
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
push ecx
mov edx, esp
push 1
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002efb0
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx eax, al
cmp eax, 3
jne 0x1003fa5b
push 1
push ecx
mov ecx, esp
push 1
push ecx
push ecx
mov edx, esp
push 1
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002efb0
lea eax, [ebp - 0x4d4]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov ecx, dword [ebp - 0x14]
sub ecx, 1
push ecx
mov edx, dword [ebp - 4]
add edx, 0x34
push edx
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x4d4]
call fcn.1002f760
push 1
push 1
lea eax, [ebp - 0x4e0]
push eax
push ecx
mov ecx, esp
push 1
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002efb0
lea edx, [ebp - 0x4e4]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.10048bf0
push ecx
mov esi, esp
push ecx
mov edi, esp
push eax
lea eax, [ebp + 8]
push eax
push 1
mov ecx, dword [ebp - 0x14]
sub ecx, 1
push ecx
lea edx, [ebp - 0x4dc]
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
lea eax, [ebp - 0x4d8]
push eax
call fcn.1002edd0
add esp, 0xc
push eax
push edi
call fcn.1002edd0
add esp, 0xc
push esi
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 4]
add edx, 0x34
push edx
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x4d8]
call fcn.1002f760
lea ecx, [ebp - 0x4dc]
call fcn.1002f760
lea ecx, [ebp - 0x4e0]
call fcn.1002f760
lea ecx, [ebp - 0x4e4]
call fcn.1002f760
mov eax, dword [ebp - 0x14]
sub eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x10]
add edx, 1
push edx
mov eax, dword [ebp - 0x10]
sub eax, 1
push eax
lea ecx, [ebp - 0x4e8]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002f740
lea ecx, [ebp - 0x4e8]
call fcn.1002f760
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002fbd0
mov edx, dword [ebp - 4]
mov dword [edx + 0x30], eax
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x10]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x10]
sub edx, 1
push edx
lea eax, [ebp - 0x4ec]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002f740
lea ecx, [ebp - 0x4ec]
call fcn.1002f760
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002fbd0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x30], eax
lea ecx, [ebp - 0x24]
call fcn.1002fb50
push ecx
mov edx, esp
push 1
mov eax, dword [ebp - 0x10]
sub eax, 1
push eax
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
lea ecx, [ebp - 0x4f0]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
push eax
lea ecx, [ebp - 0x24]
call fcn.1002f740
lea ecx, [ebp - 0x4f0]
call fcn.1002f760
push ecx
mov edx, esp
push 1
mov eax, dword [ebp - 0x10]
sub eax, 1
push eax
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx ecx, al
cmp ecx, 1
jne 0x1003fbcd
push 1
push ecx
mov esi, esp
push ecx
mov edi, esp
lea edx, [ebp + 8]
push edx
push 1
mov eax, dword [ebp - 0x10]
sub eax, 1
push eax
lea ecx, [ebp - 0x4f4]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
push edi
call fcn.1002edd0
add esp, 0xc
push esi
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 4]
add eax, 0x34
push eax
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x4f4]
call fcn.1002f760
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x10]
add edx, 1
push edx
mov eax, dword [ebp - 0x10]
sub eax, 1
push eax
lea ecx, [ebp - 0x4f8]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002f740
lea ecx, [ebp - 0x4f8]
call fcn.1002f760
lea ecx, [ebp - 0x24]
call fcn.1002f760
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
push ecx
mov edx, esp
push 1
mov eax, dword [ebp - 0x10]
sub eax, 1
push eax
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx ecx, al
cmp ecx, 2
jne 0x1003fdba
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x504]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
push 1
lea ecx, [ebp - 0x500]
push ecx
lea ecx, [ebp - 0x24]
call fcn.10048bf0
push eax
lea edx, [ebp - 0x4fc]
push edx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.1002ec30
add esp, 8
mov byte [ebp - 0x41], al
lea ecx, [ebp - 0x4fc]
call fcn.1002f760
lea ecx, [ebp - 0x500]
call fcn.1002f760
lea ecx, [ebp - 0x504]
call fcn.1002f760
movzx eax, byte [ebp - 0x41]
test eax, eax
je 0x1003fd0e
push 1
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0x24]
call fcn.1002ef20
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 4]
add eax, 0x34
push eax
mov ecx, dword [ebp - 4]
call fcn.10031d90
push ecx
mov ecx, esp
lea edx, [ebp + 8]
push edx
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 4]
mov byte [eax + 0x1a], 1
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x10]
add edx, 1
push edx
mov eax, dword [ebp - 0x10]
sub eax, 1
push eax
lea ecx, [ebp - 0x508]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002f740
lea ecx, [ebp - 0x508]
call fcn.1002f760
lea ecx, [ebp - 0x24]
call fcn.1002f760
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
push 1
push ecx
mov esi, esp
push ecx
mov edi, esp
lea edx, [ebp + 8]
push edx
push 1
lea eax, [ebp - 0x50c]
push eax
lea ecx, [ebp - 0x24]
call fcn.1002ef20
push eax
push edi
call fcn.1002edd0
add esp, 0xc
push esi
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 4]
add edx, 0x34
push edx
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x50c]
call fcn.1002f760
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x10]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x10]
sub edx, 1
push edx
lea eax, [ebp - 0x510]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002f740
lea ecx, [ebp - 0x510]
call fcn.1002f760
lea ecx, [ebp - 0x24]
call fcn.1002f760
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
push ecx
mov ecx, esp
push 1
mov edx, dword [ebp - 0x10]
sub edx, 1
push edx
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx eax, al
cmp eax, 3
jne 0x1003feca
push 1
push 1
lea ecx, [ebp - 0x51c]
push ecx
lea ecx, [ebp - 0x24]
call fcn.10048bf0
push ecx
mov esi, esp
push ecx
mov edi, esp
push eax
lea edx, [ebp + 8]
push edx
push 1
lea eax, [ebp - 0x518]
push eax
lea ecx, [ebp - 0x24]
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x514]
push ecx
call fcn.1002edd0
add esp, 0xc
push eax
push edi
call fcn.1002edd0
add esp, 0xc
push esi
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 4]
add eax, 0x34
push eax
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x514]
call fcn.1002f760
lea ecx, [ebp - 0x518]
call fcn.1002f760
lea ecx, [ebp - 0x51c]
call fcn.1002f760
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x10]
add edx, 1
push edx
mov eax, dword [ebp - 0x10]
sub eax, 1
push eax
lea ecx, [ebp - 0x520]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002f740
lea ecx, [ebp - 0x520]
call fcn.1002f760
lea ecx, [ebp - 0x24]
call fcn.1002f760
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
push ecx
mov edx, esp
push 1
mov eax, dword [ebp - 0x10]
sub eax, 1
push eax
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx ecx, al
cmp ecx, 4
jne 0x1004012d
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x52c]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
push 1
push 1
lea ecx, [ebp - 0x528]
push ecx
lea ecx, [ebp - 0x24]
call fcn.1002efb0
push eax
lea edx, [ebp - 0x524]
push edx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.1002ec30
add esp, 8
mov byte [ebp - 0x42], al
lea ecx, [ebp - 0x524]
call fcn.1002f760
lea ecx, [ebp - 0x528]
call fcn.1002f760
lea ecx, [ebp - 0x52c]
call fcn.1002f760
movzx eax, byte [ebp - 0x42]
test eax, eax
je 0x10040051
push 1
push 1
lea ecx, [ebp - 0x534]
push ecx
lea ecx, [ebp - 0x24]
call fcn.10048bf0
push ecx
mov esi, esp
push ecx
mov edi, esp
push eax
push 1
lea edx, [ebp - 0x530]
push edx
lea ecx, [ebp - 0x24]
call fcn.1002ef20
push eax
push edi
call fcn.1002edd0
add esp, 0xc
push esi
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
push ecx
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x530]
call fcn.1002f760
lea ecx, [ebp - 0x534]
call fcn.1002f760
push ecx
mov ecx, esp
lea edx, [ebp + 8]
push edx
call fcn.1002fb10
mov ecx, dword [ebp - 4]
call fcn.10033510
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 4]
mov byte [eax + 0x1a], 1
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x10]
add edx, 1
push edx
mov eax, dword [ebp - 0x10]
sub eax, 1
push eax
lea ecx, [ebp - 0x538]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002f740
lea ecx, [ebp - 0x538]
call fcn.1002f760
lea ecx, [ebp - 0x24]
call fcn.1002f760
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
push 1
push 1
lea edx, [ebp - 0x544]
push edx
lea ecx, [ebp - 0x24]
call fcn.10048bf0
push ecx
mov esi, esp
push ecx
mov edi, esp
push eax
lea eax, [ebp + 8]
push eax
push 1
lea ecx, [ebp - 0x540]
push ecx
lea ecx, [ebp - 0x24]
call fcn.1002ef20
push eax
lea edx, [ebp - 0x53c]
push edx
call fcn.1002edd0
add esp, 0xc
push eax
push edi
call fcn.1002edd0
add esp, 0xc
push esi
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
push ecx
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x53c]
call fcn.1002f760
lea ecx, [ebp - 0x540]
call fcn.1002f760
lea ecx, [ebp - 0x544]
call fcn.1002f760
mov edx, dword [ebp - 4]
mov eax, dword [edx]
sub eax, dword [ebp - 0x10]
add eax, 1
push eax
mov ecx, dword [ebp - 0x10]
sub ecx, 1
push ecx
lea edx, [ebp - 0x548]
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
call fcn.1002f740
lea ecx, [ebp - 0x548]
call fcn.1002f760
lea ecx, [ebp - 0x24]
call fcn.1002f760
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
jmp 0x10040145
lea ecx, [ebp - 0x24]
call fcn.1002f760
lea ecx, [ebp - 0xc]
call fcn.1002f760
lea ecx, [ebp + 8]
call fcn.1002f760
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4