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

Disassembly:
lea r12, [rsp - 0x30]
cmp r12, qword [r14 + 0x10]
jbe 0x61b766
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.0061b980
nop
nop
mov rcx, qword [rsp + 0xc0]
cmp byte [rcx], 0
je 0x61b750
mov rdx, qword [rcx + 0x18]
mov rbx, qword [rcx + 0x10]
mov rdi, qword [rcx + 0x20]
test rax, rax
je 0x61b543
mov qword [rsp + 0x80], rax
cmp byte [rax + 0x166], 0
jne 0x61b4a5
cmp byte [rax + 0x162], 0
je 0x61b413
cmp dword [rcx + 4], 0
jbe 0x61b3e3
cmp byte [rax + 0xb9], 0
je 0x61b0a7
test rdx, rdx
je 0x61b0a7
mov rdx, qword [rsp + 0x88]
test byte [rdx], al
nop
lea rax, [0x0072d45d]
mov ebx, 0x2f
xor ecx, ecx
xor edi, edi
mov rsi, rdi
call fcn.004cde40
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, [0x006ff5c0]
lea rbx, [rsp + 0x90]
call fcn.0040ae80
mov rdx, qword [rsp + 0x80]
mov byte [rdx + 0x167], 1
lea rbx, [0x007f25e0]
mov rcx, rax
mov rax, rdx
call fcn.0060eb80
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 0x61b118
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x50], rbx
call fcn.0047d500
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 0x61b133
mov r12d, dword [r11]
cmp r12d, r10d
jl 0x61b136
mov r12d, r10d
mov r13d, dword [rcx + 4]
nop word [rax + rax]
cmp r12d, r13d
jl 0x61b3ac
nop
test r11, r11
je 0x61b157
mov r11d, dword [r11]
cmp r11d, r10d
jl 0x61b160
mov r11d, r10d
nop word [rax + rax]
cmp r11d, r13d
jl 0x61b73d
sub r10d, r13d
mov dword [rsi + 0x118], r10d
mov r10, qword [rsi + 0x120]
test r10, r10
je 0x61b182
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 0x61b1a3
xor edx, edx
xor ebx, ebx
xor edi, edi
jmp 0x61b1f4
mov qword [rsp + 0x40], r11
lea rax, [rsi + 0x30]
mov rcx, rdx
call fcn.0060d7e0
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 0x61b243
mov r10d, dword [r8 + 0x78]
lea r12d, [r11 + r10]
cmp r11d, r12d
setl r13b
test r10d, r10d
setg r10b
nop
cmp r10b, r13b
jne 0x61b219
mov dword [r8 + 0x78], r12d
test dl, dl
jne 0x61b243
mov r10d, dword [rsi + 0x118]
lea r12d, [r11 + r10]
cmp r11d, r12d
setl r13b
test r10d, r10d
setg r10b
nop
cmp r10b, r13b
jne 0x61b243
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 0x61b270
test r11, r11
jmp 0x61b2b2
mov ebx, r10d
call fcn.0047d800
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 0x61b380
xor eax, eax
lock cmpxchg dword [r8 + 0x128], r9d
sete r9b
lea rax, [r8 + 0x128]
mov qword [rsp + 0x58], rax
test r9b, r9b
jne 0x61b2ea
call fcn.0047d500
mov r8, qword [rsp + 0x88]
mov r11, qword [rsp + 0x40]
mov rax, qword [r8 + 0x138]
xor ebx, ebx
mov rcx, r11
call fcn.00609c00
movzx edx, byte [rsp + 0x2b]
test dl, dl
jne 0x61b328
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.00609c00
mov rcx, qword [rsp + 0x88]
mov rax, qword [rcx + 0x130]
call fcn.005dba40
nop
mov ebx, 0xffffffff
mov rcx, qword [rsp + 0x88]
lock xadd dword [rcx + 0x128], ebx
dec ebx
test ebx, ebx
je 0x61b365
mov rax, qword [rsp + 0x58]
nop dword [rax]
call fcn.0047d800
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 0x61b3e6
nop
mov byte [rsi + 0x167], 1
mov rax, rsi
mov rcx, rdi
call fcn.0060eb80
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 0x61b3c5
nop
call fcn.0047d800
lea rax, [0x007f25a0]
lea rbx, [0x007ee970]
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
mov rsi, rax
movzx ecx, byte [rcx + 2]
test cl, 1
je 0x61b3ff
mov rax, qword [rsp + 0xb8]
mov rbx, rsi
call fcn.0061b7a0
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, [0x0072e9d8]
mov ebx, 0x34
xor ecx, ecx
xor edi, edi
mov rsi, rdi
call fcn.004cde40
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, [0x006ff5c0]
lea rbx, [rsp + 0x90]
call fcn.0040ae80
mov rdx, qword [rsp + 0x80]
mov byte [rdx + 0x167], 1
lea rbx, [0x007f25e0]
mov rcx, rax
mov rax, rdx
call fcn.0060eb80
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, [0x0072ce33]
mov ebx, 0x2e
xor ecx, ecx
xor edi, edi
mov rsi, rdi
call fcn.004cde40
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, [0x006ff5c0]
lea rbx, [rsp + 0x90]
call fcn.0040ae80
mov rdx, qword [rsp + 0x80]
mov byte [rdx + 0x167], 1
lea rbx, [0x007f25e0]
mov rcx, rax
mov rax, rdx
call fcn.0060eb80
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 0x61b58b
call fcn.0047d500
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 0x61b5ce
mov dword [rsp + 0x2c], r9d
call fcn.0047d800
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 0x61b705
cmp dword [rcx + 4], 0
nop dword [rax]
jbe 0x61b6f1
nop
mov rbx, rax
xor eax, eax
lock cmpxchg dword [rdx + 0x58], r8d
sete sil
test sil, sil
jne 0x61b620
mov rax, rbx
nop
call fcn.0047d500
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 0x61b640
mov dword [rdx + 0x78], r9d
nop
mov esi, 0xffffffff
lock xadd dword [rdx + 0x58], esi
dec esi
test esi, esi
je 0x61b671
mov rax, rbx
mov ebx, esi
call fcn.0047d800
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 0x61b6a6
call fcn.0047d500
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.00609c00
mov rdx, qword [rsp + 0x88]
mov rax, qword [rdx + 0x130]
call fcn.005dba40
nop
mov ebx, 0xffffffff
mov rdx, qword [rsp + 0x88]
lock xadd dword [rdx + 0x128], ebx
dec ebx
test ebx, ebx
je 0x61b6f1
mov rax, qword [rsp + 0x68]
call fcn.0047d800
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
nop
nop
lea rax, [0x00730d20]
mov ebx, 0x44
xor ecx, ecx
xor edi, edi
mov rsi, rdi
call fcn.004cde40
lea rax, [0x007f25a0]
lea rbx, [0x007ee948]
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
lea rax, [0x006bb4c0]
lea rbx, [0x007f0eb0]
call fcn.00436580
lea rax, [0x006bb4c0]
lea rbx, [0x007f0ec0]
nop
call fcn.00436580
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00463860
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
nop
jmp fcn.0061af60