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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x28]
cmp rax, qword [rcx + 0x10]
jbe 0x401780
sub rsp, 0xa8
mov qword [rsp + 0xa0], rbp
lea rbp, [rsp + 0xa0]
mov rbx, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0xb0]
jmp 0x4010e0
inc rax
cmp rax, rbx
jge 0x40155e
movzx edi, byte [rsi + rax]
cmp dil, 0x2c
jne 0x4010a8
nop
test rax, rax
jge 0x401525
xor eax, eax
xor ecx, ecx
cmp rbx, 4
jge 0x4010ed
mov rsi, rcx
mov rbx, rax
nop dword [rax]
test rbx, rbx
je 0x40156a
xor eax, eax
jmp 0x4010ab
cmp dword [rsi], 0x2e757063
jne 0x4010d3
xor edx, edx
jmp 0x401100
inc rdx
nop dword [rax]
cmp rdx, rbx
jge 0x401514
movzx edi, byte [rsi + rdx]
cmp dil, 0x3d
jne 0x4010f9
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x78], rcx
nop dword [rax]
test rdx, rdx
jl 0x401495
cmp rdx, rbx
ja 0x40175e
cmp rdx, 4
jb 0x401751
lea rdi, [rdx - 4]
mov r8, rdi
neg rdi
sar rdi, 0x3f
and rdi, 4
lea r9, [rsi + rdi]
lea r10, [rdx + 1]
cmp r10, rbx
ja 0x401746
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x68], r9
sub rbx, rdx
lea r11, [rbx - 1]
mov qword [rsp + 0x28], r11
mov r12, r11
neg r11
sar r11, 0x3f
and r10, r11
lea r11, [rsi + r10]
mov qword [rsp + 0x60], r11
cmp rbx, 3
jne 0x401465
movzx ebx, word [rsi + r10]
nop word [rax + rax]
cmp bx, 0x6e6f
jne 0x4013ca
mov ebx, 1
cmp rdx, 7
jne 0x401264
movzx r10d, word [rsi + rdi]
nop
cmp r10w, 0x6c61
jne 0x401264
movzx esi, byte [rsi + rdi + 2]
cmp sil, 0x6c
jne 0x401264
mov rsi, qword [0x007cd408]
xor edx, edx
jmp 0x4011ef
mov byte [r10 + rdx + 0x19], r8b
lea rdx, [rdi + 1]
cmp rsi, rdx
jle 0x4010d3
mov rdi, qword [0x007cd408]
mov r8, qword [0x007cd400]
cmp rdi, rdx
jbe 0x40173b
mov rdi, rdx
shl rdx, 5
mov byte [r8 + rdx + 0x18], 1
nop dword [rax]
test bl, bl
je 0x401245
mov r8d, 1
mov r9, qword [0x007cd408]
mov r10, qword [0x007cd400]
cmp r9, rdi
ja 0x4011e6
nop dword [rax]
jmp 0x401725
mov r8, qword [0x007cd408]
mov r9, qword [0x007cd400]
cmp r8, rdi
jbe 0x401730
movzx r8d, byte [r9 + rdx + 0x1a]
jmp 0x40122a
mov byte [rsp + 0x27], bl
mov rdx, qword [0x007cd408]
mov qword [rsp + 0x48], rdx
xor esi, esi
jmp 0x401280
lea rsi, [r10 + 1]
nop dword [rax]
cmp rdx, rsi
jle 0x401365
mov rdi, qword [0x007cd400]
mov r10, qword [0x007cd408]
nop word [rax + rax]
cmp rsi, r10
jae 0x401719
mov r10, rsi
shl rsi, 5
mov r11, qword [rdi + rsi + 8]
mov rdi, qword [rdi + rsi]
cmp r8, r11
jne 0x401278
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], r10
mov qword [rsp], rdi
mov qword [rsp + 8], r9
mov qword [rsp + 0x10], r11
call fcn.00402a40
cmp byte [rsp + 0x18], 0
jne 0x40130a
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x48]
movzx ebx, byte [rsp + 0x27]
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0x38]
jmp 0x401278
mov rcx, qword [0x007cd408]
mov rbx, qword [0x007cd400]
mov rax, qword [rsp + 0x38]
nop dword [rax]
cmp rcx, rax
jbe 0x401714
mov rsi, qword [rsp + 0x40]
mov byte [rbx + rsi + 0x18], 1
mov rcx, qword [0x007cd408]
mov rbx, qword [0x007cd400]
cmp rax, rcx
jae 0x40170f
movzx edi, byte [rsp + 0x27]
mov byte [rbx + rsi + 0x19], dil
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x78]
nop
jmp 0x4010d3
call fcn.0043aa00
lea rax, [0x006629c6]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1e
nop
call fcn.0043b480
mov rax, qword [rsp + 0x68]
mov qword [rsp], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 8], rax
call fcn.0043b480
lea rax, [0x0065a32e]
mov qword [rsp], rax
mov qword [rsp + 8], 2
call fcn.0043b480
call fcn.0043aaa0
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x78]
jmp 0x4010d3
call fcn.0043aa00
lea rax, [0x0065d14b]
mov qword [rsp], rax
mov qword [rsp + 8], 0x10
call fcn.0043b480
mov rax, qword [rsp + 0x60]
mov qword [rsp], rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 8], rax
nop dword [rax + rax]
call fcn.0043b480
lea rax, [0x0066348e]
mov qword [rsp], rax
mov qword [rsp + 8], 0x20
call fcn.0043b480
mov rax, qword [rsp + 0x68]
mov qword [rsp], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 8], rax
call fcn.0043b480
lea rax, [0x0065a32e]
mov qword [rsp], rax
mov qword [rsp + 8], 2
call fcn.0043b480
call fcn.0043aaa0
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x78]
nop
jmp 0x4010d3
cmp rbx, 4
jne 0x4013ca
movzx ebx, word [rsi + r10]
cmp bx, 0x666f
jne 0x4013ca
movzx ebx, byte [rsi + r10 + 2]
cmp bl, 0x66
jne 0x4013ca
xor ebx, ebx
jmp 0x4011b0
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0xb0], rsi
call fcn.0043aa00
lea rax, [0x00663a31]
mov qword [rsp], rax
mov qword [rsp + 8], 0x21
nop dword [rax + rax]
call fcn.0043b480
mov rax, qword [rsp + 0xb0]
mov qword [rsp], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 8], rax
nop dword [rax + rax]
call fcn.0043b480
lea rax, [0x0065a32e]
mov qword [rsp], rax
mov qword [rsp + 8], 2
call fcn.0043b480
nop
call fcn.0043aaa0
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x78]
jmp 0x4010d3
mov rdx, 0xffffffffffffffff
nop dword [rax + rax]
jmp 0x401113
cmp rax, rbx
ja 0x401774
lea rdi, [rax + 1]
cmp rdi, rbx
ja 0x401769
sub rbx, rax
lea r8, [rbx - 1]
mov r9, r8
neg r8
sar r8, 0x3f
and rdi, r8
lea rcx, [rsi + rdi]
mov rbx, rax
mov rax, r9
jmp 0x4010cd
mov rax, 0xffffffffffffffff
jmp 0x4010c0
mov rax, qword [0x007cd408]
mov rcx, qword [0x007cd400]
test rax, rax
jle 0x4015eb
mov qword [rsp + 0x58], rax
xor edx, edx
jmp 0x40158a
add rcx, 0x20
movups xmm0, xmmword [rcx]
movups xmmword [rsp + 0x80], xmm0
movups xmm0, xmmword [rcx + 0x10]
movups xmmword [rsp + 0x90], xmm0
cmp byte [rsp + 0x98], 0
je 0x4015e3
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x70], rcx
movzx ebx, byte [rsp + 0x99]
nop dword [rax]
test bl, bl
je 0x4015d7
mov rsi, qword [rsp + 0x90]
cmp byte [rsi], 0
je 0x401688
test bl, bl
je 0x4015fb
mov rsi, qword [rsp + 0x90]
mov byte [rsi], bl
inc rdx
cmp rax, rdx
jg 0x401586
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
cmp byte [rsp + 0x9a], 0
je 0x4015d9
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x78], rax
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x48], rcx
nop
call fcn.0043aa00
lea rax, [0x006610a4]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1a
call fcn.0043b480
mov rax, qword [rsp + 0x78]
mov qword [rsp], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 8], rax
call fcn.0043b480
lea rax, [0x00660537]
mov qword [rsp], rax
mov qword [rsp + 8], 0x18
call fcn.0043b480
call fcn.0043aaa0
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x50]
jmp 0x4015e3
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x78], rax
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x48], rcx
call fcn.0043aa00
lea rax, [0x00660960]
mov qword [rsp], rax
mov qword [rsp + 8], 0x19
nop dword [rax + rax]
call fcn.0043b480
mov rax, qword [rsp + 0x78]
mov qword [rsp], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 8], rax
call fcn.0043b480
lea rax, [0x0065fe36]
mov qword [rsp], rax
mov qword [rsp + 8], 0x17
call fcn.0043b480
call fcn.0043aaa0
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x50]
jmp 0x4015e3
call fcn.0046cdc0
call fcn.0046cdc0
mov rax, rsi
mov rcx, r10
nop
call fcn.0046cdc0
mov rax, rdi
mov rcx, r9
call fcn.0046cdc0
mov rax, rdi
mov rcx, r8
call fcn.0046cdc0
mov rax, rdx
mov rcx, rdi
call fcn.0046cdc0
mov rax, r10
mov rcx, rbx
call fcn.0046ce80
mov eax, 4
mov rcx, rdx
call fcn.0046ce80
mov rcx, rdx
mov rdx, rbx
call fcn.0046ce00
mov rax, rdi
mov rcx, rbx
call fcn.0046ce80
mov rcx, rax
mov rdx, rbx
call fcn.0046ce00
nop
call fcn.0046abe0
jmp fcn.00401060