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

Disassembly:
sub rsp, 0xa8
mov qword [rsp + 0xa0], rbp
lea rbp, [rsp + 0xa0]
mov rdx, qword [rax + 8]
nop dword [rax + rax]
cmp rcx, rdx
jae 0x404ea7
sub rdx, rcx
cmp rdi, rdx
cmova rdi, rdx
movzx edx, byte [rax + 0x17]
test dl, 0x40
je 0x404e88
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0x50], rdi
call fcn.0044e540
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x48], rbx
xor ecx, ecx
jmp 0x404eca
mov rdx, qword [rax + 0x20]
mov rax, rbx
mov rbx, rdx
call fcn.004051c0
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
mov rdx, qword [rsp + 0x40]
lea rcx, [rdx + 1]
mov rax, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x48]
cmp rbx, rcx
jle 0x405003
mov qword [rsp + 0x40], rcx
mov rdx, qword [rax + rcx*8]
mov qword [rsp + 0x68], rdx
mov rbx, qword [rdx + 0xd0]
mov rsi, qword [rdx + 0xd8]
mov rax, qword [rsp + 0xb8]
mov rcx, rsi
call fcn.00404b00
nop
test al, al
jne 0x404f96
mov rdx, qword [rsp + 0x68]
mov rbx, qword [rdx + 0xe0]
mov rcx, qword [rdx + 0xe8]
mov rax, qword [rsp + 0xb8]
call fcn.00404b00
test al, al
je 0x404eb7
mov rax, qword [rsp + 0xb8]
mov rcx, rax
mov qword [rsp + 0x38], rax
mov rdx, qword [rsp + 0x68]
mov rbx, qword [rdx + 0xe0]
mov qword [rsp + 0x30], rbx
sub rbx, rax
mov rax, rcx
call fcn.0044dae0
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
sub rcx, rdx
mov rdx, qword [rsp + 0x68]
mov rbx, qword [rdx + 0x208]
mov rdx, qword [rsp + 0xc0]
add rcx, rdx
mov rdi, qword [rsp + 0x50]
call fcn.004051c0
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
mov rax, qword [rsp + 0xb8]
mov rcx, rax
mov qword [rsp + 0x38], rax
mov rdx, qword [rsp + 0x68]
mov rbx, qword [rdx + 0xd0]
mov qword [rsp + 0x30], rbx
sub rbx, rax
mov rax, rcx
nop dword [rax]
call fcn.0044dae0
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
sub rcx, rdx
mov rdx, qword [rsp + 0x68]
mov rbx, qword [rdx + 0x1f8]
mov rdx, qword [rsp + 0xc0]
add rcx, rdx
mov rdi, qword [rsp + 0x50]
call fcn.004051c0
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
mov rax, qword [rsp + 0xb8]
call fcn.00426c40
test byte [rax], al
add rax, 0x63
call fcn.00426800
cmp al, 2
je 0x405033
mov rax, qword [rsp + 0xb8]
call fcn.00414c00
xor edx, edx
jmp 0x4050ee
movups xmmword [rsp + 0x78], xmm15
movups xmmword [rsp + 0x80], xmm15
movups xmmword [rsp + 0x90], xmm15
lea rax, [0x00405180]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0x78]
mov qword [rsp], rax
nop dword [rax]
call fcn.0045f140
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
mov rax, qword [rsp + 0x60]
mov ebx, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x24]
mov rdi, qword [rsp + 0x58]
nop dword [rax + rax]
call fcn.00415040
mov rdx, qword [rsp + 0x28]
add rdx, 8
mov rsi, qword [rsp + 0xc0]
mov r8, qword [rsp + 0x50]
lea r9, [r8 + rsi]
nop
cmp rdx, r9
jae 0x40515c
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x58], rdi
mov dword [rsp + 0x24], ecx
mov dword [rsp + 0x20], ebx
mov qword [rsp + 0x60], rax
nop dword [rax]
call fcn.004152e0
mov rdx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x28]
cmp rdx, rbx
ja 0x4050c9
bt eax, 0
jae 0x4050c9
mov rax, qword [rsp + 0xb8]
call fcn.0044dae0
mov rax, qword [rax]
call fcn.00404a20
test al, al
je 0x4050c9
jmp 0x40516c
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
lea rax, [0x00651d3d]
mov ebx, 0x24
call fcn.00436d80
nop
int3