Function at 0x4fce08
Capabilities:
Enumerate pe sections

Disassembly:
push ebx
push esi
add esp, 0xfffffff0
mov ebx, eax
mov dword [ebx + 0x1f4], 0xffffffff
movzx eax, word [ebx + 0x1a]
call fcn.0052d760
mov dword [ebx + 0x110], eax
movzx eax, byte [ebx + 0x12]
movzx edx, word [ebx + 0x1a]
call fcn.0052d1ec
mov esi, eax
test esi, esi
je case.0x4fce58.12
mov eax, dword [ebx + 0x17c]
add eax, 0xfffffff6
cmp eax, 0x18
ja case.0x4fce58.12
movzx eax, byte [eax + 0x4fce5f]
jmp dword [eax*4 + 0x4fce78]
movzx eax, word [esi + 2]
movzx edx, word [esi + 4]
add eax, edx
movzx edx, byte [ebx + 0x10]
imul edx
movzx edx, word [esi]
add eax, edx
mov dword [ebx + 0x1ec], eax
movzx edx, word [esi + 2]
add edx, eax
dec edx
mov dword [ebx + 0x1f0], edx
movzx eax, word [esi + 6]
mov dword [ebx + 0x20c], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x210], eax
movzx eax, word [esi + 2]
mov dword [ebx + 0x230], eax
push 0
push 1
movzx edx, byte [ebx + 0x10]
xor ecx, ecx
mov eax, ebx
call fcn.0052ed98
jmp case.0x4fce58.12
movzx eax, word [esi + 0xc]
movzx edx, word [esi + 0xe]
add eax, edx
movzx edx, byte [ebx + 0x10]
imul edx
movzx edx, word [esi + 0xa]
add eax, edx
mov dword [ebx + 0x1ec], eax
movzx edx, word [esi + 0xc]
add edx, eax
dec edx
mov dword [ebx + 0x1f0], edx
movzx eax, word [esi + 0x10]
mov dword [ebx + 0x20c], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x210], eax
movzx eax, word [esi + 0x12]
mov dword [ebx + 0x214], eax
xor eax, eax
mov dword [ebx + 0x218], eax
mov eax, 1
mov dword [ebx + 0x21c], eax
cmp dword [ebx + 0x17c], 0xb
jne 0x4fcf7b
push 0
mov edx, dword [ebx + 0x1f0]
sub edx, dword [ebx + 0x1ec]
inc edx
push edx
movzx edx, byte [ebx + 0x10]
mov ecx, eax
mov eax, ebx
call fcn.0052ed98
jmp case.0x4fce58.12
push 0
mov eax, dword [ebx + 0x1f0]
sub eax, dword [ebx + 0x1ec]
inc eax
push eax
movzx eax, byte [ebx + 0x10]
call fcn.0052c6d8
mov edx, eax
mov ecx, dword [ebx + 0x21c]
mov eax, ebx
call fcn.0052ed98
jmp case.0x4fce58.12
movzx eax, word [esi + 0x16]
movzx edx, word [esi + 0x18]
add eax, edx
movzx edx, byte [ebx + 0x10]
imul edx
movzx edx, word [esi + 0x14]
add eax, edx
mov dword [ebx + 0x1ec], eax
movzx edx, word [esi + 0x16]
add edx, eax
dec edx
mov dword [ebx + 0x1f0], edx
movzx eax, word [esi + 0x1a]
mov dword [ebx + 0x20c], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x210], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x184], eax
push 0
push 1
movzx edx, byte [ebx + 0x10]
xor ecx, ecx
mov eax, ebx
call fcn.0052ed98
mov byte [ebx + 0x122], 1
movzx eax, byte [ebx + 0x10]
mov dword [ebx + 0x28c], eax
mov eax, dword [ebx + 0x1ec]
mov dword [ebx + 0x1fc], eax
mov eax, dword [ebx + 0x1ec]
mov dword [ebx + 0x1f8], eax
cmp byte [ebx + 0x12], 0x14
jne 0x4fd040
mov eax, dword [ebx + 0x1f0]
inc eax
mov dword [ebx + 0x200], eax
jmp 0x4fd04c
mov eax, dword [ebx + 0x1f0]
mov dword [ebx + 0x200], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x204], eax
mov eax, dword [ebx + 0x20c]
mov dword [ebx + 0x208], eax
mov eax, dword [0x5530d0]
mov eax, dword [eax]
mov edx, dword [ebx + 0xfc]
call fcn.0052555c
mov esi, eax
test esi, esi
je 0x4fd0d0
push esp
lea eax, [esp + 8]
push eax
mov eax, dword [0x5530d0]
mov eax, dword [eax]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
call fcn.00524c74
lea eax, [esp + 8]
push eax
lea eax, [esp + 0x10]
push eax
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov eax, dword [0x5530d0]
mov eax, dword [eax]
call fcn.00524c74
mov eax, dword [esp + 0xc]
push eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov eax, dword [esp + 4]
call fcn.0052ca28
mov dword [ebx + 0x290], eax
jmp case.0x4fce58.12
mov eax, dword [ebx + 0x28c]
add eax, eax
mov dword [ebx + 0x290], eax
jmp case.0x4fce58.12
movzx eax, word [esi + 0x2a]
movzx edx, word [esi + 0x2c]
add eax, edx
movzx edx, byte [ebx + 0x10]
imul edx
movzx edx, word [esi + 0x28]
add eax, edx
mov dword [ebx + 0x1ec], eax
movzx edx, word [esi + 0x2a]
add edx, eax
dec edx
mov dword [ebx + 0x1f0], edx
mov eax, dword [ebx + 0x224]
mov dword [ebx + 0x20c], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x210], eax
jmp case.0x4fce58.12
movzx eax, word [esi + 0x34]
movzx edx, word [esi + 0x36]
add eax, edx
movzx edx, byte [ebx + 0x10]
imul edx
movzx edx, word [esi + 0x32]
add eax, edx
mov dword [ebx + 0x1ec], eax
movzx edx, word [esi + 0x34]
add edx, eax
dec edx
mov dword [ebx + 0x1f0], edx
mov dword [ebx + 0x1ec], edx
movzx eax, word [esi + 0x38]
mov dword [ebx + 0x20c], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x210], eax
jmp case.0x4fce58.12
movzx eax, word [esi + 0x34]
movzx edx, word [esi + 0x36]
add eax, edx
movzx edx, byte [ebx + 0x10]
imul edx
movzx edx, word [esi + 0x32]
add eax, edx
mov dword [ebx + 0x1ec], eax
movzx edx, word [esi + 0x34]
add edx, eax
dec edx
mov dword [ebx + 0x1f0], edx
movzx eax, word [esi + 0x38]
mov dword [ebx + 0x20c], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x210], eax
movzx eax, byte [ebx + 0x12]
cmp al, 0x28
je 0x4fd1cb
cmp al, 0x41
je 0x4fd1cb
cmp al, 0x42
je 0x4fd1cb
cmp al, 0x43
je 0x4fd1cb
cmp al, 0x44
je 0x4fd1cb
cmp al, 0x45
jne case.0x4fce58.12
mov byte [ebx + 0x288], 1
jmp case.0x4fce58.12
movzx eax, word [esi + 0x3c]
mov dword [ebx + 0x1ec], eax
movzx edx, word [esi + 0x3e]
add edx, eax
dec edx
mov dword [ebx + 0x1f0], edx
movzx eax, word [esi + 0x42]
mov dword [ebx + 0x20c], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x210], eax
add esp, 0x10
pop esi
pop ebx
ret