Function at 0x6baac0
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 0x6bb175
sub esp, 0x38
mov eax, dword [esp + 0x40]
cmp eax, 0xf
jl 0x6bab0a
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
lea ecx, [0x73de58]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xf
call fcn.004034e0
movzx eax, byte [esp + 0xc]
xor eax, 1
test al, al
je 0x6bab4d
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x27
lea ecx, [0x74a091]
mov dword [eax], ecx
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
lea ecx, [0x7b0bb8]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
add esp, 0x38
ret
lea eax, [0x71b940]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 0x44]
add eax, 0xfffffff1
mov ecx, eax
neg eax
sar eax, 0x1f
and eax, 0xf
mov edx, dword [esp + 0x3c]
add eax, edx
mov edx, dword [esp + 0x40]
add edx, 0xfffffff1
mov ebx, dword [esp + 4]
mov dword [esp + 0x24], ebx
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
lea eax, [0x6eb200]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebx
call fcn.006bb8d0
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x6baeb7
mov eax, dword [esp + 0x24]
cmp dword [eax + 0xc], 4
jne 0x6babd0
mov ecx, dword [eax + 8]
cmp dword [ecx], 0x656e6f6e
jne 0x6babd0
cmp dword [eax + 4], 4
jne 0x6babd0
mov ecx, dword [eax]
cmp dword [ecx], 0x656e6f6e
je 0x6bac13
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x29
lea ecx, [0x74af0f]
mov dword [eax], ecx
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
lea ecx, [0x7b0bb8]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
add esp, 0x38
ret
lea eax, [0x70d7e0]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x28]
mov ebx, dword [ecx + 0x2c]
mov ecx, dword [ecx + 0x30]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
lea ecx, [0x6eb1c0]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.006bb8d0
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x6bae93
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
cmp dword [eax + 4], ecx
jne 0x6bae50
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
cmp ecx, 7
jne 0x6bad1e
cmp dword [edx], 0x2d687373
jne 0x6bad46
cmp word [edx + 4], 0x7372
jne 0x6bad46
cmp byte [edx + 6], 0x61
jne 0x6bad46
lea eax, [0x720ec0]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x10]
mov ebx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
lea ecx, [0x6eb300]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.006bb8d0
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x6bacfa
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
xor ebx, ebx
jmp 0x6bafdd
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
add esp, 0x38
ret
cmp ecx, 0xb
jne 0x6bad46
mov dword [esp], edx
lea eax, [0x73c655]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xb
call fcn.004034e0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x6bad89
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x17
lea ecx, [0x741d99]
mov dword [eax], ecx
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
lea ecx, [0x7b0bb8]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
add esp, 0x38
ret
lea eax, [0x70d840]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x10]
mov ebx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
lea ecx, [0x6eb500]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.006bb8d0
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x6bae2c
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x10], 0x40
jne 0x6bade9
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
xor ebx, ebx
jmp 0x6baedb
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x22
lea ecx, [0x7479c4]
mov dword [eax], ecx
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
lea ecx, [0x7b0bb8]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
add esp, 0x38
ret
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
add esp, 0x38
ret
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x16
lea ecx, [0x7413b0]
mov dword [eax], ecx
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
lea ecx, [0x7b0bb8]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
add esp, 0x38
ret
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
add esp, 0x38
ret
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
add esp, 0x38
ret
cmp ebx, edx
jge 0x6baf2b
movzx ebp, byte [ebx + ecx]
inc ebx
cmp ebp, ebx
je 0x6baedb
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1c
lea ecx, [0x74490e]
mov dword [eax], ecx
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
lea ecx, [0x7b0bb8]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
add esp, 0x38
ret
lea eax, [0x71aae0]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [esp + 0x2c], eax
lea ecx, [0x6f4820]
mov dword [esp], ecx
mov dword [esp + 4], 0x40
mov dword [esp + 8], 0x40
call fcn.0044e560
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 4], 0x40
mov dword [ecx + 8], 0x40
mov edx, dword [0x995310]
test edx, edx
je 0x6baf8b
call fcn.00468e70
mov dword [edi], eax
mov edx, dword [ecx]
mov dword [edi + 4], edx
mov dword [ecx], eax
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x10]
cmp edx, 0x40
jl 0x6baf9e
mov edx, 0x40
mov ebx, dword [ecx]
mov eax, dword [eax + 0xc]
cmp ebx, eax
je 0x6bafbb
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.004697f0
mov ecx, dword [esp + 0x2c]
lea eax, [0x71aa60]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
add esp, 0x38
ret
cmp ebx, edx
jge 0x6bb02d
movzx ebp, byte [ebx + ecx]
inc ebx
cmp ebp, ebx
je 0x6bafdd
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1c
lea ecx, [0x74490e]
mov dword [eax], ecx
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
lea ecx, [0x7b0bb8]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
add esp, 0x38
ret
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
test edx, edx
jne 0x6bb03b
xor edx, edx
jmp 0x6bb040
mov edx, dword [ecx + 4]
mov edx, dword [edx]
movzx ecx, byte [ecx]
test cl, cl
je 0x6bb04d
xor ecx, ecx
sub ecx, edx
jmp 0x6bb04f
mov ecx, edx
mov dword [esp + 0x1c], ecx
lea eax, [0x7186c0]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [0x995310]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x34]
mov ebx, dword [edx]
test eax, eax
je 0x6bb07c
call fcn.00468e60
mov dword [edi], ebx
mov dword [ecx], ebx
mov eax, dword [esp + 0x1c]
mov dword [ecx + 4], eax
mov eax, dword [0x995310]
mov ebx, dword [edx + 8]
test eax, eax
je 0x6bb099
call fcn.00468e60
mov dword [edi], ebx
mov dword [esp + 0x20], ecx
mov dword [ecx + 8], ebx
lea eax, [0x6f1ec0]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [0x995310]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x34]
mov ebx, dword [edx + 0x10]
test eax, eax
je 0x6bb0ca
call fcn.00468e60
mov dword [edi], ebx
mov dword [ecx], ebx
mov eax, dword [0x995310]
mov edx, dword [edx + 0x14]
test eax, eax
je 0x6bb0e0
call fcn.00468e60
mov dword [edi], edx
mov dword [ecx + 4], edx
mov eax, dword [esp + 0x20]
mov dword [eax + 0x10], 2
mov dword [eax + 0x14], 2
mov edx, dword [0x995310]
test edx, edx
je 0x6bb10c
call fcn.00468e70
mov dword [edi], ecx
mov edx, dword [eax + 0xc]
mov dword [edi + 4], edx
mov dword [eax + 0xc], ecx
mov dword [esp], eax
call fcn.005ba090
mov eax, dword [esp + 4]
test eax, eax
je 0x6bb143
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
add esp, 0x38
ret
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.005ba9c0
lea eax, [0x724d00]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
add esp, 0x38
ret
call fcn.00467a60
jmp fcn.006baac0