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

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x45f9b3
push rbp
mov rbp, rsp
sub 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]
add rax, 0x34
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rdx
test rdx, rdx
je 0x45f505
mov rdx, qword [rdx + 0x10]
add rdx, 0xffffffffffff0418
neg rdx
nop dword [rax + rax]
cmp rdx, rax
jge 0x45f55d
movups xmmword [rsp + 0x50], xmm15
mov dword [rsp + 0x60], 0
lea rax, [0x0045fa20]
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.004704a0
xorps xmm15, xmm15
mov r14, qword [0x01c099d0]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0xa8]
mov qword [rcx], rax
nop
nop
call fcn.00472360
xorps xmm15, xmm15
mov r14, qword [0x01c099d0]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x38]
mov rcx, qword [rax + 8]
lea rdx, [rcx + 1]
mov rbx, qword [rsp]
mov rsi, rbx
sar rbx, 0x3f
shr rbx, 0x3a
add rbx, rsi
sar rbx, 6
cmp rcx, rbx
cmovae rbx, rdx
mov qword [rax + 8], rbx
sub rbx, rcx
mov eax, dword [rsp + 0xb4]
test eax, eax
je 0x45f5bd
mov rsi, qword [rsp + 0xb8]
jmp 0x45f5ca
mov rsi, qword [rsp + 0xb8]
test rsi, rsi
jl 0x45f5d8
mov rdx, qword [rsp + 0x80]
lea r8d, [rdx + 1]
jmp 0x45f5e3
mov rdx, qword [rsp + 0x80]
mov r8, rdx
cmp r8b, 3
jbe 0x45f5ef
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 0x45f9a5
mov byte [r9 + r10 + 0x418], r8b
inc qword [r9 + 0x10]
cmp r11b, 3
jne 0x45f63a
mov r8, qword [rsp + 0x38]
mov r9, qword [r8 + 0x10]
xor ecx, ecx
jmp 0x45f928
xor ecx, ecx
mov r8, qword [rsp + 0x38]
mov r9, qword [r8 + 0x10]
jmp 0x45f660
mov r11, rbx
or r11d, 0xffffff80
mov byte [r8 + r9 + 0x418], r11b
shr rbx, 7
inc r9
nop dword [rax]
cmp rbx, 0x80
jb 0x45f680
cmp r9, 0xfbe8
jb 0x45f647
jmp 0x45f905
cmp r9, 0xfbe8
jae 0x45f8f4
mov byte [r8 + r9 + 0x418], bl
inc r9
mov qword [r8 + 0x10], r9
mov r8, qword [rsp + 0x78]
xor ebx, ebx
jmp 0x45f6b9
mov byte [r9 + r12 + 0x418], r11b
lea r11, [r12 + 1]
mov qword [r9 + 0x10], r11
inc rbx
cmp rdx, rbx
jle 0x45f6e0
mov r9, qword [rsp + 0x38]
mov r11, qword [r8 + rbx*8]
mov r12, qword [r9 + 0x10]
jmp 0x45f8c2
cmp r12, 0xfbe8
jb 0x45f6a5
jmp 0x45f8da
test eax, eax
je 0x45f6f4
mov rdx, qword [rsp + 0x38]
mov esi, eax
mov rdi, qword [rdx + 0x10]
jmp 0x45f860
test rsi, rsi
jne 0x45f709
mov rdx, qword [rsp + 0x38]
mov rsi, qword [rdx + 0x10]
xor eax, eax
jmp 0x45f800
jle 0x45f73d
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x40], rcx
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.0045ff60
mov rdx, qword [rsp + 0x38]
mov r8, qword [rdx + 0x10]
jmp 0x45f78a
mov rdx, qword [rsp + 0x38]
mov rdx, qword [rdx + 0x10]
sub rdx, r10
mov rsi, qword [rsp + 0x30]
cmp rdx, rsi
jg 0x45f764
test rcx, rcx
je 0x45f75e
lea rax, [rdx - 2]
mov byte [rcx], al
add rsp, 0x68
pop rbp
ret
lea rax, [0x01050565]
mov ebx, 0x1d
call fcn.0043dc80
mov rsi, rax
or esi, 0xffffff80
mov byte [rdx + r8 + 0x418], sil
shr rax, 7
inc r8
cmp rax, 0x80
jb 0x45f7a0
cmp r8, 0xfbe8
jb 0x45f775
jmp 0x45f7d5
cmp r8, 0xfbe8
jae 0x45f7c8
mov byte [rdx + r8 + 0x418], al
lea rsi, [r8 + 1]
mov qword [rdx + 0x10], rsi
mov rcx, qword [rsp + 0x40]
mov r10, qword [rsp + 0x28]
jmp 0x45f73d
mov rax, r8
mov ecx, 0xfbe8
call fcn.004728a0
mov rax, r8
mov ecx, 0xfbe8
nop dword [rax]
call fcn.004728a0
mov rdi, rax
or edi, 0xffffff80
mov byte [rdx + rsi + 0x418], dil
shr rax, 7
inc rsi
nop word [rax + rax]
cmp rax, 0x80
jb 0x45f813
cmp rsi, 0xfbe8
jb 0x45f7e5
jmp 0x45f83c
cmp rsi, 0xfbe8
jae 0x45f82f
mov byte [rdx + rsi + 0x418], al
inc rsi
mov qword [rdx + 0x10], rsi
jmp 0x45f73d
mov rax, rsi
mov ecx, 0xfbe8
call fcn.004728a0
mov rax, rsi
mov ecx, 0xfbe8
call fcn.004728a0
mov r8, rsi
or r8d, 0xffffff80
mov byte [rdx + rdi + 0x418], r8b
shr rsi, 7
inc rdi
nop
cmp rsi, 0x80
jb 0x45f874
cmp rdi, 0xfbe8
jb 0x45f849
jmp 0x45f89f
cmp rdi, 0xfbe8
jae 0x45f892
mov byte [rdx + rdi + 0x418], sil
lea rsi, [rdi + 1]
mov qword [rdx + 0x10], rsi
jmp 0x45f73d
mov rax, rdi
mov ecx, 0xfbe8
call fcn.004728a0
mov rax, rdi
mov ecx, 0xfbe8
call fcn.004728a0
mov r13, r11
or r13d, 0xffffff80
mov byte [r9 + r12 + 0x418], r13b
shr r11, 7
inc r12
cmp r11, 0x80
jb 0x45f6d0
cmp r12, 0xfbe8
jb 0x45f8ac
jmp 0x45f8e7
mov rax, r12
mov ecx, 0xfbe8
call fcn.004728a0
mov rax, r12
mov ecx, 0xfbe8
call fcn.004728a0
mov rax, r9
mov ecx, 0xfbe8
nop dword [rax]
call fcn.004728a0
mov rax, r9
mov ecx, 0xfbe8
call fcn.004728a0
mov r11, rcx
or r11d, 0xffffff80
mov byte [r8 + r9 + 0x418], r11b
shr rcx, 7
inc r9
cmp rcx, 0x80
jb 0x45f940
cmp r9, 0xfbe8
jb 0x45f912
jmp 0x45f998
cmp r9, 0xfbe8
jae 0x45f98b
mov byte [r8 + r9 + 0x418], cl
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 0x45f97e
lea rcx, [r9 + r8]
lea rcx, [rcx + 0x417]
jmp 0x45f63c
mov rax, r11
mov ecx, 0xfbe8
call fcn.004728a0
mov rax, r9
mov ecx, 0xfbe8
call fcn.004728a0
mov rax, r9
mov ecx, 0xfbe8
call fcn.004728a0
mov rax, r10
mov ecx, 0xfbe8
call fcn.004728a0
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.004705e0
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.0045f4a0