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

Disassembly:
lea r12, [rsp - 8]
cmp r12, qword [r14 + 0x10]
jbe 0x49fd56
sub rsp, 0x88
mov qword [rsp + 0x80], rbp
lea rbp, [rsp + 0x80]
test rbx, rbx
je 0x49fabb
test rcx, rcx
jg 0x49f8d5
bsf rdx, rbx
mov r9, rcx
neg rcx
nop
cmp rdx, rcx
jl 0x49f8d8
cmp rcx, 0x40
sbb rdi, rdi
shr rbx, cl
and rdi, rbx
mov rbx, rdi
mov rcx, rbx
mov esi, 1
xor r8d, r8d
call fcn.0049fda0
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
mov r9, rcx
mov rcx, qword [rdi]
cmp rcx, 0x40
sbb rdx, rdx
mov r10d, 1
shl r10, cl
and r10, rdx
cmp rbx, r10
jne 0x49f905
mov rdx, qword [rdi + 0x10]
sub rdx, rcx
inc rdx
nop dword [rax]
cmp r9, rdx
jne 0x49f91e
mov rdx, rbx
shl rbx, 1
lea r10, [rdx - 1]
add r10, rdx
lea r11, [rdx + 1]
add r11, rdx
dec r9
jmp 0x49f940
mov r10, rbx
shl r10, 2
lea rdx, [r10 - 1]
lea r11, [r10 + 2]
add r9, 0xfffffffffffffffe
mov rcx, rdx
mov rdx, rbx
mov rbx, r10
mov r10, rcx
nop dword [rax]
test r9, r9
je 0x49fa95
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x90], rax
imul rcx, r9, 0xfffffffffffecbbf
sar rcx, 0x12
mov qword [rsp + 0x38], rcx
lea rsi, [rcx + 1]
mov qword [rsp + 0x48], rsi
lea r8, [0x00883c50]
cmp rdi, r8
jne 0x49f9f0
mov rax, r10
mov rbx, r9
mov rcx, rsi
call fcn.004a02a0
mov dword [rsp + 0x30], eax
mov byte [rsp + 0x2e], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x48]
call fcn.004a02a0
mov dword [rsp + 0x34], eax
mov byte [rsp + 0x2f], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
call fcn.004a02a0
mov edx, dword [rsp + 0x30]
mov edx, edx
mov esi, dword [rsp + 0x34]
mov esi, esi
mov edi, eax
movzx eax, byte [rsp + 0x2f]
movzx r8d, byte [rsp + 0x2e]
jmp 0x49fa50
mov rax, r10
mov rbx, r9
mov rcx, rsi
call fcn.004a0380
mov qword [rsp + 0x60], rax
mov byte [rsp + 0x2e], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x48]
call fcn.004a0380
mov qword [rsp + 0x68], rax
mov byte [rsp + 0x2f], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
call fcn.004a0380
mov rdx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
mov rdi, rax
movzx eax, byte [rsp + 0x2f]
movzx r8d, byte [rsp + 0x2e]
test rbx, rbx
jge 0x49fd42
mov r9, qword [rsp + 0x48]
nop
cmp r9, 0x37
jle 0x49fa6d
xor ecx, ecx
xor eax, eax
xor r8d, r8d
mov r10, qword [rsp + 0x38]
lea r11, [r10 + 0x19]
cmp r11, 0x18
jae 0x49fad0
neg r9
mov r11, qword [rsp + 0x50]
test r11, r11
je 0x49fc86
xor r12d, r12d
jmp 0x49fc54
mov rcx, rbx
mov rdi, r11
mov esi, 1
xor r8d, r8d
mov rbx, r10
call fcn.0049fda0
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
movups xmmword [rax + 0x18], xmm15
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
mov qword [rsp + 0x68], rsi
mov r9, rbx
neg rbx
cmp rbx, 0x40
sbb r11, r11
mov r12d, ecx
mov rcx, rbx
mov r13d, 1
shl r13, cl
and r13, r11
dec r13
mov r15, rdx
shr rdx, cl
and rdx, r11
shr rsi, cl
and rsi, r11
mov r10, qword [rsp + 0x68]
and r10, r13
mov rbx, rdi
shr rdi, cl
and rdi, r11
and rbx, r13
test r12b, r12b
je 0x49fb2b
test rbx, rbx
seta r11b
test r12b, r12b
jmp 0x49fb31
mov r11d, 1
je 0x49fb48
test rbx, rbx
jne 0x49fb48
mov r12, qword [rsp + 0x78]
bt r12d, 0
setae r11b
jmp 0x49fb4d
mov r12, qword [rsp + 0x78]
mov rcx, r12
lea r12, [rdi - 1]
movzx r11d, r11b
test r11, r11
cmovne r12, rdi
nop
test al, al
je 0x49fba6
inc r9
neg r9
cmp r9, 0x40
sbb r11, r11
mov rbx, rcx
mov rcx, r9
mov rdi, r12
mov r12d, 1
shl r12, cl
and r12, r11
cmp r12, r10
jae 0x49fb95
mov rcx, rsi
mov esi, 1
jmp 0x49fbd6
jne 0x49fb9f
mov rcx, rsi
and esi, 1
jmp 0x49fbd6
mov rcx, rsi
xor esi, esi
jmp 0x49fbd6
inc r9
neg r9
cmp r9, 0x40
sbb r11, r11
mov rbx, rcx
mov rcx, r9
mov rdi, r10
shr r10, cl
and r10, r11
cmp r10, 1
sete r9b
mov rcx, rsi
mov r10, rdi
mov esi, r9d
mov rdi, r12
test r8b, r8b
je 0x49fbef
nop dword [rax + rax]
test r13, r15
jne 0x49fbef
bt ebx, 0
jb 0x49fbef
test al, al
jmp 0x49fbf4
inc rdx
test al, al
je 0x49fbff
test r10, r10
sete r9b
jmp 0x49fc02
xor r9d, r9d
mov rax, qword [rsp + 0x90]
mov rbx, rdx
mov r8d, esi
mov esi, r9d
call fcn.0049fda0
mov rdx, qword [rsp + 0x90]
mov r9, qword [rdx + 0x20]
mov r10, qword [rsp + 0x38]
sub r9, r10
dec r9
mov qword [rdx + 0x20], r9
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
inc r12
mov eax, r13d
mov r10, qword [rsp + 0x38]
mov r11, rdx
mov rdx, r15
cmp r12, r9
jge 0x49fc86
mov r13d, eax
movabs rax, 0xcccccccccccccccd
mov r15, rdx
mul r11
shr rdx, 2
lea r10, [rdx + rdx*4]
cmp r11, r10
je 0x49fc43
mov eax, r13d
mov rdx, r15
mov r10, qword [rsp + 0x38]
jmp 0x49fc8c
mov r8d, 1
mov r11, qword [rsp + 0x70]
test r11, r11
je 0x49fcdc
xor r12d, r12d
jmp 0x49fcac
inc r12
mov eax, r13d
mov r10, qword [rsp + 0x38]
mov r11, rdx
mov rdx, r15
cmp r12, r9
jge 0x49fcdc
mov r13d, eax
movabs rax, 0xcccccccccccccccd
mov r15, rdx
mul r11
shr rdx, 2
mov rax, r10
lea r10, [rdx + rdx*4]
cmp r11, r10
je 0x49fc9b
mov rdx, r15
mov r10, rax
jmp 0x49fce2
mov r13d, 1
mov r11, qword [rsp + 0x40]
test r11, r11
je 0x49fcf0
xor eax, eax
jmp 0x49fd0e
mov eax, 1
mov ecx, eax
mov eax, r13d
jmp 0x49fad0
inc r12
mov r10, rax
mov rax, r12
mov r11, rdx
mov rdx, r15
cmp rax, r9
jge 0x49fcf0
mov r12, rax
movabs rax, 0xcccccccccccccccd
mov r15, rdx
mul r11
shr rdx, 2
mov rax, r10
lea r10, [rdx + rdx*4]
cmp r11, r10
je 0x49fcff
mov rdx, r15
mov r10, rax
mov eax, ecx
nop
jmp 0x49fcf5
lea rax, [0x00667a40]
lea rbx, [0x0072e340]
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.0049f860