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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x421ec3
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 0x421e75
movzx ecx, word [rax + 0x60]
mov word [rsp + 0x16], cx
test cx, cx
jne 0x421e6b
mov rdx, qword [rsp + 0x50]
test byte [rdx], al
mov ebx, dword [rax + 0x58]
mov esi, dword [rdx + 0x1028]
cmp ebx, esi
jne 0x421d49
mov rcx, qword [rdx + 0x10b8]
mov rbx, qword [rax + 0x20]
sub rcx, rbx
mov qword [rdx + 0x10b8], rcx
movzx ecx, byte [rsp + 0x60]
test cl, cl
je 0x4219fb
mov rcx, qword [0x008b5f08]
mov rbx, qword [rax + 0x20]
shl rbx, 0xd
sub rcx, rbx
mov qword [0x008b5f08], rcx
movzx ecx, byte [rsp + 0x61]
test cl, cl
je 0x421a1d
mov rcx, qword [0x008b5f00]
mov rbx, qword [rax + 0x20]
shl rbx, 0xd
add rcx, rbx
mov qword [0x008b5f00], rcx
mov byte [rax + 0x64], 3
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x421a57
mov rcx, qword [rax + 0x20]
cmp rcx, 0x80
jae 0x421d3b
test byte [rdx], al
shl rcx, 4
lea rcx, [rdx + rcx + 0x818]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
call fcn.00422340
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
mov qword [rcx + 0x70], rax
test rax, rax
je 0x421d24
mov qword [rcx + 0x78], 0
mov rax, qword [rsp + 0x50]
test byte [rax], al
mov rdx, qword [rcx + 0x18]
mov rbx, qword [rax + 0x1310]
sub rdx, rbx
shr rdx, 0xd
mov rbx, 0xffffffffffffffff
test rbx, rdx
jbe 0x421d19
mov rbx, qword [rax + 0x1048]
mov rsi, qword [rax + 0x1050]
lea rdi, [rdx - 1]
cmp rdi, rsi
jae 0x421d12
mov rbx, qword [rbx + rdx*8 - 8]
mov qword [rsp + 0x38], rbx
test rbx, rbx
je 0x421d07
movzx esi, byte [rbx + 0x64]
cmp sil, 3
jne 0x421cfc
mov rsi, qword [rbx + 0x18]
mov qword [rcx + 0x18], rsi
mov rsi, qword [rcx + 0x20]
mov rdi, qword [rbx + 0x20]
add rsi, rdi
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 esi, edi
mov byte [rcx + 0x65], sil
mov rsi, qword [rbx + 0x20]
sub rdx, rsi
mov qword [rsp + 0x20], rdx
mov rsi, qword [rax + 0x1048]
mov rdi, qword [rax + 0x1050]
cmp rdx, rdi
jae 0x421cf5
mov qword [rsi + rdx*8], rcx
mov rsi, qword [rbx + 0x20]
cmp rsi, 0x80
jae 0x421ce9
shl rsi, 4
lea rsi, [rax + rsi + 8]
mov qword [rsp], rsi
mov qword [rsp + 8], rbx
call fcn.00422340
mov rax, qword [rsp + 0x38]
mov byte [rax + 0x64], 0
mov rcx, qword [rsp + 0x50]
lea rdx, [rcx + 0x3080]
test byte [rdx], al
mov rbx, qword [rcx + 0x30b0]
mov rsi, qword [rcx + 0x3080]
sub rbx, rsi
mov qword [rcx + 0x30b0], rbx
test byte [rdx], al
mov rbx, qword [rcx + 0x3098]
mov qword [rax], rbx
test byte [rdx], al
mov qword [rcx + 0x3098], rax
mov rax, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rdx + 0x20]
lea rsi, [rax + rbx]
mov rdi, qword [rcx + 0x1048]
mov r8, qword [rcx + 0x1050]
cmp rsi, r8
jae 0x421c9a
mov rsi, qword [rdi + rsi*8]
mov qword [rsp + 0x38], rsi
test rsi, rsi
je 0x421c9a
movzx edi, byte [rsi + 0x64]
cmp dil, 3
jne 0x421c9a
mov rdi, qword [rsi + 0x20]
add rbx, rdi
mov qword [rdx + 0x20], rbx
mov rbx, qword [rdx + 0x78]
mov rdi, qword [rsi + 0x78]
add rbx, rdi
mov qword [rdx + 0x78], rbx
movzx ebx, byte [rdx + 0x65]
movzx edi, byte [rsi + 0x65]
or ebx, edi
mov byte [rdx + 0x65], bl
mov rbx, qword [rcx + 0x1050]
mov rdi, qword [rcx + 0x1048]
mov r8, qword [rdx + 0x20]
lea rax, [rax + r8 - 1]
cmp rax, rbx
jae 0x421ce2
mov qword [rdi + rax*8], rdx
mov rax, qword [rsi + 0x20]
cmp rax, 0x80
jae 0x421cd6
shl rax, 4
lea rax, [rcx + rax + 8]
mov qword [rsp], rax
mov qword [rsp + 8], rsi
call fcn.00422340
mov rax, qword [rsp + 0x38]
mov byte [rax + 0x64], 0
mov rcx, qword [rsp + 0x50]
lea rdx, [rcx + 0x3080]
test byte [rdx], al
mov rbx, qword [rcx + 0x30b0]
mov rsi, qword [rcx + 0x3080]
sub rbx, rsi
mov qword [rcx + 0x30b0], rbx
test byte [rdx], al
mov rbx, qword [rcx + 0x3098]
mov qword [rax], rbx
test byte [rdx], al
mov qword [rcx + 0x3098], rax
mov rax, qword [rsp + 0x58]
mov rdx, qword [rax + 0x20]
cmp rdx, 0x80
jae 0x421ccd
shl rdx, 4
lea rcx, [rcx + rdx + 8]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
call fcn.00422480
mov rbp, qword [rsp + 0x40]
add rsp, 0x48
ret
add rcx, 0x808
jmp 0x421cb5
lea rax, [rcx + 0x808]
jmp 0x421c48
call fcn.004293e0
ud2
lea rsi, [rax + 0x808]
jmp 0x421b49
call fcn.004293e0
ud2
mov rcx, rax
mov rax, rdx
jmp 0x421ba0
mov rcx, rax
mov rax, rdx
jmp 0x421ba0
call fcn.004293e0
ud2
mov rcx, rax
mov rax, rdx
jmp 0x421ba0
call fcn.004289c0
mov rax, qword [rsp]
mov rcx, qword [rsp + 0x58]
mov qword [rcx + 0x70], rax
jmp 0x421a6e
test byte [rdx], al
lea rcx, [rdx + 0x1018]
jmp 0x421a49
test byte [rdx], al
mov rbx, qword [rax + 0x18]
mov qword [rsp + 0x18], rbx
mov edx, dword [rdx + 0x1028]
mov qword [rsp + 0x30], rdx
mov esi, dword [rax + 0x58]
mov qword [rsp + 0x28], rsi
call fcn.0042b850
lea rax, [0x006d72be]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1c
call fcn.0042c220
mov rax, qword [rsp + 0x58]
mov qword [rsp], rax
call fcn.0042c1d0
lea rax, [0x006cf8fa]
mov qword [rsp], rax
mov qword [rsp + 8], 5
call fcn.0042c220
mov rax, qword [rsp + 0x18]
mov qword [rsp], rax
call fcn.0042c0a0
lea rax, [0x006d1493]
mov qword [rsp], rax
mov qword [rsp + 8], 0xc
call fcn.0042c220
movzx eax, word [rsp + 0x16]
movzx eax, ax
mov qword [rsp], rax
call fcn.0042c020
lea rax, [0x006d0b11]
mov qword [rsp], rax
mov qword [rsp + 8], 0xa
call fcn.0042c220
mov rax, qword [rsp + 0x28]
mov qword [rsp], rax
call fcn.0042c020
lea rax, [0x006cf29c]
mov qword [rsp], rax
mov qword [rsp + 8], 1
call fcn.0042c220
mov rax, qword [rsp + 0x30]
mov qword [rsp], rax
call fcn.0042c020
lea rax, [0x006cf2b1]
mov qword [rsp], rax
mov qword [rsp + 8], 1
call fcn.0042c220
call fcn.0042b8f0
lea rax, [0x006d9900]
mov qword [rsp], rax
mov qword [rsp + 8], 0x23
call fcn.0042aea0
ud2
mov rdx, qword [rsp + 0x50]
jmp 0x421d49
cmp cl, 2
jne 0x421ea8
movzx ecx, word [rax + 0x60]
test cx, cx
jne 0x421e8d
mov rdx, qword [rsp + 0x50]
jmp 0x4219d9
lea rax, [0x006db06d]
mov qword [rsp], rax
mov qword [rsp + 8], 0x29
call fcn.0042aea0
ud2
lea rax, [0x006db044]
mov qword [rsp], rax
mov qword [rsp + 8], 0x29
call fcn.0042aea0
ud2
call fcn.00452210
jmp fcn.00421960