Function at 0x507650
Capabilities:
Enumerate pe sections

Disassembly:
push ebx
push esi
add esp, 0xffffffec
mov ebx, eax
mov dword [ebx + 0x2b4], 0xffffffff
movzx eax, word [ebx + 0x1a]
call fcn.00512b78
mov dword [ebx + 0x160], eax
xor eax, eax
mov al, byte [ebx + 0x12]
mov dx, word [ebx + 0x1a]
call fcn.005122cc
mov dword [esp], eax
cmp dword [esp], 0
je case.0x5076a3.10
mov eax, dword [ebx + 0x204]
add eax, 0xfffffff6
cmp eax, 0x18
ja case.0x5076a3.10
mov al, byte [eax + 0x5076aa]
jmp dword [eax*4 + 0x5076c3]
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 + 0x2ac], eax
mov edx, dword [esp]
movzx edx, word [edx + 2]
add edx, eax
dec edx
mov dword [ebx + 0x2b0], edx
mov eax, dword [esp]
movzx eax, word [eax + 6]
mov dword [ebx + 0x2d8], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2dc], eax
mov eax, dword [esp]
movzx eax, word [eax + 2]
mov dword [ebx + 0x300], eax
push 0
push 1
xor edx, edx
mov dl, byte [ebx + 0x10]
xor ecx, ecx
mov eax, ebx
call fcn.00514b84
jmp case.0x5076a3.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 + 0x2ac], eax
mov edx, dword [esp]
movzx edx, word [edx + 0xc]
add edx, eax
dec edx
mov dword [ebx + 0x2b0], edx
mov eax, dword [esp]
movzx eax, word [eax + 0x10]
mov dword [ebx + 0x2d8], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2dc], eax
mov eax, dword [esp]
movzx eax, word [eax + 0x12]
mov dword [ebx + 0x2e4], eax
xor eax, eax
mov dword [ebx + 0x2e8], eax
mov eax, 1
mov dword [ebx + 0x2ec], eax
cmp dword [ebx + 0x204], 0xb
jne 0x5077ee
push 0
mov edx, dword [ebx + 0x2b0]
sub edx, dword [ebx + 0x2ac]
inc edx
push edx
xor edx, edx
mov dl, byte [ebx + 0x10]
mov ecx, eax
mov eax, ebx
call fcn.00514b84
jmp case.0x5076a3.10
push 0
mov eax, dword [ebx + 0x2b0]
sub eax, dword [ebx + 0x2ac]
inc eax
push eax
xor eax, eax
mov al, byte [ebx + 0x10]
call fcn.0052762c
mov edx, eax
mov ecx, dword [ebx + 0x2ec]
mov eax, ebx
call fcn.00514b84
jmp case.0x5076a3.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 + 0x2ac], eax
mov edx, dword [esp]
movzx edx, word [edx + 0x16]
add edx, eax
dec edx
mov dword [ebx + 0x2b0], edx
mov eax, dword [esp]
movzx eax, word [eax + 0x1a]
mov dword [ebx + 0x2d8], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2dc], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x20c], eax
push 0
push 1
xor edx, edx
mov dl, byte [ebx + 0x10]
xor ecx, ecx
mov eax, ebx
call fcn.00514b84
mov byte [ebx + 0x172], 1
xor eax, eax
mov al, byte [ebx + 0x10]
mov dword [ebx + 0x390], eax
mov eax, dword [ebx + 0x2ac]
mov dword [ebx + 0x2c8], eax
mov eax, dword [ebx + 0x2ac]
mov dword [ebx + 0x2c4], eax
cmp byte [ebx + 0x12], 0x14
jne 0x5078c6
mov eax, dword [ebx + 0x2b0]
inc eax
mov dword [ebx + 0x2cc], eax
jmp 0x5078d2
mov eax, dword [ebx + 0x2b0]
mov dword [ebx + 0x2cc], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2d0], eax
mov eax, dword [ebx + 0x2d8]
mov dword [ebx + 0x2d4], eax
mov eax, dword [0x544574]
mov eax, dword [eax]
mov edx, dword [ebx + 0x14c]
call fcn.00524ecc
mov esi, eax
test esi, esi
je 0x50795a
lea eax, [esp + 4]
push eax
lea eax, [esp + 0xc]
push eax
mov eax, dword [0x544574]
mov eax, dword [eax]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
call fcn.00524294
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 [0x544574]
mov eax, dword [eax]
call fcn.00524294
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
call fcn.00527ab0
mov dword [ebx + 0x394], eax
jmp case.0x5076a3.10
mov eax, dword [ebx + 0x390]
add eax, eax
mov dword [ebx + 0x394], eax
jmp case.0x5076a3.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 + 0x2ac], eax
mov edx, dword [esp]
movzx edx, word [edx + 0x2a]
add edx, eax
dec edx
mov dword [ebx + 0x2b0], edx
mov eax, dword [ebx + 0x2f4]
mov dword [ebx + 0x2d8], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2dc], eax
jmp case.0x5076a3.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 + 0x2ac], eax
mov edx, dword [esp]
movzx edx, word [edx + 0x34]
add edx, eax
dec edx
mov dword [ebx + 0x2b0], edx
mov dword [ebx + 0x2ac], edx
mov eax, dword [esp]
movzx eax, word [eax + 0x38]
mov dword [ebx + 0x2d8], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2dc], eax
jmp case.0x5076a3.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 + 0x2ac], eax
mov edx, dword [esp]
movzx edx, word [edx + 0x34]
add edx, eax
dec edx
mov dword [ebx + 0x2b0], edx
mov eax, dword [esp]
movzx eax, word [eax + 0x38]
mov dword [ebx + 0x2d8], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2dc], eax
mov al, byte [ebx + 0x12]
cmp al, 0x28
je 0x507a81
cmp al, 0x41
je 0x507a81
cmp al, 0x42
je 0x507a81
cmp al, 0x43
je 0x507a81
cmp al, 0x44
je 0x507a81
cmp al, 0x45
jne case.0x5076a3.10
mov byte [ebx + 0x38c], 1
jmp case.0x5076a3.10
mov eax, dword [esp]
movzx eax, word [eax + 0x3c]
mov dword [ebx + 0x2ac], eax
mov edx, dword [esp]
movzx edx, word [edx + 0x3e]
add edx, eax
dec edx
mov dword [ebx + 0x2b0], edx
mov eax, dword [esp]
movzx eax, word [eax + 0x42]
mov dword [ebx + 0x2d8], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x2dc], eax
add esp, 0x14
pop esi
pop ebx
ret