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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x422add
sub rsp, 0x48
mov qword [rsp + 0x40], rbp
lea rbp, [rsp + 0x40]
mov rax, qword [rsp + 0x58]
movzx ecx, byte [rax + 0x64]
cmp cl, 1
jne 0x42295f
movzx ecx, word [rax + 0x60]
mov word [rsp + 0x16], cx
test cx, cx
jne 0x422994
mov rdx, qword [rsp + 0x50]
test byte [rdx], al
mov ebx, dword [rax + 0x58]
mov esi, dword [rdx + 0x1020]
cmp ebx, esi
jne 0x422994
mov rcx, qword [rdx + 0x10b8]
sub rcx, qword [rax + 0x20]
mov qword [rdx + 0x10b8], rcx
movzx ecx, byte [rsp + 0x60]
test cl, cl
je 0x422618
mov rcx, qword [0x00852908]
mov rbx, qword [rax + 0x20]
shl rbx, 0xd
sub rcx, rbx
mov qword [0x00852908], rcx
movzx ecx, byte [rsp + 0x61]
test cl, cl
je 0x422637
mov rcx, qword [rax + 0x20]
shl rcx, 0xd
add rcx, qword [0x00852900]
mov qword [0x00852900], rcx
mov byte [rax + 0x64], 3
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x422671
mov rcx, qword [rax + 0x20]
cmp rcx, 0x80
jae 0x422951
test byte [rdx], al
shl rcx, 4
lea rcx, [rdx + rcx + 0x810]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
call fcn.004230a0
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
mov qword [rcx + 0x70], rax
test rax, rax
je 0x42293a
mov qword [rcx + 0x78], 0
mov rax, qword [rsp + 0x50]
test byte [rax], al
mov rdx, qword [rcx + 0x18]
sub rdx, qword [rax + 0x1328]
shr rdx, 0xd
test rdx, 0xffffffffffffffff
jbe 0x42292f
mov rbx, qword [rax + 0x1050]
mov rsi, qword [rax + 0x1048]
lea rdi, [rdx - 1]
cmp rdi, rbx
jae 0x42298d
mov rbx, qword [rsi + rdx*8 - 8]
test rbx, rbx
je 0x422924
movzx esi, byte [rbx + 0x64]
cmp sil, 3
jne 0x422919
mov rsi, qword [rbx + 0x18]
mov qword [rcx + 0x18], rsi
mov rsi, qword [rcx + 0x20]
add rsi, qword [rbx + 0x20]
mov qword [rcx + 0x20], rsi
mov rsi, qword [rbx + 0x78]
mov qword [rcx + 0x78], rsi
movzx esi, byte [rcx + 0x65]
movzx edi, byte [rbx + 0x65]
or edi, esi
mov byte [rcx + 0x65], dil
mov rsi, qword [rbx + 0x20]
sub rdx, rsi
mov rsi, qword [rax + 0x1050]
mov rdi, qword [rax + 0x1048]
cmp rdx, rsi
jae 0x422986
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x20], rdx
mov qword [rdi + rdx*8], rcx
mov rsi, qword [rbx + 0x20]
cmp rsi, 0x80
jb 0x4228fd
lea rcx, [rax + 0x808]
mov qword [rsp], rcx
mov qword [rsp + 8], rbx
call fcn.0041a880
mov rax, qword [rsp + 0x38]
mov byte [rax + 0x64], 0
mov rcx, qword [rsp + 0x50]
lea rdx, [rcx + 0x34d0]
test byte [rdx], al
mov rdx, qword [rcx + 0x3500]
sub rdx, qword [rcx + 0x34d0]
mov qword [rcx + 0x3500], rdx
mov rdx, qword [rcx + 0x34e8]
mov qword [rax], rdx
mov qword [rcx + 0x34e8], rax
mov rax, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rdx + 0x20]
lea rsi, [rbx + rax]
mov rdi, qword [rcx + 0x1050]
mov r8, qword [rcx + 0x1048]
cmp rsi, rdi
jae 0x422897
mov rsi, qword [r8 + rsi*8]
test rsi, rsi
je 0x422897
movzx edi, byte [rsi + 0x64]
cmp dil, 3
jne 0x422897
mov rdi, qword [rsi + 0x20]
add rbx, rdi
mov qword [rdx + 0x20], rbx
mov rbx, qword [rdx + 0x78]
add rbx, qword [rsi + 0x78]
mov qword [rdx + 0x78], rbx
movzx ebx, byte [rdx + 0x65]
movzx edi, byte [rsi + 0x65]
or edi, ebx
mov byte [rdx + 0x65], dil
mov rbx, qword [rcx + 0x1050]
mov rdi, qword [rcx + 0x1048]
mov r8, qword [rdx + 0x20]
lea rax, [r8 + rax - 1]
cmp rax, rbx
jae 0x42297f
mov qword [rsp + 0x38], rsi
mov qword [rdi + rax*8], rdx
mov rax, qword [rsi + 0x20]
cmp rax, 0x80
jb 0x4228e1
lea rax, [rcx + 0x808]
mov qword [rsp], rax
mov qword [rsp + 8], rsi
call fcn.0041a880
mov rax, qword [rsp + 0x38]
mov byte [rax + 0x64], 0
mov rcx, qword [rsp + 0x50]
lea rdx, [rcx + 0x34d0]
test byte [rdx], al
mov rdx, qword [rcx + 0x3500]
sub rdx, qword [rcx + 0x34d0]
mov qword [rcx + 0x3500], rdx
mov rdx, qword [rcx + 0x34e8]
mov qword [rax], rdx
mov qword [rcx + 0x34e8], rax
mov rax, qword [rsp + 0x58]
mov rdx, qword [rax + 0x20]
cmp rdx, 0x80
jb 0x4228c8
add rcx, 0x808
mov qword [rsp], rcx
mov qword [rsp + 8], rax
call fcn.0041a370
mov rbp, qword [rsp + 0x40]
add rsp, 0x48
ret
shl rdx, 4
lea rcx, [rdx + rcx + 8]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
call fcn.00423240
jmp 0x4228be
shl rax, 4
lea rax, [rax + rcx + 8]
mov qword [rsp], rax
mov qword [rsp + 8], rsi
call fcn.004230a0
jmp 0x42285a
shl rsi, 4
lea rcx, [rsi + rax + 8]
mov qword [rsp], rcx
mov qword [rsp + 8], rbx
call fcn.004230a0
jmp 0x422766
mov rcx, rax
mov rax, rdx
jmp 0x4227a8
mov rcx, rax
mov rax, rdx
jmp 0x4227a8
mov rcx, rax
mov rax, rdx
jmp 0x4227a8
call fcn.00456740
mov rax, qword [rsp]
mov rcx, qword [rsp + 0x58]
mov qword [rcx + 0x70], rax
jmp 0x422688
test byte [rdx], al
lea rcx, [rdx + 0x1010]
jmp 0x422663
cmp cl, 2
jne 0x422ac2
movzx ecx, word [rax + 0x60]
test cx, cx
jne 0x422aa7
mov rdx, qword [rsp + 0x50]
jmp 0x4225f6
call fcn.00429b50
ud2
call fcn.00429b50
ud2
call fcn.00429b50
ud2
mov rcx, qword [rsp + 0x50]
test byte [rcx], al
mov ecx, dword [rcx + 0x1020]
mov qword [rsp + 0x30], rcx
mov edx, dword [rax + 0x58]
mov qword [rsp + 0x28], rdx
mov rbx, qword [rax + 0x18]
mov qword [rsp + 0x18], rbx
call fcn.0042bc80
lea rax, [0x006b2cb7]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1c
call fcn.0042c640
mov rax, qword [rsp + 0x58]
mov qword [rsp], rax
call fcn.0042c5f0
lea rax, [0x006ab4e9]
mov qword [rsp], rax
mov qword [rsp + 8], 5
call fcn.0042c640
mov rax, qword [rsp + 0x18]
mov qword [rsp], rax
call fcn.0042c4d0
lea rax, [0x006acbf6]
mov qword [rsp], rax
mov qword [rsp + 8], 0xc
call fcn.0042c640
movzx eax, word [rsp + 0x16]
movzx eax, ax
mov qword [rsp], rax
call fcn.0042c340
lea rax, [0x006ac450]
mov qword [rsp], rax
mov qword [rsp + 8], 0xa
call fcn.0042c640
mov rax, qword [rsp + 0x28]
mov qword [rsp], rax
call fcn.0042c340
lea rax, [0x006aaf9c]
mov qword [rsp], rax
mov qword [rsp + 8], 1
call fcn.0042c640
mov rax, qword [rsp + 0x30]
mov qword [rsp], rax
call fcn.0042c340
call fcn.0042bf30
call fcn.0042bd10
lea rax, [0x006b559f]
mov qword [rsp], rax
mov qword [rsp + 8], 0x23
call fcn.0042b3a0
ud2
lea rax, [0x006b6efa]
mov qword [rsp], rax
mov qword [rsp + 8], 0x29
call fcn.0042b3a0
ud2
lea rax, [0x006b6ed1]
mov qword [rsp], rax
mov qword [rsp + 8], 0x29
call fcn.0042b3a0
ud2
call fcn.00452950
jmp fcn.00422580