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

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x40e59e
sub rsp, 0x78
mov qword [rsp + 0x70], rbp
lea rbp, [rsp + 0x70]
cmp dword [0x01154158], 2
nop
je 0x40e58c
test rax, rax
je 0x40e514
cmp byte [0x0115499c], 0
je 0x40dd83
cmp dword [0x011549a8], 0
je 0x40dd63
test rbx, rbx
je 0x40dd45
test rax, 7
jne 0x40dd20
mov edx, 8
jmp 0x40dd4a
test rax, 3
jne 0x40dd2f
mov edx, 4
jmp 0x40dd4a
test rax, 1
mov edx, 1
mov esi, 2
cmove rdx, rsi
jmp 0x40dd4a
mov edx, 0x10
mov rbx, rdx
lea rcx, [0x01158cc0]
call fcn.0040ea00
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
ret
cmp byte [0x011547a0], 0
je 0x40dd83
mov rdx, qword [0x011547a8]
cmp qword [r14 + 0x98], rdx
jne 0x40dd83
inc qword [0x011547b0]
mov byte [rsp + 0x90], cl
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x80], rax
cmp dword [0x01154150], 0
je 0x40de04
mov rdx, qword [r14 + 0x30]
mov rdx, qword [rdx + 0x90]
test rdx, rdx
jne 0x40ddbd
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 0x40de06
mov qword [rsp + 0x68], rdx
mov rax, rdx
nop dword [rax + rax]
call fcn.0041e3a0
mov rax, qword [rsp + 0x80]
movzx ecx, byte [rsp + 0x90]
mov rdx, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x88]
jmp 0x40de06
xor edx, edx
mov rsi, qword [r14 + 0x30]
nop
inc dword [rsi + 0xd8]
mov rsi, qword [r14 + 0x30]
mov r8, r14
test byte [r8], al
cmp dword [rsi + 0xc0], 0
jne 0x40e57b
mov r8, r14
cmp qword [rsi + 0x50], r8
je 0x40e56a
mov dword [rsi + 0xc0], 1
mov r8, qword [r14 + 0x30]
mov r8, qword [r8 + 0xa0]
test r8, r8
je 0x40de55
mov r8, qword [r8 + 0x40]
jmp 0x40de60
mov r8, qword [0x01154468]
nop dword [rax]
test r8, r8
je 0x40e559
test rbx, rbx
je 0x40de79
cmp qword [rbx + 8], 0
sete r9b
jmp 0x40de7f
mov r9d, 1
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x40], r8
mov byte [rsp + 0x26], r9b
mov qword [rsp + 0x60], rdx
cmp rax, 0x8000
ja 0x40e262
nop
test r9b, r9b
je 0x40e052
cmp rax, 0x10
jae 0x40e052
mov r10, qword [r8 + 0x18]
test rax, 7
jne 0x40dec9
add r10, 7
and r10, 0xfffffffffffffff8
jmp 0x40deea
test rax, 3
jne 0x40dedb
add r10, 3
and r10, 0xfffffffffffffffc
jmp 0x40deea
bt eax, 0
nop
jb 0x40deea
nop
inc r10
and r10, 0xfffffffffffffffe
lea r11, [rax + r10]
cmp r11, 0x10
ja 0x40df44
mov r12, qword [r8 + 0x10]
test r12, r12
je 0x40df44
lea rax, [r12 + r10]
mov qword [r8 + 0x18], r11
inc qword [r8 + 0x20]
mov dword [rsi + 0xc0], 0
nop
mov ecx, dword [rsi + 0xd8]
lea edx, [rcx - 1]
mov dword [rsi + 0xd8], edx
cmp ecx, 1
jne 0x40df3a
cmp byte [r14 + 0xb1], 0
je 0x40df3a
mov qword [r14 + 0x10], 0xfffffffffffffade
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
ret
mov r10, qword [r8 + 0x50]
mov r11, qword [r10 + 0x40]
bsf r12, r11
mov r13d, 0x40
cmove r12, r13
nop word [rax + rax]
cmp r12, 0x40
jge 0x40dfd5
mov r13, qword [r10 + 0x30]
lea r15, [r13 + r12]
mov rdi, rdx
mov rdx, qword [r10 + 0x38]
cmp rdx, r15
jbe 0x40dfd8
lea r13, [r13 + r12]
lea r13, [r13 + 1]
test r13, 0x3f
jne 0x40df96
cmp rdx, r13
je 0x40df96
xor edx, edx
jmp 0x40dfda
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]
movzx ecx, byte [rsp + 0x90]
jmp 0x40dfda
mov rdi, rdx
xor edx, edx
test rdx, rdx
je 0x40dfe4
xor r11d, r11d
jmp 0x40e027
mov rax, r8
mov ebx, 5
call fcn.0040daa0
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x60]
mov r8, qword [rsp + 0x40]
movzx r9d, byte [rsp + 0x26]
mov rdx, rax
mov r10, rbx
mov r11d, ecx
mov rax, qword [rsp + 0x80]
movzx ecx, byte [rsp + 0x90]
mov rbx, qword [rsp + 0x88]
movups xmmword [rdx], xmm15
cmp qword [r8 + 0x18], rax
ja 0x40e038
cmp qword [r8 + 0x10], 0
jne 0x40e045
mov r12, rdx
mov qword [r8 + 0x10], rdx
mov qword [r8 + 0x18], rax
jmp 0x40e048
mov r12, rdx
mov edx, 0x10
jmp 0x40e259
cmp rax, 0x3f8
ja 0x40e07d
lea r10, [rax + 7]
shr r10, 3
cmp r10, 0x81
jae 0x40e54c
lea r11, [0x00932fa0]
movzx r10d, byte [r10 + r11]
jmp 0x40e0a1
lea r10, [rax - 0x381]
shr r10, 7
cmp r10, 0xf9
jae 0x40e53f
lea r11, str._______________________....______0001123333333333444444444455666677777888888888889999999999::::::___________________________________________________________________________AAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
movzx r10d, byte [r10 + r11]
cmp r10, 0x44
jae 0x40e532
lea r11, [0x00933220]
movzx r11d, word [r11 + r10*2]
nop
shl r10d, 1
movzx r12d, r9b
or r10d, r12d
movzx r12d, r10b
cmp r12, 0x88
jae 0x40e525
mov r12, qword [r8 + r12*8 + 0x28]
mov r13, qword [r12 + 0x40]
bsf r15, r13
mov rdi, rdx
mov edx, 0x40
cmove r15, rdx
cmp r15, 0x40
jge 0x40e18c
mov rdx, qword [r12 + 0x30]
lea rsi, [rdx + r15]
mov r8, qword [r12 + 0x38]
cmp r8, rsi
jbe 0x40e182
lea rdx, [rdx + r15]
lea rdx, [rdx + 1]
test rdx, 0x3f
jne 0x40e133
nop dword [rax + rax]
cmp r8, rdx
je 0x40e133
mov rsi, qword [rsp + 0x50]
mov r8, qword [rsp + 0x40]
xor edx, edx
jmp 0x40e18e
lea r8, [r15 + 1]
cmp r8, 0x40
sbb r15, r15
mov rcx, r8
shr r13, cl
and r13, r15
mov qword [r12 + 0x40], r13
mov qword [r12 + 0x30], rdx
movzx edx, word [r12 + 0x60]
inc edx
mov word [r12 + 0x60], dx
mov rdx, qword [r12 + 0x68]
imul rdx, rsi
add rdx, qword [r12 + 0x18]
movzx ecx, byte [rsp + 0x90]
mov rsi, qword [rsp + 0x50]
mov r8, qword [rsp + 0x40]
nop
jmp 0x40e18e
mov rsi, qword [rsp + 0x50]
mov r8, qword [rsp + 0x40]
xor edx, edx
mov qword [rsp + 0x48], r11
test rdx, rdx
je 0x40e19d
xor r10d, r10d
jmp 0x40e1e3
mov rax, r8
mov ebx, r10d
call fcn.0040daa0
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x60]
mov r8, qword [rsp + 0x40]
movzx r9d, byte [rsp + 0x26]
mov r11, qword [rsp + 0x48]
mov rdx, rax
mov r12, rbx
mov r10d, ecx
mov rax, qword [rsp + 0x80]
movzx ecx, byte [rsp + 0x90]
mov rbx, qword [rsp + 0x88]
test cl, cl
je 0x40e24b
cmp byte [r12 + 0x64], 0
je 0x40e24b
mov qword [rsp + 0x58], rdx
mov byte [rsp + 0x25], r10b
mov qword [rsp + 0x28], r12
mov rax, rdx
mov rbx, r11
call fcn.00466220
mov rax, qword [rsp + 0x80]
movzx ecx, byte [rsp + 0x90]
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x60]
mov r8, qword [rsp + 0x40]
movzx r9d, byte [rsp + 0x26]
movzx r10d, byte [rsp + 0x25]
mov r11, qword [rsp + 0x48]
mov r12, qword [rsp + 0x28]
mov r11d, r10d
mov r10, r12
mov r12, rdx
mov rdx, qword [rsp + 0x48]
mov r13d, 1
nop
jmp 0x40e2d5
test cl, cl
je 0x40e26f
mov edi, r9d
xor r9d, 1
jmp 0x40e275
mov edi, r9d
xor r9d, r9d
mov rbx, rax
mov ecx, r9d
mov rax, r8
nop
call fcn.00417de0
mov qword [rax + 0x30], 1
mov word [rax + 0x60], 1
mov r12, qword [rax + 0x18]
nop
mov rdx, qword [rax + 0x68]
movzx ecx, byte [rsp + 0x90]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x60]
mov r8, qword [rsp + 0x40]
movzx r9d, byte [rsp + 0x26]
mov r10, rax
mov r13d, ebx
mov r11d, 1
mov rax, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x88]
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x48], rdx
mov byte [rsp + 0x25], r11b
mov byte [rsp + 0x27], r13b
mov qword [rsp + 0x28], r10
test r9b, r9b
je 0x40e2f8
xor r9d, r9d
jmp 0x40e365
cmp qword [0x010fc5c8], rbx
mov esi, 0x48
cmove rax, rsi
mov qword [rsp + 0x38], rax
mov rcx, rax
mov rdi, rbx
mov rax, r12
mov rbx, rdx
call fcn.00416060
mov rdx, qword [rsp + 0x88]
mov rsi, qword [rdx]
mov r8, qword [rsp + 0x38]
cmp rsi, r8
jae 0x40e34f
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 0x40e356
mov rax, qword [rdx + 8]
mov rcx, r8
mov rbx, qword [rsp + 0x40]
add qword [rbx + 8], rax
mov r9, rax
mov rax, rcx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r9
call fcn.00465240
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
cmp dword [0x01154158], 0
je 0x40e3aa
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x30]
call fcn.00420bc0
mov rdx, qword [0x011543b0]
test rdx, rdx
jle 0x40e3f1
cmp rdx, 1
je 0x40e3d6
mov rdx, qword [rsp + 0x40]
mov rsi, qword [rdx]
mov rcx, qword [rsp + 0x48]
cmp rcx, rsi
jae 0x40e3db
sub rsi, rcx
mov qword [rdx], rsi
jmp 0x40e3f6
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
call fcn.0040e7c0
mov rcx, qword [rsp + 0x48]
jmp 0x40e3f6
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
mov dword [rdx + 0xc0], 0
nop
mov esi, dword [rdx + 0xd8]
lea edi, [rsi - 1]
mov dword [rdx + 0xd8], edi
cmp esi, 1
jne 0x40e42c
cmp byte [r14 + 0xb1], 0
je 0x40e42c
mov qword [r14 + 0x10], 0xfffffffffffffade
movzx edx, byte [rsp + 0x27]
test dl, dl
jne 0x40e456
movzx edx, byte [rsp + 0x90]
nop dword [rax]
test dl, dl
je 0x40e456
mov rax, rcx
mov rbx, qword [rsp + 0x58]
call fcn.0040e5e0
mov rcx, qword [rsp + 0x48]
cmp byte [0x0115499c], 0
je 0x40e4a2
cmp dword [0x011549a0], 0
je 0x40e482
mov rax, qword [rsp + 0x58]
mov rbx, rcx
mov rcx, qword [rsp + 0x88]
call fcn.0042e4c0
mov rcx, qword [rsp + 0x48]
cmp byte [0x011547a0], 0
je 0x40e4a2
mov rdx, qword [0x011547a8]
cmp qword [r14 + 0x98], rdx
jne 0x40e4a2
add qword [0x011547b8], rcx
mov rdx, qword [rsp + 0x60]
test rdx, rdx
je 0x40e4bb
mov rsi, qword [rsp + 0x38]
sub rcx, rsi
sub qword [rdx + 0x180], rcx
movzx edx, byte [rsp + 0x25]
test dl, dl
je 0x40e505
cmp byte [0x01159ce8], 0
je 0x40e4f2
cmp dword [0x01154174], 0
jne 0x40e4f2
cmp dword [0x01154158], 0
jne 0x40e4f2
mov rdx, qword [0x01154f50]
cmp qword [0x01154f38], rdx
setbe dl
jmp 0x40e4f4
xor edx, edx
test dl, dl
je 0x40e505
xor eax, eax
xor ebx, ebx
xor ecx, ecx
nop
call fcn.0041ac00
mov rax, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
ret
lea rax, [0x01154530]
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
ret
mov rax, r12
mov ecx, 0x88
call fcn.00465b60
mov eax, r10d
mov ecx, 0x44
call fcn.00465b60
mov rax, r10
mov ecx, 0xf9
call fcn.00465b80
mov rax, r10
mov ecx, 0x81
call fcn.00465b80
lea rax, [0x00adbf55]
mov ebx, 0x34
call fcn.00437b60
lea rax, [0x00ac5516]
mov ebx, 0x14
call fcn.00437b60
lea rax, [0x00ac14c0]
mov ebx, 0xf
call fcn.00437b60
lea rax, [0x00adb6f8]
mov ebx, 0x32
call fcn.00437b60
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov byte [rsp + 0x18], cl
call fcn.00463440
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
movzx ecx, byte [rsp + 0x18]
jmp fcn.0040dcc0