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

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x40d0f9
sub rsp, 0x78
mov qword [rsp + 0x70], rbp
lea rbp, [rsp + 0x70]
cmp dword [0x00837fcc], 2
nop
je 0x40d0e7
test rax, rax
je 0x40d08d
cmp byte [0x00838640], 0
je 0x40ca83
cmp dword [0x0083864c], 0
je 0x40ca63
test rbx, rbx
je 0x40ca45
test rax, 7
jne 0x40ca20
mov edx, 8
jmp 0x40ca4a
test rax, 3
jne 0x40ca2f
mov edx, 4
jmp 0x40ca4a
test rax, 1
mov edx, 1
mov esi, 2
cmove rdx, rsi
jmp 0x40ca4a
mov edx, 0x10
mov rbx, rdx
lea rcx, [0x0083c7a0]
call fcn.0040d4c0
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
ret
cmp byte [0x00838400], 0
je 0x40ca83
mov rdx, qword [0x00838408]
cmp qword [r14 + 0x98], rdx
jne 0x40ca83
inc qword [0x00838410]
mov byte [rsp + 0x90], cl
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rbx
cmp dword [0x00837fc4], 0
je 0x40cb04
mov rdx, qword [r14 + 0x30]
mov rdx, qword [rdx + 0x90]
test rdx, rdx
jne 0x40cabd
mov qword [rsp + 0x60], r14
mov rdx, qword [rsp + 0x60]
mov rsi, qword [rdx + 0x180]
sub rsi, rax
mov qword [rdx + 0x180], rsi
test rsi, rsi
jge 0x40cb06
mov qword [rsp + 0x68], rdx
mov rax, rdx
nop dword [rax + rax]
call fcn.0041ddc0
mov rax, qword [rsp + 0x80]
movzx ecx, byte [rsp + 0x90]
mov rdx, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x88]
jmp 0x40cb06
xor edx, edx
mov qword [rsp + 0x60], rdx
call fcn.00445ee0
cmp dword [rax + 0xc0], 0
jne 0x40d0d6
mov rcx, r14
cmp qword [rax + 0x50], rcx
je 0x40d0c5
mov qword [rsp + 0x58], rax
mov dword [rax + 0xc0], 1
call fcn.00417e40
nop
test rax, rax
je 0x40d0af
mov rdx, qword [rsp + 0x88]
test rdx, rdx
je 0x40cb62
cmp qword [rdx + 8], 0
sete sil
nop
jmp 0x40cb67
mov esi, 1
mov qword [rsp + 0x38], rax
mov byte [rsp + 0x26], sil
mov rbx, qword [rsp + 0x80]
nop dword [rax]
cmp rbx, 0x8000
ja 0x40cdfa
test sil, sil
je 0x40cd09
nop word [rax + rax]
nop
cmp rbx, 0x10
jae 0x40cd09
mov rcx, qword [rax + 0x18]
test rbx, 7
je 0x40cc30
nop word [rax + rax]
test rbx, 3
je 0x40cc04
bt ebx, 0
jb 0x40cc5a
mov rax, rcx
mov ebx, 2
nop dword [rax + rax]
call fcn.0044dbc0
mov rdx, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x80]
movzx esi, byte [rsp + 0x26]
mov rcx, rax
mov rax, qword [rsp + 0x38]
jmp 0x40cc5a
mov rax, rcx
mov ebx, 4
call fcn.0044dbc0
mov rdx, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x80]
movzx esi, byte [rsp + 0x26]
mov rcx, rax
mov rax, qword [rsp + 0x38]
jmp 0x40cc5a
mov rax, rcx
mov ebx, 8
call fcn.0044dbc0
mov rdx, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x80]
movzx esi, byte [rsp + 0x26]
mov rcx, rax
mov rax, qword [rsp + 0x38]
lea rdi, [rcx + rbx]
nop
cmp rdi, 0x10
ja 0x40cca2
mov r8, qword [rax + 0x10]
test r8, r8
je 0x40cca2
add rcx, r8
mov qword [rsp + 0x50], rcx
mov qword [rax + 0x18], rdi
inc qword [rax + 0x20]
mov rax, qword [rsp + 0x58]
mov dword [rax + 0xc0], 0
call fcn.00445f00
mov rax, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
ret
mov rcx, qword [rax + 0x50]
mov qword [rsp + 0x28], rcx
mov rax, rcx
call fcn.0040c6c0
test rax, rax
je 0x40ccc2
mov rbx, qword [rsp + 0x28]
xor ecx, ecx
nop
jmp 0x40ccd1
mov rax, qword [rsp + 0x38]
mov ebx, 5
call fcn.0040c7a0
movups xmmword [rax], xmm15
mov rdx, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x38]
cmp qword [rsi + 0x18], rdx
ja 0x40ccef
cmp qword [rsi + 0x10], 0
jne 0x40ccfc
mov r8, rax
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], rdx
jmp 0x40ccff
mov r8, rax
mov eax, 0x10
jmp 0x40cdf3
cmp rbx, 0x3f8
ja 0x40cd2c
mov rax, rbx
mov ebx, 8
call fcn.0044dc00
lea rcx, [0x007a8f80]
movzx ecx, byte [rcx + rax]
jmp 0x40cd48
lea rax, [rbx - 0x400]
mov ebx, pe_nt_image_headers64
call fcn.0044dc00
lea rcx, str._______________________....______0001123333333333444444444455666677777888888888889999999999::::::___________________________________________________________________________AAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
movzx ecx, byte [rcx + rax]
lea rdx, [0x007a90c0]
movzx edx, word [rdx + rcx*2]
mov qword [rsp + 0x48], rdx
mov eax, ecx
movzx ebx, byte [rsp + 0x26]
nop
call fcn.00426a00
mov byte [rsp + 0x24], al
movzx ecx, al
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rdx + rcx*8 + 0x28]
mov qword [rsp + 0x28], rcx
mov rax, rcx
nop
call fcn.0040c6c0
test rax, rax
je 0x40cd93
mov rbx, qword [rsp + 0x28]
xor ecx, ecx
jmp 0x40cda5
mov rax, qword [rsp + 0x38]
movzx ebx, byte [rsp + 0x24]
nop dword [rax]
call fcn.0040c7a0
movzx edx, byte [rsp + 0x90]
test dl, dl
je 0x40cdde
cmp byte [rbx + 0x64], 0
je 0x40cdde
mov qword [rsp + 0x50], rax
mov byte [rsp + 0x25], cl
mov qword [rsp + 0x40], rbx
mov rbx, qword [rsp + 0x48]
call fcn.00461cc0
mov rax, qword [rsp + 0x50]
movzx ecx, byte [rsp + 0x25]
mov rbx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x38]
mov r8, rax
mov rax, qword [rsp + 0x48]
xor edi, edi
jmp 0x40ce96
mov ecx, esi
nop dword [rax]
call fcn.004180a0
mov qword [rsp + 0x28], rax
mov qword [rax + 0x30], 1
mov word [rax + 0x60], 1
mov rdx, qword [rax + 0x68]
mov qword [rsp + 0x48], rdx
call fcn.00426820
movzx edx, byte [rsp + 0x90]
test dl, dl
je 0x40ce69
mov rdx, qword [rsp + 0x28]
cmp byte [rdx + 0x64], 0
je 0x40ce6e
movzx esi, byte [rsp + 0x26]
test sil, sil
jne 0x40ce65
mov qword [rsp + 0x50], rax
mov rbx, qword [rsp + 0x48]
call fcn.00461cc0
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x28]
movzx esi, byte [rsp + 0x26]
mov ecx, esi
jmp 0x40ce75
mov rdx, qword [rsp + 0x28]
movzx ecx, byte [rsp + 0x26]
xor esi, esi
mov rdx, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x28]
mov edi, esi
mov ecx, 1
mov r8, rax
mov rsi, qword [rsp + 0x38]
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x48], rax
mov byte [rsp + 0x25], cl
mov byte [rsp + 0x27], dil
mov qword [rsp + 0x28], rbx
movzx r9d, byte [rsp + 0x26]
test r9b, r9b
je 0x40cebe
xor r10d, r10d
jmp 0x40cf1b
mov rbx, rax
mov rcx, rdx
mov rdi, qword [rsp + 0x88]
mov rax, r8
call fcn.00415de0
mov rdx, qword [rsp + 0x88]
mov rsi, qword [rdx]
mov r8, qword [rsp + 0x80]
cmp r8, rsi
jbe 0x40cf08
mov rax, qword [rdx + 8]
mov rcx, r8
sub r8, rsi
lea rbx, [r8 + rax]
test rax, rax
mov eax, 0
cmovne rax, rbx
jmp 0x40cf0f
mov rax, qword [rdx + 8]
mov rcx, r8
mov rbx, qword [rsp + 0x38]
add qword [rbx + 8], rax
mov r10, rax
mov qword [rsp + 0x30], r10
call fcn.00461080
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
cmp dword [0x00837fcc], 0
je 0x40cf5b
mov rbx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x30]
call fcn.004203a0
mov rdx, qword [0x00838060]
test rdx, rdx
jle 0x40cfa0
cmp rdx, 1
je 0x40cf87
mov rdx, qword [rsp + 0x38]
mov rsi, qword [rdx]
mov rcx, qword [rsp + 0x48]
cmp rcx, rsi
jae 0x40cf8c
sub rsi, rcx
mov qword [rdx], rsi
jmp 0x40cfa0
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
call fcn.0040d300
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x58]
mov dword [rax + 0xc0], 0
call fcn.00445f00
movzx ecx, byte [rsp + 0x27]
test cl, cl
je 0x40cfd9
movzx ecx, byte [rsp + 0x26]
test cl, cl
je 0x40d09e
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
call fcn.0040d140
cmp byte [0x00838640], 0
je 0x40d033
cmp dword [0x00838644], 0
je 0x40d005
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x88]
nop dword [rax]
call fcn.0042e600
cmp byte [0x00838400], 0
je 0x40d02c
mov rdx, qword [0x00838408]
cmp qword [r14 + 0x98], rdx
jne 0x40d02c
mov rdx, qword [rsp + 0x48]
add qword [0x00838418], rdx
jmp 0x40d038
mov rdx, qword [rsp + 0x48]
jmp 0x40d038
mov rdx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x60]
nop dword [rax]
test rsi, rsi
je 0x40d057
mov rdi, qword [rsp + 0x80]
sub rdx, rdi
sub qword [rsi + 0x180], rdx
movzx edx, byte [rsp + 0x25]
nop dword [rax]
test dl, dl
je 0x40d07e
xor eax, eax
xor ebx, ebx
xor ecx, ecx
call fcn.0041a8e0
test al, al
je 0x40d07e
xor eax, eax
xor ebx, ebx
xor ecx, ecx
call fcn.0041aa40
mov rax, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
ret
lea rax, [0x008381e0]
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
ret
lea rax, [0x00655e6d]
mov ebx, 0x31
call fcn.00436d80
lea rax, [0x0065692d]
mov ebx, 0x34
nop dword [rax + rax]
call fcn.00436d80
lea rax, [0x0064a2ba]
mov ebx, 0x14
call fcn.00436d80
lea rax, [0x00647cbf]
mov ebx, 0xf
call fcn.00436d80
lea rax, [0x006563d2]
mov ebx, 0x32
call fcn.00436d80
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov byte [rsp + 0x18], cl
call fcn.0045f280
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
movzx ecx, byte [rsp + 0x18]
nop dword [rax + rax]
jmp fcn.0040c9c0