Function at 0x48f2a0
Capabilities:
Enumerate pe sections

Disassembly:
push ecx
push esi
mov esi, ecx
mov eax, dword [esi + 0x5c]
mov byte [esi + eax + 0x1c], 0x80
mov edx, 1
add dword [esi + 0x5c], edx
mov eax, dword [esi + 0x5c]
cmp eax, 0x38
jg 0x48f2e5
mov ecx, 0x38
sub ecx, eax
push ecx
lea edx, [eax + esi + 0x1c]
push 0
push edx
call fcn.004caf20
add esp, 0xc
lea eax, [esi + 0x1c]
mov ecx, 0x38
call fcn.0048e8f0
jmp 0x48f3a0
push ebx
mov ecx, 0x40
push ebp
xor bl, bl
cmp eax, ecx
push edi
jge 0x48f301
mov byte [eax + esi + 0x1c], bl
add dword [esi + 0x5c], edx
mov eax, dword [esi + 0x5c]
cmp eax, ecx
jl 0x48f2f3
lea ebp, [esi + 0x1c]
lea eax, [ebp + 6]
mov edi, 4
lea esp, [esp]
mov ecx, dword [eax - 6]
mov dword [esp + 0x10], ecx
movzx ebx, byte [esp + 0x13]
mov byte [eax - 6], bl
movzx ebx, byte [esp + 0x12]
mov byte [eax - 5], bl
mov byte [eax - 4], ch
mov byte [eax - 3], cl
mov ecx, dword [eax - 2]
mov dword [esp + 0x10], ecx
movzx ebx, byte [esp + 0x13]
mov byte [eax - 2], bl
movzx ebx, byte [esp + 0x12]
mov byte [eax - 1], bl
mov byte [eax], ch
mov byte [eax + 1], cl
mov ecx, dword [eax + 2]
mov dword [esp + 0x10], ecx
movzx ebx, byte [esp + 0x13]
mov byte [eax + 2], bl
movzx ebx, byte [esp + 0x12]
mov byte [eax + 3], bl
mov byte [eax + 4], ch
mov byte [eax + 5], cl
mov ecx, dword [eax + 6]
mov dword [esp + 0x10], ecx
movzx ebx, byte [esp + 0x13]
mov byte [eax + 6], bl
movzx ebx, byte [esp + 0x12]
mov byte [eax + 7], bl
mov byte [eax + 8], ch
mov byte [eax + 9], cl
add eax, 0x10
sub edi, edx
jne 0x48f310
mov ecx, esi
call fcn.0048eef0
push 0x38
push edi
push ebp
call fcn.004caf20
add esp, 0xc
pop edi
pop ebp
pop ebx
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x14]
mov ecx, eax
shr ecx, 0x1d
lea ecx, [ecx + edx*8]
lea edx, [eax*8]
mov eax, ecx
mov dword [esi + 0x14], ecx
mov ecx, edx
mov dword [esi + 0x58], ecx
mov ecx, esi
mov dword [esi + 0x18], edx
mov dword [esi + 0x54], eax
call fcn.0048eef0
mov eax, dword [esp + 0xc]
test eax, eax
je 0x48f483
mov edx, dword [esi]
mov dword [eax], edx
mov ecx, dword [esi + 4]
mov dword [eax + 4], ecx
mov edx, dword [esi + 8]
mov dword [eax + 8], edx
mov ecx, dword [esi + 0xc]
mov dword [eax + 0xc], ecx
mov edx, dword [esi + 0x10]
mov dword [eax + 0x10], edx
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
movzx edx, byte [esp + 0xf]
mov byte [eax], dl
movzx edx, byte [esp + 0xe]
mov byte [eax + 1], dl
mov byte [eax + 2], ch
mov byte [eax + 3], cl
mov ecx, dword [eax + 4]
mov dword [esp + 0xc], ecx
movzx edx, byte [esp + 0xf]
mov byte [eax + 4], dl
movzx edx, byte [esp + 0xe]
mov byte [eax + 5], dl
mov byte [eax + 6], ch
mov byte [eax + 7], cl
mov ecx, dword [eax + 8]
mov dword [esp + 0xc], ecx
movzx edx, byte [esp + 0xf]
mov byte [eax + 8], dl
movzx edx, byte [esp + 0xe]
mov byte [eax + 9], dl
mov byte [eax + 0xa], ch
mov byte [eax + 0xb], cl
mov ecx, dword [eax + 0xc]
mov dword [esp + 0xc], ecx
movzx edx, byte [esp + 0xf]
mov byte [eax + 0xc], dl
movzx edx, byte [esp + 0xe]
mov byte [eax + 0xd], dl
mov byte [eax + 0xe], ch
mov byte [eax + 0xf], cl
mov ecx, dword [eax + 0x10]
mov dword [esp + 0xc], ecx
movzx edx, byte [esp + 0xf]
mov byte [eax + 0x10], dl
movzx edx, byte [esp + 0xe]
mov byte [eax + 0x11], dl
mov byte [eax + 0x12], ch
mov byte [eax + 0x13], cl
pop esi
pop ecx
ret 4