Function at 0x507860
Capabilities:
Reference http user-agent string

Disassembly:
mov ecx, dword [0x99504c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x507ade
sub esp, 0x18
mov edx, dword [esp + 0x1c]
movzx ebx, byte [edx + 0x18]
cmp bl, 2
jae 0x507892
mov ebx, dword [0x9672b0]
mov ebp, dword [0x9672b4]
jmp 0x5078d2
jbe 0x5078a2
mov ebx, dword [0x9672b8]
mov ebp, dword [0x9672bc]
jmp 0x5078d2
mov byte [edx + 0x24], 0
movzx ebx, word [edx + 0x10]
cmp dword [edx + 0x20], ebx
jne 0x5078ce
mov dword [edx + 0x20], 0
movzx esi, byte [edx + 0x18]
inc esi
xchg esi, eax
mov byte [edx + 0x18], al
xchg esi, eax
mov ebx, dword [0x9672b8]
mov ebp, dword [0x9672bc]
jmp 0x5078d2
xor ebx, ebx
xor ebp, ebp
test ebx, ebx
jne 0x5078e2
mov ecx, dword [edx + 4]
mov ebx, dword [edx]
mov ebp, dword [edx + 0x1c]
mov eax, ebp
jmp 0x5078ee
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebp
add esp, 0x18
ret
cmp ebp, ecx
jge 0x507946
jae 0x507ad6
movzx esi, byte [ebx + ebp]
mov edi, esi
and esi, 0xc0
test esi, esi
jne 0x507927
test edi, edi
je 0x507922
lea ebp, [ebp + edi + 1]
cmp ecx, ebp
jge 0x5078ee
mov ebx, dword [0x9672c8]
mov esi, dword [0x9672cc]
jmp 0x507952
lea eax, [ebp + 1]
jmp 0x507932
cmp esi, 0xc0
jne 0x507938
lea eax, [ebp + 2]
xor ebx, ebx
xor esi, esi
jmp 0x507952
mov ebx, dword [0x9672d0]
mov esi, dword [0x9672d4]
jmp 0x507952
mov ebx, dword [0x9672c0]
mov esi, dword [0x9672c4]
test ebx, ebx
jne 0x507a76
lea ebx, [eax + 2]
cmp ecx, ebx
jge 0x50796f
mov ebx, dword [0x9672c0]
mov ebp, dword [0x9672c4]
jmp 0x507975
mov eax, ebx
xor ebp, ebp
xor ebx, ebx
test ebx, ebx
jne 0x507a16
lea ebx, [eax + 2]
cmp ecx, ebx
jge 0x507992
mov ecx, dword [0x9672c0]
mov ebx, dword [0x9672c4]
jmp 0x507998
xor ecx, ecx
mov eax, ebx
xor ebx, ebx
test ecx, ecx
je 0x5079fc
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], ecx
lea eax, [0x70a980]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x17
lea ecx, [0x741e96]
mov dword [eax], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax + 8], ecx
mov ecx, dword [0x995310]
test ecx, ecx
jne 0x5079dc
mov ecx, dword [esp + 0x14]
jmp 0x5079e7
call fcn.00468e60
mov ecx, dword [esp + 0x14]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x7b0fe8]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
add esp, 0x18
ret
mov dword [edx + 0x1c], eax
inc dword [edx + 0x20]
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
add esp, 0x18
ret
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], ebp
lea eax, [0x70a980]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x16
lea ecx, [0x74148c]
mov dword [eax], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax + 8], ecx
mov ecx, dword [0x995310]
test ecx, ecx
jne 0x507a56
mov ecx, dword [esp + 0x14]
jmp 0x507a61
call fcn.00468e60
mov ecx, dword [esp + 0x14]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x7b0fe8]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
add esp, 0x18
ret
mov dword [esp + 8], ebx
mov dword [esp + 0x10], esi
lea eax, [0x70a980]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x16
lea ecx, [0x741476]
mov dword [eax], ecx
mov ecx, dword [esp + 8]
mov dword [eax + 8], ecx
mov ecx, dword [0x995310]
test ecx, ecx
jne 0x507ab6
mov ecx, dword [esp + 0x10]
jmp 0x507ac1
call fcn.00468e60
mov ecx, dword [esp + 0x10]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x7b0fe8]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
add esp, 0x18
ret
mov eax, ebp
call fcn.00468ed0
nop
call fcn.00467a60
jmp fcn.00507860