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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x4213f2
sub rsp, 0x38
mov qword [rsp + 0x30], rbp
lea rbp, [rsp + 0x30]
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov rdx, rax
cmp rax, 0x80
jge 0x420fad
test byte [rcx], al
cmp rax, 0x80
jae 0x4213eb
mov rbx, rax
shl rax, 4
lea rsi, [rcx + rax + 8]
mov rax, qword [rcx + rax + 8]
test rax, rax
jne 0x420fdc
lea rax, [rbx + 1]
cmp rax, 0x80
jl 0x420f7d
test byte [rcx], al
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
call fcn.00421400
mov rax, qword [rsp + 0x10]
test rax, rax
je 0x42137e
mov rcx, qword [rsp + 0x40]
lea rsi, [rcx + 0x808]
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 0x20], rax
movzx ebx, byte [rax + 0x64]
cmp bl, 3
jne 0x421363
mov rbx, qword [rax + 0x20]
cmp rbx, rdx
jb 0x421348
mov qword [rsp], rsi
mov qword [rsp + 8], rax
call fcn.00422340
mov rax, qword [rsp + 0x20]
mov rcx, qword [rax + 0x10]
test rcx, rcx
jne 0x42132d
mov rcx, qword [rax + 0x78]
test rcx, rcx
ja 0x4212e5
mov rcx, qword [rax + 0x20]
mov rdx, qword [rsp + 0x48]
cmp rcx, rdx
ja 0x4210e5
mov qword [rax + 0x70], 0
mov rcx, qword [rsp + 0x40]
test byte [rcx], al
mov rbx, qword [rax + 0x18]
mov rsi, qword [rcx + 0x1310]
sub rbx, rsi
shr rbx, 0xd
xor esi, esi
cmp rsi, rdx
jae 0x421085
lea rdi, [rbx + rsi]
mov r8, qword [rcx + 0x1048]
mov r9, qword [rcx + 0x1050]
cmp rdi, r9
jae 0x4210de
mov qword [r8 + rdi*8], rax
inc rsi
cmp rsi, rdx
jb 0x421062
mov rcx, qword [0x008b5f08]
shl rdx, 0xd
add rcx, rdx
mov qword [0x008b5f08], rcx
mov rcx, qword [0x008b5f00]
sub rcx, rdx
mov qword [0x008b5f00], rcx
mov rcx, qword [rax + 0x10]
test rcx, rcx
jne 0x4210c3
mov qword [rsp + 0x50], rax
mov rbp, qword [rsp + 0x30]
add rsp, 0x38
ret
lea rax, [0x006d1e5e]
mov qword [rsp], rax
mov qword [rsp + 8], 0xd
call fcn.0042aea0
ud2
call fcn.004293e0
ud2
mov rcx, qword [rsp + 0x40]
test byte [rcx], al
lea rbx, [rcx + 0x3080]
mov qword [rsp], rbx
call fcn.004156e0
mov rax, qword [rsp + 8]
mov qword [rsp + 0x28], rax
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rcx + 0x18]
mov rbx, qword [rcx + 0x20]
mov qword [rax], 0
mov qword [rax + 8], 0
mov qword [rax + 0x10], 0
mov rsi, qword [rsp + 0x48]
mov rdi, rsi
shl rsi, 0xd
add rdx, rsi
mov qword [rax + 0x18], rdx
sub rbx, rdi
mov qword [rax + 0x20], rbx
mov word [rax + 0x60], 0
mov byte [rax + 0x62], 0
mov byte [rax + 0x63], 0
mov qword [rax + 0x68], 0
mov byte [rax + 0x64], 0
mov qword [rax + 0x70], 0
mov qword [rax + 0x78], 0
mov qword [rax + 0x88], 0
mov qword [rax + 0x90], 0
mov byte [rax + 0x65], 0
mov qword [rax + 0x30], 0
test byte [rax], al
mov edx, dword [0x008b4340]
lea rbx, [rax + 0x48]
test edx, edx
jne 0x4212bf
mov qword [rax + 0x48], 0
mov edx, dword [0x008b4340]
lea rbx, [rax + 0x50]
test edx, edx
jne 0x421299
mov qword [rax + 0x50], 0
mov qword [rcx + 0x20], rdi
mov rdx, qword [rax + 0x18]
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rbx + 0x1310]
sub rdx, rsi
shr rdx, 0xd
mov rsi, 0xffffffffffffffff
test rsi, rdx
jbe 0x42120d
mov rsi, qword [rbx + 0x1048]
mov r8, qword [rbx + 0x1050]
lea r9, [rdx - 1]
cmp r9, r8
jae 0x421292
mov qword [rsi + rdx*8 - 8], rcx
mov rsi, qword [rbx + 0x1048]
mov r8, qword [rbx + 0x1050]
cmp rdx, r8
jae 0x42128b
mov qword [rsi + rdx*8], rax
mov rsi, qword [rax + 0x20]
lea rdx, [rdx + rsi - 1]
mov rsi, qword [rbx + 0x1050]
mov r8, qword [rbx + 0x1048]
cmp rdx, rsi
jae 0x421284
mov qword [r8 + rdx*8], rax
movzx edx, byte [rcx + 0x65]
mov byte [rax + 0x65], dl
mov byte [rcx + 0x64], 2
mov byte [rax + 0x64], 2
mov rdx, qword [rcx + 0x70]
mov qword [rsp + 0x18], rdx
mov qword [rsp], rbx
mov qword [rsp + 8], rax
mov word [rsp + 0x10], 0
call fcn.00421960
mov rax, qword [rsp + 0x20]
mov byte [rax + 0x64], 3
mov rdx, qword [rsp + 0x48]
jmp 0x42103a
call fcn.004293e0
ud2
call fcn.004293e0
ud2
call fcn.004293e0
ud2
mov qword [rsp], rbx
mov qword [rsp + 8], 0
call fcn.00410240
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x48]
jmp 0x4211c6
mov qword [rsp], rbx
mov qword [rsp + 8], 0
call fcn.00410240
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x48]
jmp 0x4211ac
mov rcx, qword [rax + 0x18]
mov rdx, qword [rax + 0x20]
shl rdx, 0xd
mov qword [rsp + 8], rdx
mov qword [rsp], rcx
call fcn.00413f00
mov rax, qword [0x008b5f10]
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rcx + 0x78]
shl rdx, 0xd
sub rax, rdx
mov qword [0x008b5f10], rax
mov qword [rcx + 0x78], 0
mov rax, rcx
jmp 0x421028
lea rax, [0x006d1e5e]
mov qword [rsp], rax
mov qword [rsp + 8], 0xd
call fcn.0042aea0
ud2
lea rax, [0x006d7fd7]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1e
call fcn.0042aea0
ud2
lea rax, [0x006d9478]
mov qword [rsp], rax
mov qword [rsp + 8], 0x22
call fcn.0042aea0
ud2
mov rax, qword [rsp + 0x40]
mov qword [rsp], rax
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 8], rcx
call fcn.004214e0
movzx eax, byte [rsp + 0x10]
test al, al
jne 0x4213b2
mov qword [rsp + 0x50], 0
mov rbp, qword [rsp + 0x30]
add rsp, 0x38
ret
mov rax, qword [rsp + 0x40]
mov qword [rsp], rax
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 8], rcx
call fcn.00421400
mov rax, qword [rsp + 0x10]
test rax, rax
jne 0x420fcb
mov qword [rsp + 0x50], 0
mov rbp, qword [rsp + 0x30]
add rsp, 0x38
ret
call fcn.004293e0
ud2
call fcn.00452210
jmp fcn.00420f40