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

Disassembly:
lea r12, [rsp - 0x30]
cmp r12, qword [r14 + 0x10]
jbe 0x6183a6
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.006185c0
nop
nop
mov rcx, qword [rsp + 0xc0]
cmp byte [rcx], 0
je 0x618390
mov rdx, qword [rcx + 0x18]
mov rbx, qword [rcx + 0x10]
mov rdi, qword [rcx + 0x20]
test rax, rax
je 0x618183
mov qword [rsp + 0x80], rax
cmp byte [rax + 0x166], 0
jne 0x6180e5
cmp byte [rax + 0x162], 0
je 0x618053
cmp dword [rcx + 4], 0
jbe 0x618023
cmp byte [rax + 0xb9], 0
je 0x617ce7
test rdx, rdx
je 0x617ce7
mov rdx, qword [rsp + 0x88]
test byte [rdx], al
nop
lea rax, [0x006c9104]
mov ebx, 0x2f
xor ecx, ecx
xor edi, edi
mov rsi, rdi
call fcn.005cbb40
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, [0x006a0860]
lea rbx, [rsp + 0x90]
call fcn.0040ae00
mov rdx, qword [rsp + 0x80]
mov byte [rdx + 0x167], 1
lea rbx, [0x0072f160]
mov rcx, rax
mov rax, rdx
call fcn.0060b7c0
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 0x617d58
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x50], rbx
call fcn.00470b60
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 0x617d73
mov r12d, dword [r11]
cmp r12d, r10d
jl 0x617d76
mov r12d, r10d
mov r13d, dword [rcx + 4]
nop word [rax + rax]
cmp r12d, r13d
jl 0x617fec
nop
test r11, r11
je 0x617d97
mov r11d, dword [r11]
cmp r11d, r10d
jl 0x617da0
mov r11d, r10d
nop word [rax + rax]
cmp r11d, r13d
jl 0x61837d
sub r10d, r13d
mov dword [rsi + 0x118], r10d
mov r10, qword [rsi + 0x120]
test r10, r10
je 0x617dc2
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 0x617de3
xor edx, edx
xor ebx, ebx
xor edi, edi
jmp 0x617e34
mov qword [rsp + 0x40], r11
lea rax, [rsi + 0x30]
mov rcx, rdx
call fcn.0060a420
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 0x617e83
mov r10d, dword [r8 + 0x78]
lea r12d, [r11 + r10]
cmp r11d, r12d
setl r13b
test r10d, r10d
setg r10b
nop
cmp r10b, r13b
jne 0x617e59
mov dword [r8 + 0x78], r12d
test dl, dl
jne 0x617e83
mov r10d, dword [rsi + 0x118]
lea r12d, [r11 + r10]
cmp r11d, r12d
setl r13b
test r10d, r10d
setg r10b
nop
cmp r10b, r13b
jne 0x617e83
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 0x617eb0
test r11, r11
jmp 0x617ef2
mov ebx, r10d
call fcn.00470e60
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 0x617fc0
xor eax, eax
lock cmpxchg dword [r8 + 0x128], r9d
sete r9b
lea rax, [r8 + 0x128]
mov qword [rsp + 0x58], rax
test r9b, r9b
jne 0x617f2a
call fcn.00470b60
mov r8, qword [rsp + 0x88]
mov r11, qword [rsp + 0x40]
mov rax, qword [r8 + 0x138]
xor ebx, ebx
mov rcx, r11
call fcn.00606860
movzx edx, byte [rsp + 0x2b]
test dl, dl
jne 0x617f68
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.00606860
mov rcx, qword [rsp + 0x88]
mov rax, qword [rcx + 0x130]
call fcn.005c97a0
nop
mov ebx, 0xffffffff
mov rcx, qword [rsp + 0x88]
lock xadd dword [rcx + 0x128], ebx
dec ebx
test ebx, ebx
je 0x617fa5
mov rax, qword [rsp + 0x58]
nop dword [rax]
call fcn.00470e60
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 0x618026
nop
mov byte [rsi + 0x167], 1
mov rax, rsi
mov rcx, rdi
call fcn.0060b7c0
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 0x618005
nop
call fcn.00470e60
lea rax, [0x0072f120]
lea rbx, [0x0072d5b0]
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
mov rsi, rax
movzx ecx, byte [rcx + 2]
test cl, 1
je 0x61803f
mov rax, qword [rsp + 0xb8]
mov rbx, rsi
call fcn.006183e0
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, [0x006ca4cb]
mov ebx, 0x34
xor ecx, ecx
xor edi, edi
mov rsi, rdi
call fcn.005cbb40
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, [0x006a0860]
lea rbx, [rsp + 0x90]
call fcn.0040ae00
mov rdx, qword [rsp + 0x80]
mov byte [rdx + 0x167], 1
lea rbx, [0x0072f160]
mov rcx, rax
mov rax, rdx
call fcn.0060b7c0
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, [0x006c8aac]
mov ebx, 0x2e
xor ecx, ecx
xor edi, edi
mov rsi, rdi
call fcn.005cbb40
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, [0x006a0860]
lea rbx, [rsp + 0x90]
call fcn.0040ae00
mov rdx, qword [rsp + 0x80]
mov byte [rdx + 0x167], 1
lea rbx, [0x0072f160]
mov rcx, rax
mov rax, rdx
call fcn.0060b7c0
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 0x6181cb
call fcn.00470b60
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 0x61820e
mov dword [rsp + 0x2c], r9d
call fcn.00470e60
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 0x618345
cmp dword [rcx + 4], 0
nop dword [rax]
jbe 0x618331
nop
mov rbx, rax
xor eax, eax
lock cmpxchg dword [rdx + 0x58], r8d
sete sil
test sil, sil
jne 0x618260
mov rax, rbx
nop
call fcn.00470b60
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 0x618280
mov dword [rdx + 0x78], r9d
nop
mov esi, 0xffffffff
lock xadd dword [rdx + 0x58], esi
dec esi
test esi, esi
je 0x6182b1
mov rax, rbx
mov ebx, esi
call fcn.00470e60
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 0x6182e6
call fcn.00470b60
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.00606860
mov rdx, qword [rsp + 0x88]
mov rax, qword [rdx + 0x130]
call fcn.005c97a0
nop
mov ebx, 0xffffffff
mov rdx, qword [rsp + 0x88]
lock xadd dword [rdx + 0x128], ebx
dec ebx
test ebx, ebx
je 0x618331
mov rax, qword [rsp + 0x68]
call fcn.00470e60
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
nop
nop
lea rax, [0x006cc519]
mov ebx, 0x44
xor ecx, ecx
xor edi, edi
mov rsi, rdi
call fcn.005cbb40
lea rax, [0x0072f120]
lea rbx, [0x0072bb38]
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
lea rax, [0x00667a40]
lea rbx, [0x0072dd50]
call fcn.00436260
lea rax, [0x00667a40]
lea rbx, [0x0072dd60]
nop
call fcn.00436260
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00463440
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
nop
jmp fcn.00617ba0