Function at 0x50a500
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x50a9c9
sub esp, 0x3c
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x4c]
cmp ebx, 0
jne 0x50a532
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 5]
cmp bl, 0
je 0x50a559
mov ebx, dword [esp + 0x40]
mov ebp, dword [ebx + 0x14]
mov ebx, dword [esp + 0x28]
cmp ebp, ebx
jge 0x50a559
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 0x50a9a1
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 9]
cmp bl, 0
je 0x50a980
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 8]
cmp bl, 0
je 0x50a598
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 0x50a5eb
mov ebx, dword [esp + 0x40]
mov ebp, dword [ebx + 0x10]
mov ebx, dword [esp + 0x24]
cmp ebp, ebx
jle 0x50a5eb
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 6]
cmp bl, 0
jne 0x50a5eb
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.00508f90
mov ebx, dword [esp + 0x40]
mov ebp, dword [ebx]
cmp ebp, 0
je 0x50a978
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 0x50a661
cmp dword [esp + 0x5c], 0x10
jbe 0x50a971
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 0x50a93d
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 0x50a7df
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 9]
cmp bl, 0
je 0x50a719
mov ebx, dword [esp + 0x2c]
cmp ebx, 0
jle 0x50a719
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 0x50a90b
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 0x50a719
cmp dword [esp + 0x5c], 0x10
jbe 0x50a904
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 0x50a8d0
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 0x50a8ac
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x50]
cmp ebx, ebp
jae 0x50a8a5
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 0x50a89e
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 0x50a897
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 0x50a863
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 0x50a679
mov ebx, dword [esp + 0x40]
mov ebp, dword [ebx]
cmp ebp, 0
je 0x50a85e
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 0x50a850
mov dword [ebp], edi
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 4]
cmp bl, 0
je 0x50a84c
mov ebx, dword [esp + 0x40]
mov ebp, dword [ebx + 0x10]
mov ebx, dword [esp + 0x24]
cmp ebp, ebx
jle 0x50a84c
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 6]
cmp bl, 0
je 0x50a84c
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.00508f90
add esp, 0x3c
ret
mov dword [esp], ebp
mov dword [esp + 4], edi
call fcn.0040f3d0
jmp 0x50a808
mov dword [ebp], eax
jmp 0x50a7ea
mov dword [esp], 0x5c4440
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
call fcn.0043c470
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 0x50a7a9
call fcn.00428880
ud2
call fcn.00428880
ud2
call fcn.00428880
ud2
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x48]
cmp ebx, ebp
jae 0x50a8c9
mov ebp, dword [esp + 0x44]
add ebp, ebx
movzx ebx, byte [ebp]
mov eax, ebx
jmp 0x50a742
call fcn.00428880
ud2
mov dword [esp], 0x5c4440
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
call fcn.0043c470
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 0x50a702
call fcn.00428880
ud2
mov dword [esp], 0x5c4440
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
call fcn.0043c470
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, eax
inc ecx
mov edi, edx
jmp 0x50a6b4
mov dword [esp], 0x5c4440
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
call fcn.0043c470
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 0x50a64a
call fcn.00428880
ud2
mov dword [ebp], eax
jmp 0x50a5fa
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 8]
cmp bl, 0
je 0x50a5a7
mov ebx, dword [esp + 0x24]
add ebx, 2
mov dword [esp + 0x24], ebx
jmp 0x50a5a7
mov ebx, dword [esp + 0x40]
movzx ebx, byte [ebx + 4]
cmp bl, 0
je 0x50a9c5
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.00508f90
add esp, 0x3c
ret
call fcn.00450fb0
jmp fcn.0050a500