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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 8]
cmp rax, qword [rcx + 0x10]
jbe 0x40fb4e
sub rsp, 0x88
mov qword [rsp + 0x80], rbp
lea rbp, [rsp + 0x80]
movzx eax, word [0x007faf84]
cmp ax, 0x10
jne 0x40fb33
call fcn.00429f70
xor eax, eax
jmp 0x40f701
lea rcx, [rax + rax*2]
lea rdx, [0x007faf80]
movzx ebx, word [rdx + rax*2]
lea r8, [0x008528c0]
mov dword [r8 + rcx*8 + 0x10d8], ebx
inc rax
cmp rax, 0x43
jl 0x40f6e0
mov rax, qword [0x00850c00]
test rax, rax
je 0x40fb18
cmp rax, 0x1000
jb 0x40fa8b
lea rcx, [rax - 1]
test rax, rcx
jne 0x40fa24
mov byte [rsp + 0x27], 0
xor eax, eax
xor ecx, ecx
jmp 0x40f749
mov rdx, qword [rsp + 0x38]
inc rdx
mov rcx, rax
mov rax, rdx
cmp rax, 0x7f
jg 0x40f931
mov qword [rsp + 0x38], rax
shl rax, 0x28
movabs rdx, 0xc000000000
or rax, rdx
mov qword [rsp], rax
movabs rax, 0x842002000
mov qword [rsp + 8], rax
lea rbx, [rsp + 0x27]
mov qword [rsp + 0x10], rbx
call fcn.00415320
mov rax, qword [rsp + 0x18]
test rax, rax
je 0x40f73b
test rax, rax
jne 0x40f922
lea rdi, [rsp + 0x58]
lea rsi, [0x006f8200]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00455954
mov rbp, qword [rbp]
xor ecx, ecx
movabs rdx, 0x842002000
jmp 0x40f7d9
mov rbx, qword [rsp + 0x50]
lea rcx, [rbx + 1]
mov rdx, qword [rsp + 0x28]
cmp rcx, 4
jge 0x40f91a
mov qword [rsp + 0x50], rcx
mov rax, qword [rsp + rcx*8 + 0x58]
mov rdx, qword [0x007fe770]
add rdx, 0x13ffff
mov rbx, rdx
and rdx, 0xfffffffffff00000
test rbx, 0xfffffffffff00000
ja 0x40f820
lea rbx, [rdx + rax + 0x42002000]
test rbx, rbx
jbe 0x40f820
mov edx, 0x100000
mov qword [rsp], rdx
add rax, 0x42002000
mov qword [rsp + 0x28], rax
mov qword [rsp + 8], rax
lea rcx, [rsp + 0x27]
mov qword [rsp + 0x10], rcx
call fcn.00415320
mov rax, qword [rsp + 0x18]
test rax, rax
je 0x40f7cb
mov rcx, qword [rsp + 0x28]
test rax, rax
je 0x40fa09
lea rdx, [rax + 0x1fff]
and rdx, 0xffffffffffffe000
lea rbx, [rdx + 0x42000000]
mov qword [0x0083a718], rbx
mov qword [0x0083a728], rbx
mov rsi, rdx
sub rdx, rax
sub rcx, rdx
add rcx, rax
mov qword [0x0083a740], rcx
mov qword [0x0083a730], rbx
mov qword [0x0083a738], rbx
movzx ecx, byte [rsp + 0x27]
mov byte [0x0083a748], cl
mov rcx, qword [0x0083a728]
test rcx, 0x1fff
jne 0x40f939
lea rax, [0x00839400]
mov qword [rsp], rax
mov qword [rsp + 8], rsi
mov qword [rsp + 0x10], 0x2000000
call fcn.00420f20
mov rax, qword gs:[0x28]
mov rax, qword [rax]
mov qword [rsp + 0x78], rax
call fcn.004142c0
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x30]
mov rcx, qword [rsp]
mov qword [rax + 0x130], rcx
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
mov rcx, rdx
jmp 0x40f856
movabs rcx, 0x842002000
jmp 0x40f85f
mov rax, rcx
jmp 0x40f795
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], rcx
call fcn.0042bc80
lea rax, [0x006ad38c]
mov qword [rsp], rax
mov qword [rsp + 8], 0xd
call fcn.0042c640
mov rax, qword [rsp + 0x30]
mov qword [rsp], rax
call fcn.0042c4d0
call fcn.0042bee0
mov rax, qword [rsp + 0x48]
mov qword [rsp], rax
call fcn.0042c4d0
call fcn.0042bee0
mov qword [rsp], 0x2000000
call fcn.0042c4d0
call fcn.0042bee0
mov qword [rsp], 0x40000000
call fcn.0042c4d0
call fcn.0042bee0
mov qword [rsp], 0x2000
call fcn.0042c4d0
lea rax, [0x006aba13]
mov qword [rsp], rax
mov qword [rsp + 8], 7
call fcn.0042c640
mov rax, qword [rsp + 0x40]
mov qword [rsp], rax
call fcn.0042c4d0
call fcn.0042bf30
call fcn.0042bd10
lea rax, [0x006b5789]
mov qword [rsp], rax
mov qword [rsp + 8], 0x23
call fcn.0042b3a0
ud2
lea rax, [0x006b9407]
mov qword [rsp], rax
mov qword [rsp + 8], 0x33
call fcn.0042b3a0
ud2
call fcn.0042bc80
lea rax, [0x006aefd0]
mov qword [rsp], rax
mov qword [rsp + 8], 0x12
call fcn.0042c640
mov rax, qword [0x00850c00]
mov qword [rsp], rax
call fcn.0042c340
lea rax, [0x006b0afe]
mov qword [rsp], rax
mov qword [rsp + 8], 0x17
call fcn.0042c640
call fcn.0042bd10
lea rax, [0x006afb14]
mov qword [rsp], rax
mov qword [rsp + 8], 0x14
call fcn.0042b3a0
ud2
call fcn.0042bc80
lea rax, [0x006aefd0]
mov qword [rsp], rax
mov qword [rsp + 8], 0x12
call fcn.0042c640
mov rax, qword [0x00850c00]
mov qword [rsp], rax
call fcn.0042c340
lea rax, [0x006b5e3b]
mov qword [rsp], rax
mov qword [rsp + 8], 0x25
call fcn.0042c640
mov qword [rsp], 0x1000
call fcn.0042c460
lea rax, [0x006aafda]
mov qword [rsp], rax
mov qword [rsp + 8], 2
call fcn.0042c640
call fcn.0042bd10
lea rax, [0x006afb14]
mov qword [rsp], rax
mov qword [rsp + 8], 0x14
call fcn.0042b3a0
ud2
lea rax, [0x006b3aa7]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1e
call fcn.0042b3a0
ud2
lea rax, [0x006ae6be]
mov qword [rsp], rax
mov qword [rsp + 8], 0x11
call fcn.0042b3a0
ud2
call fcn.00452950
jmp fcn.0040f690