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

Disassembly:
lea r12, [rsp - 0x20]
cmp r12, qword [r14 + 0x10]
jbe 0x40c526
sub rsp, 0xa0
mov qword [rsp + 0x98], rbp
lea rbp, [rsp + 0x98]
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x68], rbx
test byte [rax], al
call fcn.0040bae0
mov rax, qword [rsp + 0x68]
mov ebx, 0x400000
call fcn.0044dbc0
mov qword [rsp + 0x68], rax
mov rcx, qword [rsp + 0xa8]
lea rdx, [rcx + 0x103b8]
mov rbx, rax
lea rdi, [0x0083c730]
mov rax, rdx
mov ecx, 0x400000
call fcn.0040d8c0
test rax, rax
jne 0x40bf6b
mov rdx, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x68]
jmp 0x40c226
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x68], rcx
nop dword [rax]
call fcn.00426aa0
jmp 0x40bfcb
mov rcx, qword [rdx + 0x103e0]
lea rbx, [rcx + 1]
mov qword [rdx + 0x103e0], rbx
shl rcx, 3
add rcx, qword [rdx + 0x103d8]
mov rax, qword [rsp + 0x28]
mov qword [rcx], rax
call fcn.00426ae0
mov rcx, qword [rsp + 0x70]
lea rcx, [rcx + rax*8]
mov rdx, qword [rsp + 0x30]
xchg qword [rcx], rdx
mov rcx, qword [rsp + 0x28]
lea rax, [rcx + 1]
mov qword [rsp + 0x28], rax
mov rcx, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x68]
lea rcx, [rbx + rcx]
lea rcx, [rcx - 1]
mov rax, rcx
call fcn.00426aa0
mov rcx, qword [rsp + 0x28]
cmp rax, rcx
jb 0x40c18b
mov rax, rcx
nop
call fcn.00426ac0
mov rcx, qword [rsp + 0xa8]
mov rdx, qword [rcx + rax*8 + 0x10190]
test rdx, rdx
jne 0x40c06a
mov eax, 0x800000
mov ebx, 8
xor ecx, ecx
call fcn.0040d4c0
test rax, rax
je 0x40c1db
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x28]
call fcn.00426ac0
mov rcx, qword [rsp + 0xa8]
lea rdx, [rcx + rax*8]
lea rdx, [rdx + 0x10190]
mov rbx, qword [rsp + 0x88]
mov rsi, rbx
xchg qword [rdx], rbx
mov rdx, rsi
mov qword [rsp + 0x70], rdx
mov rax, qword [rsp + 0x28]
call fcn.00426ae0
mov rcx, qword [rsp + 0x70]
test byte [rcx], al
mov rdx, qword [rcx + rax*8]
test rdx, rdx
jne 0x40c1ca
mov rdx, qword [rsp + 0xa8]
lea rax, [rdx + 0x10390]
mov ebx, 0x210d0
mov ecx, 8
lea rdi, [0x0083c798]
call fcn.0040d8c0
test rax, rax
jne 0x40c0d6
mov eax, 0x210d0
mov ebx, 8
lea rcx, [0x0083c798]
call fcn.0040d4c0
test rax, rax
je 0x40c1b9
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0xa8]
mov rsi, qword [rdx + 0x103e8]
cmp qword [rdx + 0x103e0], rsi
jne 0x40bf87
shl rsi, 4
nop dword [rax + rax]
test rsi, rsi
jne 0x40c10c
mov rsi, qword [0x00838160]
mov qword [rsp + 0x20], rsi
mov rax, rsi
mov ebx, 8
lea rcx, [0x0083c798]
call fcn.0040d4c0
test rax, rax
je 0x40c1a8
mov rdx, qword [rsp + 0xa8]
mov rbx, qword [rdx + 0x103d8]
mov rsi, qword [rdx + 0x103e0]
mov qword [rdx + 0x103d8], rax
mov rdi, qword [rsp + 0x20]
shr rdi, 3
mov qword [rdx + 0x103e8], rdi
mov rcx, qword [rdx + 0x103e0]
cmp rcx, rsi
cmovg rcx, rsi
mov rax, qword [rdx + 0x103d8]
cmp rax, rbx
je 0x40bf87
shl rcx, 3
call fcn.00461f80
mov rdx, qword [rsp + 0xa8]
jmp 0x40bf87
mov rax, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x98]
add rsp, 0xa0
ret
lea rax, [0x00651444]
mov ebx, 0x22
call fcn.00436d80
lea rax, [0x00654a29]
mov ebx, 0x2c
call fcn.00436d80
lea rax, [0x0064cad0]
mov ebx, 0x19
call fcn.00436d80
lea rax, [0x006530be]
mov ebx, 0x27
call fcn.00436d80
mov rcx, qword [rsi + 0x10]
mov qword [rdx + 0x103b0], rcx
lea rax, [rdx + 0x16ba8]
mov rbx, rsi
call fcn.0041a580
mov rcx, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x90]
mov rdx, rcx
mov rbx, qword [rsp + 0x68]
mov rax, rsi
mov rsi, qword [rdx + 0x103b0]
test rsi, rsi
je 0x40c2f9
mov qword [rsp + 0x60], rsi
mov rdi, qword [rsi]
movzx r8d, byte [rsi + 8]
mov r9, rdi
sub rdi, rbx
test r8, r8
cmovne r9, rdi
lea rdi, [r9 + rbx]
cmp r9, rdi
jbe 0x40c25d
xor eax, eax
jmp 0x40c2ad
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x58], rdi
lea rax, [rbx + r9]
lea rax, [rax - 1]
call fcn.00426aa0
cmp rax, 0x4000000
jb 0x40c282
xor eax, eax
nop
jmp 0x40c291
mov rax, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x68]
call fcn.004194c0
mov rdx, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x58]
mov r9, qword [rsp + 0x40]
mov r8, rax
cmp rax, r9
je 0x40c2e5
mov qword [rsp + 0x90], r8
nop dword [rax]
test r8, r8
je 0x40c1ec
mov rax, r8
xor ecx, ecx
call fcn.00419380
mov rdx, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0x60]
jmp 0x40c1ec
movzx r10d, byte [rsi + 8]
test r10, r10
cmovne rdi, r9
mov qword [rsi], rdi
mov rax, rbx
jmp 0x40c301
mov r8, rax
mov rax, rbx
xor ebx, ebx
test rbx, rbx
jne 0x40c3bd
mov rbx, rax
mov ecx, 0x400000
xor eax, eax
call fcn.0040c560
test rax, rax
jne 0x40c332
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0x98]
add rsp, 0xa0
ret
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x68], rbx
mov rcx, qword [rsp + 0xa8]
lea rax, [rcx + 0x16ba8]
mov qword [rsp + 0x80], rax
call fcn.0041a440
mov rcx, qword [rsp + 0x90]
mov qword [rax], rcx
mov byte [rax + 8], 1
mov rcx, qword [0x0080a5f0]
mov qword [rax + 0x10], rcx
mov qword [0x0080a5f0], rax
mov rax, qword [rsp + 0x80]
call fcn.0041a440
mov r8, qword [rsp + 0x90]
mov rcx, r8
mov rbx, qword [rsp + 0x68]
lea rdx, [rbx + r8]
mov qword [rax], rdx
mov rdx, qword [0x0080a5f0]
mov qword [rax + 0x10], rdx
mov qword [0x0080a5f0], rax
mov rdx, qword [rsp + 0xa8]
mov r8, rcx
mov rax, r8
mov qword [rsp + 0x38], rax
lea rcx, [rbx + rax]
mov qword [rsp + 0x68], rcx
cmp rax, rcx
jbe 0x40c3e5
mov esi, 0x1c
lea rdi, [0x0064e71a]
nop
jmp 0x40c464
mov qword [rsp + 0x88], r8
mov qword [rsp + 0x50], rbx
call fcn.00426aa0
cmp rax, 0x4000000
jb 0x40c40d
mov eax, 0x21
lea rcx, [0x0065090f]
jmp 0x40c43f
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x50]
lea rax, [rdx + rcx]
lea rax, [rax - 1]
nop
call fcn.00426aa0
cmp rax, 0x4000000
jb 0x40c43b
mov eax, 0x20
lea rcx, [0x00650281]
jmp 0x40c43f
xor eax, eax
xor ecx, ecx
mov rdx, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x88]
mov rsi, rax
mov rdi, rcx
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x68]
test rsi, rsi
jne 0x40c496
mov rcx, r8
test r8, 0x3fffff
jne 0x40c485
mov rax, rcx
mov rcx, rbx
nop dword [rax + rax]
jmp 0x40bf70
lea rax, [0x00650b82]
mov ebx, 0x21
call fcn.00436d80
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x78], rdi
call fcn.00438460
lea rax, [0x00650d2f]
mov ebx, 0x21
call fcn.00438d00
mov rax, qword [rsp + 0x38]
nop dword [rax + rax]
call fcn.00438b80
lea rax, [0x006443d3]
mov ebx, 2
call fcn.00438d00
mov rax, qword [rsp + 0x68]
nop dword [rax + rax]
call fcn.00438b80
lea rax, [0x0064f955]
mov ebx, 0x1f
call fcn.00438d00
mov rax, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x48]
call fcn.00438d00
call fcn.004386a0
call fcn.004384e0
lea rax, [0x0065515e]
mov ebx, 0x2e
nop dword [rax + rax]
call fcn.00436d80
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.0045f280
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
nop
jmp fcn.0040bee0