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

Disassembly:
lea r12, [rsp - 0x30]
cmp r12, qword [r14 + 0x10]
jbe 0x6109a6
sub rsp, 0xb0
mov qword [rsp + 0xa8], rbp
lea rbp, [rsp + 0xa8]
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0xb8], rax
mov rcx, qword [rax]
mov qword [rsp + 0x88], rcx
mov edx, dword [rbx + 8]
mov ebx, edx
call fcn.00610bc0
nop
nop
mov rcx, qword [rsp + 0xc0]
cmp byte [rcx], 0
je 0x610990
mov rdx, qword [rcx + 0x18]
mov rbx, qword [rcx + 0x10]
mov rdi, qword [rcx + 0x20]
test rax, rax
je 0x610783
mov qword [rsp + 0x80], rax
cmp byte [rax + 0x166], 0
jne 0x6106e5
cmp byte [rax + 0x162], 0
je 0x610653
cmp dword [rcx + 4], 0
jbe 0x610623
cmp byte [rax + 0xb9], 0
je 0x6102e7
test rdx, rdx
je 0x6102e7
mov rdx, qword [rsp + 0x88]
test byte [rdx], al
nop
lea rax, [0x006b46a8]
mov ebx, 0x2f
xor ecx, ecx
xor edi, edi
mov rsi, rdi
call fcn.005d0ba0
mov rdx, qword [rsp + 0xc0]
mov edx, dword [rdx + 8]
mov dword [rsp + 0x90], edx
mov dword [rsp + 0x94], 1
movups xmmword [rsp + 0x98], xmm15
lea rax, [0x0068d860]
lea rbx, [rsp + 0x90]
call fcn.0040ad40
mov rdx, qword [rsp + 0x80]
mov byte [rdx + 0x167], 1
lea rbx, [0x00719b00]
mov rcx, rax
mov rax, rdx
call fcn.00603dc0
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
mov qword [rsp + 0x30], rdx
mov rsi, rax
xor eax, eax
mov r8, qword [rsp + 0x88]
mov r9d, 1
lock cmpxchg dword [r8 + 0x58], r9d
sete r10b
lea rax, [r8 + 0x58]
mov qword [rsp + 0x60], rax
test r10b, r10b
jne 0x610358
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x50], rbx
call fcn.0046e200
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x38]
mov r8, qword [rsp + 0x88]
mov r9d, 1
mov r10d, dword [rsi + 0x118]
mov r11, qword [rsi + 0x120]
test r11, r11
je 0x610373
mov r12d, dword [r11]
cmp r12d, r10d
jl 0x610376
mov r12d, r10d
mov r13d, dword [rcx + 4]
nop word [rax + rax]
cmp r12d, r13d
jl 0x6105ec
nop
test r11, r11
je 0x610397
mov r11d, dword [r11]
cmp r11d, r10d
jl 0x6103a0
mov r11d, r10d
nop word [rax + rax]
cmp r11d, r13d
jl 0x61097d
sub r10d, r13d
mov dword [rsi + 0x118], r10d
mov r10, qword [rsi + 0x120]
test r10, r10
je 0x6103c2
sub dword [r10], r13d
mov r10d, dword [rcx + 4]
sub r10, rdx
test r10, r10
mov r11d, 0
cmovg r11, r10
test rdx, rdx
jne 0x6103e3
xor edx, edx
xor ebx, ebx
xor edi, edi
jmp 0x610434
mov qword [rsp + 0x40], r11
lea rax, [rsi + 0x30]
mov rcx, rdx
call fcn.00602a20
test rbx, rbx
setne dl
mov rsi, qword [rsp + 0x30]
mov r11, qword [rsp + 0x40]
add rsi, r11
test rbx, rbx
cmovne r11, rsi
mov rax, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
mov r9d, 1
mov rdi, rcx
mov rcx, qword [rsp + 0xc0]
test r11, r11
jle 0x610483
mov r10d, dword [r8 + 0x78]
lea r12d, [r11 + r10]
cmp r11d, r12d
setl r13b
test r10d, r10d
setg r10b
nop
cmp r10b, r13b
jne 0x610459
mov dword [r8 + 0x78], r12d
test dl, dl
jne 0x610483
mov r10d, dword [rsi + 0x118]
lea r12d, [r11 + r10]
cmp r11d, r12d
setl r13b
test r10d, r10d
setg r10b
nop
cmp r10b, r13b
jne 0x610483
mov dword [rsi + 0x118], r12d
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], r11
mov byte [rsp + 0x2b], dl
nop
mov r10d, 0xffffffff
lock xadd dword [r8 + 0x58], r10d
dec r10d
test r10d, r10d
jne 0x6104b0
test r11, r11
jmp 0x6104f2
mov ebx, r10d
call fcn.0046e500
mov rcx, qword [rsp + 0x40]
test rcx, rcx
mov rcx, qword [rsp + 0xc0]
movzx edx, byte [rsp + 0x2b]
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x78]
mov r8, qword [rsp + 0x88]
mov r9d, 1
mov r11, qword [rsp + 0x40]
jle 0x6105c0
xor eax, eax
lock cmpxchg dword [r8 + 0x128], r9d
sete r9b
lea rax, [r8 + 0x128]
mov qword [rsp + 0x58], rax
test r9b, r9b
jne 0x61052a
call fcn.0046e200
mov r8, qword [rsp + 0x88]
mov r11, qword [rsp + 0x40]
mov rax, qword [r8 + 0x138]
xor ebx, ebx
mov rcx, r11
call fcn.005fee40
movzx edx, byte [rsp + 0x2b]
test dl, dl
jne 0x610568
mov rdx, qword [rsp + 0x88]
mov rax, qword [rdx + 0x138]
mov rsi, qword [rsp + 0x80]
mov ebx, dword [rsi + 0x28]
mov rcx, qword [rsp + 0x40]
call fcn.005fee40
mov rcx, qword [rsp + 0x88]
mov rax, qword [rcx + 0x130]
call fcn.005d1fc0
nop
mov ebx, 0xffffffff
mov rcx, qword [rsp + 0x88]
lock xadd dword [rcx + 0x128], ebx
dec ebx
test ebx, ebx
je 0x6105a5
mov rax, qword [rsp + 0x58]
nop dword [rax]
call fcn.0046e500
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x78]
nop
test rbx, rbx
je 0x610626
nop
mov byte [rsi + 0x167], 1
mov rax, rsi
mov rcx, rdi
call fcn.00603dc0
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
nop
mov ebx, 0xffffffff
lock xadd dword [r8 + 0x58], ebx
dec ebx
test ebx, ebx
je 0x610605
nop
call fcn.0046e500
lea rax, [0x00719ac0]
lea rbx, [0x007167a0]
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
mov rsi, rax
movzx ecx, byte [rcx + 2]
test cl, 1
je 0x61063f
mov rax, qword [rsp + 0xb8]
mov rbx, rsi
call fcn.006109e0
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
mov rdx, qword [rsp + 0x88]
test byte [rdx], al
nop
lea rax, [0x006b59a5]
mov ebx, 0x34
xor ecx, ecx
xor edi, edi
mov rsi, rdi
call fcn.005d0ba0
mov rdx, qword [rsp + 0xc0]
mov edx, dword [rdx + 8]
mov dword [rsp + 0x90], edx
mov dword [rsp + 0x94], 1
movups xmmword [rsp + 0x98], xmm15
lea rax, [0x0068d860]
lea rbx, [rsp + 0x90]
call fcn.0040ad40
mov rdx, qword [rsp + 0x80]
mov byte [rdx + 0x167], 1
lea rbx, [0x00719b00]
mov rcx, rax
mov rax, rdx
call fcn.00603dc0
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
mov rdx, qword [rsp + 0x88]
test byte [rdx], al
nop
lea rax, [0x006b40ad]
mov ebx, 0x2e
xor ecx, ecx
xor edi, edi
mov rsi, rdi
call fcn.005d0ba0
mov qword [rsp + 0x90], 0
movups xmmword [rsp + 0x98], xmm15
mov rdx, qword [rsp + 0xc0]
mov edx, dword [rdx + 8]
mov dword [rsp + 0x90], edx
mov dword [rsp + 0x94], 1
lea rax, [0x0068d860]
lea rbx, [rsp + 0x90]
call fcn.0040ad40
mov rdx, qword [rsp + 0x80]
mov byte [rdx + 0x167], 1
lea rbx, [0x00719b00]
mov rcx, rax
mov rax, rdx
call fcn.00603dc0
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
xor eax, eax
mov rdx, qword [rsp + 0x88]
mov r8d, 1
lock cmpxchg dword [rdx + 0x58], r8d
sete r9b
lea rax, [rdx + 0x58]
mov qword [rsp + 0x70], rax
test r9b, r9b
jne 0x6107cb
call fcn.0046e200
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0x88]
mov r8d, 1
mov r9d, dword [rdx + 0xb8]
nop
mov ebx, 0xffffffff
lock xadd dword [rdx + 0x58], ebx
dec ebx
nop
test ebx, ebx
je 0x61080e
mov dword [rsp + 0x2c], r9d
call fcn.0046e500
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0x88]
mov r8d, 1
mov r9d, dword [rsp + 0x2c]
cmp dword [rcx + 8], r9d
jae 0x610945
cmp dword [rcx + 4], 0
nop dword [rax]
jbe 0x610931
nop
mov rbx, rax
xor eax, eax
lock cmpxchg dword [rdx + 0x58], r8d
sete sil
test sil, sil
jne 0x610860
mov rax, rbx
nop
call fcn.0046e200
mov rcx, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x70]
mov r8d, 1
mov esi, dword [rcx + 4]
mov edi, dword [rdx + 0x78]
lea r9d, [rsi + rdi]
cmp esi, r9d
setl sil
test edi, edi
setg dil
cmp dil, sil
jne 0x610880
mov dword [rdx + 0x78], r9d
nop
mov esi, 0xffffffff
lock xadd dword [rdx + 0x58], esi
dec esi
test esi, esi
je 0x6108b1
mov rax, rbx
mov ebx, esi
call fcn.0046e500
mov rcx, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0x88]
mov r8d, 1
xor eax, eax
lock cmpxchg dword [rdx + 0x128], r8d
sete sil
lea rax, [rdx + 0x128]
mov qword [rsp + 0x68], rax
test sil, sil
jne 0x6108e6
call fcn.0046e200
mov rcx, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0x88]
mov rax, qword [rdx + 0x138]
mov ecx, dword [rcx + 4]
xor ebx, ebx
call fcn.005fee40
mov rdx, qword [rsp + 0x88]
mov rax, qword [rdx + 0x130]
call fcn.005d1fc0
nop
mov ebx, 0xffffffff
mov rdx, qword [rsp + 0x88]
lock xadd dword [rdx + 0x128], ebx
dec ebx
test ebx, ebx
je 0x610931
mov rax, qword [rsp + 0x68]
call fcn.0046e500
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
nop
nop
lea rax, [0x006b7a3c]
mov ebx, 0x44
xor ecx, ecx
xor edi, edi
mov rsi, rdi
call fcn.005d0ba0
lea rax, [0x00719ac0]
lea rbx, [0x00716780]
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
lea rax, [0x006576e0]
lea rbx, [0x00718820]
call fcn.00436420
lea rax, [0x006576e0]
lea rbx, [0x00718830]
nop
call fcn.00436420
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.004632e0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
nop
jmp fcn.006101a0