Function at 0x180006cd0
Capabilities:
Print debug messages

Disassembly:
push rbx
push rbp
push rsi
push r14
sub rsp, 0x38
mov rbp, qword [rcx + 0x40]
mov rbx, rcx
mov eax, dword [rbp + 0xc]
mov r14, qword [rbp + 0x10]
mov esi, dword [rbp + 8]
test eax, eax
je 0x18000704d
cmp r14, 0x1000
jb 0x18000704d
movabs rcx, 0xffff800000000000
test rcx, r14
jne 0x18000704d
test esi, esi
je 0x18000704d
cmp eax, esi
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x30], r15
lea r15d, [rsi - 1]
cmovb r15d, eax
mov eax, dword [rbx + 0x30]
test al, 0x20
je 0x180006e6e
mov r12, qword [rbx + 0x90]
test r12, r12
je 0x180006e6e
mov esi, dword [rbx + 0x84]
add r12, 0x10
add rsi, 0xffffffffffffffe0
mov edi, r15d
mov r15, qword [rbx + 0x98]
mov rdx, r14
mov qword [rsp + 0x70], r13
mov rax, r15
sub rax, r12
mov r13, rsi
cmp rax, rsi
cmovae r15, r12
sub r13, rax
cmp rax, rsi
mov rcx, r15
cmovae r13, rsi
cmp rdi, r13
jae 0x180006dca
mov r8d, edi
call sym.VBoxGINA.dll_nocrt_memcpy
mov r13, qword [rsp + 0x70]
lea rax, [r15 + rdi]
mov byte [rax], 0
mov qword [rbx + 0x98], rax
mov rax, qword [rbx + 0x88]
add rax, rdi
xor esi, esi
mov qword [rbx + 0x88], rax
mov dword [rbp + 0xc], esi
mov byte [r14], sil
jmp 0x18000703e
mov r8, r13
call sym.VBoxGINA.dll_nocrt_memcpy
mov rax, qword [rbx + 0x88]
lea r15, [r14 + r13]
add rax, r13
sub rdi, r13
mov qword [rbx + 0x88], rax
mov qword [rbx + 0x98], r12
cmp rdi, rsi
jb 0x180006e2a
nop word [rax + rax]
mov r8, rsi
mov rdx, r15
mov rcx, r12
call sym.VBoxGINA.dll_nocrt_memcpy
mov rax, qword [rbx + 0x88]
add r15, rsi
add rax, rsi
sub rdi, rsi
mov qword [rbx + 0x88], rax
cmp rdi, rsi
jae 0x180006e00
test rdi, rdi
je 0x180006e4e
mov r8, rdi
mov rdx, r15
mov rcx, r12
call sym.VBoxGINA.dll_nocrt_memcpy
mov rax, qword [rbx + 0x88]
add rax, rdi
mov qword [rbx + 0x88], rax
mov r13, qword [rsp + 0x70]
lea rax, [r12 + rdi]
mov byte [rax], 0
xor esi, esi
mov qword [rbx + 0x98], rax
mov dword [rbp + 0xc], esi
mov byte [r14], sil
jmp 0x18000703e
bt eax, 0x11
jb 0x180006ff3
mov byte [r15 + r14], 0
mov eax, dword [rbx + 0x30]
mov edi, r15d
bt eax, 0x1e
jae 0x180006e96
mov edx, edi
mov rcx, r14
call fcn.180014520
mov eax, dword [rbx + 0x30]
test al, 0x40
je 0x180006eab
xor r8d, r8d
mov rdx, rdi
mov rcx, r14
call fcn.180001410
mov eax, dword [rbx + 0x30]
test al, al
jns 0x180006ec0
mov r8b, 1
mov rdx, rdi
mov rcx, r14
call fcn.180001410
mov eax, dword [rbx + 0x30]
test al, 8
je 0x180006ed2
mov rdx, rdi
mov rcx, r14
call sub.KERNEL32.dll_OutputDebugStringA
mov eax, dword [rbx + 0x30]
and al, 0x21
xor esi, esi
cmp al, 1
jne 0x180006f3a
cmp byte [rbx + 0x10f8], sil
je 0x180006f2b
mov rax, qword [rbx + 0xc0]
mov r9, rdi
mov rdx, qword [rbx + 0xc8]
mov rcx, rax
mov r8, r14
mov qword [rsp + 0x20], rsi
mov rax, qword [rax + 0x28]
call qword [case.0x18001f8e5.0]
mov eax, dword [rbx + 0x28]
bt rax, 9
jae 0x180006f2b
mov rcx, qword [rbx + 0xc0]
mov rdx, qword [rbx + 0xc8]
mov rax, qword [rcx + 0x30]
call qword [case.0x18001f8e5.0]
cmp dword [rbx + 0xf0], esi
je 0x180006f3a
add qword [rbx + 0xe0], rdi
mov eax, dword [rbx + 0x30]
test al, 2
je 0x180006f4f
mov rdx, rdi
mov rcx, r14
call fcn.180014530
mov eax, dword [rbx + 0x30]
test al, 4
je 0x180006f5e
mov rdx, rdi
mov rcx, r14
call fcn.180014580
mov rax, qword [rbx + 0x50]
test rax, rax
je 0x180006fb4
mov rcx, qword [rbp + 0x18]
test rcx, rcx
je 0x180006f78
mov dword [rcx + 4], r15d
mov rax, qword [rbx + 0x50]
mov rdx, rbp
mov rcx, rbx
call qword [case.0x18001f8e5.0]
test al, al
jne 0x180006fb4
sub rbp, qword [rbx + 0x38]
xor edx, edx
movzx ecx, byte [rbx + 0x34]
sar rbp, 5
lea rax, [rbp + 1]
div rcx
mov rbp, rdx
mov byte [rbx + 0x35], bpl
shl rbp, 5
add rbp, qword [rbx + 0x38]
mov qword [rbx + 0x40], rbp
mov r14, qword [rbp + 0x10]
mov rax, qword [rbp + 0x18]
mov dword [rbp + 0xc], esi
test rax, rax
je 0x180006fc3
mov dword [rax + 4], esi
mov byte [r14], sil
cmp dword [rbx + 0xf0], esi
jbe 0x18000703e
test byte [rbx + 0x30], 1
je 0x18000703e
call fcn.180014f50
xor edx, edx
xor r9d, r9d
div dword [rbx + 0xe8]
xor r8d, r8d
mov rcx, rbx
mov edx, eax
call fcn.180007340
jmp 0x18000703e
shr esi, 1
cmp r15d, esi
jbe 0x18000703e
mov rbx, qword [rbx + 0x28]
lea rax, str._r_n_DROP_DROP_DROP__r_n
and ebx, 0x10
mov ecx, esi
mov edi, 0x12
lea rdx, str._n_DROP_DROP_DROP__n
mov r8d, edi
mov r15d, 0x14
cmovne r8d, r15d
test rbx, rbx
cmovne rdx, rax
add rcx, r14
call sym.VBoxGINA.dll_nocrt_memcpy
test rbx, rbx
cmovne edi, r15d
add edi, esi
mov dword [rbp + 0xc], edi
mov r12, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x60]
mov r15, qword [rsp + 0x30]
add rsp, 0x38
pop r14
pop rsi
pop rbp
pop rbx
ret