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

Disassembly:
lea r12, [rsp - 0x28]
cmp r12, qword [r14 + 0x10]
jbe 0x40ca10
sub rsp, 0xa8
mov qword [rsp + 0xa0], rbp
lea rbp, [rsp + 0xa0]
mov qword [rsp + 0xb0], rax
test byte [rax], al
nop
lea rdx, [rax + 0x103b8]
add rbx, 0x3fffff
and rbx, 0xffffffffffc00000
mov qword [rsp + 0x30], rbx
mov ecx, 0x400000
lea rdi, [0x00914ad8]
mov rax, rdx
call fcn.0040dec0
nop
test rax, rax
jne 0x40c397
mov rdx, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x30]
jmp 0x40c6e9
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x70], rcx
mov rdx, rax
movabs rsi, 0x800000000000
add rsi, rax
shr rsi, 0x16
mov rax, qword [rsp + 0xb0]
jmp 0x40c3f1
mov r8, qword [rsp + 0x68]
mov qword [rdx + rcx*8], r8
mov r9, qword [rsp + 0x88]
xchg qword [r9], rax
inc r8
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x70]
mov rax, rsi
mov rsi, r8
mov r8, rdx
add rdx, rcx
movabs r9, 0x7fffffffffff
add rdx, r9
shr rdx, 0x16
cmp rsi, rdx
ja 0x40c636
mov rdx, rsi
shr rsi, 0x14
nop dword [rax + rax]
cmp rsi, 0x40
jae 0x40c6a7
mov qword [rsp + 0x68], rdx
mov r10, qword [rax + rsi*8 + 0x10190]
lea rsi, [rax + rsi*8]
lea rsi, [rsi + 0x10190]
test r10, r10
jne 0x40c4dc
mov qword [rsp + 0x90], rsi
nop
mov rax, qword [sym.imp.kernel32.dll_VirtualAlloc]
mov qword [rsp], rax
mov qword [rsp + 8], 0
mov qword [rsp + 0x10], 0x800000
mov qword [rsp + 0x18], 0x3000
mov qword [rsp + 0x20], 4
call fcn.00434d80
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x40c696
mov rdx, qword [rsp + 0x90]
mov r10, rax
xchg qword [rdx], rax
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x98]
movabs r9, 0x7fffffffffff
test byte [r10], al
and edx, 0xfffff
mov r11, qword [r10 + rdx*8]
lea rdx, [r10 + rdx*8]
test r11, r11
jne 0x40c685
mov qword [rsp + 0x88], rdx
lea rdx, [rax + 0x10390]
mov ebx, 0x210d0
mov ecx, 8
lea rdi, [0x009191b8]
mov rax, rdx
call fcn.0040dec0
nop
test rax, rax
jne 0x40c549
mov eax, 0x210d0
mov ebx, 8
lea rcx, [0x009191b8]
call fcn.0040dae0
nop dword [rax + rax]
test rax, rax
je 0x40c670
mov rsi, qword [rsp + 0xb0]
mov r8, qword [rsi + 0x103e8]
nop dword [rax + rax]
cmp qword [rsi + 0x103e0], r8
jne 0x40c606
mov qword [rsp + 0x40], rax
shl r8, 4
test r8, r8
jne 0x40c582
mov r8, qword [0x00913cc8]
mov qword [rsp + 0x38], r8
mov rax, r8
mov ebx, 8
lea rcx, [0x009191b8]
call fcn.0040dae0
nop dword [rax + rax]
test rax, rax
je 0x40c65f
mov rsi, qword [rsp + 0xb0]
mov rbx, qword [rsi + 0x103d8]
mov r8, qword [rsi + 0x103e0]
mov qword [rsi + 0x103d8], rax
mov r9, qword [rsp + 0x38]
shr r9, 3
mov qword [rsi + 0x103e8], r9
mov rcx, qword [rsi + 0x103e0]
cmp rcx, r8
cmovg rcx, r8
mov rax, qword [rsi + 0x103d8]
cmp rax, rbx
je 0x40c601
shl rcx, 3
call fcn.00465a20
mov rsi, qword [rsp + 0xb0]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsi + 0x103e0]
mov rdx, qword [rsi + 0x103e8]
lea r8, [rcx + 1]
cmp rdx, r8
jb 0x40c657
mov qword [rsi + 0x103e0], r8
mov rdx, qword [rsi + 0x103d8]
cmp rcx, r8
jb 0x40c3c7
jmp 0x40c64c
mov rax, r8
mov rbx, rcx
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
mov rax, rcx
mov rcx, r8
call fcn.00465080
mov rcx, r8
call fcn.00465100
lea rax, [0x006c23e8]
mov ebx, 0x22
call fcn.00437c00
lea rax, [0x006c7041]
mov ebx, 0x2c
nop dword [rax]
call fcn.00437c00
lea rax, [0x006bca6e]
mov ebx, 0x19
call fcn.00437c00
lea rax, [0x006c4a59]
mov ebx, 0x27
call fcn.00437c00
mov rax, rsi
mov ecx, 0x40
call fcn.004650a0
mov r8, qword [rsi + 0x10]
mov qword [rdx + 0x103b0], r8
nop
mov r8, qword [rdx + 0x16bd8]
sub r8, qword [rdx + 0x16ba8]
mov qword [rdx + 0x16bd8], r8
mov r8, qword [rdx + 0x16bc0]
mov qword [rsi], r8
mov qword [rdx + 0x16bc0], rsi
mov rax, r11
mov rsi, qword [rdx + 0x103b0]
test rsi, rsi
je 0x40c7e3
mov qword [rsp + 0x60], rsi
mov rax, qword [rsi]
movzx r8d, byte [rsi + 8]
mov r9, rax
sub rax, rbx
test r8, r8
cmovne r9, rax
lea r8, [rbx + r9]
cmp r9, r8
jbe 0x40c72a
movabs r10, 0x7fffffffffff
xor eax, eax
jmp 0x40c785
movabs r10, 0x7fffffffffff
lea r11, [r10 + r8]
shr r11, 0x16
nop dword [rax]
cmp r11, 0x4000000
jb 0x40c74d
xor eax, eax
jmp 0x40c785
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x70], r8
mov rax, r9
call fcn.00418660
mov rdx, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x60]
mov r8, qword [rsp + 0x70]
mov r9, qword [rsp + 0x50]
movabs r10, 0x7fffffffffff
mov r11, rax
cmp rax, r9
je 0x40c7cf
test r11, r11
je 0x40c6b4
mov qword [rsp + 0x98], r11
mov rax, r11
call fcn.00418520
mov rdx, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x60]
movabs r10, 0x7fffffffffff
mov r11, qword [rsp + 0x98]
jmp 0x40c6b4
movzx r12d, byte [rsi + 8]
test r12, r12
cmovne r8, r9
mov qword [rsi], r8
mov rax, rbx
jmp 0x40c7f5
movabs r10, 0x7fffffffffff
mov r11, rax
mov rax, rbx
xor ebx, ebx
test rbx, rbx
jne 0x40c8b1
mov rbx, rax
mov ecx, 0x400000
xor eax, eax
call fcn.0040ca40
test rax, rax
je 0x40c954
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x70], rbx
mov rax, qword [rsp + 0xb0]
lea rcx, [rax + 0x16ba8]
mov qword [rsp + 0x80], rcx
mov rax, rcx
nop dword [rax]
call fcn.00419780
mov rcx, qword [rsp + 0x98]
mov qword [rax], rcx
mov byte [rax + 8], 1
mov rcx, qword [0x008e6190]
mov qword [rax + 0x10], rcx
mov qword [0x008e6190], rax
mov rax, qword [rsp + 0x80]
call fcn.00419780
mov r11, qword [rsp + 0x98]
mov rcx, r11
mov rbx, qword [rsp + 0x70]
lea rdx, [rbx + r11]
mov qword [rax], rdx
mov rdx, qword [0x008e6190]
mov qword [rax + 0x10], rdx
mov qword [0x008e6190], rax
mov rdx, qword [rsp + 0xb0]
movabs r10, 0x7fffffffffff
mov r11, rcx
mov rsi, r11
lea r8, [rbx + r11]
cmp r11, r8
jbe 0x40c8d6
movabs r9, 0x800000000000
mov r12d, 0x1c
lea r13, [0x006bec78]
jmp 0x40c932
movabs r9, 0x800000000000
lea r12, [r9 + r11]
shr r12, 0x16
cmp r12, 0x4000000
jb 0x40c902
mov r12d, 0x21
lea r13, [0x006c1336]
nop
jmp 0x40c932
lea r12, [r10 + r8]
shr r12, 0x16
cmp r12, 0x4000000
mov r12d, 0
mov r13d, 0x20
cmovae r12, r13
mov r13d, 0
lea r15, [0x006c0bcd]
cmovae r13, r15
test r12, r12
jne 0x40c979
nop word [rax + rax]
test r11, 0x3fffff
jne 0x40c968
mov rax, rsi
mov rcx, rbx
jmp 0x40c39c
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
lea rax, [0x006c187f]
mov ebx, 0x21
call fcn.00437c00
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x70], r8
mov qword [rsp + 0x78], r13
mov qword [rsp + 0x58], r12
call fcn.004394c0
lea rax, [0x006c1a2c]
mov ebx, 0x21
nop
call fcn.00439dc0
mov rax, qword [rsp + 0x48]
call fcn.00439c20
lea rax, [0x006b4527]
mov ebx, 2
nop dword [rax + rax]
call fcn.00439dc0
mov rax, qword [rsp + 0x70]
call fcn.00439c20
lea rax, [0x006bff9e]
mov ebx, 0x1f
nop dword [rax + rax]
call fcn.00439dc0
mov rax, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x58]
call fcn.00439dc0
call fcn.00439720
call fcn.00439540
lea rax, [0x006c7b04]
mov ebx, 0x2e
call fcn.00437c00
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.004629a0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.0040c320