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

Disassembly:
lea r12, [rsp - 0x50]
cmp r12, qword [r14 + 0x10]
jbe 0x46f506
sub rsp, 0xd0
mov qword [rsp + 0xc8], rbp
lea rbp, [rsp + 0xc8]
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe0], rbx
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0xf0], rdi
test rax, rax
jne 0x46efe0
xor eax, eax
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
test rcx, rcx
je 0x46f4f0
nop
cmp byte [0x008c3bb0], 0
je 0x46f01e
mov qword [0x008c3bb8], rcx
cmp dword [0x00918a90], 0
jne 0x46f00c
mov qword [0x008c3bc0], rdi
jmp 0x46f01e
mov rdx, rdi
lea rdi, [0x008c3bc0]
call fcn.00465720
mov rdi, rdx
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0xb0], rdi
mov rdx, qword [rsp + 0xa8]
test rdx, rdx
je 0x46f05b
movzx esi, byte [rdx + 0x17]
mov r8d, esi
and esi, 0x1f
mov r9, rsi
bts rsi, 7
test r8b, 0x20
cmove r9, rsi
nop
mov rsi, rdi
jmp 0x46f065
mov rsi, rdi
xor edi, edi
xor r9d, r9d
xor edx, edx
nop
test r9, r9
je 0x46f4bb
mov qword [rsp + 0xe0], rbx
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x38], r9
mov rax, rdx
call fcn.0046c4a0
cmp rax, 0x16
jne 0x46f46f
nop
mov rcx, qword [rsp + 0x38]
mov rdx, rcx
and ecx, 0x1f
mov qword [rsp + 0x58], rcx
cmp rcx, 0x14
ja 0x46f0e0
lea rsi, [rcx - 0x12]
cmp rsi, 1
jbe 0x46f10a
cmp rcx, 0x14
je 0x46f0ec
jmp 0x46f485
cmp rcx, 0x16
jbe 0x46f10a
cmp rcx, 0x17
jne 0x46f100
mov rcx, qword [rsp + 0x68]
cmp qword [rcx], 0
setne sil
jmp 0x46f129
cmp rcx, 0x1a
jne 0x46f485
bt edx, 7
jae 0x46f11a
mov rcx, qword [rsp + 0x68]
mov rdi, qword [rcx]
jmp 0x46f122
mov rcx, qword [rsp + 0x68]
mov rdi, rcx
test rdi, rdi
setne sil
test sil, sil
je 0x46f46f
mov rax, qword [rsp + 0x60]
call fcn.0046c7a0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x70], rbx
mov rcx, qword [rax + 0x38]
mov rax, rbx
call rcx
cmp rax, 0x14
je 0x46f17b
mov rbx, qword [0x008c3860]
mov rcx, qword [0x008c3868]
mov rdx, qword [rsp + 0x40]
mov rsi, qword [rdx + 0x30]
mov rax, qword [rsp + 0x70]
call rsi
test al, al
je 0x46f45c
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xe0]
jmp 0x46f190
mov rcx, rbx
test rax, rax
je 0x46f19b
mov rdx, qword [rax + 8]
jmp 0x46f19e
mov rdx, rax
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xc0], rcx
mov rdx, qword [rsp + 0xb8]
test rdx, rdx
je 0x46f1ce
lea rbx, [0x00731cc8]
jmp 0x46f1d2
xor ebx, ebx
xor edx, edx
mov rsi, qword [rbx + 0x18]
mov rax, rdx
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x70]
call rsi
test al, al
jne 0x46f305
lea rax, [0x00673bc0]
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x78]
nop
call fcn.0040b320
test rax, rax
jne 0x46f214
mov rbx, qword [rsp + 0x30]
test rbx, rbx
jmp 0x46f243
mov rdx, qword [rax + 0x18]
mov rax, rbx
mov rbx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x90]
call rdx
test al, al
jne 0x46f2f0
mov rbx, qword [rsp + 0x30]
nop word [rax + rax]
test rbx, rbx
je 0x46f2de
lea rax, [0x00673e00]
mov rcx, qword [rsp + 0x78]
call fcn.0040b320
test rax, rax
je 0x46f29b
lea rax, [0x00673e00]
mov rbx, qword [rsp + 0x30]
call fcn.0040b260
mov rcx, qword [rax + 0x18]
mov rax, qword [rsp + 0x78]
call rcx
nop dword [rax + rax]
test rax, rax
jne 0x46f18d
xor eax, eax
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
lea rax, [0x00673da0]
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x78]
call fcn.0040b320
test rax, rax
je 0x46f2de
lea rax, [0x00673da0]
mov rbx, qword [rsp + 0x30]
call fcn.0040b260
mov rcx, qword [rax + 0x18]
mov rax, qword [rsp + 0x78]
call rcx
mov qword [rsp + 0x50], rbx
xor ecx, ecx
jmp 0x46f400
xor eax, eax
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
mov eax, 1
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
mov rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x38]
call fcn.0046e220
mov rdx, qword [rsp + 0x30]
nop
test rdx, rdx
je 0x46f329
mov rdx, qword [rdx + 8]
test rdx, rdx
je 0x46f3b8
nop
cmp byte [0x008c3bb0], 0
je 0x46f36d
mov qword [0x008c3bb8], rdx
cmp dword [0x00918a90], 0
jne 0x46f35a
mov r9, qword [rsp + 0x78]
mov qword [0x008c3bc0], r9
jmp 0x46f372
lea rdi, [0x008c3bc0]
mov r9, qword [rsp + 0x78]
call fcn.004657a0
jmp 0x46f372
mov r9, qword [rsp + 0x78]
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0xa0], r9
mov rdx, qword [rsp + 0x98]
test rdx, rdx
je 0x46f3ae
movzx r10d, byte [rdx + 0x17]
mov r11d, r10d
and r10d, 0x1f
mov r12, r10
bts r10, 7
test r11b, 0x20
cmove r12, r10
nop
jmp 0x46f3c0
xor r12d, r12d
xor edx, edx
xor r9d, r9d
jmp 0x46f3c0
xor r12d, r12d
xor edx, edx
xor r9d, r9d
mov rdi, rdx
mov rsi, r9
mov r8, r12
call fcn.0046e680
mov eax, 1
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
mov rax, qword [rsp + 0x80]
add rax, 0x10
mov rcx, qword [rsp + 0x48]
inc rcx
mov rbx, qword [rsp + 0x50]
nop dword [rax]
cmp rbx, rcx
jle 0x46f44a
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x80], rax
mov rdx, qword [rax]
mov rbx, qword [rax + 8]
mov rcx, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x90]
mov rax, rdx
call fcn.0046ef80
test al, al
je 0x46f3e3
mov eax, 1
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
xor eax, eax
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
lea rax, [0x00667a40]
lea rbx, [0x0072db30]
call fcn.00436260
lea rax, [0x00667a40]
lea rbx, [0x0072db20]
nop dword [rax]
call fcn.00436260
lea rax, [0x006878e0]
call fcn.0040da20
mov qword [rax + 8], 0x17
lea rcx, [0x006bf43e]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x58]
mov qword [rax + 0x10], rcx
mov rbx, rax
lea rax, [0x00670f80]
call fcn.00436260
lea rax, [0x006878e0]
call fcn.0040da20
mov qword [rax + 8], 0x16
lea rcx, [0x006beb57]
mov qword [rax], rcx
mov qword [rax + 0x10], 0
mov rbx, rax
lea rax, [0x00670f80]
call fcn.00436260
lea rax, [0x00667a40]
lea rbx, [0x0072db10]
nop
call fcn.00436260
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.00463440
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.0046ef80