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

Disassembly:
lea r12, [rsp - 0x50]
cmp r12, qword [r14 + 0x10]
jbe 0x612e03
sub rsp, 0xd0
mov qword [rsp + 0xc8], rbp
lea rbp, [rsp + 0xc8]
mov r13, 0
mov qword [rsp + 0xc0], r13
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe0], rbx
mov byte [rsp + 0x33], 0
mov dword [rsp + 0x34], 0
movups xmmword [rsp + 0x70], xmm15
mov rcx, qword [rax]
mov qword [rsp + 0x60], rcx
mov rsi, qword [rax + 8]
mov qword [rsp + 0x38], rsi
mov rdi, qword [rax + 0x10]
mov qword [rsp + 0x58], rdi
mov rdx, rax
xor eax, eax
mov r8d, 1
lock cmpxchg dword [rcx + 0x58], r8d
sete r8b
lea rax, [rcx + 0x58]
test r8b, r8b
jne 0x612a3e
mov qword [rsp + 0x50], rax
call fcn.00470b60
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0xd8]
mov rbx, qword [rsp + 0xe0]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x58]
movups xmmword [rsp + 0x80], xmm15
lea r8, [0x00612e40]
mov qword [rsp + 0x80], r8
mov qword [rsp + 0x88], rax
lea r8, [rsp + 0x80]
mov qword [rsp + 0xc0], r8
mov byte [rsp + 0x33], 1
jmp 0x612ab4
mov rcx, qword [rsp + 0x60]
mov rax, qword [rcx + 0x60]
nop
call fcn.0046f620
mov rcx, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x38]
mov rcx, rdx
mov rdx, qword [rsp + 0xd8]
mov rbx, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0x58]
cmp byte [rcx + 0x8a], 0
nop dword [rax + rax]
jne 0x612d79
cmp qword [rdx + 0x158], 0
jne 0x612d29
mov rcx, qword [rdx + 0xc8]
mov qword [rsp + 0x68], rcx
mov rbx, qword [rsi + 0x20]
mov rax, rdi
call rbx
mov rcx, qword [rsp + 0xd8]
mov rdx, qword [rcx + 0x18]
movups xmmword [rsp + 0x90], xmm15
movups xmmword [rsp + 0xa0], xmm15
movups xmmword [rsp + 0xb0], xmm15
mov rbx, qword [rsp + 0x68]
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x90], rdx
lea rax, [rsp + 0x90]
lea rbx, [rsp + 0x44]
xor edi, edi
mov esi, 3
xor r8d, r8d
xor ecx, ecx
call fcn.004473a0
test rax, rax
jge 0x612c1c
mov rcx, qword [rsp + 0xd8]
mov esi, dword [rcx + 0x108]
mov rdi, qword [rcx + 0x110]
test rdi, rdi
je 0x612b76
mov r8d, dword [rdi]
cmp r8d, esi
jl 0x612b80
mov r8d, esi
nop dword [rax]
test r8d, r8d
jle 0x612a75
movsxd r9, r8d
mov r10, qword [rsp + 0xe0]
cmp r10, r9
cmovl r8d, r10d
mov r9, qword [rsp + 0x60]
mov r9d, dword [r9 + 0x108]
cmp r9d, r8d
cmovl r8d, r9d
test rdi, rdi
je 0x612bb9
mov edi, dword [rdi]
cmp edi, esi
jl 0x612bc0
mov edi, esi
nop dword [rax + rax]
cmp edi, r8d
jl 0x612dc9
sub esi, r8d
mov dword [rcx + 0x108], esi
mov rax, qword [rcx + 0x110]
test rax, rax
je 0x612be1
sub dword [rax], r8d
mov dword [rsp + 0x34], r8d
movups xmmword [rsp + 0x70], xmm15
mov byte [rsp + 0x33], 0
mov rdx, qword [rsp + 0xc0]
mov rax, qword [rdx]
call rax
mov eax, dword [rsp + 0x34]
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x78]
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
nop dword [rax]
je 0x612cd9
cmp rax, 1
jne 0x612c81
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 0x28]
mov rax, qword [rsp + 0x58]
call rcx
mov dword [rsp + 0x34], 0
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rbx
mov byte [rsp + 0x33], 0
mov rdx, qword [rsp + 0xc0]
mov rcx, qword [rdx]
nop
call rcx
mov eax, dword [rsp + 0x34]
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x78]
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
nop
ret
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rax + 0xd0]
mov rax, qword [rax + 0xd8]
mov dword [rsp + 0x34], 0
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], rax
mov byte [rsp + 0x33], 0
mov rdx, qword [rsp + 0xc0]
mov rax, qword [rdx]
call rax
mov eax, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
mov rax, qword [0x008b6680]
mov rcx, qword [0x008b6688]
mov dword [rsp + 0x34], 0
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rcx
mov byte [rsp + 0x33], 0
mov rdx, qword [rsp + 0xc0]
mov rax, qword [rdx]
call rax
mov eax, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
mov rax, qword [0x008b66b0]
mov rcx, qword [0x008b66b8]
mov dword [rsp + 0x34], 0
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rcx
mov byte [rsp + 0x33], 0
mov rdx, qword [rsp + 0xc0]
mov rax, qword [rdx]
call rax
mov eax, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
mov rax, qword [0x008b65a0]
mov rcx, qword [0x008b65a8]
mov dword [rsp + 0x34], 0
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rcx
mov byte [rsp + 0x33], 0
mov rdx, qword [rsp + 0xc0]
mov rax, qword [rdx]
call rax
mov eax, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
lea rax, [0x00667a40]
lea rbx, [0x0072dd50]
call fcn.00436260
nop
nop dword [rax]
call fcn.00435700
mov eax, dword [rsp + 0x34]
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x78]
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00463440
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
nop dword [rax]
jmp fcn.00612980