Function at 0x14003c490
Capabilities:
Print debug messages
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
mov eax, 0x1078
call fcn.140153fd0
sub rsp, rax
movaps xmmword [rsp + 0x1060], xmm6
mov rsi, rcx
mov rax, qword [0x1401e5d38]
xor rax, rsp
mov qword [rsp + 0x1058], rax
lea rax, [0x140196348]
mov qword [rcx], rax
lea rdi, [rcx + 0x18]
lea rdx, [rsp + 0x90]
mov rcx, rdi
call fcn.140003b74
movzx r12d, byte [rsp + 0x90]
test r12b, 1
jne 0x14003c4f8
shr r12, 1
jmp 0x14003c50d
mov r12, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xa0]
call fcn.140153cd8
lea rbx, [rsi + 0x10]
cmp dword [rsi + 8], 3
jne 0x14003c6cf
call fcn.140073cb0
test al, al
jne 0x14003c6cf
lea r14, [rsp + 0x880]
mov r8d, 0x7d8
mov rcx, r14
mov dl, 0xaa
call fcn.140157190
mov rcx, r14
call fcn.140073cd0
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
add rcx, rbx
lea r15, [rsp + 0x90]
mov rdx, r15
call fcn.14000f1f6
lea rdx, [0x1401ea4b0]
mov rcx, r15
call fcn.140013376
mov rcx, qword [rax]
mov r8, qword [rcx + 0x38]
mov rcx, rax
mov dl, 0xa
mov rax, r8
call qword [0x1401ff008]
mov ebp, eax
mov rcx, r15
call fcn.1400132be
mov rcx, rbx
mov edx, ebp
call fcn.1400108d8
mov rcx, rbx
call fcn.14000fb24
mov rcx, r14
mov rdx, rbx
call fcn.140073d70
lea r14, [rsp + 0x90]
mov r8d, 0x7f0
mov rcx, r14
mov dl, 0xaa
call fcn.140157190
mov rcx, r14
call fcn.140073da0
mov rcx, r14
call fcn.140073e90
test al, al
jne 0x14003c5e9
lea rcx, [rsp + 0x90]
mov rdx, rbx
call fcn.140073ea0
call fcn.140073ff0
test rax, rax
je 0x14003c6c7
mov r15, rax
cmp dword [rax + 0x68], 0
je 0x14003c6c7
lea rdx, str.IPC_message_handler_context:
mov r8d, 0x1d
mov rcx, rbx
call fcn.140002063
mov r14, rax
mov r8d, dword [r15 + 0x68]
lea rdx, str.0x_08X
lea rcx, [rsp + 0x60]
call fcn.14004f860
movzx r8d, byte [rsp + 0x60]
test r8b, 1
je 0x14003c649
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
jmp 0x14003c651
shr r8, 1
lea rdx, [rsp + 0x61]
mov rcx, r14
call fcn.140002063
mov r14, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
add rcx, r14
lea r15, [rsp + 0x80]
mov rdx, r15
call fcn.14000f1f6
lea rdx, [0x1401ea4b0]
mov rcx, r15
call fcn.140013376
mov rcx, qword [rax]
mov r8, qword [rcx + 0x38]
mov rcx, rax
mov dl, 0xa
mov rax, r8
call qword [0x1401ff008]
mov ebp, eax
mov rcx, r15
call fcn.1400132be
mov rcx, r14
mov edx, ebp
call fcn.1400108d8
mov rcx, r14
call fcn.14000fb24
test byte [rsp + 0x60], 1
je 0x14003c6c7
mov rcx, qword [rsp + 0x70]
call fcn.140153cd8
mov rcx, rbx
call fcn.140074b70
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
add rcx, rbx
lea r14, [rsp + 0x90]
mov rdx, r14
call fcn.14000f1f6
lea rdx, [0x1401ea4b0]
mov rcx, r14
call fcn.140013376
mov rcx, qword [rax]
mov r8, qword [rcx + 0x38]
mov rcx, rax
mov dl, 0xa
mov rax, r8
call qword [0x1401ff008]
mov ebp, eax
mov rcx, r14
call fcn.1400132be
mov rcx, rbx
mov edx, ebp
call fcn.1400108d8
mov rcx, rbx
call fcn.14000fb24
movabs r15, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x70], r15
movaps xmm6, xmmword [section..rdata]
movaps xmmword [rsp + 0x60], xmm6
lea rbx, [rsp + 0x60]
mov rcx, rdi
mov rdx, rbx
call fcn.140003b74
test byte [0x1401e4bd0], 0x19
jne 0x14003cd07
cmp dword [rsi + 8], 3
jne 0x14003c8e0
cmp byte [0x1401eb2fc], 0
jne 0x14003c8e0
movaps xmmword [rsp + 0x80], xmm6
lea rax, [0x1401eb2fc]
mov qword [rsp + 0x80], rax
movzx eax, byte [0x1401eb2fc]
mov byte [0x1401eb2fc], 1
mov byte [rsp + 0x88], al
mov eax, dword [0x1401eb308]
mov ecx, dword [0x1401ed290]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 0x24]
jg 0x14003cdce
lea rdx, [rsp + 0x90]
mov rcx, rdi
call fcn.140003b74
test byte [rsp + 0x90], 1
je 0x14003c7ed
mov r13, qword [rsp + 0xa0]
jmp 0x14003c7f5
lea r13, [rsp + 0x91]
add r13, qword [rsi + 0x118]
mov ebp, dword [rsi + 0x128]
mov r14, qword [rsi + 0x120]
test r14, r14
je 0x14003c828
mov rcx, r14
mov edx, 0x5c
call fcn.1401573a0
lea r8, [rax + 1]
test rax, rax
cmove r8, r14
jmp 0x14003c82b
xor r8d, r8d
mov qword [rsp + 0x20], r13
lea rdx, str._s:_d:__s
lea rcx, [rsp + 0x880]
mov r9d, ebp
call fcn.14004f860
test byte [rsp + 0x90], 1
je 0x14003c85e
mov rcx, qword [rsp + 0xa0]
call fcn.140153cd8
movzx eax, byte [rsp + 0x880]
mov rcx, rax
shr rcx, 1
test al, 1
lea rax, [rsp + 0x881]
cmovne rax, qword [rsp + 0x890]
cmovne rcx, qword [rsp + 0x888]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rcx
mov rcx, qword [0x1401eb300]
lea rdx, [rsp + 0x90]
call fcn.140074b10
test byte [rsp + 0x880], 1
je 0x14003c8c3
mov rcx, qword [rsp + 0x890]
call fcn.140153cd8
cmp qword [rsp + 0x80], 0
je 0x14003c8e0
movzx eax, byte [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
mov byte [rcx], al
mov rax, qword [0x1401eb2b0]
test rax, rax
je 0x14003c917
mov r9, qword [rsi + 0x118]
mov r8d, dword [rsi + 0x128]
mov rdx, qword [rsi + 0x120]
mov ecx, dword [rsi + 8]
mov qword [rsp + 0x20], rbx
call qword [0x1401ff008]
test al, al
jne 0x14003cc74
mov eax, dword [0x1401e4648]
test al, 2
je 0x14003c940
test byte [rsp + 0x60], 1
je 0x14003c92f
mov rcx, qword [rsp + 0x70]
jmp 0x14003c934
lea rcx, [rsp + 0x61]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x1401e4648]
test al, 4
jne 0x14003c94f
cmp dword [rsi + 8], 2
jl 0x14003c9a8
cmp eax, 1
ja 0x14003c9a8
movzx ebx, byte [rsp + 0x60]
test bl, 1
je 0x14003c96a
mov rbx, qword [rsp + 0x68]
mov r14, qword [rsp + 0x70]
test rbx, rbx
jne 0x14003c977
jmp 0x14003c9a8
shr rbx, 1
lea r14, [rsp + 0x61]
test rbx, rbx
je 0x14003c9a8
xor r13d, r13d
nop word [rax + rax]
mov r8d, ebx
sub r8d, r13d
lea rdx, [r14 + r13]
mov ecx, 2
call fcn.14016fcd0
test eax, eax
js 0x14003c9a2
mov eax, eax
add r13, rax
cmp r13, rbx
jb 0x14003c980
mov eax, dword [0x1401e4648]
test al, 1
je 0x14003c9fe
call fcn.14003bc30
test al, al
je 0x14003c9fe
mov dword [rsp + 0x90], 0xaaaaaaaa
movzx r8d, byte [rsp + 0x60]
test r8b, 1
je 0x14003c9d8
mov r8d, dword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
jmp 0x14003c9e0
shr r8d, 1
lea rdx, [rsp + 0x61]
mov rcx, qword [0x1401eb2c8]
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [rsi + 8], 3
jne 0x14003cc74
mov rcx, qword [0x1401eb278]
test rcx, rcx
je 0x14003ca46
movzx eax, byte [rsp + 0x60]
mov rdx, rax
shr rdx, 1
test al, 1
lea rax, [rsp + 0x61]
cmovne rax, qword [rsp + 0x70]
mov qword [rsp + 0x50], rax
cmovne rdx, qword [rsp + 0x68]
mov qword [rsp + 0x58], rdx
lea rdx, [rsp + 0x50]
call fcn.140037720
lea rbx, [rsp + 0x90]
mov r8d, 0x400
mov rcx, rbx
mov dl, 0xaa
call fcn.140157190
test byte [rsp + 0x60], 1
lea r14, [rsp + 0x61]
mov rdx, r14
je 0x14003ca72
mov rdx, qword [rsp + 0x70]
mov r8d, 0x400
mov rcx, rbx
call fcn.14004f380
mov rcx, rbx
call fcn.140002a70
mov eax, dword [0x1401eb2f8]
mov ecx, dword [0x1401ed290]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 0x24]
jg 0x14003cd3a
mov rax, qword [0x1401eb2e8]
cmp rax, qword [0x1401eb2f0]
je 0x14003ce10
mov qword [rsp + 0x80], r15
mov eax, dword [0x1401eb2f8]
mov ecx, dword [0x1401ed290]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 0x24]
jg 0x14003cd84
mov rdx, qword [0x1401eb2f0]
lea rax, [0x1401eb2d8]
mov qword [rsp + 0x880], rax
mov qword [rsp + 0x888], rdx
test rdx, rdx
jne 0x14003cb1d
mov rax, qword [rsp + 0x880]
mov rdx, qword [rax + 8]
dec rdx
mov qword [rsp + 0x888], rdx
mov rcx, qword [rsp + 0x880]
call fcn.140030cd0
lea rcx, [rsp + 0x80]
mov rdx, rax
call fcn.14003a8b0
mov rbx, qword [rsp + 0x80]
test rbx, rbx
je 0x14003cc67
movzx ebp, byte [rsp + 0x60]
and bpl, 1
mov r15, qword [rsp + 0x70]
mov rcx, r15
cmove rcx, r14
add rcx, r12
mov qword [rsp + 0x40], rcx
je 0x14003cb81
call fcn.140178880
mov qword [rsp + 0x48], rax
jmp 0x14003cbd4
mov qword [rsp + 0x48], 0
lea rdx, str....._base_strings_string_piece.h
lea r9, [0x1401915c0]
lea rbx, [rsp + 0x880]
mov rcx, rbx
mov r8d, 0x7d
call fcn.140030ec0
mov rcx, rbx
call fcn.140031080
mov rcx, rbx
call fcn.140031090
movzx ebp, byte [rsp + 0x60]
mov r15, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x80]
and bpl, 1
mov rax, qword [rsi + 0x118]
sub r12, rax
test bpl, bpl
cmove r15, r14
add r15, rax
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], r12
mov ebp, dword [rsi + 0x128]
mov r14, qword [rsi + 0x120]
test rbx, rbx
je 0x14003cc42
mov rcx, rbx
call fcn.14000ba1c
mov rcx, qword [rsp + 0x80]
mov rax, qword [rcx + 8]
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x30]
mov rdx, r14
mov r8d, ebp
call qword [0x1401ff008]
lock dec dword [rbx]
jne 0x14003cc67
mov rcx, rbx
call fcn.14003a7a0
jmp 0x14003cc67
mov rax, qword [8]
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x30]
xor ecx, ecx
mov rdx, r14
mov r8d, ebp
call qword [0x1401ff008]
lea rcx, [rsp + 0x80]
call fcn.14003a890
test byte [rsp + 0x60], 1
je 0x14003cc85
mov rcx, qword [rsp + 0x70]
call fcn.140153cd8
lea rcx, [rsi + 0x12c]
call fcn.140073c50
mov rax, qword [rsi + 0x10]
movsxd rax, dword [rax + 4]
lea rcx, vtable.std::__1::basic_ostringstream_char__struct_std::__1::char_traits_char___class_std::__1::allocator_char__.0
mov qword [rsi + rax + 0x10], rcx
lea rax, vtable.std::__1::basic_stringbuf_char__struct_std::__1::char_traits_char___class_std::__1::allocator_char__.0
mov qword [rsi + 0x18], rax
test byte [rsi + 0x58], 1
je 0x14003ccbf
mov rcx, qword [rsi + 0x68]
call fcn.140153cd8
sub rsi, 0xffffffffffffff80
mov rcx, rdi
call fcn.14000fabe
mov rcx, rdi
call fcn.140002a70
mov rcx, rsi
call fcn.14000fab8
mov rcx, qword [rsp + 0x1058]
xor rcx, rsp
call fcn.140154030
movaps xmm6, xmmword [rsp + 0x1060]
add rsp, 0x1078
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x98], rbx
lea rcx, str.LogMessage
lea rdx, [rsp + 0x90]
call fcn.14003ce20
cmp dword [rsi + 8], 3
je 0x14003c76b
jmp 0x14003c8e0
lea rcx, [0x1401eb2f8]
call fcn.140153df0
cmp dword [0x1401eb2f8], 0xffffffff
jne 0x14003caad
mov qword [0x1401eb2d8], 0
xorps xmm0, xmm0
movups xmmword [0x1401eb2e0], xmm0
mov qword [0x1401eb2f0], 0
lea rcx, [0x1401eb2f8]
call fcn.140153e88
jmp 0x14003caad
lea rcx, [0x1401eb2f8]
call fcn.140153df0
cmp dword [0x1401eb2f8], 0xffffffff
jne 0x14003caee
mov qword [0x1401eb2d8], 0
xorps xmm0, xmm0
movups xmmword [0x1401eb2e0], xmm0
mov qword [0x1401eb2f0], 0
lea rcx, [0x1401eb2f8]
call fcn.140153e88
jmp 0x14003caee
lea rcx, [0x1401eb308]
call fcn.140153df0
cmp dword [0x1401eb308], 0xffffffff
jne 0x14003c7c9
lea rcx, str.LOG_FATAL
mov edx, 0x400
call fcn.140074ae0
mov qword [0x1401eb300], rax
lea rcx, [0x1401eb308]
call fcn.140153e88
jmp 0x14003c7c9
int3