Function at 0xca8aa0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
push ebx
push esi
mov esi, ecx
mov dword [esp + 0x18], 0
mov eax, edx
mov dword [esp + 0x10], esi
push edi
mov dword [esp + 0x48], eax
cmp dword [esi + 0x40], 0
mov ebx, dword [esi]
mov dword [esp + 0x10], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x44], ebx
jne 0xca99dd
cmp byte [ebx + 0x1e], 0
jne 0xca99dd
call fcn.00cbd560
mov edi, eax
mov dword [esp + 0x18], edi
test edi, edi
je 0xca99dd
mov ecx, dword [edi + 0x40]
mov dword [esp + 0x34], 0xfff0bdc0
test ecx, ecx
je 0xca8b44
mov eax, dword [esi]
mov dword [esp + 0x34], 0
mov edx, dword [eax + 4]
test edx, edx
jle 0xca8b44
mov eax, dword [eax + 8]
add eax, 0xc
cmp dword [eax], ecx
je 0xca8b44
inc dword [esp + 0x34]
add eax, 0x10
cmp dword [esp + 0x34], edx
jl 0xca8b33
mov edx, edi
mov ecx, esi
call fcn.00cc0bd0
test eax, eax
jne 0xca99dd
push ecx
mov edx, edi
mov ecx, esi
call fcn.00cbd500
add esp, 4
test eax, eax
jne 0xca99dd
mov ecx, dword [edi + 0xc]
shl ecx, 2
cmp byte [ebx + 0x1e], al
je 0xca8b81
mov edi, dword [ebp + 0xc]
xor ebx, ebx
xor ecx, ecx
jmp 0xca99e8
cmp byte [ebx + 0xe2], 0
je 0xca8bce
movzx eax, word [ebx + 0xe0]
cmp ecx, eax
jg 0xca8bce
mov edx, dword [ebx + 0xec]
mov dword [esp + 0x10], edx
test edx, edx
je 0xca8bce
mov eax, dword [edx]
mov dword [ebx + 0xec], eax
mov eax, dword [ebx + 0xe4]
inc eax
mov dword [ebx + 0xe4], eax
cmp eax, dword [ebx + 0xe8]
jle 0xca8bc6
mov dword [ebx + 0xe8], eax
mov ecx, edx
mov dword [esp + 0x38], ecx
jmp 0xca8bf3
push ecx
call fcn.00cebcf0
mov edx, eax
add esp, 4
mov dword [esp + 0x10], edx
test edx, edx
jne 0xca8be5
mov byte [ebx + 0x1e], 1
mov ecx, edx
mov dword [esp + 0x38], ecx
test edx, edx
je 0xca99dd
xor eax, eax
cmp dword [edi + 0xc], eax
jle 0xca8c0d
nop word [eax + eax]
mov dword [ecx + eax*4], 0xffffffff
inc eax
cmp eax, dword [edi + 0xc]
jl 0xca8c00
mov edx, dword [esp + 0x48]
mov eax, dword [esi + 0x44]
mov dword [esp + 0x24], eax
mov dword [edx + 0x20], eax
mov ecx, dword [esi + 0x44]
inc ecx
mov dword [esi + 0x44], ecx
mov eax, dword [edi + 0x14]
test eax, eax
je 0xca8c3b
nop dword [eax]
inc ecx
mov dword [esi + 0x44], ecx
mov eax, dword [eax + 0x20]
test eax, eax
jne 0xca8c30
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
movlpd qword [esp + 0x6c], xmm0
movlpd qword [esp + 0x74], xmm0
movlpd qword [esp + 0x7c], xmm0
cmp dword [eax], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], edx
mov dword [esp + 0x28], 0
mov dword [esp + 0x3c], 0
jle 0xca8dde
xor ebx, ebx
mov esi, eax
mov dword [esp + 0x40], ebx
nop word [eax + eax]
mov edx, dword [esi + 0xc]
lea ecx, [esp + 0x64]
mov edx, dword [edx + ebx]
call fcn.00ccbd70
test eax, eax
jne 0xca99dd
mov eax, dword [esp + 0x18]
xor edi, edi
cmp edi, dword [eax + 0xc]
jge 0xca8d71
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + ebx + 4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], ecx
mov eax, dword [eax + 0x10]
mov dword [esp + 0x58], eax
nop dword [eax]
mov esi, dword [eax]
mov edx, ecx
mov bl, byte [esi]
test bl, bl
je 0xca8d01
mov al, bl
sub esi, ecx
nop
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x9fc740]
cmp al, byte [ecx + 0x9fc740]
jne 0xca8d01
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0xca8ce0
movzx eax, bl
movzx ecx, byte [eax + 0x9fc740]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x9fc740]
sub ecx, eax
je 0xca8d3b
mov ecx, dword [esp + 0x18]
inc edi
mov eax, dword [esp + 0x58]
add eax, 0x18
mov dword [esp + 0x58], eax
cmp edi, dword [ecx + 0xc]
mov ecx, dword [esp + 0x54]
jl 0xca8cd0
mov ebx, dword [esp + 0x40]
mov esi, dword [ebp + 8]
jmp 0xca8d68
mov ebx, dword [esp + 0x18]
mov esi, dword [ebp + 8]
cmp edi, dword [ebx + 8]
mov ebx, dword [esp + 0x40]
jne 0xca8d5d
mov eax, dword [esi + 0xc]
mov dword [esp + 0x28], 1
mov eax, dword [ebx + eax]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
mov dword [ecx + edi*4], eax
mov eax, dword [esp + 0x18]
cmp edi, dword [eax + 0xc]
jl 0xca8dba
mov esi, dword [esi + 0xc]
mov edx, 0x9ff6d4
mov edi, dword [esi + ebx + 4]
mov ecx, edi
call fcn.00ce8fb0
test eax, eax
je 0xca8da8
mov edx, 0x9ff6dc
mov ecx, edi
call fcn.00ce8fb0
test eax, eax
je 0xca8da8
mov edx, 0x9ff6e4
mov ecx, edi
call fcn.00ce8fb0
test eax, eax
jne 0xca8e12
mov eax, dword [esi + ebx]
mov esi, dword [ebp + 8]
mov dword [esp + 0x28], 1
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x3c]
add ebx, 0x14
inc eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], eax
cmp eax, dword [esi]
jl 0xca8c90
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x14]
xor ecx, ecx
test eax, eax
je 0xca8e92
nop dword [eax + eax]
mov eax, dword [eax + 0x20]
inc ecx
test eax, eax
jne 0xca8df0
test ecx, ecx
jle 0xca8e92
shl ecx, 2
cmp byte [ebx + 0x1e], al
je 0xca8e2f
mov edi, dword [ebp + 0xc]
xor ecx, ecx
jmp 0xca99e4
mov ecx, dword [esp + 0x14]
push edi
push 0xa00c6c
push ecx
call fcn.00ce9110
mov edi, dword [ebp + 0xc]
add esp, 0xc
xor ecx, ecx
jmp 0xca99e4
cmp byte [ebx + 0xe2], 0
je 0xca8e76
movzx eax, word [ebx + 0xe0]
cmp ecx, eax
jg 0xca8e76
mov edx, dword [ebx + 0xec]
mov dword [esp + 0x1c], edx
test edx, edx
je 0xca8e76
mov eax, dword [edx]
mov dword [ebx + 0xec], eax
mov eax, dword [ebx + 0xe4]
inc eax
mov dword [ebx + 0xe4], eax
cmp eax, dword [ebx + 0xe8]
jle 0xca8e94
mov dword [ebx + 0xe8], eax
jmp 0xca8e94
push ecx
call fcn.00cebcf0
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0xca8e94
mov byte [ebx + 0x1e], 1
jmp 0xca99dd
xor edx, edx
mov edi, dword [edi + 0x14]
test edi, edi
je 0xca8ef6
mov ecx, dword [esp + 0x28]
mov eax, edx
mov dword [esp + 0x40], eax
test ecx, ecx
je 0xca8eb1
inc dword [esi + 0x48]
mov ebx, dword [esi + 0x48]
jmp 0xca8ee6
mov esi, dword [edi + 4]
xor ebx, ebx
xor edx, edx
test esi, esi
jle 0xca8ee2
mov ecx, dword [edi + 8]
nop
mov esi, dword [esp + 0x10]
mov eax, dword [ecx]
cmp dword [esi + eax*4], ebx
mov esi, dword [edi + 4]
jge 0xca8f74
inc edx
add ecx, 4
cmp edx, esi
jl 0xca8ec0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
mov dword [eax], ebx
add eax, 4
mov edi, dword [edi + 0x20]
mov dword [esp + 0x40], eax
test edi, edi
jne 0xca8ea5
mov esi, dword [esi + 0xc]
mov ebx, dword [esp + 0x14]
test esi, esi
jne 0xca8f15
mov ecx, dword [ebx]
call fcn.00cd8940
mov esi, eax
mov dword [ebx + 0xc], esi
test esi, esi
je 0xca99dd
cmp byte [ebx + 0x13], 0
jne 0xca8f1f
mov byte [esi + 0x6d], 1
mov edi, dword [esp + 0x34]
mov ecx, ebx
mov edx, edi
call fcn.00cbe3f0
mov eax, dword [ebx + 0x150]
mov edx, dword [esp + 0x18]
bts eax, edi
or byte [ebx + 0x158], 1
mov dword [ebx + 0x150], eax
test byte [edx + 0x22], 0x10
je 0xca8f8b
push dword [ebp + 0xc]
mov ecx, ebx
push dword [esp + 0x14]
push dword [esp + 0x54]
push dword [ebp + 8]
push edx
mov edx, dword [esp + 0x5c]
call fcn.00ca84e0
add esp, 0x14
xor edi, edi
mov dword [esp + 0x48], edi
jmp 0xca99e0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
inc dword [esi + 0x48]
mov ebx, dword [esi + 0x48]
jmp 0xca8ee6
mov ecx, dword [ebx + 0x48]
inc ecx
cmp dword [esp + 0x28], 0
mov dword [esp + 0x40], ecx
mov dword [ebx + 0x48], ecx
mov dword [esp + 0x30], ecx
je 0xca8fa9
inc ecx
mov dword [esp + 0x40], ecx
mov dword [ebx + 0x48], ecx
mov edi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov dword [esp + 0x3c], eax
mov eax, dword [edx + 0xc]
mov edx, edi
inc eax
add eax, ecx
lea ecx, [esp + 0x64]
mov dword [ebx + 0x48], eax
call fcn.00ccbd70
test eax, eax
jne 0xca99e0
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0xca8fe2
mov ecx, esi
call fcn.00cd8760
test eax, eax
jne 0xca901a
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0xa
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edi, dword [ebp + 0xc]
mov ecx, ebx
mov edx, dword [esp + 0x48]
push 4
push 0
push edi
call fcn.00ca1ba0
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0xca99e0
mov al, byte [ebx + 6]
mov edi, dword [esi + 0xc]
mov byte [esp + 0xf], al
cmp dword [esi + 0x10], edi
jg 0xca9054
mov ecx, esi
call fcn.00cd8760
test eax, eax
jne 0xca908c
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x3c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
cmp byte [esp + 0xf], 0
jne 0xca90ed
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x48]
inc eax
mov dword [ecx + 0x48], eax
mov edi, dword [esi + 0xc]
mov dword [esp + 0x5c], eax
cmp dword [esi + 0x10], edi
jg 0xca90b5
mov ecx, esi
call fcn.00cd8760
test eax, eax
jne 0xca90ed
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x5c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x68
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov ecx, ebx
call fcn.00ca1590
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x14]
test byte [eax + 0xc], 0x80
je 0xca9161
cmp dword [ebx + 0x1a4], 0
jne 0xca9161
mov eax, dword [ebx + 0x48]
inc eax
mov dword [ebx + 0x48], eax
mov edi, dword [esi + 0xc]
mov dword [esp + 0x50], eax
cmp dword [esi + 0x10], edi
jg 0xca9129
mov ecx, esi
call fcn.00cd8760
test eax, eax
jne 0xca9161
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x50]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
cmp byte [esp + 0xf], 0
mov edi, dword [esp + 0x18]
jne 0xca9181
mov edx, dword [esp + 0x24]
mov ecx, ebx
push 0x27
push edi
push dword [esp + 0x3c]
call fcn.00cba010
add esp, 0xc
cmp dword [ebp + 0x10], 5
jne 0xca91e8
mov ecx, 1
mov dword [esp + 0x20], ecx
mov edi, dword [edi + 0x14]
mov dword [esp + 0x2c], edi
test edi, edi
je 0xca932c
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x58], eax
test ecx, ecx
jne 0xca91bc
cmp dword [eax], ecx
jle 0xca930c
mov edx, edi
mov ecx, ebx
call fcn.00cbe170
mov ebx, eax
mov eax, dword [edi + 0x14]
mov edi, dword [esi + 0xc]
mov dword [esp + 0x60], eax
cmp dword [esi + 0x10], edi
jg 0xca921d
mov ecx, esi
call fcn.00cd8760
test eax, eax
je 0xca921d
mov edi, 1
jmp 0xca9255
mov eax, dword [edi + 0x14]
xor ecx, ecx
mov dword [esp + 0x20], ecx
test eax, eax
je 0xca9190
cmp byte [eax + 0x18], 5
je 0xca920b
mov eax, dword [eax + 0x20]
test eax, eax
jne 0xca91f5
mov edi, dword [edi + 0x14]
mov dword [esp + 0x2c], edi
jmp 0xca919f
mov edi, dword [edi + 0x14]
mov ecx, 1
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], edi
jmp 0xca919f
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x60]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x34]
mov word [eax + ecx*4], 0x27
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edx, dword [esi + 0x14]
mov ecx, dword [esi]
test edx, edx
je 0xca929b
cmp byte [ecx + 0x1e], 0
jne 0xca929b
test edi, edi
jns 0xca926c
mov edi, dword [esi + 0xc]
dec edi
lea eax, [edi + edi*4]
push dword [edx + eax*4 + 0x10]
lea edi, [edx + eax*4]
movsx edx, byte [edi + 1]
call fcn.00cd7ff0
mov ecx, dword [esp + 0x24]
add esp, 4
test ebx, ebx
jne 0xca9292
mov dword [edi + 0x10], ebx
mov byte [edi + 1], bl
jmp 0xca9308
mov dword [edi + 0x10], ebx
mov byte [edi + 1], 0xfa
jmp 0xca9308
test ebx, ebx
je 0xca9304
test ecx, ecx
je 0xca92e1
cmp ebx, dword [ecx + 0xf0]
jb 0xca92e1
cmp ebx, dword [ecx + 0xf4]
jae 0xca92e1
mov eax, dword [ecx + 0xec]
mov edx, dword [esp + 0x10]
mov dword [ebx], eax
dec dword [ecx + 0xe4]
mov dword [ecx + 0xec], ebx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x38], edx
jmp 0xca9308
push ebx
call fcn.00ceb990
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x38], eax
jmp 0xca9308
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x2c]
mov edi, dword [edi + 0x20]
add dword [esp + 0x58], 4
inc dword [esp + 0x54]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x2c], edi
test edi, edi
jne 0xca91b0
cmp byte [esp + 0xf], 0
mov edi, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
je 0xca93fb
cmp eax, edi
jg 0xca9353
mov ecx, esi
call fcn.00cd8760
test eax, eax
je 0xca9353
mov edi, 1
jmp 0xca938b
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x4a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov ebx, dword [esi + 0xc]
mov dword [esp + 0x34], ebx
cmp dword [esi + 0x10], ebx
jg 0xca93ac
mov ecx, esi
call fcn.00cd8760
test eax, eax
je 0xca93ac
mov dword [esp + 0x34], 1
jmp 0xca93e4
mov eax, dword [esi + 0x14]
lea ecx, [ebx + ebx*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 1
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edx, dword [esi + 0xc]
mov ebx, dword [esp + 0x34]
cmp edx, edi
jle 0xca9453
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
jmp 0xca9453
mov ebx, edi
mov dword [esp + 0x34], ebx
cmp eax, ebx
jg 0xca941b
mov ecx, esi
call fcn.00cd8760
test eax, eax
je 0xca941b
mov ebx, 1
mov dword [esp + 0x34], ebx
jmp 0xca9453
mov eax, dword [esi + 0x14]
lea ecx, [ebx + ebx*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x5c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x69
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0xca9466
mov ecx, esi
call fcn.00cd8760
test eax, eax
jne 0xca949a
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x33
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
cmp dword [esp + 0x28], 0
je 0xca9521
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov edx, dword [esp + 0x4c]
push edi
call fcn.00cc65d0
add esp, 4
cmp eax, edi
je 0xca94d6
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0xca94d6
push edi
push eax
mov edx, 0xf
call fcn.00cd85a0
add esp, 8
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0xca94e9
mov ecx, esi
call fcn.00cd8760
test eax, eax
jne 0xca9521
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x40]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov eax, dword [esp + 0x18]
xor edi, edi
cmp dword [eax + 0xc], edi
jle 0xca964a
cmp edi, dword [eax + 8]
jne 0xca9589
mov ebx, dword [esi + 0xc]
cmp dword [esi + 0x10], ebx
jg 0xca954c
mov ecx, esi
call fcn.00cd8760
test eax, eax
jne 0xca9638
mov eax, dword [esi + 0x14]
lea ecx, [ebx + ebx*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x3c]
mov word [eax + ecx*4], 0xa
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
jmp 0xca9638
mov eax, dword [esp + 0x38]
mov eax, dword [eax + edi*4]
test eax, eax
jns 0xca95fd
mov ebx, dword [esi + 0xc]
cmp dword [esi + 0x10], ebx
jg 0xca95a7
mov ecx, esi
call fcn.00cd8760
test eax, eax
jne 0xca95ea
mov eax, dword [esi + 0x14]
lea ecx, [ebx + ebx*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x3c]
mov dword [eax + ecx*4 + 0xc], edx
push edx
mov edx, dword [esp + 0x1c]
mov word [eax + ecx*4], 0x1c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, esi
push edi
mov byte [esi + 0x6e], 0
call fcn.00ca9ad0
jmp 0xca9635
mov edx, dword [esp + 0x3c]
mov ecx, esi
push edx
mov edx, dword [esp + 0x1c]
push edi
call fcn.00ca9ad0
jmp 0xca9635
mov ebx, dword [esp + 0x3c]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 8]
push ebx
mov eax, dword [eax + 0xc]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
call fcn.00cc65d0
add esp, 4
cmp eax, ebx
je 0xca9638
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0xca9638
push ebx
push eax
mov edx, 0xf
call fcn.00cd85a0
add esp, 8
mov eax, dword [esp + 0x18]
inc edi
inc dword [esp + 0x3c]
cmp edi, dword [eax + 0xc]
jl 0xca9530
mov ebx, dword [esp + 0x34]
xor eax, eax
cmp dword [esp + 0x28], eax
mov edx, dword [esp + 0x18]
cmovne eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
push 0
push ebx
push dword [ebp + 0x10]
push 1
push eax
push dword [esp + 0x30]
push dword [esp + 0x58]
push dword [esp + 0x40]
call fcn.00cb7d70
mov edi, dword [esi + 0xc]
add esp, 0x20
cmp dword [esi + 0x10], edi
jg 0xca9698
mov ecx, esi
call fcn.00cd8760
test eax, eax
je 0xca9698
mov edi, 1
jmp 0xca96d0
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x33
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
push dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
push dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
call fcn.00cbce20
add esp, 8
cmp dword [esp + 0x28], 0
je 0xca9742
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x60], ecx
cmp dword [esi + 0x10], ecx
jg 0xca970a
mov ecx, esi
call fcn.00cd8760
test eax, eax
jne 0xca9742
mov ecx, dword [esp + 0x60]
mov eax, dword [esi + 0x14]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov word [eax + ecx*4], 0x38
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edx, dword [esi + 0xc]
cmp edx, edi
jle 0xca9753
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
mov edi, dword [esp + 0x14]
mov ecx, edi
mov edx, dword [esp + 0x18]
push 0
push 0
push 1
push dword [esp + 0x28]
push dword [esp + 0x50]
push dword [esp + 0x38]
call fcn.00cb7b00
mov eax, dword [esp + 0x5c]
add esp, 0x18
test byte [eax + 0xc], 0x80
je 0xca97d5
cmp dword [edi + 0x1a4], 0
jne 0xca97d5
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0xca979d
mov ecx, esi
call fcn.00cd8760
test eax, eax
jne 0xca97d5
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x50]
mov word [eax + ecx*4], 0x14
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0xca97e8
mov ecx, esi
call fcn.00cd8760
test eax, eax
jne 0xca981c
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 1
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edx, dword [esi + 0xc]
cmp edx, ebx
jle 0xca982d
mov eax, dword [esi + 0x14]
lea ecx, [ebx + ebx*4]
mov dword [eax + ecx*4 + 8], edx
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 0x14]
test ebx, ebx
je 0xca98c3
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
inc eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], edx
test ecx, ecx
jne 0xca9859
cmp dword [edx], ecx
jle 0xca98b0
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0xca9870
mov ecx, esi
call fcn.00cd8760
mov edx, dword [esp + 0x5c]
test eax, eax
jne 0xca98a8
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edi, dword [esp + 0x4c]
mov word [eax + ecx*4], 0x2a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x4c]
mov ebx, dword [ebx + 0x20]
add edx, 4
inc eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x4c], eax
test ebx, ebx
jne 0xca9851
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0xca98d6
mov ecx, esi
call fcn.00cd8760
test eax, eax
jne 0xca990e
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x24]
mov word [eax + ecx*4], 0x2a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov eax, dword [esp + 0x44]
test byte [eax + 0xc], 0x80
je 0xca99dd
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x1a4], 0
jne 0xca99dd
cmp byte [eax + 0x13], 0
jne 0xca99dd
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0xca994a
mov ecx, esi
call fcn.00cd8760
test eax, eax
jne 0xca9982
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [esp + 0x50]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edx, 1
mov ecx, esi
call fcn.00cd71d0
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0xca99dd
mov edi, dword [esi + 0x28]
xor esi, esi
mov eax, dword [edi + 0x10]
test eax, eax
je 0xca99ab
mov eax, dword [eax + 0x48]
test eax, eax
js 0xca99be
jmp 0xca99b0
mov eax, 0x3b9aca00
cmp byte [esi + 0xa00c80], 0
je 0xca99be
inc esi
cmp esi, eax
jle 0xca99b0
mov ecx, edi
call fcn.00cd9b80
mov dword [edi + 0x14], 0xa00c80
mov dword [edi + 0x20], 0
mov dword [edi + 0x18], esi
mov dword [edi + 0x1c], 0x1030a02
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x44]
test esi, esi
je 0xca9a1a
test ecx, ecx
je 0xca9a1a
cmp ecx, dword [esi + 0xf0]
jb 0xca9a1a
cmp ecx, dword [esi + 0xf4]
jae 0xca9a1a
mov eax, dword [esi + 0xec]
mov dword [ecx], eax
dec dword [esi + 0xe4]
mov dword [esi + 0xec], ecx
jmp 0xca9a27
push ecx
call fcn.00ceb990
add esp, 4
test esi, esi
je 0xca9a51
test ebx, ebx
je 0xca9a51
cmp ebx, dword [esi + 0xf0]
jb 0xca9a51
cmp ebx, dword [esi + 0xf4]
jae 0xca9a51
mov eax, dword [esi + 0xec]
mov dword [ebx], eax
dec dword [esi + 0xe4]
mov dword [esi + 0xec], ebx
jmp 0xca9a5a
push ebx
call fcn.00ceb990
add esp, 4
mov edx, dword [esp + 0x48]
mov ecx, esi
call fcn.00cbeb40
mov edx, dword [ebp + 8]
mov ecx, esi
call fcn.00cc9410
test edi, edi
je 0xca9abb
mov edx, edi
mov ecx, esi
call fcn.00ccabf0
cmp word [edi + 2], 0
jl 0xca9abb
test esi, esi
je 0xca9ab2
cmp edi, dword [esi + 0xf0]
jb 0xca9ab2
cmp edi, dword [esi + 0xf4]
jae 0xca9ab2
mov eax, dword [esi + 0xec]
mov dword [edi], eax
dec dword [esi + 0xe4]
mov dword [esi + 0xec], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
call fcn.00ceb990
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret