Function at 0x514a7c
Capabilities:
Enumerate pe sections

Disassembly:
push ebx
push esi
add esp, 0xffffffec
mov ebx, eax
mov dword [ebx + 0x288], 0xffffffff
movzx eax, word [ebx + 0x1c]
call fcn.0051e17c
mov dword [ebx + 0x134], eax
xor eax, eax
mov al, byte [ebx + 0x12]
mov dx, word [ebx + 0x1c]
call fcn.0051d8d0
mov dword [esp], eax
cmp dword [esp], 0
je case.0x514acf.10
mov eax, dword [ebx + 0x1b4]
add eax, 0xfffffff6
cmp eax, 0x18
ja case.0x514acf.10
mov al, byte [eax + 0x514ad6]
jmp dword [eax*4 + 0x514aef]
mov eax, dword [esp]
movzx eax, word [eax + 2]
mov edx, dword [esp]
movzx edx, word [edx + 4]
add eax, edx
xor edx, edx
mov dl, byte [ebx + 0x10]
imul edx
mov edx, dword [esp]
movzx edx, word [edx]
add eax, edx
mov dword [ebx + 0x280], eax
mov edx, dword [esp]
movzx edx, word [edx + 2]
add edx, eax
dec edx
mov dword [ebx + 0x284], edx
mov eax, dword [esp]
movzx eax, word [eax + 6]
mov dword [ebx + 0x2ac], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2b0], eax
mov eax, dword [esp]
movzx eax, word [eax + 2]
mov dword [ebx + 0x2d4], eax
push 0
push 1
xor edx, edx
mov dl, byte [ebx + 0x10]
xor ecx, ecx
mov eax, ebx
call fcn.00520098
jmp case.0x514acf.10
mov eax, dword [esp]
movzx eax, word [eax + 0xc]
mov edx, dword [esp]
movzx edx, word [edx + 0xe]
add eax, edx
xor edx, edx
mov dl, byte [ebx + 0x10]
imul edx
mov edx, dword [esp]
movzx edx, word [edx + 0xa]
add eax, edx
mov dword [ebx + 0x280], eax
mov edx, dword [esp]
movzx edx, word [edx + 0xc]
add edx, eax
dec edx
mov dword [ebx + 0x284], edx
mov eax, dword [esp]
movzx eax, word [eax + 0x10]
mov dword [ebx + 0x2ac], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2b0], eax
mov eax, dword [esp]
movzx eax, word [eax + 0x12]
mov dword [ebx + 0x2b8], eax
xor eax, eax
mov dword [ebx + 0x2bc], eax
mov eax, 1
mov dword [ebx + 0x2c0], eax
cmp dword [ebx + 0x1b4], 0xb
jne 0x514c1a
push 0
mov edx, dword [ebx + 0x284]
sub edx, dword [ebx + 0x280]
inc edx
push edx
xor edx, edx
mov dl, byte [ebx + 0x10]
mov ecx, eax
mov eax, ebx
call fcn.00520098
jmp case.0x514acf.10
push 0
mov eax, dword [ebx + 0x284]
sub eax, dword [ebx + 0x280]
inc eax
push eax
xor eax, eax
mov al, byte [ebx + 0x10]
call fcn.005389a0
mov edx, eax
mov ecx, dword [ebx + 0x2c0]
mov eax, ebx
call fcn.00520098
jmp case.0x514acf.10
mov eax, dword [esp]
movzx eax, word [eax + 0x16]
mov edx, dword [esp]
movzx edx, word [edx + 0x18]
add eax, edx
xor edx, edx
mov dl, byte [ebx + 0x10]
imul edx
mov edx, dword [esp]
movzx edx, word [edx + 0x14]
add eax, edx
mov dword [ebx + 0x280], eax
mov edx, dword [esp]
movzx edx, word [edx + 0x16]
add edx, eax
dec edx
mov dword [ebx + 0x284], edx
mov eax, dword [esp]
movzx eax, word [eax + 0x1a]
mov dword [ebx + 0x2ac], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2b0], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x1bc], eax
push 0
push 1
xor edx, edx
mov dl, byte [ebx + 0x10]
xor ecx, ecx
mov eax, ebx
call fcn.00520098
mov byte [ebx + 0x14a], 1
xor eax, eax
mov al, byte [ebx + 0x10]
mov dword [ebx + 0x360], eax
mov eax, dword [ebx + 0x280]
mov dword [ebx + 0x29c], eax
mov eax, dword [ebx + 0x280]
mov dword [ebx + 0x298], eax
cmp byte [ebx + 0x12], 0x14
jne 0x514cf2
mov eax, dword [ebx + 0x284]
inc eax
mov dword [ebx + 0x2a0], eax
jmp 0x514cfe
mov eax, dword [ebx + 0x284]
mov dword [ebx + 0x2a0], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2a4], eax
mov eax, dword [ebx + 0x2ac]
mov dword [ebx + 0x2a8], eax
mov eax, dword [0x53e520]
mov eax, dword [eax]
mov edx, dword [ebx + 0x120]
call fcn.00510d5c
mov esi, eax
test esi, esi
je 0x514d86
lea eax, [esp + 4]
push eax
lea eax, [esp + 0xc]
push eax
mov eax, dword [0x53e520]
mov eax, dword [eax]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
call fcn.00510228
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0x14]
push eax
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov eax, dword [0x53e520]
mov eax, dword [eax]
call fcn.00510228
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
call fcn.00538e24
mov dword [ebx + 0x364], eax
jmp case.0x514acf.10
mov eax, dword [ebx + 0x360]
add eax, eax
mov dword [ebx + 0x364], eax
jmp case.0x514acf.10
mov eax, dword [esp]
movzx eax, word [eax + 0x2a]
mov edx, dword [esp]
movzx edx, word [edx + 0x2c]
add eax, edx
xor edx, edx
mov dl, byte [ebx + 0x10]
imul edx
mov edx, dword [esp]
movzx edx, word [edx + 0x28]
add eax, edx
mov dword [ebx + 0x280], eax
mov edx, dword [esp]
movzx edx, word [edx + 0x2a]
add edx, eax
dec edx
mov dword [ebx + 0x284], edx
mov eax, dword [ebx + 0x2c8]
mov dword [ebx + 0x2ac], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2b0], eax
jmp case.0x514acf.10
mov eax, dword [esp]
movzx eax, word [eax + 0x34]
mov edx, dword [esp]
movzx edx, word [edx + 0x36]
add eax, edx
xor edx, edx
mov dl, byte [ebx + 0x10]
imul edx
mov edx, dword [esp]
movzx edx, word [edx + 0x32]
add eax, edx
mov dword [ebx + 0x280], eax
mov edx, dword [esp]
movzx edx, word [edx + 0x34]
add edx, eax
dec edx
mov dword [ebx + 0x284], edx
mov dword [ebx + 0x280], edx
mov eax, dword [esp]
movzx eax, word [eax + 0x38]
mov dword [ebx + 0x2ac], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2b0], eax
jmp case.0x514acf.10
mov eax, dword [esp]
movzx eax, word [eax + 0x34]
mov edx, dword [esp]
movzx edx, word [edx + 0x36]
add eax, edx
xor edx, edx
mov dl, byte [ebx + 0x10]
imul edx
mov edx, dword [esp]
movzx edx, word [edx + 0x32]
add eax, edx
mov dword [ebx + 0x280], eax
mov edx, dword [esp]
movzx edx, word [edx + 0x34]
add edx, eax
dec edx
mov dword [ebx + 0x284], edx
mov eax, dword [esp]
movzx eax, word [eax + 0x38]
mov dword [ebx + 0x2ac], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2b0], eax
mov al, byte [ebx + 0x12]
cmp al, 0x28
je 0x514ead
cmp al, 0x41
je 0x514ead
cmp al, 0x42
je 0x514ead
cmp al, 0x43
je 0x514ead
cmp al, 0x44
je 0x514ead
cmp al, 0x45
jne case.0x514acf.10
mov byte [ebx + 0x35c], 1
jmp case.0x514acf.10
mov eax, dword [esp]
movzx eax, word [eax + 0x3c]
mov dword [ebx + 0x280], eax
mov edx, dword [esp]
movzx edx, word [edx + 0x3e]
add edx, eax
dec edx
mov dword [ebx + 0x284], edx
mov eax, dword [esp]
movzx eax, word [eax + 0x42]
mov dword [ebx + 0x2ac], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2b0], eax
add esp, 0x14
pop esi
pop ebx
ret