Function at 0x508c70
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x5c
mov ecx, dword [esp + 0x60]
mov eax, 1
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0xc], 2
xorps xmm0, xmm0
lea ebx, [ecx + 2]
sub eax, ecx
not esi
mov ebp, 0xfffffffe
mov dword [esp + 0x14], esi
push edi
movups xmmword [esp + 0x1c], xmm0
mov dword [esp + 0x14], eax
sub ebp, ecx
movups xmmword [esp + 0x2c], xmm0
nop dword [eax]
lea edx, [ebx + ebp]
mov edi, 8
mov eax, edx
shr edx, 1
and eax, 1
shl eax, 3
sub edi, eax
movzx eax, byte [ebx - 2]
mov ecx, edi
shl eax, cl
mov ecx, 8
or dword [esp + edx*4 + 0x1c], eax
lea edx, [ebx + esi]
mov eax, edx
lea esi, [esp + 0x1c]
shr eax, 1
and edx, 1
lea esi, [esi + eax*4]
shl edx, 3
movzx eax, byte [ebx - 1]
sub ecx, edx
shl eax, cl
lea edx, [esp + 0x1c]
or dword [esi], eax
mov ecx, edi
mov eax, dword [esp + 0x10]
lea esi, [esp + 0x1c]
shr eax, 1
lea edx, [edx + eax*4]
add dword [esp + 0x10], 4
movzx eax, byte [ebx]
shl eax, cl
mov ecx, 8
or dword [edx], eax
mov edx, dword [esp + 0x14]
add edx, ebx
mov eax, edx
and edx, 1
shr eax, 1
lea esi, [esi + eax*4]
shl edx, 3
movzx eax, byte [ebx + 1]
sub ecx, edx
add ebx, 4
shl eax, cl
or dword [esi], eax
mov esi, dword [esp + 0x18]
lea eax, [ebx + ebp]
cmp eax, 0x10
jl 0x508cb0
or edi, 0xffffffff
xor ebp, ebp
or ecx, edi
xor edx, edx
xor esi, esi
cmp dword [esp + esi*4 + 0x1c], 0
mov ebx, ecx
mov eax, ecx
jne 0x508d75
cmp eax, 0xffffffff
mov ecx, esi
cmovne ecx, eax
lea eax, [edx + 1]
cmp ebx, 0xffffffff
mov edx, 1
cmovne edx, eax
jmp 0x508d8a
cmp ecx, 0xffffffff
je 0x508d8a
cmp edi, 0xffffffff
je 0x508d83
cmp edx, ebp
jle 0x508d87
mov edi, ecx
mov ebp, edx
or ecx, 0xffffffff
inc esi
cmp esi, 8
jl 0x508d52
cmp ecx, 0xffffffff
je 0x508da8
cmp edi, 0xffffffff
je 0x508d9e
cmp edx, ebp
jle 0x508da8
mov ebp, edx
mov edi, ecx
mov dword [esp + 0x10], ebp
jmp 0x508db1
mov dword [esp + 0x10], ebp
cmp edi, 0xffffffff
je 0x508dba
or eax, 0xffffffff
cmp ebp, 2
cmovl edi, eax
lea esi, [esp + 0x3c]
xor ebx, ebx
cmp edi, 0xffffffff
je 0x508dda
cmp ebx, edi
jl 0x508dda
lea eax, [edi + ebp]
cmp ebx, eax
jge 0x508dda
cmp ebx, edi
jne 0x508e1f
mov byte [esi], 0x3a
inc esi
jmp 0x508e1f
test ebx, ebx
je 0x508e06
mov byte [esi], 0x3a
lea ecx, [esi + 1]
mov dword [esp + 0x18], ecx
mov esi, ecx
cmp ebx, 6
jne 0x508e06
test edi, edi
jne 0x508e06
cmp ebp, ebx
je 0x508e65
cmp ebp, 5
jne 0x508e06
cmp dword [esp + 0x30], 0xffff
je 0x508e65
push dword [esp + ebx*4 + 0x1c]
push 0x587b68
push 5
push esi
call fcn.004f9330
add esp, 0x10
add esi, eax
lea eax, [edi + ebp]
inc ebx
cmp ebx, 8
jl 0x508dc0
cmp edi, 0xffffffff
je 0x508e33
cmp eax, 8
jne 0x508e33
mov byte [esi], 0x3a
inc esi
mov byte [esi], 0
lea eax, [esp + 0x3c]
sub esi, eax
inc esi
cmp esi, dword [esp + 0x78]
ja 0x508e81
mov edx, eax
mov eax, dword [esp + 0x74]
mov esi, eax
mov ecx, edx
sub esi, ecx
nop
mov cl, byte [edx]
lea edx, [edx + 1]
mov byte [esi + edx - 1], cl
test cl, cl
jne 0x508e50
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret
lea eax, [esp + 0x6a]
sub eax, ecx
push eax
mov eax, dword [esp + 0x74]
push ecx
add eax, 0xc
push eax
call fcn.00508be0
add esp, 0xc
test eax, eax
jne 0x508e96
call fcn.0041273c
pop edi
pop esi
pop ebp
mov dword [eax], 0x1c
xor eax, eax
pop ebx
add esp, 0x5c
ret
mov ecx, dword [esp + 0x18]
mov edx, ecx
lea esi, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x508ea0
mov eax, dword [esp + 0x10]
sub edx, esi
add eax, edi
lea esi, [edx + ecx]
jmp 0x508e2a