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

Disassembly:
lea r12, [rsp - 0x50]
cmp r12, qword [r14 + 0x10]
jbe 0x6045d8
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 + 0x50], r8d
sete r8b
lea rax, [rcx + 0x50]
test r8b, r8b
jne 0x60421e
mov qword [rsp + 0x50], rax
call fcn.00470dc0
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, [0x00604600]
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 0x604294
mov rcx, qword [rsp + 0x60]
mov rax, qword [rcx + 0x58]
nop
call fcn.0046f8a0
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 + 0x82], 0
nop dword [rax + rax]
jne 0x604551
cmp byte [rdx + 0x158], 0
jne 0x604501
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.00448300
test rax, rax
jge 0x6043f8
mov rcx, qword [rsp + 0xd8]
mov esi, dword [rcx + 0x108]
mov rdi, qword [rcx + 0x110]
test rdi, rdi
je 0x60435c
mov r8d, dword [rdi]
cmp r8d, esi
jge 0x60435c
mov eax, esi
mov esi, r8d
jmp 0x604360
mov eax, esi
nop
test esi, esi
jle 0x604255
movsxd r8, esi
mov r9, qword [rsp + 0xe0]
cmp r9, r8
cmovl esi, r9d
mov r8, qword [rsp + 0x60]
mov r8d, dword [r8 + 0x100]
cmp r8d, esi
cmovl esi, r8d
test rdi, rdi
je 0x60439e
mov edi, dword [rdi]
cmp edi, eax
jge 0x60439e
mov edx, eax
mov eax, edi
jmp 0x6043a0
mov edx, eax
cmp eax, esi
jl 0x6045a1
sub edx, esi
mov dword [rcx + 0x108], edx
mov rax, qword [rcx + 0x110]
test rax, rax
je 0x6043be
sub dword [rax], esi
mov dword [rsp + 0x34], esi
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
je 0x6044b0
nop
cmp rax, 1
jne 0x604458
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]
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
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 [0x008bdad0]
mov rcx, qword [0x008bdad8]
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
nop
ret
mov rax, qword [0x008bdb00]
mov rcx, qword [0x008bdb08]
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 [0x008bd9a0]
mov rcx, qword [0x008bd9a8]
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, [0x006654e0]
lea rbx, [0x0073a760]
call fcn.00437460
nop
call fcn.00436820
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.004629a0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.00604160