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

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x40d331
push rbp
mov rbp, rsp
sub rsp, 0x78
cmp dword [0x0092d504], 2
je 0x40d31f
nop
test rax, rax
je 0x40d289
mov qword [rsp + 0x90], rbx
mov byte [rsp + 0x98], cl
cmp byte [0x0092dd78], 0
nop
je 0x40cb5f
cmp dword [0x0092dd84], 0
je 0x40cb3f
test rbx, rbx
je 0x40cb25
test rax, 7
jne 0x40cb00
mov edx, 8
jmp 0x40cb2a
test rax, 3
jne 0x40cb0f
mov edx, 4
jmp 0x40cb2a
test rax, 1
mov edx, 1
mov esi, 2
cmove rdx, rsi
jmp 0x40cb2a
mov edx, 0x10
mov rbx, rdx
lea rcx, [0x00932cc0]
call fcn.0040d740
add rsp, 0x78
pop rbp
ret
cmp byte [0x0092da80], 0
je 0x40cb5f
mov rdx, qword [0x0092da88]
cmp qword [r14 + 0x98], rdx
jne 0x40cb5f
inc qword [0x0092da90]
mov qword [rsp + 0x88], rax
call fcn.0040d360
mov rcx, qword [r14 + 0x30]
nop
inc dword [rcx + 0xd8]
mov rcx, qword [r14 + 0x30]
cmp dword [rcx + 0xc0], 0
jne 0x40d30e
mov rdx, r14
cmp qword [rcx + 0x50], rdx
je 0x40d2fd
mov dword [rcx + 0xc0], 1
mov rdx, qword [rcx + 0xa0]
test rdx, rdx
je 0x40cbb1
mov rdx, qword [rdx + 0x40]
jmp 0x40cbc0
mov rdx, qword [0x0092d698]
nop dword [rax + rax]
test rdx, rdx
je 0x40d2ec
mov r8, qword [rsp + 0x90]
test r8, r8
je 0x40cbe2
cmp qword [r8 + 8], 0
sete r9b
nop
jmp 0x40cbe8
mov r9d, 1
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x40], rdx
mov byte [rsp + 0x2d], r9b
mov rbx, qword [rsp + 0x88]
cmp rbx, 0x7ff8
ja 0x40d027
test r9b, r9b
je 0x40cdcf
nop word [rax + rax]
cmp rbx, 0x10
jae 0x40cdc5
mov r10, qword [rdx + 0x18]
test rbx, 7
jne 0x40cc42
add r10, 7
and r10, 0xfffffffffffffff8
nop
jmp 0x40cc63
test rbx, 3
jne 0x40cc55
add r10, 3
and r10, 0xfffffffffffffffc
jmp 0x40cc63
bt ebx, 0
jb 0x40cc63
inc r10
nop
and r10, 0xfffffffffffffffe
lea r11, [r10 + rbx]
cmp r11, 0x10
ja 0x40ccbd
mov r12, qword [rdx + 0x10]
test r12, r12
je 0x40ccbd
lea rax, [r12 + r10]
mov qword [rdx + 0x18], r11
inc qword [rdx + 0x20]
mov dword [rcx + 0xc0], 0
mov edx, dword [rcx + 0xd8]
lea ebx, [rdx - 1]
nop
mov dword [rcx + 0xd8], ebx
nop dword [rax]
cmp edx, 1
jne 0x40ccb7
cmp byte [r14 + 0xb1], 0
je 0x40ccb7
mov qword [r14 + 0x10], 0xfffffffffffffade
add rsp, 0x78
pop rbp
ret
mov r10, qword [rdx + 0x50]
mov r11, qword [r10 + 0x38]
bsf r12, r11
mov r13d, 0x40
cmove r12, r13
cmp r12, 0x40
jge 0x40cd4c
movzx r13d, word [r10 + 0x30]
lea r15d, [r13 + r12]
movzx esi, word [r10 + 0x32]
cmp si, r15w
jbe 0x40cd4c
lea r13d, [r13 + r12]
lea r13d, [r13 + 1]
test r13w, 0x3f
jne 0x40cd0e
nop
cmp si, r13w
je 0x40cd0e
mov rsi, rcx
xor r11d, r11d
jmp 0x40cd52
inc r12
mov rsi, rcx
mov rcx, r12
shr r11, cl
movzx r15d, r15w
cmp rcx, 0x40
sbb r12, r12
and r11, r12
mov qword [r10 + 0x38], r11
mov word [r10 + 0x30], r13w
movzx r11d, word [r10 + 0x60]
inc r11d
mov word [r10 + 0x60], r11w
mov r11, qword [r10 + 0x68]
imul r11, r15
add r11, qword [r10 + 0x18]
jmp 0x40cd52
mov rsi, rcx
xor r11d, r11d
test r11, r11
je 0x40cd5b
xor ecx, ecx
jmp 0x40cd93
mov rax, rdx
mov ebx, 5
call fcn.0040c940
mov rdx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
mov r8, qword [rsp + 0x90]
movzx r9d, byte [rsp + 0x2d]
mov r11, rax
mov r10, rbx
mov rax, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x88]
movups xmmword [r11], xmm15
cmp qword [rdx + 0x18], rbx
ja 0x40cda4
cmp qword [rdx + 0x10], 0
jne 0x40cdb1
mov r12, r11
mov qword [rdx + 0x10], r11
mov qword [rdx + 0x18], rbx
jmp 0x40cdb4
mov r12, r11
mov edi, 0x10
xor r11d, r11d
nop dword [rax]
jmp 0x40d01f
test r9b, r9b
je 0x40cdcf
xor r10d, r10d
jmp 0x40cdda
cmp rbx, 0x200
seta r10b
test r10b, r10b
je 0x40cde5
lea r11, [rbx + 8]
jmp 0x40cde8
mov r11, rbx
cmp r11, 0x3f8
ja 0x40ce1b
add r11, 7
shr r11, 3
nop dword [rax]
cmp r11, 0x81
jae 0x40d2df
lea r12, [0x00873320]
movzx r11d, byte [r12 + r11]
jmp 0x40ce40
add r11, 0xfffffffffffffc7f
shr r11, 7
cmp r11, 0xf9
jae 0x40d2d2
lea r12, str._______________________....______0001123333333333444444444455666677777888888888889999999999::::::___________________________________________________________________________AAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
movzx r11d, byte [r12 + r11]
nop
cmp r11, 0x44
jae 0x40d2c5
mov r12d, r11d
shl r11d, 1
movzx r13d, r9b
or r11d, r13d
movzx r13d, r11b
lea r15, [0x008733c0]
movzx r12d, word [r15 + r12*2]
nop
cmp r13, 0x88
jae 0x40d2b8
mov r13, qword [rdx + r13*8 + 0x28]
mov r15, qword [r13 + 0x38]
bsf rsi, r15
mov rdi, r8
mov r8d, 0x40
cmove rsi, r8
cmp rsi, 0x40
jge 0x40cf21
movzx r8d, word [r13 + 0x30]
lea eax, [r8 + rsi]
movzx ecx, word [r13 + 0x32]
cmp cx, ax
jbe 0x40cf17
lea r8d, [r8 + rsi]
lea r8d, [r8 + 1]
test r8w, 0x3f
jne 0x40ced5
nop dword [rax]
cmp cx, r8w
je 0x40ced5
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x50]
xor r8d, r8d
jmp 0x40cf24
lea rcx, [rsi + 1]
shr r15, cl
movzx eax, ax
cmp rcx, 0x40
sbb rcx, rcx
and r15, rcx
mov qword [r13 + 0x38], r15
mov word [r13 + 0x30], r8w
movzx r8d, word [r13 + 0x60]
inc r8d
mov word [r13 + 0x60], r8w
mov r8, qword [r13 + 0x68]
imul r8, rax
add r8, qword [r13 + 0x18]
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x50]
jmp 0x40cf24
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x50]
xor r8d, r8d
mov byte [rsp + 0x2e], r10b
mov qword [rsp + 0x48], r12
test r8, r8
je 0x40cf37
xor esi, esi
jmp 0x40cf7d
mov rax, rdx
mov ebx, r11d
nop dword [rax]
call fcn.0040c940
mov rdx, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x90]
movzx r9d, byte [rsp + 0x2d]
movzx r10d, byte [rsp + 0x2e]
mov r12, qword [rsp + 0x48]
mov r8, rax
mov r13, rbx
mov esi, ecx
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x88]
movzx r11d, byte [rsp + 0x98]
test r11b, r11b
je 0x40cff3
cmp byte [r13 + 0x64], 0
jne 0x40cf97
test r10b, r10b
jmp 0x40cff6
mov qword [rsp + 0x70], r8
mov byte [rsp + 0x2c], sil
mov qword [rsp + 0x30], r13
mov rax, r8
mov rbx, r12
call fcn.004608a0
movzx ecx, byte [rsp + 0x2e]
test cl, cl
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x88]
movzx esi, byte [rsp + 0x2c]
mov rdi, qword [rsp + 0x90]
mov r8, qword [rsp + 0x70]
movzx r9d, byte [rsp + 0x2d]
mov r12, qword [rsp + 0x48]
mov r13, qword [rsp + 0x30]
jmp 0x40cff6
test r10b, r10b
je 0x40d003
nop
add r12, 0xfffffffffffffff8
lea r10, [r8 + 8]
jmp 0x40d009
mov r10, r8
xor r8d, r8d
mov r11, r8
mov ecx, esi
mov rsi, qword [rsp + 0x50]
mov r8, rdi
mov rdi, r12
mov r12, r10
mov r10, r13
xor r13d, r13d
jmp 0x40d0f3
mov rax, rdx
mov ecx, r9d
call fcn.00415780
mov word [rax + 0x30], 1
mov word [rax + 0x60], 1
mov rdx, qword [rax + 0x18]
mov rbx, qword [rax + 0x68]
movzx esi, byte [rsp + 0x98]
test sil, sil
je 0x40d0a2
cmp byte [rax + 0x64], 0
je 0x40d096
movzx r8d, byte [rsp + 0x2d]
nop
test r8b, r8b
jne 0x40d091
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x58], rdx
mov rax, rdx
call fcn.004608a0
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x48]
movzx r8d, byte [rsp + 0x2d]
mov ecx, r8d
jmp 0x40d0aa
movzx ecx, byte [rsp + 0x2d]
xor r8d, r8d
nop
jmp 0x40d0aa
movzx ecx, byte [rsp + 0x2d]
xor r8d, r8d
test cl, cl
je 0x40d0b3
xor r9d, r9d
jmp 0x40d0ba
lea r9, [rax + 0x98]
mov rsi, qword [rsp + 0x50]
mov r10, rax
mov rdi, rbx
mov r13d, r8d
mov r11, r9
mov ecx, 1
mov r12, rdx
mov rax, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x88]
mov r8, qword [rsp + 0x90]
movzx r9d, byte [rsp + 0x2d]
mov qword [rsp + 0x58], r12
mov byte [rsp + 0x2c], cl
mov qword [rsp + 0x60], r11
mov byte [rsp + 0x2f], r13b
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], r10
test r9b, r9b
jne 0x40d12f
mov rax, r12
mov rcx, r8
mov rdi, r11
mov rsi, r10
call fcn.004151c0
mov rdx, qword [rsp + 0x40]
add qword [rdx + 8], rax
call fcn.0045f9a0
mov rax, qword [rsp + 0x30]
movzx ecx, word [rax + 0x30]
mov word [rax + 0x34], cx
cmp dword [0x0092d504], 0
je 0x40d15f
mov rbx, qword [rsp + 0x58]
mov rcx, rbx
mov rbx, rcx
call fcn.0041f640
mov rax, qword [rsp + 0x30]
mov rdx, qword [0x00871270]
mov rcx, qword [rax + 0x68]
mov qword [rsp + 0x48], rcx
test rdx, rdx
jle 0x40d1a3
cmp rdx, 1
je 0x40d18f
mov rdx, qword [rsp + 0x40]
mov rsi, qword [rdx]
cmp rsi, rcx
jbe 0x40d18f
sub rsi, rcx
mov qword [rdx], rsi
jmp 0x40d1a3
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
call fcn.0040d560
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
mov dword [rdx + 0xc0], 0
mov esi, dword [rdx + 0xd8]
lea edi, [rsi - 1]
nop
mov dword [rdx + 0xd8], edi
cmp esi, 1
jne 0x40d1d9
cmp byte [r14 + 0xb1], 0
je 0x40d1d9
mov qword [r14 + 0x10], 0xfffffffffffffade
movzx edx, byte [rsp + 0x2f]
nop
test dl, dl
je 0x40d213
movzx edx, byte [rsp + 0x2d]
test dl, dl
je 0x40d2a7
mov rdx, qword [rsp + 0x60]
test rdx, rdx
jne 0x40d296
mov rax, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x58]
call fcn.0040d3e0
mov rcx, qword [rsp + 0x48]
cmp byte [0x0092dd78], 0
je 0x40d23c
cmp byte [0x0092da80], 0
je 0x40d23c
mov rdx, qword [0x0092da88]
cmp qword [r14 + 0x98], rdx
jne 0x40d23c
add qword [0x0092da98], rcx
mov rdx, qword [rsp + 0x68]
test rdx, rdx
je 0x40d258
mov rsi, qword [rsp + 0x88]
sub rcx, rsi
sub qword [rdx + 0x1a0], rcx
movzx edx, byte [rsp + 0x2c]
nop dword [rax]
test dl, dl
je 0x40d27e
xor eax, eax
xor ebx, ebx
xor ecx, ecx
call fcn.004197a0
test al, al
je 0x40d27e
xor eax, eax
xor ebx, ebx
xor ecx, ecx
call fcn.004198a0
mov rax, qword [rsp + 0x58]
add rsp, 0x78
pop rbp
ret
lea rax, [0x0092d4c0]
add rsp, 0x78
pop rbp
ret
lea rax, [0x006d6c02]
mov ebx, 0x3b
call fcn.004341e0
lea rax, [0x006d4ebe]
mov ebx, 0x31
call fcn.004341e0
mov rax, r13
mov ecx, 0x88
call fcn.004601e0
mov eax, r11d
mov ecx, 0x44
call fcn.004601e0
mov rax, r11
mov ecx, 0xf9
call fcn.00460200
mov rax, r11
mov ecx, 0x81
call fcn.00460200
lea rax, [0x006d5a21]
mov ebx, 0x34
call fcn.004341e0
lea rax, [0x006c9240]
mov ebx, 0x14
call fcn.004341e0
lea rax, [0x006c726b]
mov ebx, 0xf
call fcn.004341e0
lea rax, [0x006d5394]
mov ebx, 0x32
call fcn.004341e0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov byte [rsp + 0x18], cl
nop
call fcn.0045df00
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
movzx ecx, byte [rsp + 0x18]
jmp fcn.0040caa0