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

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x40d908
sub rsp, 0x60
mov qword [rsp + 0x58], rbp
lea rbp, [rsp + 0x58]
cmp dword [0x00a04a44], 2
nop
je 0x40d8f6
test rax, rax
je 0x40d866
mov byte [rsp + 0x78], cl
mov qword [rsp + 0x70], rbx
cmp byte [0x00a053a4], 0
nop
je 0x40d1a6
cmp dword [0x00a053b0], 0
je 0x40d186
test rbx, rbx
je 0x40d168
test rax, 7
jne 0x40d143
mov edx, 8
jmp 0x40d16d
test rax, 3
jne 0x40d152
mov edx, 4
jmp 0x40d16d
test rax, 1
mov edx, 1
mov esi, 2
cmove rdx, rsi
jmp 0x40d16d
mov edx, 0x10
mov rbx, rdx
lea rcx, [0x00a0a2e0]
call fcn.0040de00
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
ret
cmp byte [0x00a05140], 0
je 0x40d1a6
mov rdx, qword [0x00a05148]
cmp qword [r14 + 0x98], rdx
jne 0x40d1a6
inc qword [0x00a05150]
mov qword [rsp + 0x68], rax
call fcn.0040d940
mov rcx, qword [r14 + 0x30]
nop
inc dword [rcx + 0xd8]
mov rcx, qword [r14 + 0x30]
mov rdx, r14
test byte [rdx], al
cmp dword [rcx + 0xc0], 0
jne 0x40d8e5
mov rdx, r14
cmp qword [rcx + 0x50], rdx
je 0x40d8d0
mov dword [rcx + 0xc0], 1
mov rdx, qword [rcx + 0xa0]
test rdx, rdx
je 0x40d1fa
mov rdx, qword [rdx + 0x40]
jmp 0x40d201
mov rdx, qword [0x00a04b80]
test rdx, rdx
je 0x40d8bf
mov rdi, qword [rsp + 0x70]
test rdi, rdi
je 0x40d21f
cmp qword [rdi + 8], 0
sete sil
jmp 0x40d224
mov esi, 1
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x30], rdx
mov byte [rsp + 0x26], sil
mov rbx, qword [rsp + 0x68]
nop dword [rax]
cmp rbx, 0x8000
ja 0x40d5d4
test sil, sil
je 0x40d3f5
nop word [rax + rax]
nop
cmp rbx, 0x10
jae 0x40d3f5
mov r8, qword [rdx + 0x18]
test rbx, 7
jne 0x40d282
add r8, 7
and r8, 0xfffffffffffffff8
nop
jmp 0x40d2a3
test rbx, 3
jne 0x40d295
add r8, 3
and r8, 0xfffffffffffffffc
jmp 0x40d2a3
bt ebx, 0
jb 0x40d2a3
nop
inc r8
and r8, 0xfffffffffffffffe
lea r9, [rbx + r8]
cmp r9, 0x10
ja 0x40d301
mov r10, qword [rdx + 0x10]
test r10, r10
je 0x40d301
lea rax, [r10 + r8]
mov qword [rdx + 0x18], r9
inc qword [rdx + 0x20]
mov dword [rcx + 0xc0], 0
nop
mov edx, dword [rcx + 0xd8]
lea ebx, [rdx - 1]
mov dword [rcx + 0xd8], ebx
nop dword [rax]
cmp edx, 1
jne 0x40d2f7
cmp byte [r14 + 0xb1], 0
je 0x40d2f7
mov qword [r14 + 0x10], 0xfffffffffffffade
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
ret
mov r8, qword [rdx + 0x50]
mov r9, qword [r8 + 0x40]
bsf r10, r9
mov r11d, 0x40
cmove r10, r11
cmp r10, 0x40
jge 0x40d386
mov r11, qword [r8 + 0x30]
lea r12, [r11 + r10]
mov r13, qword [r8 + 0x38]
cmp r13, r12
jbe 0x40d386
lea r11, [r11 + r10]
lea r11, [r11 + 1]
test r11, 0x3f
jne 0x40d34d
nop
cmp r13, r11
je 0x40d34d
mov r15, rcx
xor r9d, r9d
jmp 0x40d38c
inc r10
cmp r10, 0x40
sbb r13, r13
mov r15, rcx
mov rcx, r10
shr r9, cl
and r9, r13
mov qword [r8 + 0x40], r9
mov qword [r8 + 0x30], r11
movzx r9d, word [r8 + 0x60]
inc r9d
mov word [r8 + 0x60], r9w
mov r9, qword [r8 + 0x68]
imul r9, r12
add r9, qword [r8 + 0x18]
jmp 0x40d38c
mov r15, rcx
xor r9d, r9d
test r9, r9
je 0x40d395
xor ecx, ecx
jmp 0x40d3c9
mov rax, rdx
mov ebx, 5
nop dword [rax]
call fcn.0040cec0
mov rdx, qword [rsp + 0x30]
movzx esi, byte [rsp + 0x26]
mov rdi, qword [rsp + 0x70]
mov r15, qword [rsp + 0x40]
mov r9, rax
mov r8, rbx
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x68]
movups xmmword [r9], xmm15
cmp qword [rdx + 0x18], rbx
ja 0x40d3da
cmp qword [rdx + 0x10], 0
jne 0x40d3e7
mov r10, r9
mov qword [rdx + 0x10], r9
mov qword [rdx + 0x18], rbx
jmp 0x40d3ea
mov r10, r9
mov r9d, 0x10
jmp 0x40d5cc
cmp rbx, 0x3f8
ja 0x40d422
lea r8, [rbx + 7]
shr r8, 3
cmp r8, 0x81
jae 0x40d8b2
lea r9, [0x00977720]
movzx r8d, byte [r8 + r9]
nop
jmp 0x40d446
lea r8, [rbx - 0x381]
shr r8, 7
cmp r8, 0xf9
jae 0x40d8a5
lea r9, str._______________________....______0001123333333333444444444455666677777888888888889999999999::::::___________________________________________________________________________AAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
movzx r8d, byte [r8 + r9]
cmp r8, 0x44
jae 0x40d895
lea r9, [0x00977900]
movzx r9d, word [r9 + r8*2]
nop
shl r8d, 1
movzx r10d, sil
or r8d, r10d
movzx r10d, r8b
cmp r10, 0x88
jae 0x40d888
mov r10, qword [rdx + r10*8 + 0x28]
mov r11, qword [r10 + 0x40]
bsf r12, r11
mov r13d, 0x40
cmove r12, r13
cmp r12, 0x40
jge 0x40d518
mov r13, qword [r10 + 0x30]
lea r15, [r13 + r12]
mov rdx, qword [r10 + 0x38]
cmp rdx, r15
jbe 0x40d513
lea r13, [r13 + r12]
lea r13, [r13 + 1]
test r13, 0x3f
jne 0x40d4cf
nop dword [rax]
cmp rdx, r13
je 0x40d4cf
mov rdx, qword [rsp + 0x30]
xor r11d, r11d
jmp 0x40d51b
lea rdx, [r12 + 1]
cmp rdx, 0x40
sbb r12, r12
mov rcx, rdx
shr r11, cl
and r11, r12
mov qword [r10 + 0x40], r11
mov qword [r10 + 0x30], r13
movzx edx, word [r10 + 0x60]
inc edx
mov word [r10 + 0x60], dx
mov rdx, qword [r10 + 0x68]
imul rdx, r15
add rdx, qword [r10 + 0x18]
mov rcx, qword [rsp + 0x40]
mov r11, rdx
mov rdx, qword [rsp + 0x30]
jmp 0x40d51b
mov rdx, qword [rsp + 0x30]
xor r11d, r11d
mov qword [rsp + 0x38], r9
test r11, r11
je 0x40d52a
xor r8d, r8d
jmp 0x40d561
mov rax, rdx
mov ebx, r8d
call fcn.0040cec0
mov rdx, qword [rsp + 0x30]
movzx esi, byte [rsp + 0x26]
mov rdi, qword [rsp + 0x70]
mov r9, qword [rsp + 0x38]
mov r11, rax
mov r10, rbx
mov r8d, ecx
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x68]
movzx r12d, byte [rsp + 0x78]
test r12b, r12b
je 0x40d5c0
cmp byte [r10 + 0x64], 0
je 0x40d5c0
mov qword [rsp + 0x48], r11
mov byte [rsp + 0x25], r8b
mov qword [rsp + 0x28], r10
mov rax, r11
mov rbx, r9
call fcn.00466560
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x68]
movzx esi, byte [rsp + 0x26]
mov rdi, qword [rsp + 0x70]
movzx r8d, byte [rsp + 0x25]
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0x28]
mov r11, qword [rsp + 0x48]
mov r15, rcx
mov ecx, r8d
mov r8, r10
mov r10, r11
xor r11d, r11d
jmp 0x40d67c
mov rax, rdx
mov ecx, esi
call fcn.00416700
mov qword [rax + 0x30], 1
mov word [rax + 0x60], 1
mov rbx, qword [rax + 0x68]
mov rdx, qword [rax + 0x18]
movzx esi, byte [rsp + 0x78]
test sil, sil
je 0x40d646
cmp byte [rax + 0x64], 0
je 0x40d63d
movzx esi, byte [rsp + 0x26]
test sil, sil
jne 0x40d639
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x48], rdx
mov rax, rdx
call fcn.00466560
mov rax, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x38]
movzx esi, byte [rsp + 0x26]
mov ecx, esi
jmp 0x40d64d
movzx ecx, byte [rsp + 0x26]
xor esi, esi
jmp 0x40d64d
movzx ecx, byte [rsp + 0x26]
xor esi, esi
mov rdi, qword [rsp + 0x70]
mov r15, qword [rsp + 0x40]
mov r8, rax
mov r11d, esi
mov r9, rbx
mov ecx, 1
mov r10, rdx
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x68]
movzx esi, byte [rsp + 0x26]
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x38], r9
mov byte [rsp + 0x25], cl
mov byte [rsp + 0x27], r11b
mov qword [rsp + 0x28], r8
test sil, sil
jne 0x40d6e5
mov rax, r10
mov rcx, rbx
mov rbx, r9
call fcn.00415700
mov rdx, qword [rsp + 0x70]
mov rsi, qword [rdx]
mov r8, qword [rsp + 0x68]
cmp r8, rsi
jbe 0x40d6d5
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 0x40d6dc
mov rax, qword [rdx + 8]
mov rcx, r8
mov rbx, qword [rsp + 0x30]
add qword [rbx + 8], rax
call fcn.00465600
xorps xmm15, xmm15
mov r14, qword [0x00a04c40]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax + 0x30]
mov qword [rax + 0x98], rcx
cmp dword [0x00a04a44], 0
je 0x40d725
mov rbx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x38]
nop
call fcn.0041ffc0
mov rdx, qword [0x009715c0]
test rdx, rdx
jle 0x40d76c
cmp rdx, 1
je 0x40d751
mov rdx, qword [rsp + 0x30]
mov rsi, qword [rdx]
mov rcx, qword [rsp + 0x38]
cmp rcx, rsi
jae 0x40d756
sub rsi, rcx
mov qword [rdx], rsi
jmp 0x40d771
mov rcx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
call fcn.0040dbc0
mov rcx, qword [rsp + 0x38]
jmp 0x40d771
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
mov dword [rdx + 0xc0], 0
nop
mov esi, dword [rdx + 0xd8]
lea edi, [rsi - 1]
mov dword [rdx + 0xd8], edi
cmp esi, 1
jne 0x40d7a7
cmp byte [r14 + 0xb1], 0
je 0x40d7a7
mov qword [r14 + 0x10], 0xfffffffffffffade
movzx edx, byte [rsp + 0x27]
test dl, dl
je 0x40d7cf
movzx edx, byte [rsp + 0x26]
test dl, dl
je 0x40d877
mov rax, rcx
mov rbx, qword [rsp + 0x48]
call fcn.0040d9e0
mov rcx, qword [rsp + 0x38]
cmp byte [0x00a053a4], 0
je 0x40d819
cmp dword [0x00a053a8], 0
nop
je 0x40d7f9
mov rax, qword [rsp + 0x48]
mov rbx, rcx
mov rcx, qword [rsp + 0x70]
call fcn.0042e740
mov rcx, qword [rsp + 0x38]
cmp byte [0x00a05140], 0
je 0x40d819
mov rdx, qword [0x00a05148]
cmp qword [r14 + 0x98], rdx
jne 0x40d819
add qword [0x00a05158], rcx
mov rdx, qword [rsp + 0x50]
nop
test rdx, rdx
je 0x40d834
mov rsi, qword [rsp + 0x68]
sub rcx, rsi
sub qword [rdx + 0x180], rcx
movzx edx, byte [rsp + 0x25]
test dl, dl
je 0x40d857
xor eax, eax
xor ebx, ebx
xor ecx, ecx
call fcn.00419460
test al, al
je 0x40d857
xor eax, eax
xor ebx, ebx
xor ecx, ecx
call fcn.00419580
mov rax, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
ret
lea rax, [0x00a04c58]
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
ret
lea rax, [0x0072dcf4]
mov ebx, 0x31
call fcn.00436d20
mov rax, r10
mov ecx, 0x88
call fcn.00465ec0
mov eax, r8d
mov ecx, 0x44
nop dword [rax]
call fcn.00465ec0
mov rax, r8
mov ecx, 0xf9
call fcn.00465ee0
mov rax, r8
mov ecx, 0x81
call fcn.00465ee0
lea rax, [0x0072e9a4]
mov ebx, 0x34
call fcn.00436d20
lea rax, [0x00720589]
mov ebx, 0x14
nop dword [rax]
call fcn.00436d20
lea rax, [0x0071d966]
mov ebx, 0xf
call fcn.00436d20
lea rax, [0x0072e3e3]
mov ebx, 0x32
call fcn.00436d20
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov byte [rsp + 0x18], cl
call fcn.00463860
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
movzx ecx, byte [rsp + 0x18]
jmp fcn.0040d0e0