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

Disassembly:
mov ecx, dword [0x99504c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0xbc]
cmp eax, dword [ecx + 8]
jbe 0x507855
sub esp, 0x13c
lea edi, [esp + 0x144]
xor eax, eax
call fcn.004690bf
mov ecx, dword [esp + 0x140]
movzx edx, byte [ecx + 0x18]
cmp dl, 2
jae 0x5074dd
mov edx, dword [0x9672b0]
mov ebx, dword [0x9672b4]
jmp 0x50751d
jbe 0x5074ed
mov edx, dword [0x9672b8]
mov ebx, dword [0x9672bc]
jmp 0x50751d
mov byte [ecx + 0x24], 0
movzx edx, word [ecx + 0x10]
cmp dword [ecx + 0x20], edx
jne 0x507519
mov dword [ecx + 0x20], 0
movzx ebp, byte [ecx + 0x18]
inc ebp
xchg ebp, eax
mov byte [ecx + 0x18], al
xchg ebp, eax
mov edx, dword [0x9672b8]
mov ebx, dword [0x9672bc]
jmp 0x50751d
xor edx, edx
xor ebx, ebx
test edx, edx
jne 0x507819
lea edi, [esp + 0x2c]
call fcn.004690c0
mov ecx, dword [esp + 0x140]
mov edx, dword [ecx]
mov ebx, dword [ecx + 4]
mov ebp, dword [ecx + 8]
mov esi, dword [ecx + 0x1c]
lea ecx, [esp + 0x2c]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
mov byte [esp + 0x14], 1
call fcn.00509760
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x50777d
mov edx, dword [esp + 0x140]
mov ecx, dword [edx + 4]
mov eax, dword [esp + 0x18]
lea ebx, [eax + 2]
mov ebp, dword [edx]
cmp ecx, ebx
jge 0x50759a
mov ebx, dword [0x9672c0]
mov esi, dword [0x9672c4]
mov edi, esi
mov esi, ebx
mov ebx, eax
xor eax, eax
jmp 0x5075b9
cmp eax, ecx
jae 0x50784f
lea esi, [eax + 1]
cmp ecx, esi
jbe 0x507848
movzx eax, word [eax + ebp]
rol ax, 8
xor esi, esi
xor edi, edi
test esi, esi
jne 0x5076ef
lea esi, [ebx + 2]
nop
cmp ecx, esi
jge 0x5075dd
mov ecx, dword [0x9672c0]
mov ebp, dword [0x9672c4]
mov esi, ebx
mov ebx, ecx
xor ecx, ecx
jmp 0x5075fc
cmp ebx, ecx
jae 0x507841
lea edi, [ebx + 1]
cmp ecx, edi
jbe 0x50783a
movzx ecx, word [ebx + ebp]
rol cx, 8
xor ebx, ebx
xor ebp, ebp
test ebx, ebx
je 0x507692
mov dword [esp + 0x28], ebx
mov dword [esp + 0x130], ebp
lea eax, [0x70a980]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x18
lea ecx, [0x7426fd]
mov dword [eax], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov ecx, dword [0x995310]
test ecx, ecx
jne 0x50764a
mov ecx, dword [esp + 0x130]
jmp 0x507658
call fcn.00468e60
mov ecx, dword [esp + 0x130]
mov dword [edi], ecx
mov dword [esp + 0x138], eax
mov dword [eax + 0xc], ecx
lea edi, [esp + 0x144]
xor eax, eax
call fcn.004690bf
lea ecx, [0x7b0fe8]
mov dword [esp + 0x248], ecx
mov ecx, dword [esp + 0x138]
mov dword [esp + 0x24c], ecx
add esp, 0x13c
ret
mov word [esp + 0x26], cx
mov dword [edx + 0x1c], esi
inc dword [edx + 0x20]
lea edi, [esp + 0x144]
mov edx, eax
xor eax, eax
call fcn.004690bf
lea edi, [esp + 0x144]
lea esi, [esp + 0x2c]
call fcn.00469390
mov word [esp + 0x244], dx
movzx ecx, word [esp + 0x26]
mov word [esp + 0x246], cx
mov dword [esp + 0x248], 0
mov dword [esp + 0x24c], 0
add esp, 0x13c
ret
mov dword [esp + 0x130], edi
mov dword [esp + 0x28], esi
lea eax, [0x70a980]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x17
lea ecx, [0x741e7f]
mov dword [eax], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov ecx, dword [0x995310]
test ecx, ecx
jne 0x507735
mov ecx, dword [esp + 0x130]
jmp 0x507743
call fcn.00468e60
mov ecx, dword [esp + 0x130]
mov dword [edi], ecx
mov dword [esp + 0x138], eax
mov dword [eax + 0xc], ecx
lea edi, [esp + 0x144]
xor eax, eax
call fcn.004690bf
lea ecx, [0x7b0fe8]
mov dword [esp + 0x248], ecx
mov ecx, dword [esp + 0x138]
mov dword [esp + 0x24c], ecx
add esp, 0x13c
ret
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x134], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x12c], ecx
lea edx, [0x70a980]
mov dword [esp], edx
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x17
lea ecx, [0x741e68]
mov dword [eax], ecx
mov ecx, dword [esp + 0x134]
mov dword [eax + 8], ecx
mov ecx, dword [0x995310]
test ecx, ecx
jne 0x5077d1
mov ecx, dword [esp + 0x12c]
jmp 0x5077df
call fcn.00468e60
mov ecx, dword [esp + 0x12c]
mov dword [edi], ecx
mov dword [esp + 0x138], eax
mov dword [eax + 0xc], ecx
lea edi, [esp + 0x144]
xor eax, eax
call fcn.004690bf
lea ecx, [0x7b0fe8]
mov dword [esp + 0x248], ecx
mov ecx, dword [esp + 0x138]
mov dword [esp + 0x24c], ecx
add esp, 0x13c
ret
lea edi, [esp + 0x144]
call fcn.004690bf
mov dword [esp + 0x248], edx
mov dword [esp + 0x24c], ebx
add esp, 0x13c
ret
mov eax, edi
call fcn.00468ed0
mov eax, ebx
call fcn.00468ed0
mov eax, esi
call fcn.00468ed0
call fcn.00468ed0
nop
call fcn.00467a60
jmp fcn.00507490