Function at 0x5387a0
Capabilities:
Enumerate pe sections

Disassembly:
mov edx, dword [esp + 8]
sub esp, 0x18
push ebx
mov ebx, dword [esp + 0x28]
cmp edx, ebx
jl 0x538abc
push ebp
mov ebp, dword [esp + 0x34]
push esi
push edi
cmp ebx, 3
jne 0x5388d4
mov esi, dword [esp + 0x2c]
sub edx, 3
lea edi, [esi + 4]
movzx eax, word [esi]
shr eax, 2
movzx eax, word [ebp + eax*2]
mov ecx, eax
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x38]
mov word [ecx], ax
movzx eax, word [esi + 2]
shr eax, 2
movzx eax, word [ebp + eax*2]
mov ebx, eax
mov word [ecx + 2], ax
movzx eax, word [edi]
shr eax, 2
mov dword [esp + 0x18], ebx
lea ebx, [ecx + 4]
movzx eax, word [ebp + eax*2]
mov word [ebx], ax
mov ebp, eax
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x3c]
test edx, edx
jle 0x538ab9
sub ecx, esi
mov eax, 0xaaaaaaab
sub ecx, 4
mov dword [esp + 0x1c], ecx
lea ecx, [edx - 1]
mul ecx
mov eax, edx
mov edx, dword [esp + 0x14]
shr eax, 1
inc eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
movzx ecx, ax
mov eax, dword [esp + 0x18]
movzx eax, ax
mov dword [esp + 0x34], eax
movzx eax, dx
mov dword [esp + 0x10], eax
nop dword [eax + eax]
movzx eax, word [edi + 2]
lea edi, [edi + 6]
shr eax, 2
lea ebx, [ebx + 6]
movzx esi, word [ebp + eax*2]
mov eax, esi
mov dword [esp + 0x18], esi
sub eax, ecx
mov ecx, dword [esp + 0x1c]
and eax, 0x7ff
mov word [ecx + edi], ax
movzx eax, word [edi - 2]
shr eax, 2
movzx edx, word [ebp + eax*2]
mov eax, edx
sub eax, dword [esp + 0x34]
and eax, 0x7ff
mov dword [esp + 0x34], edx
mov word [ebx - 2], ax
movzx eax, word [edi]
shr eax, 2
movzx ecx, word [ebp + eax*2]
mov eax, ecx
sub eax, dword [esp + 0x10]
and eax, 0x7ff
mov dword [esp + 0x10], ecx
sub dword [esp + 0x30], 1
mov ecx, esi
mov word [ebx], ax
jne 0x538860
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
cmp ebx, 4
jne 0x538a3b
mov edi, dword [esp + 0x2c]
movzx eax, word [edi]
shr eax, 2
movzx eax, word [ebp + eax*2]
mov ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x38]
lea esi, [ecx + 4]
mov word [ecx], ax
movzx eax, word [edi + 2]
shr eax, 2
movzx eax, word [ebp + eax*2]
mov ebx, eax
mov word [ecx + 2], ax
movzx eax, word [edi + 4]
mov dword [esp + 0x18], ebx
lea ebx, [edi + 4]
shr eax, 2
movzx eax, word [ebp + eax*2]
mov edx, eax
mov word [esi], ax
movzx eax, word [edi + 6]
shr eax, 2
mov dword [esp + 0x14], edx
movzx eax, word [ebp + eax*2]
mov edx, eax
mov word [ecx + 6], ax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x30]
sub edx, 4
test edx, edx
jle 0x538ab9
sub ecx, edi
lea eax, [edx - 1]
mov edi, dword [esp + 0x14]
sub ecx, 4
shr eax, 2
inc eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
movzx edx, ax
mov eax, dword [esp + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
movzx eax, di
mov edi, dword [esp + 0x20]
mov dword [esp + 0x14], eax
movzx eax, di
mov dword [esp + 0x18], eax
nop dword [eax + eax]
movzx eax, word [ebx + 4]
lea ebx, [ebx + 8]
shr eax, 2
add esi, 8
mov dword [esp + 0x30], esi
movzx edi, word [ebp + eax*2]
mov eax, edi
mov dword [esp + 0x20], edi
sub eax, edx
and eax, 0x7ff
mov word [ebx + ecx], ax
movzx eax, word [ebx - 2]
mov ecx, dword [esp + 0x30]
shr eax, 2
movzx esi, word [ebp + eax*2]
mov eax, esi
sub eax, dword [esp + 0x10]
and eax, 0x7ff
mov dword [esp + 0x10], esi
mov word [ecx - 2], ax
movzx eax, word [ebx]
shr eax, 2
mov esi, dword [esp + 0x30]
movzx edx, word [ebp + eax*2]
mov eax, edx
sub eax, dword [esp + 0x14]
and eax, 0x7ff
mov dword [esp + 0x14], edx
mov word [ecx], ax
mov edx, edi
movzx eax, word [ebx + 2]
shr eax, 2
movzx ecx, word [ebp + eax*2]
mov ebp, dword [esp + 0x30]
mov eax, ecx
sub eax, dword [esp + 0x18]
and eax, 0x7ff
mov dword [esp + 0x18], ecx
sub dword [esp + 0x34], 1
mov ecx, dword [esp + 0x24]
mov word [ebp + 2], ax
mov ebp, dword [esp + 0x3c]
jne 0x538990
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov esi, dword [esp + 0x38]
mov edi, ebx
mov eax, dword [esp + 0x2c]
movzx ecx, word [eax]
dec edi
shr ecx, 2
add eax, 2
mov cx, word [ebp + ecx*2]
mov word [esi], cx
add esi, 2
test edi, edi
jg 0x538a45
sub edx, ebx
mov dword [esp + 0x30], edx
test edx, edx
jle 0x538ab9
lea ecx, [ebx + ebx]
nop dword [eax + eax]
mov edi, eax
sub edi, ecx
movzx ecx, word [eax]
lea edi, [edi + 2]
movzx edx, word [edi - 2]
dec ebx
shr ecx, 2
add eax, 2
shr edx, 2
mov cx, word [ebp + ecx*2]
sub cx, word [ebp + edx*2]
mov edx, 0x7ff
and cx, dx
mov word [esi], cx
add esi, 2
test ebx, ebx
jg 0x538a74
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
sub edx, ebx
mov dword [esp + 0x30], edx
lea ecx, [ebx + ebx]
test edx, edx
jg 0x538a70
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret