Function at 0xce8aa0
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 0xce99dd
cmp byte [ebx + 0x1e], 0
jne 0xce99dd
call fcn.00cfd560
mov edi, eax
mov dword [esp + 0x18], edi
test edi, edi
je 0xce99dd
mov ecx, dword [edi + 0x40]
mov dword [esp + 0x34], 0xfff0bdc0
test ecx, ecx
je 0xce8b44
mov eax, dword [esi]
mov dword [esp + 0x34], 0
mov edx, dword [eax + 4]
test edx, edx
jle 0xce8b44
mov eax, dword [eax + 8]
add eax, 0xc
cmp dword [eax], ecx
je 0xce8b44
inc dword [esp + 0x34]
add eax, 0x10
cmp dword [esp + 0x34], edx
jl 0xce8b33
mov edx, edi
mov ecx, esi
call fcn.00d00bd0
test eax, eax
jne 0xce99dd
push ecx
mov edx, edi
mov ecx, esi
call fcn.00cfd500
add esp, 4
test eax, eax
jne 0xce99dd
mov ecx, dword [edi + 0xc]
shl ecx, 2
cmp byte [ebx + 0x1e], al
je 0xce8b81
mov edi, dword [ebp + 0xc]
xor ebx, ebx
xor ecx, ecx
jmp 0xce99e8
cmp byte [ebx + 0xe2], 0
je 0xce8bce
movzx eax, word [ebx + 0xe0]
cmp ecx, eax
jg 0xce8bce
mov edx, dword [ebx + 0xec]
mov dword [esp + 0x10], edx
test edx, edx
je 0xce8bce
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 0xce8bc6
mov dword [ebx + 0xe8], eax
mov ecx, edx
mov dword [esp + 0x38], ecx
jmp 0xce8bf3
push ecx
call fcn.00d2bcf0
mov edx, eax
add esp, 4
mov dword [esp + 0x10], edx
test edx, edx
jne 0xce8be5
mov byte [ebx + 0x1e], 1
mov ecx, edx
mov dword [esp + 0x38], ecx
test edx, edx
je 0xce99dd
xor eax, eax
cmp dword [edi + 0xc], eax
jle 0xce8c0d
nop word [eax + eax]
mov dword [ecx + eax*4], 0xffffffff
inc eax
cmp eax, dword [edi + 0xc]
jl 0xce8c00
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 0xce8c3b
nop dword [eax]
inc ecx
mov dword [esi + 0x44], ecx
mov eax, dword [eax + 0x20]
test eax, eax
jne 0xce8c30
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 0xce8dde
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.00d0bd70
test eax, eax
jne 0xce99dd
mov eax, dword [esp + 0x18]
xor edi, edi
cmp edi, dword [eax + 0xc]
jge 0xce8d71
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 0xce8d01
mov al, bl
sub esi, ecx
nop
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0xa3c740]
cmp al, byte [ecx + 0xa3c740]
jne 0xce8d01
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0xce8ce0
movzx eax, bl
movzx ecx, byte [eax + 0xa3c740]
movzx eax, byte [edx]
movzx eax, byte [eax + 0xa3c740]
sub ecx, eax
je 0xce8d3b
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 0xce8cd0
mov ebx, dword [esp + 0x40]
mov esi, dword [ebp + 8]
jmp 0xce8d68
mov ebx, dword [esp + 0x18]
mov esi, dword [ebp + 8]
cmp edi, dword [ebx + 8]
mov ebx, dword [esp + 0x40]
jne 0xce8d5d
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 0xce8dba
mov esi, dword [esi + 0xc]
mov edx, 0xa3f6d4
mov edi, dword [esi + ebx + 4]
mov ecx, edi
call fcn.00d28fb0
test eax, eax
je 0xce8da8
mov edx, 0xa3f6dc
mov ecx, edi
call fcn.00d28fb0
test eax, eax
je 0xce8da8
mov edx, 0xa3f6e4
mov ecx, edi
call fcn.00d28fb0
test eax, eax
jne 0xce8e12
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 0xce8c90
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 0xce8e92
nop dword [eax + eax]
mov eax, dword [eax + 0x20]
inc ecx
test eax, eax
jne 0xce8df0
test ecx, ecx
jle 0xce8e92
shl ecx, 2
cmp byte [ebx + 0x1e], al
je 0xce8e2f
mov edi, dword [ebp + 0xc]
xor ecx, ecx
jmp 0xce99e4
mov ecx, dword [esp + 0x14]
push edi
push 0xa40c6c
push ecx
call fcn.00d29110
mov edi, dword [ebp + 0xc]
add esp, 0xc
xor ecx, ecx
jmp 0xce99e4
cmp byte [ebx + 0xe2], 0
je 0xce8e76
movzx eax, word [ebx + 0xe0]
cmp ecx, eax
jg 0xce8e76
mov edx, dword [ebx + 0xec]
mov dword [esp + 0x1c], edx
test edx, edx
je 0xce8e76
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 0xce8e94
mov dword [ebx + 0xe8], eax
jmp 0xce8e94
push ecx
call fcn.00d2bcf0
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0xce8e94
mov byte [ebx + 0x1e], 1
jmp 0xce99dd
xor edx, edx
mov edi, dword [edi + 0x14]
test edi, edi
je 0xce8ef6
mov ecx, dword [esp + 0x28]
mov eax, edx
mov dword [esp + 0x40], eax
test ecx, ecx
je 0xce8eb1
inc dword [esi + 0x48]
mov ebx, dword [esi + 0x48]
jmp 0xce8ee6
mov esi, dword [edi + 4]
xor ebx, ebx
xor edx, edx
test esi, esi
jle 0xce8ee2
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 0xce8f74
inc edx
add ecx, 4
cmp edx, esi
jl 0xce8ec0
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 0xce8ea5
mov esi, dword [esi + 0xc]
mov ebx, dword [esp + 0x14]
test esi, esi
jne 0xce8f15
mov ecx, dword [ebx]
call fcn.00d18940
mov esi, eax
mov dword [ebx + 0xc], esi
test esi, esi
je 0xce99dd
cmp byte [ebx + 0x13], 0
jne 0xce8f1f
mov byte [esi + 0x6d], 1
mov edi, dword [esp + 0x34]
mov ecx, ebx
mov edx, edi
call fcn.00cfe3f0
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 0xce8f8b
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.00ce84e0
add esp, 0x14
xor edi, edi
mov dword [esp + 0x48], edi
jmp 0xce99e0
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 0xce8ee6
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 0xce8fa9
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.00d0bd70
test eax, eax
jne 0xce99e0
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0xce8fe2
mov ecx, esi
call fcn.00d18760
test eax, eax
jne 0xce901a
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.00ce1ba0
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0xce99e0
mov al, byte [ebx + 6]
mov edi, dword [esi + 0xc]
mov byte [esp + 0xf], al
cmp dword [esi + 0x10], edi
jg 0xce9054
mov ecx, esi
call fcn.00d18760
test eax, eax
jne 0xce908c
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 0xce90ed
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 0xce90b5
mov ecx, esi
call fcn.00d18760
test eax, eax
jne 0xce90ed
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.00ce1590
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x14]
test byte [eax + 0xc], 0x80
je 0xce9161
cmp dword [ebx + 0x1a4], 0
jne 0xce9161
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 0xce9129
mov ecx, esi
call fcn.00d18760
test eax, eax
jne 0xce9161
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 0xce9181
mov edx, dword [esp + 0x24]
mov ecx, ebx
push 0x27
push edi
push dword [esp + 0x3c]
call fcn.00cfa010
add esp, 0xc
cmp dword [ebp + 0x10], 5
jne 0xce91e8
mov ecx, 1
mov dword [esp + 0x20], ecx
mov edi, dword [edi + 0x14]
mov dword [esp + 0x2c], edi
test edi, edi
je 0xce932c
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 0xce91bc
cmp dword [eax], ecx
jle 0xce930c
mov edx, edi
mov ecx, ebx
call fcn.00cfe170
mov ebx, eax
mov eax, dword [edi + 0x14]
mov edi, dword [esi + 0xc]
mov dword [esp + 0x60], eax
cmp dword [esi + 0x10], edi
jg 0xce921d
mov ecx, esi
call fcn.00d18760
test eax, eax
je 0xce921d
mov edi, 1
jmp 0xce9255
mov eax, dword [edi + 0x14]
xor ecx, ecx
mov dword [esp + 0x20], ecx
test eax, eax
je 0xce9190
cmp byte [eax + 0x18], 5
je 0xce920b
mov eax, dword [eax + 0x20]
test eax, eax
jne 0xce91f5
mov edi, dword [edi + 0x14]
mov dword [esp + 0x2c], edi
jmp 0xce919f
mov edi, dword [edi + 0x14]
mov ecx, 1
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], edi
jmp 0xce919f
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 0xce929b
cmp byte [ecx + 0x1e], 0
jne 0xce929b
test edi, edi
jns 0xce926c
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.00d17ff0
mov ecx, dword [esp + 0x24]
add esp, 4
test ebx, ebx
jne 0xce9292
mov dword [edi + 0x10], ebx
mov byte [edi + 1], bl
jmp 0xce9308
mov dword [edi + 0x10], ebx
mov byte [edi + 1], 0xfa
jmp 0xce9308
test ebx, ebx
je 0xce9304
test ecx, ecx
je 0xce92e1
cmp ebx, dword [ecx + 0xf0]
jb 0xce92e1
cmp ebx, dword [ecx + 0xf4]
jae 0xce92e1
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 0xce9308
push ebx
call fcn.00d2b990
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 0xce9308
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 0xce91b0
cmp byte [esp + 0xf], 0
mov edi, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
je 0xce93fb
cmp eax, edi
jg 0xce9353
mov ecx, esi
call fcn.00d18760
test eax, eax
je 0xce9353
mov edi, 1
jmp 0xce938b
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 0xce93ac
mov ecx, esi
call fcn.00d18760
test eax, eax
je 0xce93ac
mov dword [esp + 0x34], 1
jmp 0xce93e4
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 0xce9453
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
jmp 0xce9453
mov ebx, edi
mov dword [esp + 0x34], ebx
cmp eax, ebx
jg 0xce941b
mov ecx, esi
call fcn.00d18760
test eax, eax
je 0xce941b
mov ebx, 1
mov dword [esp + 0x34], ebx
jmp 0xce9453
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 0xce9466
mov ecx, esi
call fcn.00d18760
test eax, eax
jne 0xce949a
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 0xce9521
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov edx, dword [esp + 0x4c]
push edi
call fcn.00d065d0
add esp, 4
cmp eax, edi
je 0xce94d6
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0xce94d6
push edi
push eax
mov edx, 0xf
call fcn.00d185a0
add esp, 8
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0xce94e9
mov ecx, esi
call fcn.00d18760
test eax, eax
jne 0xce9521
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 0xce964a
cmp edi, dword [eax + 8]
jne 0xce9589
mov ebx, dword [esi + 0xc]
cmp dword [esi + 0x10], ebx
jg 0xce954c
mov ecx, esi
call fcn.00d18760
test eax, eax
jne 0xce9638
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 0xce9638
mov eax, dword [esp + 0x38]
mov eax, dword [eax + edi*4]
test eax, eax
jns 0xce95fd
mov ebx, dword [esi + 0xc]
cmp dword [esi + 0x10], ebx
jg 0xce95a7
mov ecx, esi
call fcn.00d18760
test eax, eax
jne 0xce95ea
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.00ce9ad0
jmp 0xce9635
mov edx, dword [esp + 0x3c]
mov ecx, esi
push edx
mov edx, dword [esp + 0x1c]
push edi
call fcn.00ce9ad0
jmp 0xce9635
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.00d065d0
add esp, 4
cmp eax, ebx
je 0xce9638
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0xce9638
push ebx
push eax
mov edx, 0xf
call fcn.00d185a0
add esp, 8
mov eax, dword [esp + 0x18]
inc edi
inc dword [esp + 0x3c]
cmp edi, dword [eax + 0xc]
jl 0xce9530
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.00cf7d70
mov edi, dword [esi + 0xc]
add esp, 0x20
cmp dword [esi + 0x10], edi
jg 0xce9698
mov ecx, esi
call fcn.00d18760
test eax, eax
je 0xce9698
mov edi, 1
jmp 0xce96d0
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.00cfce20
add esp, 8
cmp dword [esp + 0x28], 0
je 0xce9742
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x60], ecx
cmp dword [esi + 0x10], ecx
jg 0xce970a
mov ecx, esi
call fcn.00d18760
test eax, eax
jne 0xce9742
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 0xce9753
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.00cf7b00
mov eax, dword [esp + 0x5c]
add esp, 0x18
test byte [eax + 0xc], 0x80
je 0xce97d5
cmp dword [edi + 0x1a4], 0
jne 0xce97d5
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0xce979d
mov ecx, esi
call fcn.00d18760
test eax, eax
jne 0xce97d5
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 0xce97e8
mov ecx, esi
call fcn.00d18760
test eax, eax
jne 0xce981c
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 0xce982d
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 0xce98c3
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 0xce9859
cmp dword [edx], ecx
jle 0xce98b0
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0xce9870
mov ecx, esi
call fcn.00d18760
mov edx, dword [esp + 0x5c]
test eax, eax
jne 0xce98a8
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 0xce9851
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0xce98d6
mov ecx, esi
call fcn.00d18760
test eax, eax
jne 0xce990e
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 0xce99dd
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x1a4], 0
jne 0xce99dd
cmp byte [eax + 0x13], 0
jne 0xce99dd
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0xce994a
mov ecx, esi
call fcn.00d18760
test eax, eax
jne 0xce9982
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.00d171d0
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0xce99dd
mov edi, dword [esi + 0x28]
xor esi, esi
mov eax, dword [edi + 0x10]
test eax, eax
je 0xce99ab
mov eax, dword [eax + 0x48]
test eax, eax
js 0xce99be
jmp 0xce99b0
mov eax, 0x3b9aca00
cmp byte [esi + 0xa40c80], 0
je 0xce99be
inc esi
cmp esi, eax
jle 0xce99b0
mov ecx, edi
call fcn.00d19b80
mov dword [edi + 0x14], 0xa40c80
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 0xce9a1a
test ecx, ecx
je 0xce9a1a
cmp ecx, dword [esi + 0xf0]
jb 0xce9a1a
cmp ecx, dword [esi + 0xf4]
jae 0xce9a1a
mov eax, dword [esi + 0xec]
mov dword [ecx], eax
dec dword [esi + 0xe4]
mov dword [esi + 0xec], ecx
jmp 0xce9a27
push ecx
call fcn.00d2b990
add esp, 4
test esi, esi
je 0xce9a51
test ebx, ebx
je 0xce9a51
cmp ebx, dword [esi + 0xf0]
jb 0xce9a51
cmp ebx, dword [esi + 0xf4]
jae 0xce9a51
mov eax, dword [esi + 0xec]
mov dword [ebx], eax
dec dword [esi + 0xe4]
mov dword [esi + 0xec], ebx
jmp 0xce9a5a
push ebx
call fcn.00d2b990
add esp, 4
mov edx, dword [esp + 0x48]
mov ecx, esi
call fcn.00cfeb40
mov edx, dword [ebp + 8]
mov ecx, esi
call fcn.00d09410
test edi, edi
je 0xce9abb
mov edx, edi
mov ecx, esi
call fcn.00d0abf0
cmp word [edi + 2], 0
jl 0xce9abb
test esi, esi
je 0xce9ab2
cmp edi, dword [esi + 0xf0]
jb 0xce9ab2
cmp edi, dword [esi + 0xf4]
jae 0xce9ab2
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.00d2b990
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret