Function at 0x140050b40
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, 0x1088
call fcn.1400a5000
sub rsp, rax
movaps xmmword [rsp + 0x1070], xmm6
mov rsi, rcx
mov rax, qword [0x140105c88]
xor rax, rsp
mov qword [rsp + 0x1068], rax
lea rax, [0x1400e1d20]
mov qword [rcx], rax
lea rdi, [rcx + 0x18]
lea rdx, [rsp + 0xa0]
mov rcx, rdi
call fcn.1400041b4
movzx r12d, byte [rsp + 0xa0]
test r12b, 1
jne 0x140050ba8
shr r12, 1
jmp 0x140050bbd
mov r12, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0xb0]
call fcn.1400a4d04
lea rbx, [rsi + 0x10]
cmp dword [rsi + 8], 3
jne 0x140050d7f
call fcn.1400764b0
test al, al
jne 0x140050d7f
lea r14, [rsp + 0x890]
mov r8d, 0x7d8
mov rcx, r14
mov dl, 0xaa
call fcn.1400a8280
mov rcx, r14
call fcn.1400764d0
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
add rcx, rbx
lea r15, [rsp + 0xa0]
mov rdx, r15
call fcn.14000a136
lea rdx, [0x140108c30]
mov rcx, r15
call fcn.14000e53c
mov rcx, qword [rax]
mov r8, qword [rcx + 0x38]
mov rcx, rax
mov dl, 0xa
mov rax, r8
call qword [0x140117008]
mov ebp, eax
mov rcx, r15
call fcn.14000e474
mov rcx, rbx
mov edx, ebp
call fcn.14000b9f0
mov rcx, rbx
call fcn.14000aa24
mov rcx, r14
mov rdx, rbx
call fcn.140076540
lea r14, [rsp + 0xa0]
mov r8d, 0x7f0
mov rcx, r14
mov dl, 0xaa
call fcn.1400a8280
mov rcx, r14
call fcn.140076570
mov rcx, r14
call fcn.140076660
test al, al
jne 0x140050c99
lea rcx, [rsp + 0xa0]
mov rdx, rbx
call fcn.140076670
call fcn.1400767c0
test rax, rax
je 0x140050d77
mov r15, rax
cmp dword [rax + 0x68], 0
je 0x140050d77
lea rdx, str.IPC_message_handler_context:
mov r8d, 0x1d
mov rcx, rbx
call fcn.1400031c8
mov r14, rax
mov r8d, dword [r15 + 0x68]
lea rdx, str.0x_08X
lea rcx, [rsp + 0x60]
call fcn.140057830
movzx r8d, byte [rsp + 0x60]
test r8b, 1
je 0x140050cf9
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
jmp 0x140050d01
shr r8, 1
lea rdx, [rsp + 0x61]
mov rcx, r14
call fcn.1400031c8
mov r14, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
add rcx, r14
lea r15, [rsp + 0x90]
mov rdx, r15
call fcn.14000a136
lea rdx, [0x140108c30]
mov rcx, r15
call fcn.14000e53c
mov rcx, qword [rax]
mov r8, qword [rcx + 0x38]
mov rcx, rax
mov dl, 0xa
mov rax, r8
call qword [0x140117008]
mov ebp, eax
mov rcx, r15
call fcn.14000e474
mov rcx, r14
mov edx, ebp
call fcn.14000b9f0
mov rcx, r14
call fcn.14000aa24
test byte [rsp + 0x60], 1
je 0x140050d77
mov rcx, qword [rsp + 0x70]
call fcn.1400a4d04
mov rcx, rbx
call fcn.140063300
mov rax, qword [rsi + 0x10]
movsxd rcx, dword [rax + 4]
add rcx, rbx
lea r14, [rsp + 0xa0]
mov rdx, r14
call fcn.14000a136
lea rdx, [0x140108c30]
mov rcx, r14
call fcn.14000e53c
mov rcx, qword [rax]
mov r8, qword [rcx + 0x38]
mov rcx, rax
mov dl, 0xa
mov rax, r8
call qword [0x140117008]
mov ebp, eax
mov rcx, r14
call fcn.14000e474
mov rcx, rbx
mov edx, ebp
call fcn.14000b9f0
mov rcx, rbx
call fcn.14000aa24
movabs rbp, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x70], rbp
movaps xmm6, xmmword [section..rdata]
movaps xmmword [rsp + 0x60], xmm6
lea rbx, [rsp + 0x60]
mov rcx, rdi
mov rdx, rbx
call fcn.1400041b4
movzx eax, byte [rsp + 0x60]
mov rcx, rax
shr rcx, 1
test al, 1
lea r13, [rsp + 0x61]
mov rax, qword [rsp + 0x70]
cmove rax, r13
cmovne rcx, qword [rsp + 0x68]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rcx
mov r8, qword [rsi + 0x118]
lea rcx, [rsp + 0x50]
lea r15, [rsp + 0x90]
mov rdx, r15
mov r9, 0xffffffffffffffff
call fcn.14004aef0
lea r14, [rsp + 0x890]
mov rcx, r14
mov rdx, r15
call fcn.14004ace0
mov eax, dword [rsi + 0x128]
mov rcx, qword [rsi + 0x120]
mov dword [rsp + 0x8c], eax
mov qword [rsp + 0x80], rcx
test byte [0x1401061f0], 0x19
jne 0x140050ea0
test byte [rsp + 0x890], 1
jne 0x140050ee6
cmp dword [rsi + 8], 3
je 0x140050efd
jmp 0x140051080
lea rax, [rsp + 0x80]
mov qword [rsp + 0xa0], rax
lea rax, [rsp + 0x8c]
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xb0], r14
lea rcx, str.LogMessage
lea rdx, [rsp + 0xa0]
call fcn.140051b70
test byte [rsp + 0x890], 1
je 0x140050e95
mov rcx, qword [rsp + 0x8a0]
call fcn.1400a4d04
cmp dword [rsi + 8], 3
jne 0x140051080
cmp byte [0x14010a8ec], 0
jne 0x140051080
movaps xmmword [rsp + 0x90], xmm6
lea rax, [0x14010a8ec]
mov qword [rsp + 0x90], rax
movzx eax, byte [0x14010a8ec]
mov byte [0x14010a8ec], 1
mov byte [rsp + 0x98], al
mov eax, dword [0x14010a8f8]
mov ecx, dword [0x14010a3a0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400514e6
lea rdx, [rsp + 0xa0]
mov rcx, rdi
call fcn.1400041b4
test byte [rsp + 0xa0], 1
je 0x140050f82
mov r13, rbp
mov r15, qword [rsp + 0xb0]
jmp 0x140050f8d
mov r13, rbp
lea r15, [rsp + 0xa1]
add r15, qword [rsi + 0x118]
mov ebp, dword [rsi + 0x128]
mov r14, qword [rsi + 0x120]
test r14, r14
je 0x140050fc0
mov rcx, r14
mov edx, 0x5c
call fcn.1400a8490
lea r8, [rax + 1]
test rax, rax
cmove r8, r14
jmp 0x140050fc3
xor r8d, r8d
mov qword [rsp + 0x20], r15
lea rdx, str._s:_d:__s
lea rcx, [rsp + 0x890]
mov r9d, ebp
call fcn.140057830
test byte [rsp + 0xa0], 1
je 0x140050ff6
mov rcx, qword [rsp + 0xb0]
call fcn.1400a4d04
movzx eax, byte [rsp + 0x890]
mov rcx, rax
shr rcx, 1
test al, 1
lea rax, [rsp + 0x891]
cmovne rax, qword [rsp + 0x8a0]
cmovne rcx, qword [rsp + 0x898]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rcx
mov rcx, qword [0x14010a8f0]
lea rdx, [rsp + 0xa0]
call fcn.1400632a0
test byte [rsp + 0x890], 1
mov rbp, r13
je 0x14005105e
mov rcx, qword [rsp + 0x8a0]
call fcn.1400a4d04
cmp qword [rsp + 0x90], 0
lea r13, [rsp + 0x61]
je 0x140051080
movzx eax, byte [rsp + 0x98]
mov rcx, qword [rsp + 0x90]
mov byte [rcx], al
mov rax, qword [0x14010a8a0]
test rax, rax
je 0x1400510b7
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 [0x140117008]
test al, al
jne 0x14005138e
mov eax, dword [0x1401072a8]
test al, 2
je 0x1400510dc
test byte [rsp + 0x60], 1
mov rcx, r13
je 0x1400510d0
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x1401072a8]
test al, 4
jne 0x1400510eb
cmp dword [rsi + 8], 2
jl 0x140051148
cmp eax, 1
ja 0x140051148
movzx ebx, byte [rsp + 0x60]
test bl, 1
je 0x140051106
mov rbx, qword [rsp + 0x68]
mov r14, qword [rsp + 0x70]
test rbx, rbx
jne 0x140051111
jmp 0x140051148
shr rbx, 1
mov r14, r13
test rbx, rbx
je 0x140051148
xor r15d, r15d
nop word cs:[rax + rax]
mov r8d, ebx
sub r8d, r15d
lea rdx, [r14 + r15]
mov ecx, 2
call fcn.1400c019c
test eax, eax
js 0x140051142
mov eax, eax
add r15, rax
cmp r15, rbx
jb 0x140051120
mov eax, dword [0x1401072a8]
test al, 1
je 0x14005119c
call fcn.1400501b0
test al, al
je 0x14005119c
mov dword [rsp + 0xa0], 0xaaaaaaaa
movzx r8d, byte [rsp + 0x60]
test r8b, 1
je 0x140051178
mov r8d, dword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
jmp 0x14005117e
shr r8d, 1
mov rdx, r13
mov rcx, qword [0x14010a8b8]
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0xa0]
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [rsi + 8], 3
jne 0x14005138e
lea rbx, [rsp + 0xa0]
mov r8d, 0x400
mov rcx, rbx
mov dl, 0xaa
call fcn.1400a8280
test byte [rsp + 0x60], 1
mov rdx, r13
je 0x1400511cd
mov rdx, qword [rsp + 0x70]
mov r8d, 0x400
mov rcx, rbx
call fcn.14004cb80
mov rcx, rbx
call fcn.140002ff0
mov eax, dword [0x14010a8e8]
mov ecx, dword [0x14010a3a0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140051452
mov rax, qword [0x14010a8d8]
cmp rax, qword [0x14010a8e0]
je 0x140051528
mov qword [rsp + 0x90], rbp
mov eax, dword [0x14010a8e8]
mov ecx, dword [0x14010a3a0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14005149c
lea rcx, [0x14010a8c8]
call fcn.1400395c0
lea rcx, [rsp + 0x90]
mov rdx, rax
call fcn.14004b430
cmp qword [rsp + 0x90], 0
je 0x140051381
movzx ebp, byte [rsp + 0x60]
and bpl, 1
mov rbx, qword [rsp + 0x70]
mov rcx, rbx
cmove rcx, r13
add rcx, r12
mov qword [rsp + 0x40], rcx
je 0x14005129f
call fcn.1400c3f50
mov qword [rsp + 0x48], rax
jmp 0x1400512e2
mov qword [rsp + 0x48], 0
lea rdx, str....._base_strings_string_piece.h
lea r9, [0x1400d96fe]
lea rbx, [rsp + 0x890]
mov rcx, rbx
mov r8d, 0x86
call fcn.140038500
mov rcx, rbx
call fcn.140038640
movzx ebp, byte [rsp + 0x60]
mov rbx, qword [rsp + 0x70]
and bpl, 1
mov rax, qword [rsi + 0x118]
test bpl, bpl
cmove rbx, r13
add rbx, rax
mov qword [rsp + 0x30], rbx
sub r12, rax
mov qword [rsp + 0x38], r12
js 0x140051421
mov ebx, dword [rsi + 0x128]
mov r14, qword [rsi + 0x120]
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x890], rax
test rax, rax
je 0x140051335
mov rcx, qword [rsp + 0x890]
call fcn.140047c00
mov rax, qword [rsp + 0x90]
mov rax, qword [rax + 8]
mov rcx, qword [rsp + 0x890]
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x30]
mov rdx, r14
mov r8d, ebx
call qword [0x140117008]
cmp qword [rsp + 0x890], 0
je 0x140051381
mov rcx, qword [rsp + 0x890]
lock dec dword [rcx]
jne 0x140051381
call fcn.14004b2f0
lea rcx, [rsp + 0x90]
call fcn.14004b460
test byte [rsp + 0x60], 1
je 0x14005139f
mov rcx, qword [rsp + 0x70]
call fcn.1400a4d04
lea rcx, [rsi + 0x12c]
call fcn.140076450
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 0x1400513d9
mov rcx, qword [rsi + 0x68]
call fcn.1400a4d04
sub rsi, 0xffffffffffffff80
mov rcx, rdi
call fcn.14000a9be
mov rcx, rdi
call fcn.140002ff0
mov rcx, rsi
call fcn.14000a9b8
mov rcx, qword [rsp + 0x1068]
xor rcx, rsp
call fcn.1400a5060
movaps xmm6, xmmword [rsp + 0x1070]
add rsp, 0x1088
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rdx, str....._base_strings_string_piece.h
lea r9, str.length____size_tPTRDIFF_MAX
lea rbx, [rsp + 0x890]
mov rcx, rbx
mov r8d, 0x80
call fcn.140038500
mov rcx, rbx
call fcn.140038640
jmp 0x140051306
lea rcx, [0x14010a8e8]
call fcn.1400a4e20
cmp dword [0x14010a8e8], 0xffffffff
jne 0x140051208
mov qword [0x14010a8c8], 0
xorps xmm0, xmm0
movups xmmword [0x14010a8d0], xmm0
mov qword [0x14010a8e0], 0
lea rcx, [0x14010a8e8]
call fcn.1400a4eb8
jmp 0x140051208
lea rcx, [0x14010a8e8]
call fcn.1400a4e20
cmp dword [0x14010a8e8], 0xffffffff
jne 0x140051249
mov qword [0x14010a8c8], 0
xorps xmm0, xmm0
movups xmmword [0x14010a8d0], xmm0
mov qword [0x14010a8e0], 0
lea rcx, [0x14010a8e8]
call fcn.1400a4eb8
jmp 0x140051249
lea rcx, [0x14010a8f8]
call fcn.1400a4e20
cmp dword [0x14010a8f8], 0xffffffff
jne 0x140050f5b
lea rcx, str.LOG_FATAL
mov edx, 0x400
call fcn.140063270
mov qword [0x14010a8f0], rax
lea rcx, [0x14010a8f8]
call fcn.1400a4eb8
jmp 0x140050f5b
int3