Function at 0x537858
Capabilities:
Enumerate pe sections

Disassembly:
push ebx
push esi
add esp, 0xfffffff0
mov ebx, eax
mov dword [ebx + 0x20], 0xffffffff
movzx eax, word [ebx + 0x3a]
call fcn.0059f348
mov dword [ebx + 0x144], eax
movzx eax, byte [ebx + 0x16]
movzx edx, word [ebx + 0x3a]
call fcn.0059e694
mov esi, eax
test esi, esi
je case.0x5378a7.5007
mov eax, dword [ebx + 0x1d8]
add eax, 0xffffec73
cmp eax, 0x18
ja case.0x5378a7.5007
movzx eax, byte [eax + 0x5378ae]
jmp dword [eax*4 + 0x5378c7]
movzx eax, word [esi + 2]
movzx edx, word [esi + 4]
add eax, edx
movzx edx, byte [ebx + 0x14]
imul edx
movzx edx, word [esi]
add eax, edx
mov dword [ebx + 0x24], eax
movzx edx, word [esi + 2]
add edx, eax
dec edx
mov dword [ebx + 0x28], edx
movzx eax, word [esi + 6]
mov dword [ebx + 0x308], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x30c], eax
movzx eax, word [esi + 2]
mov dword [ebx + 0x330], eax
push 0
push 1
movzx edx, byte [ebx + 0x14]
xor ecx, ecx
mov eax, ebx
call fcn.005a1de0
jmp case.0x5378a7.5007
movzx eax, word [esi + 0xc]
movzx edx, word [esi + 0xe]
add eax, edx
movzx edx, byte [ebx + 0x14]
imul edx
movzx edx, word [esi + 0xa]
add eax, edx
mov dword [ebx + 0x24], eax
movzx edx, word [esi + 0xc]
add edx, eax
dec edx
mov dword [ebx + 0x28], edx
movzx eax, word [esi + 0x10]
mov dword [ebx + 0x308], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x30c], eax
movzx eax, word [esi + 0x12]
mov dword [ebx + 0x310], eax
xor eax, eax
mov dword [ebx + 0x314], eax
mov eax, 1
mov dword [ebx + 0x318], eax
cmp dword [ebx + 0x1d8], 0x138e
jne 0x5379bb
push 0
mov edx, dword [ebx + 0x28]
sub edx, dword [ebx + 0x24]
inc edx
push edx
movzx edx, byte [ebx + 0x14]
mov ecx, eax
mov eax, ebx
call fcn.005a1de0
jmp case.0x5378a7.5007
push 0
mov eax, dword [ebx + 0x28]
sub eax, dword [ebx + 0x24]
inc eax
push eax
movzx eax, byte [ebx + 0x14]
call fcn.005b5f74
mov edx, eax
mov ecx, dword [ebx + 0x318]
mov eax, ebx
call fcn.005a1de0
jmp case.0x5378a7.5007
movzx eax, word [esi + 0x16]
movzx edx, word [esi + 0x18]
add eax, edx
movzx edx, byte [ebx + 0x14]
imul edx
movzx edx, word [esi + 0x14]
add eax, edx
mov dword [ebx + 0x24], eax
movzx edx, word [esi + 0x16]
add edx, eax
dec edx
mov dword [ebx + 0x28], edx
movzx eax, word [esi + 0x1a]
mov dword [ebx + 0x308], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x30c], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x1e0], eax
push 0
push 1
movzx edx, byte [ebx + 0x14]
xor ecx, ecx
mov eax, ebx
call fcn.005a1de0
mov byte [ebx + 0x156], 1
movzx eax, byte [ebx + 0x14]
mov dword [ebx + 0x388], eax
mov eax, dword [ebx + 0x24]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebx + 0x24]
mov dword [ebx + 0x18], eax
cmp byte [ebx + 0x16], 0x14
jne 0x537a65
mov eax, dword [ebx + 0x28]
inc eax
mov dword [ebx + 0x2fc], eax
jmp 0x537a6e
mov eax, dword [ebx + 0x28]
mov dword [ebx + 0x2fc], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x300], eax
mov eax, dword [ebx + 0x308]
mov dword [ebx + 0x304], eax
mov eax, dword [0x68f6f8]
mov eax, dword [eax]
mov edx, dword [ebx + 0x130]
call fcn.0052c788
mov esi, eax
test esi, esi
je 0x537af2
push esp
lea eax, [esp + 8]
push eax
mov eax, dword [0x68f6f8]
mov eax, dword [eax]
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
call fcn.0052ba6c
lea eax, [esp + 8]
push eax
lea eax, [esp + 0x10]
push eax
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
mov eax, dword [0x68f6f8]
mov eax, dword [eax]
call fcn.0052ba6c
mov eax, dword [esp + 0xc]
push eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov eax, dword [esp + 4]
call fcn.005b62c4
mov dword [ebx + 0x38c], eax
jmp case.0x5378a7.5007
mov eax, dword [ebx + 0x388]
add eax, eax
mov dword [ebx + 0x38c], eax
jmp case.0x5378a7.5007
movzx eax, word [esi + 0x2a]
movzx edx, word [esi + 0x2c]
add eax, edx
movzx edx, byte [ebx + 0x14]
imul edx
movzx edx, word [esi + 0x28]
add eax, edx
mov dword [ebx + 0x24], eax
movzx edx, word [esi + 0x2a]
add edx, eax
dec edx
mov dword [ebx + 0x28], edx
mov eax, dword [ebx + 0x320]
mov dword [ebx + 0x308], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x30c], eax
jmp case.0x5378a7.5007
movzx eax, word [esi + 0x34]
movzx edx, word [esi + 0x36]
add eax, edx
movzx edx, byte [ebx + 0x14]
imul edx
movzx edx, word [esi + 0x32]
add eax, edx
mov dword [ebx + 0x24], eax
movzx edx, word [esi + 0x34]
add edx, eax
dec edx
mov dword [ebx + 0x28], edx
mov dword [ebx + 0x24], edx
movzx eax, word [esi + 0x38]
mov dword [ebx + 0x308], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x30c], eax
jmp case.0x5378a7.5007
movzx eax, word [esi + 0x34]
movzx edx, word [esi + 0x36]
add eax, edx
movzx edx, byte [ebx + 0x14]
imul edx
movzx edx, word [esi + 0x32]
add eax, edx
mov dword [ebx + 0x24], eax
movzx edx, word [esi + 0x34]
add edx, eax
dec edx
mov dword [ebx + 0x28], edx
movzx eax, word [esi + 0x38]
mov dword [ebx + 0x308], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x30c], eax
movzx eax, byte [ebx + 0x16]
cmp al, 0x28
je 0x537bd8
cmp al, 0x41
je 0x537bd8
cmp al, 0x42
je 0x537bd8
cmp al, 0x43
je 0x537bd8
cmp al, 0x44
je 0x537bd8
cmp al, 0x45
jne case.0x5378a7.5007
mov byte [ebx + 0x384], 1
jmp case.0x5378a7.5007
movzx eax, word [esi + 0x3c]
mov dword [ebx + 0x24], eax
movzx edx, word [esi + 0x3e]
add edx, eax
dec edx
mov dword [ebx + 0x28], edx
movzx eax, word [esi + 0x42]
mov dword [ebx + 0x308], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x30c], eax
add esp, 0x10
pop esi
pop ebx
ret