Function at 0x5129e0
Capabilities:
Enumerate pe sections

Disassembly:
mov eax, 0x1c
call fcn.005466e0
mov eax, dword [0x5f1464]
xor eax, esp
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
xor edx, edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
push ebx
mov ebx, dword [esp + 0x30]
push ebp
movups xmm0, xmmword [eax]
push esi
push edi
movups xmmword [ebx], xmm0
mov dword [esp + 0x14], edx
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ebx + 0x10], xmm0
nop dword [eax]
movzx eax, byte [ebx + 3]
mov ebp, 0
movzx ecx, byte [ebx + 2]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebx + 1]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebx]
shl eax, 8
or eax, ecx
mov ecx, dword [esp + 0x38]
movzx ecx, byte [edx + ecx]
mov dword [esp + 0x10], ecx
and ecx, 1
cmove ebp, eax
xor edx, edx
test ecx, ecx
movzx ecx, byte [ebx + 6]
cmove eax, edx
movzx edx, byte [ebx + 7]
shl edx, 8
or edx, ecx
movzx ecx, byte [ebx + 5]
shl edx, 8
or edx, ecx
movzx ecx, byte [ebx + 4]
shl edx, 8
or edx, ecx
test byte [esp + 0x10], 2
je 0x512a86
add eax, edx
jmp 0x512a88
add ebp, edx
movzx esi, byte [ebx + 0xb]
movzx ecx, byte [ebx + 0xa]
mov edx, dword [esp + 0x10]
shl esi, 8
or esi, ecx
movzx ecx, byte [ebx + 9]
shl esi, 8
or esi, ecx
movzx ecx, byte [ebx + 8]
shl esi, 8
or esi, ecx
and edx, 4
lea ecx, [esi + ebp]
cmove ebp, ecx
add esi, eax
test edx, edx
mov ecx, dword [esp + 0x10]
movzx edx, byte [ebx + 0xf]
cmove esi, eax
movzx eax, byte [ebx + 0xe]
shl edx, 8
or edx, eax
movzx eax, byte [ebx + 0xd]
shl edx, 8
or edx, eax
movzx eax, byte [ebx + 0xc]
shl edx, 8
or edx, eax
and ecx, 8
lea eax, [edx + ebp]
cmove ebp, eax
lea edi, [edx + esi]
movzx edx, byte [ebx + 0x13]
test ecx, ecx
movzx eax, byte [ebx + 0x12]
cmove edi, esi
mov ecx, dword [esp + 0x10]
shl edx, 8
or edx, eax
movzx eax, byte [ebx + 0x11]
shl edx, 8
or edx, eax
movzx eax, byte [ebx + 0x10]
shl edx, 8
or edx, eax
and ecx, 0x10
lea eax, [edx + ebp]
cmove ebp, eax
lea esi, [edx + edi]
movzx edx, byte [ebx + 0x17]
test ecx, ecx
movzx eax, byte [ebx + 0x16]
mov ecx, dword [esp + 0x10]
cmove esi, edi
shl edx, 8
or edx, eax
movzx eax, byte [ebx + 0x15]
shl edx, 8
or edx, eax
movzx eax, byte [ebx + 0x14]
shl edx, 8
or edx, eax
and ecx, 0x20
lea eax, [edx + ebp]
cmove ebp, eax
lea edi, [esi + edx]
movzx edx, byte [ebx + 0x1b]
test ecx, ecx
movzx eax, byte [ebx + 0x1a]
mov ecx, dword [esp + 0x10]
cmove edi, esi
shl edx, 8
or edx, eax
movzx eax, byte [ebx + 0x19]
shl edx, 8
or edx, eax
movzx eax, byte [ebx + 0x18]
shl edx, 8
or edx, eax
and ecx, 0x40
lea eax, [edx + ebp]
cmove ebp, eax
mov esi, dword [esp + 0x1c]
movzx eax, byte [ebx + 0x1e]
add edx, edi
test ecx, ecx
movzx ecx, byte [ebx + 0x1f]
push ebx
cmove edx, edi
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x1d]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x1c]
shl ecx, 8
or ecx, eax
and dword [esp + 0x14], 0x80
push esi
lea eax, [ecx + ebp]
cmove ebp, eax
add ecx, edx
cmp dword [esp + 0x18], 0
mov dword [esp + 0x20], ebp
cmove ecx, edx
mov eax, ecx
mov byte [esp + 0x28], cl
shr eax, 8
mov byte [esp + 0x29], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [esp + 0x2a], al
mov byte [esp + 0x2b], cl
mov ecx, ebp
mov eax, ecx
mov byte [esp + 0x2c], cl
shr eax, 8
mov byte [esp + 0x2d], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [esp + 0x2e], al
mov byte [esp + 0x2f], cl
call fcn.00508a70
push 4
push ebx
push ebx
lea eax, [esp + 0x34]
push eax
push esi
call fcn.005088a0
mov edx, dword [esp + 0x30]
add esp, 0x1c
inc edx
mov dword [esp + 0x14], edx
cmp edx, 8
jl 0x512a20
mov ecx, dword [esp + 0x28]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00545b6c
add esp, 0x1c
ret