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

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x45b633
sub rsp, 0x70
mov qword [rsp + 0x68], rbp
lea rbp, [rsp + 0x68]
mov qword [rsp + 0xa8], rdi
mov byte [rsp + 0xb0], sil
mov dword [rsp + 0xb4], r8d
mov qword [rsp + 0xb8], r9
mov qword [rsp + 0x48], rbx
mov rdx, qword [rdi]
mov qword [rsp + 0x38], rdx
add rax, 0x34
mov qword [rsp + 0x30], rax
test rdx, rdx
je 0x45b166
mov rdx, qword [rdx + 0x10]
add rdx, 0xffffffffffff0418
neg rdx
cmp rdx, rax
jge 0x45b1be
movups xmmword [rsp + 0x50], xmm15
mov dword [rsp + 0x60], 0
lea rax, [0x0045b6a0]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x38]
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x60], ecx
lea rax, [rsp + 0x50]
mov qword [rsp], rax
call fcn.0046b580
xorps xmm15, xmm15
mov r14, qword [0x01bfb078]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0xa8]
mov qword [rcx], rax
nop
call fcn.0046d700
xorps xmm15, xmm15
mov r14, qword [0x01bfb078]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp]
shr rcx, 6
mov rdx, qword [rax + 8]
mov rbx, rcx
sub rcx, rdx
inc rdx
test rcx, rcx
cmove rbx, rdx
mov edx, 1
cmove rcx, rdx
mov qword [rax + 8], rbx
mov eax, dword [rsp + 0xb4]
test eax, eax
je 0x45b21a
mov rsi, qword [rsp + 0xb8]
jmp 0x45b227
mov rsi, qword [rsp + 0xb8]
test rsi, rsi
jl 0x45b235
mov rdx, qword [rsp + 0x80]
lea r8d, [rdx + 1]
jmp 0x45b240
mov rdx, qword [rsp + 0x80]
mov r8, rdx
cmp r8b, 3
jbe 0x45b24c
mov r8d, 3
mov r9, qword [rsp + 0x38]
mov r10, qword [r9 + 0x10]
mov r11d, r8d
shl r8d, 6
movzx r12d, byte [rsp + 0xb0]
or r8d, r12d
cmp r10, 0xfbe8
jae 0x45b625
mov byte [r9 + r10 + 0x418], r8b
inc qword [r9 + 0x10]
cmp r11b, 3
jne 0x45b297
mov r8, qword [rsp + 0x38]
mov r9, qword [r8 + 0x10]
xor ebx, ebx
jmp 0x45b5a4
xor ebx, ebx
mov r8, qword [rsp + 0x38]
mov r9, qword [r8 + 0x10]
jmp 0x45b2c0
mov r11, rcx
or ecx, 0xffffff80
mov byte [r8 + r9 + 0x418], cl
shr r11, 7
inc r9
mov rcx, r11
nop dword [rax]
cmp rcx, 0x80
jb 0x45b2e0
cmp r9, 0xfbe8
jb 0x45b2a4
jmp 0x45b57f
cmp r9, 0xfbe8
jae 0x45b572
mov byte [r8 + r9 + 0x418], cl
inc r9
mov qword [r8 + 0x10], r9
mov r8, qword [rsp + 0x78]
xor ecx, ecx
jmp 0x45b319
mov byte [r9 + r12 + 0x418], r11b
lea r11, [r12 + 1]
mov qword [r9 + 0x10], r11
inc rcx
cmp rdx, rcx
jle 0x45b340
mov r9, qword [rsp + 0x38]
mov r11, qword [r8 + rcx*8]
mov r12, qword [r9 + 0x10]
jmp 0x45b540
cmp r12, 0xfbe8
jb 0x45b305
jmp 0x45b558
test eax, eax
je 0x45b354
mov rdx, qword [rsp + 0x38]
mov esi, eax
mov rdi, qword [rdx + 0x10]
jmp 0x45b4cf
test rsi, rsi
jne 0x45b369
mov rdx, qword [rsp + 0x38]
mov rsi, qword [rdx + 0x10]
xor eax, eax
jmp 0x45b469
jle 0x45b39d
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x40], rbx
mov rbx, qword [rsp + 0x38]
test byte [rbx], al
add rbx, 0x18
mov rax, qword [rsp + 0x48]
mov ecx, pe_nt_image_headers64
mov rdi, rcx
call fcn.0045bc40
mov rdx, qword [rsp + 0x38]
mov r8, qword [rdx + 0x10]
jmp 0x45b3f1
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 0x10]
sub rcx, r10
mov rdx, qword [rsp + 0x30]
cmp rcx, rdx
jg 0x45b3c8
test rbx, rbx
je 0x45b3be
lea rax, [rcx - 2]
mov byte [rbx], al
mov rbp, qword [rsp + 0x68]
add rsp, 0x70
ret
lea rax, [0x010a0d0c]
mov ebx, 0x1d
call fcn.00439e00
mov rsi, rax
or eax, 0xffffff80
mov byte [rdx + r8 + 0x418], al
shr rsi, 7
inc r8
mov rax, rsi
cmp rax, 0x80
jb 0x45b40b
nop dword [rax]
cmp r8, 0xfbe8
jb 0x45b3d9
jmp 0x45b445
cmp r8, 0xfbe8
jae 0x45b433
mov byte [rdx + r8 + 0x418], al
lea rcx, [r8 + 1]
mov qword [rdx + 0x10], rcx
mov rbx, qword [rsp + 0x40]
mov r10, qword [rsp + 0x28]
jmp 0x45b39d
mov rax, r8
mov ecx, 0xfbe8
nop dword [rax + rax]
call fcn.0046dd20
mov rax, r8
mov ecx, 0xfbe8
call fcn.0046dd20
mov rdi, rax
or eax, 0xffffff80
mov byte [rdx + rsi + 0x418], al
shr rdi, 7
inc rsi
mov rax, rdi
cmp rax, 0x80
jb 0x45b480
cmp rsi, 0xfbe8
jb 0x45b452
jmp 0x45b4aa
cmp rsi, 0xfbe8
jae 0x45b49d
mov byte [rdx + rsi + 0x418], al
lea rcx, [rsi + 1]
mov qword [rdx + 0x10], rcx
jmp 0x45b39d
mov rax, rsi
mov ecx, 0xfbe8
call fcn.0046dd20
mov rax, rsi
mov ecx, 0xfbe8
call fcn.0046dd20
mov r8, rsi
or esi, 0xffffff80
mov byte [rdx + rdi + 0x418], sil
shr r8, 7
inc rdi
mov rsi, r8
cmp rsi, 0x80
jb 0x45b4eb
nop dword [rax + rax]
cmp rdi, 0xfbe8
jb 0x45b4b7
jmp 0x45b516
cmp rdi, 0xfbe8
jae 0x45b509
mov byte [rdx + rdi + 0x418], sil
lea rcx, [rdi + 1]
mov qword [rdx + 0x10], rcx
jmp 0x45b39d
mov rax, rdi
mov ecx, 0xfbe8
call fcn.0046dd20
mov rax, rdi
mov ecx, 0xfbe8
nop
call fcn.0046dd20
mov r13, r11
or r11d, 0xffffff80
mov byte [r9 + r12 + 0x418], r11b
shr r13, 7
inc r12
mov r11, r13
nop
cmp r11, 0x80
jb 0x45b330
cmp r12, 0xfbe8
jb 0x45b525
jmp 0x45b565
mov rax, r12
mov ecx, 0xfbe8
call fcn.0046dd20
mov rax, r12
mov ecx, 0xfbe8
call fcn.0046dd20
mov rax, r9
mov ecx, 0xfbe8
call fcn.0046dd20
mov rax, r9
mov ecx, 0xfbe8
call fcn.0046dd20
mov r11, rbx
or ebx, 0xffffff80
mov byte [r8 + r9 + 0x418], bl
shr r11, 7
inc r9
mov rbx, r11
cmp rbx, 0x80
jb 0x45b5c0
cmp r9, 0xfbe8
jb 0x45b58c
jmp 0x45b618
cmp r9, 0xfbe8
jae 0x45b60b
mov byte [r8 + r9 + 0x418], bl
inc r9
mov qword [r8 + 0x10], r9
mov r8, qword [rsp + 0x38]
mov r9, qword [r8 + 0x10]
lea r11, [r9 - 1]
cmp r11, 0xfbe8
jae 0x45b5fe
lea rbx, [r9 + r8]
lea rbx, [rbx + 0x417]
jmp 0x45b299
mov rax, r11
mov ecx, 0xfbe8
call fcn.0046dd20
mov rax, r9
mov ecx, 0xfbe8
call fcn.0046dd20
mov rax, r9
mov ecx, 0xfbe8
call fcn.0046dd20
mov rax, r10
mov ecx, 0xfbe8
call fcn.0046dd20
nop
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x30], ecx
mov qword [rsp + 0x38], rdi
mov byte [rsp + 0x40], sil
mov dword [rsp + 0x44], r8d
mov qword [rsp + 0x48], r9
call fcn.0046b6c0
mov rax, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x28]
mov ecx, dword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
movzx esi, byte [rsp + 0x40]
mov r8d, dword [rsp + 0x44]
mov r9, qword [rsp + 0x48]
nop dword [rax]
jmp fcn.0045b100