Function at 0x50a300
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x50a7c9
sub esp, 0x3c
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x4c]
cmp ebx, 0
jne 0x50a332
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 5]
cmp bl, 0
je 0x50a359
mov ebx, dword [esp + 0x40]
mov ebp, dword [ebx + 0x14]
mov ebx, dword [esp + 0x28]
cmp ebp, ebx
jge 0x50a359
mov ebx, dword [esp + 0x40]
mov ebp, dword [ebx + 0x14]
mov dword [esp + 0x28], ebp
mov ebx, dword [esp + 0x28]
shl ebx, 1
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x24]
cmp ebx, 0
jle 0x50a7a1
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 9]
cmp bl, 0
je 0x50a780
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 8]
cmp bl, 0
je 0x50a398
mov ebx, dword [esp + 0x24]
shl ebx, 1
mov dword [esp + 0x24], ebx
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
dec ebx
add ebx, ecx
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 4]
cmp bl, 0
je 0x50a3eb
mov ebx, dword [esp + 0x40]
mov ebp, dword [ebx + 0x10]
mov ebx, dword [esp + 0x24]
cmp ebp, ebx
jle 0x50a3eb
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 6]
cmp bl, 0
jne 0x50a3eb
mov ebx, dword [esp + 0x40]
mov dword [esp], ebx
mov ebx, dword [esp + 0x40]
mov ebx, dword [ebx + 0x10]
sub ebx, dword [esp + 0x24]
mov dword [esp + 4], ebx
call fcn.00508d90
mov ebx, dword [esp + 0x40]
mov ebp, dword [ebx]
cmp ebp, 0
je 0x50a778
mov edi, dword [ebp]
mov ecx, dword [ebp + 4]
mov esi, dword [ebp + 8]
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 8]
cmp bl, 0
je 0x50a461
cmp dword [esp + 0x5c], 0x10
jbe 0x50a771
mov ebx, dword [esp + 0x58]
add ebx, 0x10
movzx ebp, byte [ebx]
xchg ebp, eax
mov byte [esp + 0x23], al
xchg ebp, eax
mov dword [esp + 0x30], edi
mov edx, edi
mov dword [esp + 0x34], ecx
mov ebx, ecx
mov dword [esp + 0x38], esi
mov eax, ecx
add ebx, 2
cmp ebx, esi
ja 0x50a73d
mov ecx, ebx
mov ebx, edx
add ebx, eax
mov byte [ebx], 0x30
mov ebx, edx
mov ebp, eax
inc ebp
add ebx, ebp
movzx ebp, byte [esp + 0x23]
xchg ebp, eax
mov byte [ebx], al
xchg ebp, eax
mov dword [esp + 0x2c], 0
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
cmp ebx, ebp
jge 0x50a5df
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 9]
cmp bl, 0
je 0x50a519
mov ebx, dword [esp + 0x2c]
cmp ebx, 0
jle 0x50a519
mov dword [esp + 0x30], edi
mov edx, edi
mov dword [esp + 0x34], ecx
mov ebx, ecx
mov dword [esp + 0x38], esi
mov eax, ecx
inc ebx
cmp ebx, esi
ja 0x50a70b
mov ecx, ebx
mov ebx, edx
add ebx, eax
mov byte [ebx], 0x20
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 8]
cmp bl, 0
je 0x50a519
cmp dword [esp + 0x5c], 0x10
jbe 0x50a704
mov ebx, dword [esp + 0x58]
add ebx, 0x10
movzx ebp, byte [ebx]
xchg ebp, eax
mov byte [esp + 0x23], al
xchg ebp, eax
mov dword [esp + 0x30], edi
mov edx, edi
mov dword [esp + 0x34], ecx
mov ebx, ecx
mov dword [esp + 0x38], esi
mov eax, ecx
add ebx, 2
cmp ebx, esi
ja 0x50a6d0
mov ecx, ebx
mov ebx, edx
add ebx, eax
mov byte [ebx], 0x30
mov ebx, edx
mov ebp, eax
inc ebp
add ebx, ebp
movzx ebp, byte [esp + 0x23]
xchg ebp, eax
mov byte [ebx], al
xchg ebp, eax
mov ebx, dword [esp + 0x4c]
cmp ebx, 0
je 0x50a6ac
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x50]
cmp ebx, ebp
jae 0x50a6a5
mov ebp, dword [esp + 0x4c]
add ebp, ebx
movzx ebx, byte [ebp]
mov eax, ebx
mov ebx, eax
shr bl, 4
mov edx, ebx
mov ebx, eax
and ebx, 0xf
mov eax, ebx
movzx ebx, dl
mov ebp, dword [esp + 0x5c]
cmp ebx, ebp
jae 0x50a69e
mov ebp, dword [esp + 0x58]
add ebp, ebx
movzx ebx, byte [ebp]
mov byte [esp + 0x23], bl
movzx ebx, al
mov ebp, dword [esp + 0x5c]
cmp ebx, ebp
jae 0x50a697
mov ebp, dword [esp + 0x58]
add ebp, ebx
movzx ebx, byte [ebp]
mov byte [esp + 0x22], bl
mov dword [esp + 0x30], edi
mov edx, edi
mov dword [esp + 0x34], ecx
mov ebx, ecx
mov dword [esp + 0x38], esi
mov eax, ecx
add ebx, 2
cmp ebx, esi
ja 0x50a663
mov ecx, ebx
mov ebx, edx
add ebx, eax
movzx ebp, byte [esp + 0x23]
xchg ebp, eax
mov byte [ebx], al
xchg ebp, eax
mov ebx, edx
mov ebp, eax
inc ebp
add ebx, ebp
movzx ebp, byte [esp + 0x22]
xchg ebp, eax
mov byte [ebx], al
xchg ebp, eax
mov ebx, dword [esp + 0x2c]
inc ebx
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
cmp ebx, ebp
jl 0x50a479
mov ebx, dword [esp + 0x40]
mov ebp, dword [ebx]
cmp ebp, 0
je 0x50a65e
mov dword [esp + 0x34], ecx
mov dword [ebp + 4], ecx
mov dword [esp + 0x38], esi
mov dword [ebp + 8], esi
mov dword [esp + 0x30], edi
cmp byte [0x6d9e38], 0
jne 0x50a650
mov dword [ebp], edi
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 4]
cmp bl, 0
je 0x50a64c
mov ebx, dword [esp + 0x40]
mov ebp, dword [ebx + 0x10]
mov ebx, dword [esp + 0x24]
cmp ebp, ebx
jle 0x50a64c
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 6]
cmp bl, 0
je 0x50a64c
mov ebx, dword [esp + 0x40]
mov dword [esp], ebx
mov ebx, dword [esp + 0x40]
mov ebx, dword [ebx + 0x10]
sub ebx, dword [esp + 0x24]
mov dword [esp + 4], ebx
call fcn.00508d90
add esp, 0x3c
ret
mov dword [esp], ebp
mov dword [esp + 4], edi
call fcn.0040f1d0
jmp 0x50a608
mov dword [ebp], eax
jmp 0x50a5ea
mov dword [esp], 0x5c4140
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
call fcn.0043c270
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, eax
add ecx, 2
mov edi, edx
jmp 0x50a5a9
call fcn.00428680
ud2
call fcn.00428680
ud2
call fcn.00428680
ud2
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x48]
cmp ebx, ebp
jae 0x50a6c9
mov ebp, dword [esp + 0x44]
add ebp, ebx
movzx ebx, byte [ebp]
mov eax, ebx
jmp 0x50a542
call fcn.00428680
ud2
mov dword [esp], 0x5c4140
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
call fcn.0043c270
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, eax
add ecx, 2
mov edi, edx
jmp 0x50a502
call fcn.00428680
ud2
mov dword [esp], 0x5c4140
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
call fcn.0043c270
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, eax
inc ecx
mov edi, edx
jmp 0x50a4b4
mov dword [esp], 0x5c4140
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
call fcn.0043c270
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, eax
add ecx, 2
mov edi, edx
jmp 0x50a44a
call fcn.00428680
ud2
mov dword [ebp], eax
jmp 0x50a3fa
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 8]
cmp bl, 0
je 0x50a3a7
mov ebx, dword [esp + 0x24]
add ebx, 2
mov dword [esp + 0x24], ebx
jmp 0x50a3a7
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 4]
cmp bl, 0
je 0x50a7c5
mov ebx, dword [esp + 0x40]
mov dword [esp], ebx
mov ebx, dword [esp + 0x40]
mov ebp, dword [ebx + 0x10]
mov dword [esp + 4], ebp
call fcn.00508d90
add esp, 0x3c
ret
call fcn.00450db0
jmp fcn.0050a300