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

Disassembly:
lea r12, [rsp - 0x28]
cmp r12, qword [r14 + 0x10]
jbe 0x40c730
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, [0x0080ddf8]
mov rax, rdx
call fcn.0040dbe0
nop
test rax, rax
jne 0x40c0b7
mov rdx, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x30]
jmp 0x40c409
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 0x40c111
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 0x40c356
mov rdx, rsi
shr rsi, 0x14
nop dword [rax + rax]
cmp rsi, 0x40
jae 0x40c3c7
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 0x40c1fc
mov qword [rsp + 0x90], rsi
nop
mov rax, qword [0x00792270]
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.00434300
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x40c3b6
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 0x40c3a5
mov qword [rsp + 0x88], rdx
lea rdx, [rax + 0x10390]
mov ebx, 0x210d0
mov ecx, 8
lea rdi, [0x008124d8]
mov rax, rdx
call fcn.0040dbe0
nop
test rax, rax
jne 0x40c269
mov eax, 0x210d0
mov ebx, 8
lea rcx, [0x008124d8]
call fcn.0040d800
nop dword [rax + rax]
test rax, rax
je 0x40c390
mov rsi, qword [rsp + 0xb0]
mov r8, qword [rsi + 0x103e8]
nop dword [rax + rax]
cmp qword [rsi + 0x103e0], r8
jne 0x40c326
mov qword [rsp + 0x40], rax
shl r8, 4
test r8, r8
jne 0x40c2a2
mov r8, qword [0x0080d150]
mov qword [rsp + 0x38], r8
mov rax, r8
mov ebx, 8
lea rcx, [0x008124d8]
call fcn.0040d800
nop dword [rax + rax]
test rax, rax
je 0x40c37f
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 0x40c321
shl rcx, 3
call fcn.00464b00
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 0x40c377
mov qword [rsi + 0x103e0], r8
mov rdx, qword [rsi + 0x103d8]
cmp rcx, r8
jb 0x40c0e7
jmp 0x40c36c
mov rax, r8
mov rbx, rcx
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
mov rax, rcx
mov rcx, r8
call fcn.00464160
mov rcx, r8
call fcn.004641e0
lea rax, [0x0062d893]
mov ebx, 0x22
call fcn.00437180
lea rax, [0x00631c0f]
mov ebx, 0x2c
nop dword [rax]
call fcn.00437180
lea rax, [0x00628c58]
mov ebx, 0x19
call fcn.00437180
lea rax, [0x0062fb0e]
mov ebx, 0x27
call fcn.00437180
mov rax, rsi
mov ecx, 0x40
call fcn.00464180
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 0x40c503
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 0x40c44a
movabs r10, 0x7fffffffffff
xor eax, eax
jmp 0x40c4a5
movabs r10, 0x7fffffffffff
lea r11, [r10 + r8]
shr r11, 0x16
nop dword [rax]
cmp r11, 0x4000000
jb 0x40c46d
xor eax, eax
jmp 0x40c4a5
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x70], r8
mov rax, r9
call fcn.00417be0
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 0x40c4ef
test r11, r11
je 0x40c3d4
mov qword [rsp + 0x98], r11
mov rax, r11
call fcn.00417aa0
mov rdx, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x60]
movabs r10, 0x7fffffffffff
mov r11, qword [rsp + 0x98]
jmp 0x40c3d4
movzx r12d, byte [rsi + 8]
test r12, r12
cmovne r8, r9
mov qword [rsi], r8
mov rax, rbx
jmp 0x40c515
movabs r10, 0x7fffffffffff
mov r11, rax
mov rax, rbx
xor ebx, ebx
test rbx, rbx
jne 0x40c5d1
mov rbx, rax
mov ecx, 0x400000
xor eax, eax
call fcn.0040c760
test rax, rax
je 0x40c674
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.00418d00
mov rcx, qword [rsp + 0x98]
mov qword [rax], rcx
mov byte [rax + 8], 1
mov rcx, qword [0x007df630]
mov qword [rax + 0x10], rcx
mov qword [0x007df630], rax
mov rax, qword [rsp + 0x80]
call fcn.00418d00
mov r11, qword [rsp + 0x98]
mov rcx, r11
mov rbx, qword [rsp + 0x70]
lea rdx, [rbx + r11]
mov qword [rax], rdx
mov rdx, qword [0x007df630]
mov qword [rax + 0x10], rdx
mov qword [0x007df630], rax
mov rdx, qword [rsp + 0xb0]
movabs r10, 0x7fffffffffff
mov r11, rcx
mov rsi, r11
lea r8, [rbx + r11]
cmp r11, r8
jbe 0x40c5f6
movabs r9, 0x800000000000
mov r12d, 0x1c
lea r13, [0x0062a8ec]
jmp 0x40c652
movabs r9, 0x800000000000
lea r12, [r9 + r11]
shr r12, 0x16
cmp r12, 0x4000000
jb 0x40c622
mov r12d, 0x21
lea r13, [0x0062ca5a]
nop
jmp 0x40c652
lea r12, [r10 + r8]
shr r12, 0x16
cmp r12, 0x4000000
mov r12d, 0
mov r13d, 0x20
cmovae r12, r13
mov r13d, 0
lea r15, [0x0062c391]
cmovae r13, r15
test r12, r12
jne 0x40c699
nop word [rax + rax]
test r11, 0x3fffff
jne 0x40c688
mov rax, rsi
mov rcx, rbx
jmp 0x40c0bc
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
lea rax, [0x0062ce7a]
mov ebx, 0x21
call fcn.00437180
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x70], r8
mov qword [rsp + 0x78], r13
mov qword [rsp + 0x58], r12
call fcn.00438a40
lea rax, [0x0062cfc4]
mov ebx, 0x21
nop
call fcn.00439340
mov rax, qword [rsp + 0x48]
call fcn.004391a0
lea rax, [0x00621bc0]
mov ebx, 2
nop dword [rax + rax]
call fcn.00439340
mov rax, qword [rsp + 0x70]
call fcn.004391a0
lea rax, [0x0062b8f8]
mov ebx, 0x1f
nop dword [rax + rax]
call fcn.00439340
mov rax, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x58]
call fcn.00439340
call fcn.00438ca0
call fcn.00438ac0
lea rax, [0x00632596]
mov ebx, 0x2e
call fcn.00437180
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00461a80
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.0040c040