Function at 0x10038330
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58c
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 0x1003843d
push 1
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x1c]
sub edx, 1
push edx
lea eax, [ebp - 0xc0]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
lea ecx, [ebp - 0xb8]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
mov dword [ebp - 0xa4], eax
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0xb0]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx]
mov dword [ebp - 0xa8], edx
mov eax, dword [ebp - 0xa8]
push eax
mov ecx, dword [ebp - 0xac]
call fcn.1002f5e0
test eax, eax
je 0x100383d3
mov dword [ebp - 0x60], 1
jmp 0x100383da
mov dword [ebp - 0x60], 0
mov cl, byte [ebp - 0x60]
mov byte [ebp - 0x46], cl
mov edx, dword [ebp - 0xb0]
sub edx, 0x10
mov dword [ebp - 0xb4], edx
mov ecx, dword [ebp - 0xb4]
call fcn.10003260
mov eax, dword [ebp - 0xb8]
sub eax, 0x10
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0xbc]
call fcn.10003260
mov ecx, dword [ebp - 0xc0]
sub ecx, 0x10
mov dword [ebp - 0xc4], ecx
mov ecx, dword [ebp - 0xc4]
call fcn.10003260
movzx edx, byte [ebp - 0x46]
test edx, edx
je 0x1003843d
mov eax, dword [ebp - 4]
mov byte [eax + 0x1a], 0
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 0x1a]
cmp edx, 1
je 0x10038451
mov eax, dword [ebp - 4]
cmp dword [eax], 0
jg 0x100384ae
push ecx
mov dword [ebp - 0xd0], esp
mov ecx, dword [ebp + 8]
sub ecx, 0x10
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0xc8]
push edx
call fcn.100306c0
add esp, 4
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xcc]
add eax, 0x10
mov ecx, dword [ebp - 0xd0]
mov dword [ecx], eax
mov ecx, dword [ebp - 4]
call fcn.10033510
mov edx, dword [ebp + 8]
sub edx, 0x10
mov dword [ebp - 0xd4], edx
mov ecx, dword [ebp - 0xd4]
call fcn.10003260
jmp 0x1003c2c6
call fcn.10003470
push eax
lea ecx, [ebp - 0xc]
call fcn.100302f0
push ecx
mov dword [ebp - 0xe0], esp
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x34]
sub ecx, 0x10
mov dword [ebp - 0xd8], ecx
mov edx, dword [ebp - 0xd8]
push edx
call fcn.100306c0
add esp, 4
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xdc]
add eax, 0x10
mov ecx, dword [ebp - 0xe0]
mov dword [ecx], eax
mov ecx, dword [ebp - 4]
call fcn.10034d40
mov dword [ebp - 0xe4], eax
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [eax + 0x1c]
jge 0x10038523
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 0x1003856f
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 0x10038564
mov byte [ebp - 0x1d], 1
jmp 0x1003856f
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x1003852f
movzx edx, byte [ebp - 0x1d]
test edx, edx
jne 0x100385eb
push ecx
mov dword [ebp - 0xf0], esp
mov eax, dword [ebp + 8]
sub eax, 0x10
mov dword [ebp - 0xe8], eax
mov ecx, dword [ebp - 0xe8]
push ecx
call fcn.100306c0
add esp, 4
mov dword [ebp - 0xec], eax
mov edx, dword [ebp - 0xec]
add edx, 0x10
mov eax, dword [ebp - 0xf0]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
call fcn.10033510
mov ecx, dword [ebp - 0xc]
sub ecx, 0x10
mov dword [ebp - 0xf4], ecx
mov ecx, dword [ebp - 0xf4]
call fcn.10003260
mov edx, dword [ebp + 8]
sub edx, 0x10
mov dword [ebp - 0xf8], edx
mov ecx, dword [ebp - 0xf8]
call fcn.10003260
jmp 0x1003c2c6
mov byte [ebp - 0x1d], 0
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jl 0x10038731
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 0x124]
push edx
mov ecx, dword [ebp - 4]
call fcn.100475d0
mov dword [ebp - 0x100], eax
push 1
lea eax, [ebp - 0x114]
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 - 0x11c]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov dword [ebp - 0xfc], eax
mov ecx, dword [ebp - 0xfc]
push ecx
lea edx, [ebp - 0x10c]
push edx
mov ecx, dword [ebp - 4]
call fcn.100475d0
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x100]
mov ecx, dword [eax]
mov dword [ebp - 0x104], ecx
mov edx, dword [ebp - 0x104]
push edx
mov ecx, dword [ebp - 0x108]
call fcn.1002f5e0
test eax, eax
jne 0x1003869a
mov dword [ebp - 0x64], 1
jmp 0x100386a1
mov dword [ebp - 0x64], 0
mov al, byte [ebp - 0x64]
mov byte [ebp - 0x47], al
mov cl, byte [ebp - 0x47]
mov byte [ebp - 0x48], cl
mov edx, dword [ebp - 0x10c]
sub edx, 0x10
mov dword [ebp - 0x110], edx
mov ecx, dword [ebp - 0x110]
call fcn.10003260
mov eax, dword [ebp - 0x114]
sub eax, 0x10
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0x118]
call fcn.10003260
mov ecx, dword [ebp - 0x11c]
sub ecx, 0x10
mov dword [ebp - 0x120], ecx
mov ecx, dword [ebp - 0x120]
call fcn.10003260
mov edx, dword [ebp - 0x124]
sub edx, 0x10
mov dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x128]
call fcn.10003260
movzx eax, byte [ebp - 0x48]
test eax, eax
je 0x10038723
mov byte [ebp - 0x1d], 1
jmp 0x10038731
mov ecx, dword [ebp - 0x14]
sub ecx, 1
mov dword [ebp - 0x14], ecx
jmp 0x100385ef
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0x1c]
jge 0x1003873f
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
movzx ecx, byte [ebp - 0x1d]
test ecx, ecx
jne 0x100387bb
push ecx
mov dword [ebp - 0x134], esp
mov edx, dword [ebp + 8]
sub edx, 0x10
mov dword [ebp - 0x12c], edx
mov eax, dword [ebp - 0x12c]
push eax
call fcn.100306c0
add esp, 4
mov dword [ebp - 0x130], eax
mov ecx, dword [ebp - 0x130]
add ecx, 0x10
mov edx, dword [ebp - 0x134]
mov dword [edx], ecx
mov ecx, dword [ebp - 4]
call fcn.10033510
mov eax, dword [ebp - 0xc]
sub eax, 0x10
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x138]
call fcn.10003260
mov ecx, dword [ebp + 8]
sub ecx, 0x10
mov dword [ebp - 0x13c], ecx
mov ecx, dword [ebp - 0x13c]
call fcn.10003260
jmp 0x1003c2c6
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x1c]
jl 0x10038808
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x10]
cmp ecx, 3
jg 0x10038808
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 0x100387fd
jmp 0x10038808
mov edx, dword [ebp - 0x10]
sub edx, 1
mov dword [ebp - 0x10], edx
jmp 0x100387c1
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x1c]
jge 0x10038816
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 - 0x144]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
mov dword [ebp - 0x140], eax
mov edx, dword [ebp - 0x140]
push edx
lea ecx, [ebp - 0xc]
call fcn.10030240
mov eax, dword [ebp - 0x144]
sub eax, 0x10
mov dword [ebp - 0x148], eax
mov ecx, dword [ebp - 0x148]
call fcn.10003260
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x56c]
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x54], ecx
cmp dword [ebp - 0x54], 1
je 0x1003889f
cmp dword [ebp - 0x54], 2
je 0x10038ad1
cmp dword [ebp - 0x54], 3
je 0x1003b563
jmp 0x1003bbdc
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
cmp eax, dword [edx]
jge 0x10038ac6
or dword [ebp - 8], 1
mov ecx, dword [ebp - 4]
add ecx, 0x34
mov dword [ebp - 0x68], ecx
cmp dword [ebp - 0x14], 0
jl 0x100388d9
mov edx, dword [ebp - 0x68]
mov eax, dword [edx]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x14c], ecx
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0x14c]
jle 0x100388e3
push 0x80070057
call fcn.10002e80
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x14]
mov ax, word [ecx + edx*2]
mov word [ebp - 0x58], ax
push 0
movzx ecx, word [ebp - 0x58]
push ecx
push 0x10067ea0
lea ecx, [ebp - 0x174]
call fcn.1002fa40
mov ecx, eax
call fcn.10048d30
add eax, 1
test eax, eax
jle 0x100389a5
or dword [ebp - 8], 2
or dword [ebp - 8], 4
or dword [ebp - 8], 8
push 0
push 1
lea edx, [ebp - 0x164]
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x16c]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.10048bf0
mov dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x150]
mov eax, dword [edx]
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0x154]
push ecx
push 0x10067ea8
lea ecx, [ebp - 0x15c]
call fcn.1002fa40
mov ecx, eax
call fcn.1002f110
mov dword [ebp - 0x158], eax
mov edx, dword [ebp - 0x158]
add edx, 1
test edx, edx
jle 0x100389a5
mov dword [ebp - 0x6c], 1
jmp 0x100389ac
mov dword [ebp - 0x6c], 0
mov al, byte [ebp - 0x6c]
mov byte [ebp - 0x49], al
mov ecx, dword [ebp - 8]
and ecx, 8
je 0x100389d8
and dword [ebp - 8], 0xfffffff7
mov edx, dword [ebp - 0x15c]
sub edx, 0x10
mov dword [ebp - 0x160], edx
mov ecx, dword [ebp - 0x160]
call fcn.10003260
mov eax, dword [ebp - 8]
and eax, 4
je 0x100389fe
and dword [ebp - 8], 0xfffffffb
mov ecx, dword [ebp - 0x164]
sub ecx, 0x10
mov dword [ebp - 0x168], ecx
mov ecx, dword [ebp - 0x168]
call fcn.10003260
mov edx, dword [ebp - 8]
and edx, 2
je 0x10038a24
and dword [ebp - 8], 0xfffffffd
mov eax, dword [ebp - 0x16c]
sub eax, 0x10
mov dword [ebp - 0x170], eax
mov ecx, dword [ebp - 0x170]
call fcn.10003260
mov ecx, dword [ebp - 8]
and ecx, 1
je 0x10038a4a
and dword [ebp - 8], 0xfffffffe
mov edx, dword [ebp - 0x174]
sub edx, 0x10
mov dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x178]
call fcn.10003260
movzx eax, byte [ebp - 0x49]
test eax, eax
je 0x10038ac6
push ecx
mov dword [ebp - 0x184], esp
mov ecx, dword [ebp + 8]
sub ecx, 0x10
mov dword [ebp - 0x17c], ecx
mov edx, dword [ebp - 0x17c]
push edx
call fcn.100306c0
add esp, 4
mov dword [ebp - 0x180], eax
mov eax, dword [ebp - 0x180]
add eax, 0x10
mov ecx, dword [ebp - 0x184]
mov dword [ecx], eax
mov ecx, dword [ebp - 4]
call fcn.10033510
mov edx, dword [ebp - 0xc]
sub edx, 0x10
mov dword [ebp - 0x188], edx
mov ecx, dword [ebp - 0x188]
call fcn.10003260
mov eax, dword [ebp + 8]
sub eax, 0x10
mov dword [ebp - 0x18c], eax
mov ecx, dword [ebp - 0x18c]
call fcn.10003260
jmp 0x1003c2c6
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], ecx
jmp 0x1003bbdc
push 0x10067eb0
push 1
lea edx, [ebp - 0x19c]
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x1a4]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov dword [ebp - 0x190], eax
mov edx, dword [ebp - 0x190]
push edx
lea eax, [ebp - 0x194]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x4a], al
mov cl, byte [ebp - 0x4a]
mov byte [ebp - 0x4b], cl
mov edx, dword [ebp - 0x194]
sub edx, 0x10
mov dword [ebp - 0x198], edx
mov ecx, dword [ebp - 0x198]
call fcn.10003260
mov eax, dword [ebp - 0x19c]
sub eax, 0x10
mov dword [ebp - 0x1a0], eax
mov ecx, dword [ebp - 0x1a0]
call fcn.10003260
mov ecx, dword [ebp - 0x1a4]
sub ecx, 0x10
mov dword [ebp - 0x1a8], ecx
mov ecx, dword [ebp - 0x1a8]
call fcn.10003260
movzx edx, byte [ebp - 0x4b]
test edx, edx
je 0x10038b8c
jmp 0x1003889f
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.10048bf0
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx ecx, al
cmp ecx, 1
jne 0x1003a92b
push 0x10067eb4
push 1
lea edx, [ebp - 0x1b4]
push edx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
push eax
lea eax, [ebp - 0x1ac]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x4c], al
mov ecx, dword [ebp - 0x1ac]
sub ecx, 0x10
mov dword [ebp - 0x1b0], ecx
mov ecx, dword [ebp - 0x1b0]
call fcn.10003260
mov edx, dword [ebp - 0x1b4]
sub edx, 0x10
mov dword [ebp - 0x1b8], edx
mov ecx, dword [ebp - 0x1b8]
call fcn.10003260
movzx eax, byte [ebp - 0x4c]
test eax, eax
je 0x100396cc
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ecx]
jge 0x10038d9f
push ecx
mov dword [ebp - 0x1c0], esp
mov eax, dword [ebp - 4]
add eax, 0x34
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x70]
mov edx, dword [ecx]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x1bc], eax
mov ecx, dword [ebp - 0x1bc]
sub ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x1c0]
push eax
mov ecx, dword [ebp - 0x70]
call fcn.1002efb0
mov ecx, dword [ebp - 4]
call fcn.10036eb0
mov byte [ebp - 0x4d], al
movzx ecx, byte [ebp - 0x4d]
test ecx, ecx
jne 0x10038cf0
or dword [ebp - 8], 0x10
mov edx, dword [ebp - 4]
add edx, 0x34
mov dword [ebp - 0x74], edx
cmp dword [ebp - 0x14], 0
jl 0x10038ca8
mov eax, dword [ebp - 0x74]
mov ecx, dword [eax]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x1c4], edx
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c4]
jle 0x10038cb2
push 0x80070057
call fcn.10002e80
mov ecx, dword [ebp - 0x74]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x14]
mov cx, word [edx + eax*2]
mov word [ebp - 0x5a], cx
push 0
movzx edx, word [ebp - 0x5a]
push edx
push 0x10067eb8
lea ecx, [ebp - 0x1c8]
call fcn.1002fa40
mov ecx, eax
call fcn.10048d30
add eax, 1
test eax, eax
jle 0x10038cf0
mov dword [ebp - 0x78], 0
jmp 0x10038cf7
mov dword [ebp - 0x78], 1
mov al, byte [ebp - 0x78]
mov byte [ebp - 0x25], al
mov ecx, dword [ebp - 8]
and ecx, 0x10
je 0x10038d23
and dword [ebp - 8], 0xffffffef
mov edx, dword [ebp - 0x1c8]
sub edx, 0x10
mov dword [ebp - 0x1cc], edx
mov ecx, dword [ebp - 0x1cc]
call fcn.10003260
movzx eax, byte [ebp - 0x25]
test eax, eax
je 0x10038d9f
push ecx
mov dword [ebp - 0x1d8], esp
mov ecx, dword [ebp + 8]
sub ecx, 0x10
mov dword [ebp - 0x1d0], ecx
mov edx, dword [ebp - 0x1d0]
push edx
call fcn.100306c0
add esp, 4
mov dword [ebp - 0x1d4], eax
mov eax, dword [ebp - 0x1d4]
add eax, 0x10
mov ecx, dword [ebp - 0x1d8]
mov dword [ecx], eax
mov ecx, dword [ebp - 4]
call fcn.10033510
mov edx, dword [ebp - 0xc]
sub edx, 0x10
mov dword [ebp - 0x1dc], edx
mov ecx, dword [ebp - 0x1dc]
call fcn.10003260
mov eax, dword [ebp + 8]
sub eax, 0x10
mov dword [ebp - 0x1e0], eax
mov ecx, dword [ebp - 0x1e0]
call fcn.10003260
jmp 0x1003c2c6
push 0x10067ec4
push 1
lea ecx, [ebp - 0x1f0]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea eax, [ebp - 0x1f8]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov dword [ebp - 0x1e4], eax
mov ecx, dword [ebp - 0x1e4]
push ecx
lea edx, [ebp - 0x1e8]
push edx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x26], al
mov al, byte [ebp - 0x26]
mov byte [ebp - 0x27], al
mov ecx, dword [ebp - 0x1e8]
sub ecx, 0x10
mov dword [ebp - 0x1ec], ecx
mov ecx, dword [ebp - 0x1ec]
call fcn.10003260
mov edx, dword [ebp - 0x1f0]
sub edx, 0x10
mov dword [ebp - 0x1f4], edx
mov ecx, dword [ebp - 0x1f4]
call fcn.10003260
mov eax, dword [ebp - 0x1f8]
sub eax, 0x10
mov dword [ebp - 0x1fc], eax
mov ecx, dword [ebp - 0x1fc]
call fcn.10003260
movzx ecx, byte [ebp - 0x27]
test ecx, ecx
je 0x1003969e
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 0x10039010
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 - 0x200]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov dword [ebp - 0x570], eax
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
mov eax, dword [ebp - 0x200]
sub eax, 0x10
mov dword [ebp - 0x204], eax
mov ecx, dword [ebp - 0x204]
call fcn.10003260
push 1
push ecx
mov dword [ebp - 0x208], esp
push ecx
mov esi, esp
lea ecx, [ebp + 8]
push ecx
push 1
mov edx, dword [ebp - 0x14]
sub edx, 1
push edx
lea eax, [ebp - 0x20c]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
push esi
call fcn.1002edd0
add esp, 0xc
mov ecx, dword [ebp - 0x208]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov dword [ebp - 0x574], eax
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
mov ecx, dword [ebp - 0x20c]
sub ecx, 0x10
mov dword [ebp - 0x210], ecx
mov ecx, dword [ebp - 0x210]
call fcn.10003260
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 - 0x21c]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
mov dword [ebp - 0x214], eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
mov dword [ebp - 0x218], ecx
mov edx, dword [ebp - 0x214]
push edx
mov ecx, dword [ebp - 0x218]
call fcn.10030240
mov eax, dword [ebp - 0x21c]
sub eax, 0x10
mov dword [ebp - 0x220], eax
mov ecx, dword [ebp - 0x220]
call fcn.10003260
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x224], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x224]
mov dword [ecx + 0x30], edx
mov eax, dword [ebp - 0xc]
sub eax, 0x10
mov dword [ebp - 0x228], eax
mov ecx, dword [ebp - 0x228]
call fcn.10003260
mov ecx, dword [ebp + 8]
sub ecx, 0x10
mov dword [ebp - 0x22c], ecx
mov ecx, dword [ebp - 0x22c]
call fcn.10003260
jmp 0x1003c2c6
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, 4
jne 0x1003926f
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 - 0x230]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov dword [ebp - 0x578], eax
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
mov eax, dword [ebp - 0x230]
sub eax, 0x10
mov dword [ebp - 0x234], eax
mov ecx, dword [ebp - 0x234]
call fcn.10003260
push 1
push ecx
mov dword [ebp - 0x240], esp
push ecx
mov dword [ebp - 0x23c], esp
push 1
lea ecx, [ebp - 0x254]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea eax, [ebp - 0x25c]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.10048bf0
mov dword [ebp - 0x238], eax
mov ecx, dword [ebp - 0x238]
push ecx
lea edx, [ebp + 8]
push edx
push 1
mov eax, dword [ebp - 0x14]
sub eax, 1
push eax
lea ecx, [ebp - 0x24c]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
lea edx, [ebp - 0x244]
push edx
call fcn.1002edd0
add esp, 0xc
push eax
mov eax, dword [ebp - 0x23c]
push eax
call fcn.1002edd0
add esp, 0xc
mov dword [ebp - 0x57c], eax
mov ecx, dword [ebp - 0x240]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov dword [ebp - 0x580], eax
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
mov ecx, dword [ebp - 0x244]
sub ecx, 0x10
mov dword [ebp - 0x248], ecx
mov ecx, dword [ebp - 0x248]
call fcn.10003260
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 - 0x254]
sub eax, 0x10
mov dword [ebp - 0x258], eax
mov ecx, dword [ebp - 0x258]
call fcn.10003260
mov ecx, dword [ebp - 0x25c]
sub ecx, 0x10
mov dword [ebp - 0x260], ecx
mov ecx, dword [ebp - 0x260]
call fcn.10003260
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 - 0x26c]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
mov dword [ebp - 0x264], eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
mov dword [ebp - 0x268], ecx
mov edx, dword [ebp - 0x264]
push edx
mov ecx, dword [ebp - 0x268]
call fcn.10030240
mov eax, dword [ebp - 0x26c]
sub eax, 0x10
mov dword [ebp - 0x270], eax
mov ecx, dword [ebp - 0x270]
call fcn.10003260
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x274], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x274]
mov dword [ecx + 0x30], edx
mov eax, dword [ebp - 0xc]
sub eax, 0x10
mov dword [ebp - 0x278], eax
mov ecx, dword [ebp - 0x278]
call fcn.10003260
mov ecx, dword [ebp + 8]
sub ecx, 0x10
mov dword [ebp - 0x27c], ecx
mov ecx, dword [ebp - 0x27c]
call fcn.10003260
jmp 0x1003c2c6
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, 3
jne 0x10039678
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ecx]
jge 0x100394c9
or dword [ebp - 8], 0x20
mov eax, dword [ebp - 4]
add eax, 0x34
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x14], 0
jl 0x100392cb
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ecx]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x280], eax
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x280]
jle 0x100392d5
push 0x80070057
call fcn.10002e80
mov edx, dword [ebp - 0x7c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x14]
mov dx, word [eax + ecx*2]
mov word [ebp - 0x56], dx
push 0
movzx eax, word [ebp - 0x56]
push eax
push 0x10067ec8
lea ecx, [ebp - 0x2a8]
call fcn.1002fa40
mov ecx, eax
call fcn.10048d30
add eax, 1
test eax, eax
jle 0x1003939d
or dword [ebp - 8], 0x40
or dword [ebp - 8], 0x80
or dword [ebp - 8], 0x100
push 0
push 1
lea ecx, [ebp - 0x298]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea eax, [ebp - 0x2a0]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.10048bf0
mov dword [ebp - 0x284], eax
mov ecx, dword [ebp - 0x284]
mov edx, dword [ecx]
mov dword [ebp - 0x288], edx
mov eax, dword [ebp - 0x288]
push eax
push 0x10067ed0
lea ecx, [ebp - 0x290]
call fcn.1002fa40
mov ecx, eax
call fcn.1002f110
mov dword [ebp - 0x28c], eax
mov ecx, dword [ebp - 0x28c]
add ecx, 1
test ecx, ecx
jle 0x1003939d
mov dword [ebp - 0x80], 1
jmp 0x100393a4
mov dword [ebp - 0x80], 0
mov dl, byte [ebp - 0x80]
mov byte [ebp - 0x28], dl
mov eax, dword [ebp - 8]
and eax, 0x100
je 0x100393d5
and dword [ebp - 8], 0xfffffeff
mov ecx, dword [ebp - 0x290]
sub ecx, 0x10
mov dword [ebp - 0x294], ecx
mov ecx, dword [ebp - 0x294]
call fcn.10003260
mov edx, dword [ebp - 8]
and edx, 0x80
je 0x10039401
and dword [ebp - 8], 0xffffff7f
mov eax, dword [ebp - 0x298]
sub eax, 0x10
mov dword [ebp - 0x29c], eax
mov ecx, dword [ebp - 0x29c]
call fcn.10003260
mov ecx, dword [ebp - 8]
and ecx, 0x40
je 0x10039427
and dword [ebp - 8], 0xffffffbf
mov edx, dword [ebp - 0x2a0]
sub edx, 0x10
mov dword [ebp - 0x2a4], edx
mov ecx, dword [ebp - 0x2a4]
call fcn.10003260
mov eax, dword [ebp - 8]
and eax, 0x20
je 0x1003944d
and dword [ebp - 8], 0xffffffdf
mov ecx, dword [ebp - 0x2a8]
sub ecx, 0x10
mov dword [ebp - 0x2ac], ecx
mov ecx, dword [ebp - 0x2ac]
call fcn.10003260
movzx edx, byte [ebp - 0x28]
test edx, edx
je 0x100394c9
push ecx
mov dword [ebp - 0x2b8], esp
mov eax, dword [ebp + 8]
sub eax, 0x10
mov dword [ebp - 0x2b0], eax
mov ecx, dword [ebp - 0x2b0]
push ecx
call fcn.100306c0
add esp, 4
mov dword [ebp - 0x2b4], eax
mov edx, dword [ebp - 0x2b4]
add edx, 0x10
mov eax, dword [ebp - 0x2b8]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
call fcn.10033510
mov ecx, dword [ebp - 0xc]
sub ecx, 0x10
mov dword [ebp - 0x2bc], ecx
mov ecx, dword [ebp - 0x2bc]
call fcn.10003260
mov edx, dword [ebp + 8]
sub edx, 0x10
mov dword [ebp - 0x2c0], edx
mov ecx, dword [ebp - 0x2c0]
call fcn.10003260
jmp 0x1003c2c6
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 - 0x2c4]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
mov dword [ebp - 0x584], 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 - 0x2c4]
sub edx, 0x10
mov dword [ebp - 0x2c8], edx
mov ecx, dword [ebp - 0x2c8]
call fcn.10003260
push 1
push ecx
mov dword [ebp - 0x2d4], esp
push ecx
mov dword [ebp - 0x2d0], esp
push 1
lea eax, [ebp - 0x2e0]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x2e4]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.10048bf0
mov dword [ebp - 0x2cc], eax
mov eax, dword [ebp - 0x2cc]
push eax
lea ecx, [ebp + 8]
push ecx
push 1
mov edx, dword [ebp - 0x14]
sub edx, 1
push edx
lea eax, [ebp - 0x2dc]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
lea ecx, [ebp - 0x2d8]
push ecx
call fcn.1002edd0
add esp, 0xc
push eax
mov edx, dword [ebp - 0x2d0]
push edx
call fcn.1002edd0
add esp, 0xc
mov dword [ebp - 0x588], eax
mov eax, dword [ebp - 0x2d4]
push eax
mov ecx, dword [ebp - 4]
call fcn.100370b0
mov dword [ebp - 0x58c], 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
lea ecx, [ebp - 0x2d8]
call fcn.1002f760
lea ecx, [ebp - 0x2dc]
call fcn.1002f760
lea ecx, [ebp - 0x2e0]
call fcn.1002f760
lea ecx, [ebp - 0x2e4]
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 - 0x2e8]
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 - 0x2e8]
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 0x1003c2c6
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 0x1003969c
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
jmp 0x100396c7
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 0x1003c2c6
jmp 0x1003a926
push 0x10067ed8
push 1
lea ecx, [ebp - 0x2f0]
push ecx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
push eax
lea edx, [ebp - 0x2ec]
push edx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x29], al
lea ecx, [ebp - 0x2ec]
call fcn.1002f760
lea ecx, [ebp - 0x2f0]
call fcn.1002f760
movzx eax, byte [ebp - 0x29]
test eax, eax
je 0x1003a1aa
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ecx]
jge 0x10039922
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 0x10067edc
lea ecx, [ebp - 0x2f4]
call fcn.1002fa40
mov ecx, eax
call fcn.10048d30
add eax, 1
test eax, eax
jg 0x1003976d
mov dword [ebp - 0x84], 1
jmp 0x10039777
mov dword [ebp - 0x84], 0
mov dl, byte [ebp - 0x84]
mov byte [ebp - 0x2a], dl
lea ecx, [ebp - 0x2f4]
call fcn.1002f760
movzx eax, byte [ebp - 0x2a]
test eax, eax
je 0x100397bc
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 0x1003c2c6
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 0x10067ee8
lea ecx, [ebp - 0x304]
call fcn.1002fa40
mov ecx, eax
call fcn.10048d30
add eax, 1
test eax, eax
jle 0x1003986c
or dword [ebp - 8], 0x400
or dword [ebp - 8], 0x800
or dword [ebp - 8], 0x1000
push 0
push 1
lea edx, [ebp - 0x2fc]
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x300]
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 0x10067ef0
lea ecx, [ebp - 0x2f8]
call fcn.1002fa40
mov ecx, eax
call fcn.1002f110
add eax, 1
test eax, eax
jle 0x1003986c
mov dword [ebp - 0x88], 1
jmp 0x10039876
mov dword [ebp - 0x88], 0
mov dl, byte [ebp - 0x88]
mov byte [ebp - 0x2b], dl
mov eax, dword [ebp - 8]
and eax, 0x1000
je 0x1003989b
and dword [ebp - 8], 0xffffefff
lea ecx, [ebp - 0x2f8]
call fcn.1002f760
mov ecx, dword [ebp - 8]
and ecx, 0x800
je 0x100398b8
and dword [ebp - 8], 0xfffff7ff
lea ecx, [ebp - 0x2fc]
call fcn.1002f760
mov edx, dword [ebp - 8]
and edx, 0x400
je 0x100398d5
and dword [ebp - 8], 0xfffffbff
lea ecx, [ebp - 0x300]
call fcn.1002f760
mov eax, dword [ebp - 8]
and eax, 0x200
je 0x100398f1
and dword [ebp - 8], 0xfffffdff
lea ecx, [ebp - 0x304]
call fcn.1002f760
movzx ecx, byte [ebp - 0x2b]
test ecx, ecx
je 0x10039922
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 0x1003c2c6
or dword [ebp - 8], 0x2000
or dword [ebp - 8], 0x4000
or dword [ebp - 8], 0x8000
push 0x10067ef8
push 1
lea eax, [ebp - 0x318]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x31c]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea eax, [ebp - 0x314]
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 0x100399fc
or dword [ebp - 8], 0x10000
or dword [ebp - 8], 0x20000
or dword [ebp - 8], 0x40000
push 0x10067efc
push 1
lea edx, [ebp - 0x30c]
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x310]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea edx, [ebp - 0x308]
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 0x100399fc
mov dword [ebp - 0x8c], 0
jmp 0x10039a06
mov dword [ebp - 0x8c], 1
mov cl, byte [ebp - 0x8c]
mov byte [ebp - 0x2c], cl
mov edx, dword [ebp - 8]
and edx, 0x40000
je 0x10039a2c
and dword [ebp - 8], 0xfffbffff
lea ecx, [ebp - 0x308]
call fcn.1002f760
mov eax, dword [ebp - 8]
and eax, 0x20000
je 0x10039a48
and dword [ebp - 8], 0xfffdffff
lea ecx, [ebp - 0x30c]
call fcn.1002f760
mov ecx, dword [ebp - 8]
and ecx, 0x10000
je 0x10039a65
and dword [ebp - 8], 0xfffeffff
lea ecx, [ebp - 0x310]
call fcn.1002f760
mov edx, dword [ebp - 8]
and edx, 0x8000
je 0x10039a82
and dword [ebp - 8], 0xffff7fff
lea ecx, [ebp - 0x314]
call fcn.1002f760
mov eax, dword [ebp - 8]
and eax, 0x4000
je 0x10039a9e
and dword [ebp - 8], 0xffffbfff
lea ecx, [ebp - 0x318]
call fcn.1002f760
mov ecx, dword [ebp - 8]
and ecx, 0x2000
je 0x10039abb
and dword [ebp - 8], 0xffffdfff
lea ecx, [ebp - 0x31c]
call fcn.1002f760
movzx edx, byte [ebp - 0x2c]
test edx, edx
je 0x10039c80
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 0x10039c57
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 - 0x320]
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 - 0x320]
call fcn.1002f760
push 1
push 1
lea ecx, [ebp - 0x32c]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea eax, [ebp - 0x330]
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 - 0x328]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
lea ecx, [ebp - 0x324]
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 - 0x324]
call fcn.1002f760
lea ecx, [ebp - 0x328]
call fcn.1002f760
lea ecx, [ebp - 0x32c]
call fcn.1002f760
lea ecx, [ebp - 0x330]
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 - 0x334]
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 - 0x334]
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 0x1003c2c6
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 0x10039c7b
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], ecx
jmp 0x1003a1a5
push 0x10067f00
push 1
lea edx, [ebp - 0x33c]
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x340]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea edx, [ebp - 0x338]
push edx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x2d], al
lea ecx, [ebp - 0x338]
call fcn.1002f760
lea ecx, [ebp - 0x33c]
call fcn.1002f760
lea ecx, [ebp - 0x340]
call fcn.1002f760
movzx eax, byte [ebp - 0x2d]
test eax, eax
je 0x1003a17c
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 0x10039d47
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 0x1003c2c6
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 0x1003a03a
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [eax]
jge 0x10039ede
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 0x10067f04
lea ecx, [ebp - 0x350]
call fcn.1002fa40
mov ecx, eax
call fcn.10048d30
add eax, 1
test eax, eax
jle 0x10039e27
or dword [ebp - 8], 0x100000
or dword [ebp - 8], 0x200000
or dword [ebp - 8], 0x400000
push 0
push 1
lea ecx, [ebp - 0x348]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea eax, [ebp - 0x34c]
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 0x10067f0c
lea ecx, [ebp - 0x344]
call fcn.1002fa40
mov ecx, eax
call fcn.1002f110
add eax, 1
test eax, eax
jle 0x10039e27
mov dword [ebp - 0x90], 1
jmp 0x10039e31
mov dword [ebp - 0x90], 0
mov cl, byte [ebp - 0x90]
mov byte [ebp - 0x2e], cl
mov edx, dword [ebp - 8]
and edx, 0x400000
je 0x10039e57
and dword [ebp - 8], 0xffbfffff
lea ecx, [ebp - 0x344]
call fcn.1002f760
mov eax, dword [ebp - 8]
and eax, 0x200000
je 0x10039e73
and dword [ebp - 8], 0xffdfffff
lea ecx, [ebp - 0x348]
call fcn.1002f760
mov ecx, dword [ebp - 8]
and ecx, 0x100000
je 0x10039e90
and dword [ebp - 8], 0xffefffff
lea ecx, [ebp - 0x34c]
call fcn.1002f760
mov edx, dword [ebp - 8]
and edx, 0x80000
je 0x10039ead
and dword [ebp - 8], 0xfff7ffff
lea ecx, [ebp - 0x350]
call fcn.1002f760
movzx eax, byte [ebp - 0x2e]
test eax, eax
je 0x10039ede
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 0x1003c2c6
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 - 0x354]
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 - 0x354]
call fcn.1002f760
push 1
push 1
lea edx, [ebp - 0x360]
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x364]
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
mov eax, dword [ebp - 0x14]
sub eax, 1
push eax
lea ecx, [ebp - 0x35c]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
lea edx, [ebp - 0x358]
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 - 0x14]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
push ecx
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x358]
call fcn.1002f760
lea ecx, [ebp - 0x35c]
call fcn.1002f760
lea ecx, [ebp - 0x360]
call fcn.1002f760
lea ecx, [ebp - 0x364]
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 - 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 0x1003a17a
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 0x1003a156
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 - 0x36c]
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 - 0x36c]
call fcn.1002f760
push 1
push ecx
mov esi, esp
push ecx
mov edi, esp
lea eax, [ebp + 8]
push eax
push 1
mov ecx, dword [ebp - 0x14]
sub ecx, 1
push ecx
lea edx, [ebp - 0x370]
push edx
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 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 - 0x370]
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 - 0x374]
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 - 0x374]
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 0x1003a17a
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 0x1003a17a
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], ecx
jmp 0x1003a1a5
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 0x1003c2c6
jmp 0x1003a926
push 0x10067f14
push 1
lea eax, [ebp - 0x37c]
push eax
lea ecx, [ebp - 0xc]
call fcn.10048bf0
push eax
lea ecx, [ebp - 0x378]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x2f], al
lea ecx, [ebp - 0x378]
call fcn.1002f760
lea ecx, [ebp - 0x37c]
call fcn.1002f760
movzx edx, byte [ebp - 0x2f]
test edx, edx
je 0x1003a926
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [eax]
jge 0x1003a401
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 0x10067f18
lea ecx, [ebp - 0x380]
call fcn.1002fa40
mov ecx, eax
call fcn.10048d30
add eax, 1
test eax, eax
jg 0x1003a24b
mov dword [ebp - 0x94], 1
jmp 0x1003a255
mov dword [ebp - 0x94], 0
mov cl, byte [ebp - 0x94]
mov byte [ebp - 0x30], cl
lea ecx, [ebp - 0x380]
call fcn.1002f760
movzx edx, byte [ebp - 0x30]
test edx, edx
je 0x1003a29a
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 0x1003c2c6
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 0x10067f24
lea ecx, [ebp - 0x390]
call fcn.1002fa40
mov ecx, eax
call fcn.10048d30
add eax, 1
test eax, eax
jle 0x1003a34a
or dword [ebp - 8], 0x1000000
or dword [ebp - 8], 0x2000000
or dword [ebp - 8], 0x4000000
push 0
push 1
lea eax, [ebp - 0x388]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x38c]
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 0x10067f2c
lea ecx, [ebp - 0x384]
call fcn.1002fa40
mov ecx, eax
call fcn.1002f110
add eax, 1
test eax, eax
jle 0x1003a34a
mov dword [ebp - 0x98], 1
jmp 0x1003a354
mov dword [ebp - 0x98], 0
mov al, byte [ebp - 0x98]
mov byte [ebp - 0x31], al
mov ecx, dword [ebp - 8]
and ecx, 0x4000000
je 0x1003a37a
and dword [ebp - 8], 0xfbffffff
lea ecx, [ebp - 0x384]
call fcn.1002f760
mov edx, dword [ebp - 8]
and edx, 0x2000000
je 0x1003a397
and dword [ebp - 8], 0xfdffffff
lea ecx, [ebp - 0x388]
call fcn.1002f760
mov eax, dword [ebp - 8]
and eax, 0x1000000
je 0x1003a3b3
and dword [ebp - 8], 0xfeffffff
lea ecx, [ebp - 0x38c]
call fcn.1002f760
mov ecx, dword [ebp - 8]
and ecx, 0x800000
je 0x1003a3d0
and dword [ebp - 8], 0xff7fffff
lea ecx, [ebp - 0x390]
call fcn.1002f760
movzx edx, byte [ebp - 0x31]
test edx, edx
je 0x1003a401
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 0x1003c2c6
push 0x10067f34
push 1
lea ecx, [ebp - 0x398]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea eax, [ebp - 0x39c]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x394]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x32], al
lea ecx, [ebp - 0x394]
call fcn.1002f760
lea ecx, [ebp - 0x398]
call fcn.1002f760
lea ecx, [ebp - 0x39c]
call fcn.1002f760
movzx edx, byte [ebp - 0x32]
test edx, edx
je 0x1003a8fd
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 0x1003a4c8
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 0x1003c2c6
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 0x1003a7bb
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
cmp eax, dword [edx]
jge 0x1003a65f
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 0x10067f38
lea ecx, [ebp - 0x3ac]
call fcn.1002fa40
mov ecx, eax
call fcn.10048d30
add eax, 1
test eax, eax
jle 0x1003a5a8
or dword [ebp - 8], 0x10000000
or dword [ebp - 8], 0x20000000
or dword [ebp - 8], 0x40000000
push 0
push 1
lea eax, [ebp - 0x3a4]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x3a8]
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.f_r_x
lea ecx, [ebp - 0x3a0]
call fcn.1002fa40
mov ecx, eax
call fcn.1002f110
add eax, 1
test eax, eax
jle 0x1003a5a8
mov dword [ebp - 0x9c], 1
jmp 0x1003a5b2
mov dword [ebp - 0x9c], 0
mov al, byte [ebp - 0x9c]
mov byte [ebp - 0x33], al
mov ecx, dword [ebp - 8]
and ecx, 0x40000000
je 0x1003a5d8
and dword [ebp - 8], 0xbfffffff
lea ecx, [ebp - 0x3a0]
call fcn.1002f760
mov edx, dword [ebp - 8]
and edx, 0x20000000
je 0x1003a5f5
and dword [ebp - 8], 0xdfffffff
lea ecx, [ebp - 0x3a4]
call fcn.1002f760
mov eax, dword [ebp - 8]
and eax, 0x10000000
je 0x1003a611
and dword [ebp - 8], 0xefffffff
lea ecx, [ebp - 0x3a8]
call fcn.1002f760
mov ecx, dword [ebp - 8]
and ecx, 0x8000000
je 0x1003a62e
and dword [ebp - 8], 0xf7ffffff
lea ecx, [ebp - 0x3ac]
call fcn.1002f760
movzx edx, byte [ebp - 0x33]
test edx, edx
je 0x1003a65f
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 0x1003c2c6
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 - 0x3b0]
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 - 0x3b0]
call fcn.1002f760
push 1
push 1
lea eax, [ebp - 0x3bc]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x3c0]
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 - 0x3b8]
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
lea eax, [ebp - 0x3b4]
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 - 0x3b4]
call fcn.1002f760
lea ecx, [ebp - 0x3b8]
call fcn.1002f760
lea ecx, [ebp - 0x3bc]
call fcn.1002f760
lea ecx, [ebp - 0x3c0]
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 - 0x3c4]
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 - 0x3c4]
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 0x1003a8fb
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 0x1003a8d7
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 - 0x3c8]
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 - 0x3c8]
call fcn.1002f760
push 1
push ecx
mov esi, esp
push ecx
mov edi, esp
lea ecx, [ebp + 8]
push ecx
push 1
mov edx, dword [ebp - 0x14]
sub edx, 1
push edx
lea eax, [ebp - 0x3cc]
push eax
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 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 - 0x3cc]
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 - 0x3d0]
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 - 0x3d0]
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 0x1003a8fb
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 0x1003a8fb
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
jmp 0x1003a926
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 0x1003c2c6
jmp 0x1003b55e
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 0x1003ad05
push str.OUAEAUEOAEUIOUIEYU
push 1
lea eax, [ebp - 0x3d8]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea edx, [ebp - 0x3dc]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea eax, [ebp - 0x3d4]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x34], al
lea ecx, [ebp - 0x3d4]
call fcn.1002f760
lea ecx, [ebp - 0x3d8]
call fcn.1002f760
lea ecx, [ebp - 0x3dc]
call fcn.1002f760
movzx ecx, byte [ebp - 0x34]
test ecx, ecx
je 0x1003ac04
push 0x10067f4c
push 1
lea edx, [ebp - 0x3e4]
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x3e8]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea edx, [ebp - 0x3e0]
push edx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x35], al
lea ecx, [ebp - 0x3e0]
call fcn.1002f760
lea ecx, [ebp - 0x3e4]
call fcn.1002f760
lea ecx, [ebp - 0x3e8]
call fcn.1002f760
movzx eax, byte [ebp - 0x35]
test eax, eax
je 0x1003abd6
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 0x1003aa6c
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
jmp 0x1003abd4
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 0x1003abce
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 - 0x3ec]
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 - 0x3ec]
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 - 0x3f0]
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 - 0x3f4]
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 - 0x3f0]
call fcn.1002f760
lea ecx, [ebp - 0x3f4]
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 - 0x3f8]
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 - 0x3f8]
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 0x1003c2c6
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
jmp 0x1003abff
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 0x1003c2c6
jmp 0x1003ad00
push 0x10067f50
push 1
lea ecx, [ebp - 0x400]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea eax, [ebp - 0x404]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x3fc]
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 - 0x3fc]
call fcn.1002f760
lea ecx, [ebp - 0x400]
call fcn.1002f760
lea ecx, [ebp - 0x404]
call fcn.1002f760
movzx edx, byte [ebp - 0x36]
test edx, edx
je 0x1003ac83
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
jmp 0x1003ad00
push 0x10067f54
push 1
lea ecx, [ebp - 0x40c]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea eax, [ebp - 0x410]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x408]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x37], al
lea ecx, [ebp - 0x408]
call fcn.1002f760
lea ecx, [ebp - 0x40c]
call fcn.1002f760
lea ecx, [ebp - 0x410]
call fcn.1002f760
movzx edx, byte [ebp - 0x37]
test edx, edx
je 0x1003ad00
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
jmp 0x1003b55e
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 0x1003af15
push 0x10067f58
push 1
lea eax, [ebp - 0x418]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea edx, [ebp - 0x41c]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea eax, [ebp - 0x414]
push eax
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 ecx, byte [ebp - 0x38]
test ecx, ecx
je 0x1003ae28
push 0x10067f5c
push 1
lea edx, [ebp - 0x424]
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
push eax
lea eax, [ebp - 0x420]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048a20
add esp, 8
mov byte [ebp - 0x39], al
lea ecx, [ebp - 0x420]
call fcn.1002f760
lea ecx, [ebp - 0x424]
call fcn.1002f760
movzx ecx, byte [ebp - 0x39]
test ecx, ecx
je 0x1003ae1d
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 0x1003c2c6
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
jmp 0x1003af10
push 0x10067f60
push 1
lea ecx, [ebp - 0x42c]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea eax, [ebp - 0x430]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x428]
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 - 0x428]
call fcn.1002f760
lea ecx, [ebp - 0x42c]
call fcn.1002f760
lea ecx, [ebp - 0x430]
call fcn.1002f760
movzx edx, byte [ebp - 0x3a]
test edx, edx
je 0x1003aea1
jmp 0x1003af10
push 0x10067f64
push 1
lea eax, [ebp - 0x438]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea edx, [ebp - 0x43c]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea eax, [ebp - 0x434]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x3b], al
lea ecx, [ebp - 0x434]
call fcn.1002f760
lea ecx, [ebp - 0x438]
call fcn.1002f760
lea ecx, [ebp - 0x43c]
call fcn.1002f760
jmp 0x1003b55e
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 0x1003b558
push 0x10067f68
push 1
lea ecx, [ebp - 0x444]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea eax, [ebp - 0x448]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x440]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x3c], al
lea ecx, [ebp - 0x440]
call fcn.1002f760
lea ecx, [ebp - 0x444]
call fcn.1002f760
lea ecx, [ebp - 0x448]
call fcn.1002f760
movzx edx, byte [ebp - 0x3c]
test edx, edx
je 0x1003afdc
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 0x1003c2c6
push 0x10067f6c
push 1
lea ecx, [ebp - 0x450]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea eax, [ebp - 0x454]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x44c]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x3d], al
lea ecx, [ebp - 0x44c]
call fcn.1002f760
lea ecx, [ebp - 0x450]
call fcn.1002f760
lea ecx, [ebp - 0x454]
call fcn.1002f760
movzx edx, byte [ebp - 0x3d]
test edx, edx
je 0x1003b186
push 0x10067f70
push 1
lea eax, [ebp - 0x45c]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x460]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea eax, [ebp - 0x458]
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 - 0x458]
call fcn.1002f760
lea ecx, [ebp - 0x45c]
call fcn.1002f760
lea ecx, [ebp - 0x460]
call fcn.1002f760
movzx ecx, byte [ebp - 0x3e]
test ecx, ecx
je 0x1003b0d9
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
jmp 0x1003b181
push 0x10067f74
push 1
lea eax, [ebp - 0x468]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x46c]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea eax, [ebp - 0x464]
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 - 0x464]
call fcn.1002f760
lea ecx, [ebp - 0x468]
call fcn.1002f760
lea ecx, [ebp - 0x46c]
call fcn.1002f760
movzx ecx, byte [ebp - 0x3f]
test ecx, ecx
je 0x1003b158
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
jmp 0x1003b181
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 0x1003c2c6
jmp 0x1003b556
push 0x10067f78
push 1
lea ecx, [ebp - 0x474]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea eax, [ebp - 0x478]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x470]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x40], al
lea ecx, [ebp - 0x470]
call fcn.1002f760
lea ecx, [ebp - 0x474]
call fcn.1002f760
lea ecx, [ebp - 0x478]
call fcn.1002f760
movzx edx, byte [ebp - 0x40]
test edx, edx
je 0x1003b556
push 0x10067f7c
push 1
lea eax, [ebp - 0x480]
push eax
push ecx
mov ecx, esp
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea edx, [ebp - 0x484]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea eax, [ebp - 0x47c]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x41], al
lea ecx, [ebp - 0x47c]
call fcn.1002f760
lea ecx, [ebp - 0x480]
call fcn.1002f760
lea ecx, [ebp - 0x484]
call fcn.1002f760
movzx ecx, byte [ebp - 0x41]
test ecx, ecx
je 0x1003b52d
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 0x1003b362
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 - 0x488]
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 - 0x488]
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 - 0x48c]
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 - 0x48c]
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 0x1003c2c6
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 0x1003b52b
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 - 0x490]
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 - 0x490]
call fcn.1002f760
push 1
push 1
lea ecx, [ebp - 0x4a0]
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 - 0x4a4]
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 - 0x498]
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 - 0x49c]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x494]
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 - 0x494]
call fcn.1002f760
lea ecx, [ebp - 0x498]
call fcn.1002f760
lea ecx, [ebp - 0x49c]
call fcn.1002f760
lea ecx, [ebp - 0x4a0]
call fcn.1002f760
lea ecx, [ebp - 0x4a4]
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 - 0x4a8]
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 - 0x4a8]
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 0x1003c2c6
jmp 0x1003b556
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 0x1003c2c6
jmp 0x1003b55e
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
jmp 0x1003bbdc
push 0x10067f80
push 1
lea ecx, [ebp - 0x4b0]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea eax, [ebp - 0x4b4]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x4ac]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.10048aa0
add esp, 8
mov byte [ebp - 0x42], al
lea ecx, [ebp - 0x4ac]
call fcn.1002f760
lea ecx, [ebp - 0x4b0]
call fcn.1002f760
lea ecx, [ebp - 0x4b4]
call fcn.1002f760
movzx edx, byte [ebp - 0x42]
test edx, edx
je 0x1003b5df
jmp 0x10038ad1
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.10048bf0
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx ecx, al
cmp ecx, 1
jle 0x1003b605
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
jmp 0x1003b65f
push ecx
mov eax, esp
push 1
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002efb0
mov ecx, dword [ebp - 4]
call fcn.10036eb0
movzx ecx, al
cmp ecx, 1
jle 0x1003b630
mov edx, dword [ebp - 0x14]
sub edx, 1
mov dword [ebp - 0x10], edx
jmp 0x1003b65f
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
jle 0x1003b659
mov edx, dword [ebp - 0x14]
sub edx, 2
mov dword [ebp - 0x10], edx
jmp 0x1003b65f
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
or dword [ebp - 8], 0x80000000
or dword [ebp - 0x18], 1
or dword [ebp - 0x18], 2
push 0x10067f84
push 1
lea ecx, [ebp - 0x4d4]
push ecx
push ecx
mov edx, esp
push 1
push edx
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea eax, [ebp - 0x4d8]
push eax
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x4d0]
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 0x1003b791
or dword [ebp - 0x18], 4
or dword [ebp - 0x18], 8
or dword [ebp - 0x18], 0x10
push 0x10067f88
push 1
lea eax, [ebp - 0x4c8]
push eax
push ecx
mov ecx, esp
push 1
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002efb0
lea edx, [ebp - 0x4cc]
push edx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea eax, [ebp - 0x4c4]
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 0x1003b791
or dword [ebp - 0x18], 0x20
or dword [ebp - 0x18], 0x40
or dword [ebp - 0x18], 0x80
push 0x10067f8c
push 1
lea edx, [ebp - 0x4bc]
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.10048bf0
lea ecx, [ebp - 0x4c0]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
mov ecx, eax
call fcn.1002ef20
push eax
lea edx, [ebp - 0x4b8]
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 0x1003b791
mov dword [ebp - 0xa0], 1
jmp 0x1003b79b
mov dword [ebp - 0xa0], 0
mov cl, byte [ebp - 0xa0]
mov byte [ebp - 0x43], cl
mov edx, dword [ebp - 0x18]
and edx, 0x80
je 0x1003b7c1
and dword [ebp - 0x18], 0xffffff7f
lea ecx, [ebp - 0x4b8]
call fcn.1002f760
mov eax, dword [ebp - 0x18]
and eax, 0x40
je 0x1003b7d8
and dword [ebp - 0x18], 0xffffffbf
lea ecx, [ebp - 0x4bc]
call fcn.1002f760
mov ecx, dword [ebp - 0x18]
and ecx, 0x20
je 0x1003b7ef
and dword [ebp - 0x18], 0xffffffdf
lea ecx, [ebp - 0x4c0]
call fcn.1002f760
mov edx, dword [ebp - 0x18]
and edx, 0x10
je 0x1003b806
and dword [ebp - 0x18], 0xffffffef
lea ecx, [ebp - 0x4c4]
call fcn.1002f760
mov eax, dword [ebp - 0x18]
and eax, 8
je 0x1003b81d
and dword [ebp - 0x18], 0xfffffff7
lea ecx, [ebp - 0x4c8]
call fcn.1002f760
mov ecx, dword [ebp - 0x18]
and ecx, 4
je 0x1003b834
and dword [ebp - 0x18], 0xfffffffb
lea ecx, [ebp - 0x4cc]
call fcn.1002f760
mov edx, dword [ebp - 0x18]
and edx, 2
je 0x1003b84b
and dword [ebp - 0x18], 0xfffffffd
lea ecx, [ebp - 0x4d0]
call fcn.1002f760
mov eax, dword [ebp - 0x18]
and eax, 1
je 0x1003b862
and dword [ebp - 0x18], 0xfffffffe
lea ecx, [ebp - 0x4d4]
call fcn.1002f760
mov ecx, dword [ebp - 8]
and ecx, 0x80000000
je 0x1003b87f
and dword [ebp - 8], 0x7fffffff
lea ecx, [ebp - 0x4d8]
call fcn.1002f760
movzx edx, byte [ebp - 0x43]
test edx, edx
je 0x1003b8b5
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 0x1003c2c6
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 0x1003ba45
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 - 0x4dc]
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 - 0x4dc]
call fcn.1002f760
push 1
push 1
lea edx, [ebp - 0x4e8]
push edx
push ecx
mov eax, esp
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.1002ef20
lea ecx, [ebp - 0x4ec]
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
mov eax, dword [ebp - 0x14]
sub eax, 1
push eax
lea ecx, [ebp - 0x4e4]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
lea edx, [ebp - 0x4e0]
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 - 0x14]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x34
push ecx
mov ecx, dword [ebp - 4]
call fcn.10031d90
lea ecx, [ebp - 0x4e0]
call fcn.1002f760
lea ecx, [ebp - 0x4e4]
call fcn.1002f760
lea ecx, [ebp - 0x4e8]
call fcn.1002f760
lea ecx, [ebp - 0x4ec]
call fcn.1002f760
mov edx, dword [ebp - 0x1c]
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 - 0x4f0]
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 - 0x4f0]
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 0x1003c2c6
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 0x1003bbdc
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 - 0x4f4]
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 - 0x4f4]
call fcn.1002f760
push 1
push 1
lea eax, [ebp - 0x500]
push eax
push ecx
mov ecx, esp
push 1
push 1
push ecx
lea ecx, [ebp - 0xc]
call fcn.1002efb0
lea edx, [ebp - 0x504]
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 - 0x4fc]
push edx
mov ecx, dword [ebp - 4]
add ecx, 0x34
call fcn.1002efb0
push eax
lea eax, [ebp - 0x4f8]
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 - 0x4f8]
call fcn.1002f760
lea ecx, [ebp - 0x4fc]
call fcn.1002f760
lea ecx, [ebp - 0x500]
call fcn.1002f760
lea ecx, [ebp - 0x504]
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 - 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
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 0x1003c2c6
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 - 0x50c]
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 - 0x50c]
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 - 0x510]
push ecx
mov ecx, dword [ebp - 4]
call fcn.100376b0
push eax
lea ecx, [ebp - 0x24]
call fcn.1002f740
lea ecx, [ebp - 0x510]
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 0x1003bd4e
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 - 0x514]
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 - 0x514]
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 - 0x518]
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 - 0x518]
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 0x1003c2c6
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 0x1003bf3b
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x524]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
push 1
lea ecx, [ebp - 0x520]
push ecx
lea ecx, [ebp - 0x24]
call fcn.10048bf0
push eax
lea edx, [ebp - 0x51c]
push edx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.1002ec30
add esp, 8
mov byte [ebp - 0x44], al
lea ecx, [ebp - 0x51c]
call fcn.1002f760
lea ecx, [ebp - 0x520]
call fcn.1002f760
lea ecx, [ebp - 0x524]
call fcn.1002f760
movzx eax, byte [ebp - 0x44]
test eax, eax
je 0x1003be8f
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 - 0x528]
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 - 0x528]
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 0x1003c2c6
push 1
push ecx
mov esi, esp
push ecx
mov edi, esp
lea edx, [ebp + 8]
push edx
push 1
lea eax, [ebp - 0x52c]
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 - 0x52c]
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 - 0x530]
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 - 0x530]
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 0x1003c2c6
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 0x1003c04b
push 1
push 1
lea ecx, [ebp - 0x53c]
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 - 0x538]
push eax
lea ecx, [ebp - 0x24]
call fcn.1002ef20
push eax
lea ecx, [ebp - 0x534]
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 - 0x534]
call fcn.1002f760
lea ecx, [ebp - 0x538]
call fcn.1002f760
lea ecx, [ebp - 0x53c]
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 - 0x540]
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 - 0x540]
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 0x1003c2c6
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 0x1003c2ae
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x54c]
push eax
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
push 1
push 1
lea ecx, [ebp - 0x548]
push ecx
lea ecx, [ebp - 0x24]
call fcn.1002efb0
push eax
lea edx, [ebp - 0x544]
push edx
mov ecx, dword [ebp - 4]
call fcn.100475d0
push eax
call fcn.1002ec30
add esp, 8
mov byte [ebp - 0x45], al
lea ecx, [ebp - 0x544]
call fcn.1002f760
lea ecx, [ebp - 0x548]
call fcn.1002f760
lea ecx, [ebp - 0x54c]
call fcn.1002f760
movzx eax, byte [ebp - 0x45]
test eax, eax
je 0x1003c1d2
push 1
push 1
lea ecx, [ebp - 0x554]
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 - 0x550]
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 - 0x550]
call fcn.1002f760
lea ecx, [ebp - 0x554]
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 - 0x558]
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 - 0x558]
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 0x1003c2c6
push 1
push 1
lea edx, [ebp - 0x564]
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 - 0x560]
push ecx
lea ecx, [ebp - 0x24]
call fcn.1002ef20
push eax
lea edx, [ebp - 0x55c]
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 - 0x55c]
call fcn.1002f760
lea ecx, [ebp - 0x560]
call fcn.1002f760
lea ecx, [ebp - 0x564]
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 - 0x568]
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 - 0x568]
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 0x1003c2c6
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