Function at 0x50f310
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0xc
mov edx, dword [esp + 0x14]
push ebx
push ebp
mov ebp, dword [esp + 0x18]
mov eax, dword [edx]
push esi
mov esi, ecx
shl ebp, 8
and eax, 0x7f5f7f5f
mov dword [esp + 0xc], esi
add ebp, esi
cmp eax, 0x30463046
je 0x50f4b0
cmp eax, 0x31463046
je 0x50f4b0
xor ebx, ebx
lea ecx, [edx - 6]
mov edx, dword [esp + 0x24]
mov eax, 6
push edi
xor edi, edi
mov dword [esp + 0x24], ebx
xor esi, esi
mov dword [esp + 0x18], ecx
mov cl, byte [ecx + eax]
inc eax
mov dword [esp + 0x14], eax
test cl, cl
je 0x50f4a6
mov al, cl
sub al, 0x30
cmp al, 9
ja 0x50f38a
movsx eax, cl
sub eax, 0x30
shl esi, 4
or esi, eax
inc edi
jmp 0x50f495
mov al, cl
sub al, 0x41
cmp al, 5
ja 0x50f3a3
movsx eax, cl
sub eax, 0x37
shl esi, 4
or esi, eax
inc edi
jmp 0x50f495
mov al, cl
sub al, 0x61
cmp al, 5
ja 0x50f3bc
movsx eax, cl
sub eax, 0x57
shl esi, 4
or esi, eax
inc edi
jmp 0x50f495
cmp cl, 0x7a
je 0x50f48b
cmp cl, 0x5a
je 0x50f48b
cmp cl, 0x78
je 0x50f484
cmp cl, 0x58
je 0x50f484
cmp cl, 0x79
je 0x50f47a
cmp cl, 0x59
je 0x50f47a
cmp edi, 2
jb 0x50f495
lea ecx, [ebx*8]
xor edi, edi
shl esi, cl
inc ebx
or dword [esp + 0x24], esi
xor esi, esi
cmp ebx, 3
jb 0x50f495
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + 0xe910]
cmp eax, ecx
jae 0x50f42b
inc eax
jmp 0x50f431
mov eax, dword [ebp + 0xa0]
test eax, eax
je 0x50f46e
cmp eax, ecx
ja 0x50f46e
lea eax, [eax + eax*8]
mov eax, dword [edx + eax*4 + 0xc1a8]
test eax, eax
je 0x50f46e
cmp eax, 8
ja 0x50f46e
lea eax, [eax + eax*8]
add eax, eax
mov ecx, dword [edx + eax*8 + 0xe3f0]
test ecx, ecx
je 0x50f46e
cmp dword [edx + eax*8 + 0xe3f4], esi
je 0x50f46e
mov eax, dword [ecx]
push dword [esp + 0x24]
call dword [eax + 0x1c]
mov edx, dword [esp + 0x28]
xor ebx, ebx
mov dword [esp + 0x24], ebx
jmp 0x50f495
mov esi, edx
and esi, 0xf
shl esi, 3
jmp 0x50f490
mov esi, edx
and esi, 0x70
jmp 0x50f490
mov esi, edx
and esi, 0x7f
mov edi, 2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
cmp eax, 0x20
jbe 0x50f361
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0xc
cmp byte [edx + 4], 0x30
jne 0x50f4a7
mov bl, byte [edx + 6]
xor ecx, ecx
cmp bl, 0x7a
je 0x50f516
cmp bl, 0x5a
je 0x50f516
mov ah, byte [edx + 7]
mov al, bl
sub al, 0x30
cmp al, 9
ja 0x50f4de
movsx ecx, bl
shl ecx, 4
sub ecx, 0x300
jmp 0x50f4f2
mov al, bl
sub al, 0x41
cmp al, 5
ja 0x50f4f2
movsx ecx, bl
shl ecx, 4
sub ecx, 0x370
mov al, ah
sub al, 0x30
cmp al, 9
ja 0x50f504
movsx eax, ah
add ecx, 0xffffffd0
add ecx, eax
jmp 0x50f51a
mov al, ah
sub al, 0x41
cmp al, 5
ja 0x50f51a
movsx eax, ah
add ecx, 0xffffffc9
add ecx, eax
jmp 0x50f51a
mov ecx, dword [esp + 0x24]
movsx eax, byte [edx + 5]
sub eax, 0x30
je 0x50f55c
sub eax, 1
jne 0x50f4a7
cmp ecx, 0x80
jae 0x50f53a
mov byte [ebp + 0xef], cl
mov eax, dword [ebp + 0x24]
mov ecx, esi
shr eax, 0xe
not eax
push 0x100
and eax, 1
push eax
push ebp
call fcn.0053a870
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0xc
mov al, byte [ebp + 0xee]
movzx edx, al
cmp ecx, 0x80
jae 0x50f575
mov al, cl
mov byte [ebp + 0xee], al
movzx eax, al
mov ecx, edx
sub ecx, eax
cmp dword [ebp + 0x74], 0
jg 0x50f5a3
sub eax, edx
test ecx, ecx
cmovns eax, ecx
cmp eax, 0x10
jl 0x50f5a3
test dword [ebp + 0x24], 0x4000
je 0x50f5a3
mov eax, dword [ebp + 0x14]
or eax, dword [ebp + 0x10]
jne 0x50f4a7
mov eax, dword [ebp + 0x24]
mov ecx, esi
shr eax, 0xe
not eax
push 0x100
and eax, 1
push eax
push ebp
call fcn.0053a870
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0xc