Function at 0x140004604
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 0x18], rbx
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov r15d, dword [rsp + 0xb0]
xor ebp, ebp
mov rsi, qword [rsp + 0xd0]
mov r12, r9
mov rax, qword [rsp + 0xe0]
mov r13, r8
mov edi, dword [rsp + 0xb8]
mov r14d, ebp
mov r10d, r15d
mov word [rsi], bp
mov byte [rax], bpl
test r15d, r15d
je 0x1400046ba
sub r10d, 1
je 0x1400046b1
sub r10d, 1
je 0x140004674
cmp r10d, 1
jne 0x1400046c4
mov ecx, edi
call fcn.140001f50
jmp 0x1400046c1
test edi, edi
js 0x1400046a8
mov rax, qword [rsp + 0xa8]
mov edi, 0x8007029c
mov dword [rsp + 0x38], edi
mov dword [rsp + 0x30], 2
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x20], rax
call fcn.140004cb4
mov ecx, edi
call fcn.140004954
jmp 0x1400046c1
mov ecx, edi
call fcn.140004970
jmp 0x1400046c1
mov ecx, edi
call fcn.140004938
mov r14d, eax
mov rbx, qword [rsp + 0xf0]
mov eax, 1
mov dword [rbx], r15d
mov dword [rbx + 4], edi
lock xadd dword [0x140009820], eax
inc eax
mov dword [rbx + 8], eax
mov rax, qword [rsp + 0xc0]
test rax, rax
je 0x1400046f6
cmp word [rax], bp
jne 0x1400046f9
mov rax, rbp
mov qword [rbx + 0x10], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [rbx + 0x18], eax
mov eax, dword [rsp + 0x88]
mov dword [rbx + 0x38], eax
mov rax, qword [rsp + 0xa0]
mov qword [rbx + 0x20], rax
mov rax, qword [rsp + 0xa8]
mov qword [rbx + 0x80], rax
mov rax, qword [rsp + 0x80]
mov qword [rbx + 0x88], rax
xor eax, eax
mov qword [rbx + 0x30], r13
mov dword [rbx + 0x3c], r14d
mov qword [rbx + 0x28], r12
mov qword [rbx + 0x40], rbp
mov qword [rbx + 0x48], rax
mov qword [rbx + 0x50], rax
mov qword [rbx + 0x58], rax
mov qword [rbx + 0x60], rax
mov qword [rbx + 0x68], rax
mov qword [rbx + 0x70], rax
mov rax, qword [0x140009720]
test rax, rax
je 0x140004779
call qword [0x1400064c0]
mov rbp, rax
mov rax, qword [0x140009710]
mov qword [rbx + 0x78], rbp
test rax, rax
je 0x1400047a0
mov rdx, qword [rsp + 0xe0]
mov r8d, 0x400
mov rcx, rbx
call qword [0x1400064c0]
mov rax, qword [0x140009928]
test rax, rax
je 0x1400047b5
mov rcx, rbx
call qword [0x1400064c0]
mov rax, qword [0x140009938]
test rax, rax
je 0x1400047ca
mov rcx, rbx
call qword [0x1400064c0]
cmp dword [rbx + 4], 0
jl 0x1400047e1
cmp r15d, 3
jne 0x1400048a9
mov dword [rbx + 4], 0x8000ffff
cmp byte [0x140009908], 0
jne 0x140004830
mov rax, qword [0x140009900]
test rax, rax
je 0x140004801
call qword [0x1400064c0]
movzx eax, al
jmp 0x140004807
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
jne 0x140004830
mov rax, qword [0x140009910]
test rax, rax
je 0x140004876
cmp byte [0x140009919], 0
jne 0x140004876
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call qword [0x1400064c0]
jmp 0x140004876
mov rax, qword [0x140009910]
test rax, rax
je 0x140004857
cmp byte [0x140009919], 0
jne 0x140004857
mov r8d, 0x800
mov rdx, rsi
mov rcx, rbx
call qword [0x1400064c0]
cmp word [rsi], 0
jne 0x14000486d
mov r8, rbx
mov edx, 0x800
mov rcx, rsi
call fcn.140003e40
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp byte [0x140009918], 0
je 0x140004891
mov rax, qword [0x140009718]
test rax, rax
je 0x140004891
call qword [0x1400064c0]
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1400054c8
int3