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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0xd8]
nop dword [rax + rax]
cmp rax, qword [rcx + 0x10]
jbe 0x408bf1
sub rsp, 0x158
mov qword [rsp + 0x150], rbp
lea rbp, [rsp + 0x150]
movzx eax, byte [rsp + 0x171]
cmp rax, 8
jae 0x408be6
shl rax, 4
lea rdx, [0x007c8740]
mov rbx, qword [rax + rdx]
mov rdx, qword [rax + rdx + 8]
movzx esi, byte [rsp + 0x170]
test sil, sil
je 0x408b94
mov r8, qword [rsp + 0x160]
test r8, r8
jge 0x408595
lea r9, [0x007c87c0]
mov rbx, qword [rax + r9]
mov rdx, qword [rax + r9 + 8]
mov qword [rsp + 0x148], rbx
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0xc4], 0
lea rdi, [rsp + 0xc8]
xorps xmm0, xmm0
lea rdi, [rdi - 0x20]
nop dword [rax]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0046d051
mov rbp, qword [rbp]
movabs r9, 0x20656d69746e7572
mov qword [rsp + 0xc4], r9
movabs r9, 0x203a726f72726520
mov qword [rsp + 0xcb], r9
mov r9, qword [rsp + 0x168]
xor eax, eax
mov ecx, 0xf
mov edi, 0x64
lea r10, [rsp + 0xc4]
jmp 0x408620
inc rax
mov rcx, r12
nop dword [rax + rax]
cmp rax, rdx
jge 0x408b53
jae 0x408bde
mov qword [rsp + 0x78], rcx
movzx r11d, byte [rbx + rax]
nop dword [rax]
cmp r11b, 0x25
je 0x4086d7
lea r12, [rcx + 1]
cmp r12, rdi
ja 0x408659
mov byte [r10 + rcx], r11b
jmp 0x408615
mov qword [rsp + 0x68], rax
mov byte [rsp + 0x47], r11b
lea rax, [0x00614000]
mov qword [rsp], rax
mov qword [rsp + 8], r10
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
call fcn.0044ddc0
mov r10, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
lea r12, [rax + 1]
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x148]
movzx esi, byte [rsp + 0x170]
mov r8, qword [rsp + 0x160]
mov r9, qword [rsp + 0x168]
movzx r11d, byte [rsp + 0x47]
xorps xmm0, xmm0
jmp 0x408653
lea r11, [rax + 1]
nop dword [rax + rax]
cmp r11, rdx
jae 0x408bd3
mov qword [rsp + 0x90], r11
movzx r12d, byte [rax + rbx + 1]
nop word [rax + rax]
cmp r12b, 0x78
jne 0x408940
nop
test sil, sil
je 0x408932
test r8, r8
jge 0x408932
lea r12, [rcx + 1]
cmp r12, rdi
ja 0x4088be
mov byte [r10 + rcx], 0x2d
mov r13, r8
neg r8
mov qword [rsp + 0x9c], 0
movups xmmword [rsp + 0xa0], xmm0
mov eax, 0x13
jmp 0x408766
lea r15, [r8 + 0x30]
mov byte [rsp + rcx + 0x9c], r15b
lea rax, [rcx - 1]
mov r8, rdx
mov rdx, r14
cmp r8, 0xa
jb 0x4087a0
mov rcx, rax
movabs rax, 0xcccccccccccccccd
mov r14, rdx
mul r8
shr rdx, 3
lea r15, [rdx + rdx*4]
shl r15, 1
sub r8, r15
cmp rcx, 0x14
jb 0x408750
jmp 0x408bc6
cmp rax, 0x14
jae 0x408bbc
lea rcx, [r8 + 0x30]
mov byte [rsp + rax + 0x9c], cl
mov rcx, r12
sub r12, rax
lea r8, [r12 + 0x14]
mov qword [rsp + 0x48], r8
lea r12, [rax - 0x14]
mov r14, r12
sar r12, 0x3f
and rax, r12
lea rax, [rsp + rax + 0x9c]
nop dword [rax + rax]
cmp r8, rdi
ja 0x40885b
mov qword [rsp + 0x128], r10
mov qword [rsp + 0x60], rdi
add rcx, r10
mov qword [rsp], rcx
mov qword [rsp + 8], rax
neg r14
mov qword [rsp + 0x10], r14
call fcn.0046d6c0
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x128]
mov rbx, qword [rsp + 0x148]
movzx esi, byte [rsp + 0x170]
mov r8, qword [rsp + 0x160]
mov r9, qword [rsp + 0x168]
xorps xmm0, xmm0
mov rdi, rax
mov r12, rcx
mov r10, rdx
mov rdx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x90]
jmp 0x408615
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x88], r14
mov qword [rsp + 0x80], rcx
lea rax, [0x00614000]
mov qword [rsp], rax
mov qword [rsp + 8], r10
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r8
call fcn.0044ddc0
mov r10, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x38]
mov rax, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x80]
mov r14, qword [rsp + 0x88]
jmp 0x4087e5
lea rax, [0x00614000]
mov qword [rsp], rax
mov qword [rsp + 8], r10
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
nop dword [rax]
call fcn.0044ddc0
mov r10, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
lea r12, [rax + 1]
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x148]
movzx esi, byte [rsp + 0x170]
mov r8, qword [rsp + 0x160]
mov r9, qword [rsp + 0x168]
mov r11, qword [rsp + 0x90]
xorps xmm0, xmm0
jmp 0x40872a
mov r13, r8
mov r12, rcx
jmp 0x408735
cmp r12b, 0x79
jne 0x408b48
test r9, r9
jge 0x408b3d
lea r12, [rcx + 1]
nop word [rax + rax]
cmp rdi, r12
jb 0x408acc
mov byte [r10 + rcx], 0x2d
mov r13, r9
neg r9
mov qword [rsp + 0xb0], 0
movups xmmword [rsp + 0xb4], xmm0
mov eax, 0x13
jmp 0x4089a5
lea r15, [r9 + 0x30]
mov byte [rsp + rcx + 0xb0], r15b
lea rax, [rcx - 1]
mov r9, rdx
mov rdx, r14
cmp r9, 0xa
jb 0x4089e0
mov rcx, rax
movabs rax, 0xcccccccccccccccd
mov r14, rdx
mul r9
shr rdx, 3
lea r15, [rdx + rdx*4]
shl r15, 1
sub r9, r15
cmp rcx, 0x14
jb 0x40898f
jmp 0x408baf
cmp rax, 0x14
jae 0x408ba5
lea rcx, [r9 + 0x30]
mov byte [rsp + rax + 0xb0], cl
mov rcx, r12
sub r12, rax
lea r9, [r12 + 0x14]
mov qword [rsp + 0x50], r9
lea r12, [rax - 0x14]
mov r14, r12
sar r12, 0x3f
and rax, r12
lea rax, [rsp + rax + 0xb0]
nop dword [rax + rax]
cmp rdi, r9
jb 0x408a65
mov qword [rsp + 0x130], r10
mov qword [rsp + 0x58], rdi
add rcx, r10
mov qword [rsp], rcx
mov qword [rsp + 8], rax
neg r14
mov qword [rsp + 0x10], r14
call fcn.0046d6c0
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x130]
nop dword [rax]
jmp 0x40881d
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x80], r14
mov qword [rsp + 0x138], rax
lea rax, [0x00614000]
mov qword [rsp], rax
mov qword [rsp + 8], r10
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r9
nop dword [rax]
call fcn.0044ddc0
mov r10, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x38]
mov rax, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x88]
mov r14, qword [rsp + 0x80]
jmp 0x408a25
lea rax, [0x00614000]
mov qword [rsp], rax
mov qword [rsp + 8], r10
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
call fcn.0044ddc0
mov r10, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
lea r12, [rax + 1]
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x148]
movzx esi, byte [rsp + 0x170]
mov r8, qword [rsp + 0x160]
mov r9, qword [rsp + 0x168]
mov r11, qword [rsp + 0x90]
xorps xmm0, xmm0
jmp 0x408969
mov r13, r9
mov r12, rcx
jmp 0x408974
mov rax, rdi
mov rdx, r10
jmp 0x40881d
mov qword [rsp], 0
mov qword [rsp + 8], r10
mov qword [rsp + 0x10], rcx
call fcn.00452060
mov rax, qword [rsp + 0x18]
mov rcx, qword [rsp + 0x20]
mov qword [rsp + 0x178], rax
mov qword [rsp + 0x180], rcx
mov rbp, qword [rsp + 0x150]
add rsp, 0x158
ret
mov r8, qword [rsp + 0x160]
nop dword [rax]
jmp 0x408595
mov ecx, 0x14
call fcn.0046cdc0
mov rax, rcx
mov ecx, 0x14
call fcn.0046cdc0
mov ecx, 0x14
call fcn.0046cdc0
mov rax, rcx
mov ecx, 0x14
call fcn.0046cdc0
mov rax, r11
mov rcx, rdx
call fcn.0046cdc0
mov rcx, rdx
call fcn.0046cdc0
mov ecx, 8
call fcn.0046cdc0
nop
call fcn.0046abe0
jmp fcn.00408500