Function at 0x140005830
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, 0x1068
call fcn.140053060
sub rsp, rax
mov rsi, rcx
mov rax, qword [0x140091088]
xor rax, rsp
mov qword [rsp + 0x1060], rax
movabs r12, 0xaaaaaaaaaaaaaaaa
lea rax, [0x140076c08]
mov qword [rcx], rax
mov qword [rsp + 0x88], r12
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 0xf
mov byte [rsp + 0x80], 0
mov eax, dword [rcx + 0x88]
mov ecx, eax
and ecx, 0x22
cmp ecx, 2
je 0x1400058d6
mov rcx, qword [rsi + 0x58]
mov rdi, qword [rcx]
test rdi, rdi
je 0x1400058d6
lea rax, [rsi + 0x38]
mov rcx, qword [rsi + 0x80]
cmp rdi, rcx
cmovb rdi, rcx
jmp 0x1400058f4
test al, 4
jne 0x14000593d
mov rax, qword [rsi + 0x50]
mov rdi, qword [rax]
test rdi, rdi
je 0x14000593d
lea rax, [rsi + 0x30]
mov rcx, qword [rsi + 0x68]
movsxd rcx, dword [rcx]
add rdi, rcx
mov rax, qword [rax]
mov r9, qword [rax]
test r9, r9
je 0x14000593d
sub rdi, r9
cmp rdi, 0xf
jbe 0x14000591a
lea rcx, [rsp + 0x80]
mov rdx, rdi
call fcn.140001510
jmp 0x14000593d
mov qword [rsp + 0x90], rdi
lea rcx, [rsp + 0x80]
mov rdx, r9
mov r8, rdi
call fcn.140054b10
mov byte [rsp + rdi + 0x80], 0
mov r13, qword [rsp + 0x90]
mov rax, qword [rsp + 0x98]
cmp rax, 0x10
jb 0x14000598c
mov rcx, qword [rsp + 0x80]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140005987
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140006438
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400528a0
lea rdi, [rsi + 0x10]
cmp dword [rsi + 8], 3
jne 0x140005be3
call fcn.14001cb90
test al, al
jne 0x140005be3
lea rbx, [rsp + 0x878]
mov r8d, 0x7d8
mov rcx, rbx
mov dl, 0xaa
call fcn.140054950
mov rcx, rbx
call fcn.14001cbb0
mov rax, qword [rdi]
movsxd rax, dword [rax + 4]
mov rax, qword [rdi + rax + 0x40]
mov rcx, qword [rax + 8]
mov qword [rsp + 0x88], rcx
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140042b80.0]
lea rcx, [rsp + 0x80]
call fcn.14004f040
mov rcx, qword [rax]
mov r8, qword [rcx + 0x40]
mov rcx, rax
mov dl, 0xa
mov rax, r8
call qword [case.0x140042b80.0]
mov ebx, eax
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x140005a46
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140042b80.0]
test rax, rax
je 0x140005a46
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x140042b80.0]
mov rcx, rdi
mov edx, ebx
call fcn.14000acf0
mov rcx, rdi
call fcn.140050960
lea rcx, [rsp + 0x878]
mov rdx, rdi
call fcn.14001cc20
lea rbx, [rsp + 0x80]
mov r8d, 0x7f0
mov rcx, rbx
mov dl, 0xaa
call fcn.140054950
mov rcx, rbx
call fcn.14001cc50
mov rcx, rbx
call fcn.14001cd40
test al, al
jne 0x140005aa4
lea rcx, [rsp + 0x80]
mov rdx, rdi
call fcn.14001cd50
call fcn.14001cef0
test rax, rax
je 0x140005bdb
mov r14, rax
cmp dword [rax + 0x68], 0
je 0x140005bdb
lea rdx, str.IPC_message_handler_context:
mov rcx, rdi
call fcn.14004f300
mov rbx, rax
mov r8d, dword [r14 + 0x68]
lea rdx, str.0x_08X
lea r14, [rsp + 0x60]
mov rcx, r14
call fcn.14001cf60
mov r8, qword [rsp + 0x70]
cmp qword [rsp + 0x78], 0x10
jb 0x140005afb
mov r14, qword [rsp + 0x60]
mov rcx, rbx
mov rdx, r14
call fcn.140050e90
mov rbx, rax
mov rax, qword [rax]
movsxd rax, dword [rax + 4]
mov rax, qword [rbx + rax + 0x40]
mov rcx, qword [rax + 8]
mov qword [rsp + 0x1058], rcx
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140042b80.0]
lea rcx, [rsp + 0x1050]
call fcn.14004f040
mov rcx, qword [rax]
mov r8, qword [rcx + 0x40]
mov rcx, rax
mov dl, 0xa
mov rax, r8
call qword [case.0x140042b80.0]
mov ebp, eax
mov rcx, qword [rsp + 0x1058]
test rcx, rcx
je 0x140005b88
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140042b80.0]
test rax, rax
je 0x140005b88
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x140042b80.0]
mov rcx, rbx
mov edx, ebp
call fcn.14000acf0
mov rcx, rbx
call fcn.140050960
mov rax, qword [rsp + 0x78]
cmp rax, 0x10
jb 0x140005bdb
mov rcx, qword [rsp + 0x60]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140005bd6
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140006438
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400528a0
mov rcx, rdi
call fcn.14000b020
mov rax, qword [rdi]
movsxd rax, dword [rax + 4]
mov rax, qword [rdi + rax + 0x40]
mov rcx, qword [rax + 8]
mov qword [rsp + 0x88], rcx
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140042b80.0]
lea rbx, [rsp + 0x80]
mov rcx, rbx
call fcn.14004f040
mov rcx, qword [rax]
mov r8, qword [rcx + 0x40]
mov rcx, rax
mov dl, 0xa
mov rax, r8
call qword [case.0x140042b80.0]
mov ebp, eax
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x140005c65
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140042b80.0]
test rax, rax
je 0x140005c65
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x140042b80.0]
mov rcx, rdi
mov edx, ebp
call fcn.14000acf0
mov rcx, rdi
call fcn.140050960
mov qword [rsp + 0x880], r12
mov qword [rsp + 0x878], 0
mov qword [rsp + 0x888], 0
mov qword [rsp + 0x890], 0xf
mov byte [rsp + 0x878], 0
mov eax, dword [rsi + 0x88]
mov ecx, eax
and ecx, 0x22
cmp ecx, 2
je 0x140005cdb
mov rcx, qword [rsi + 0x58]
mov rdi, qword [rcx]
test rdi, rdi
je 0x140005cdb
lea rax, [rsi + 0x38]
mov rcx, qword [rsi + 0x80]
cmp rdi, rcx
cmovb rdi, rcx
jmp 0x140005cf9
test al, 4
jne 0x140005d42
mov rax, qword [rsi + 0x50]
mov rdi, qword [rax]
test rdi, rdi
je 0x140005d42
lea rax, [rsi + 0x30]
mov rcx, qword [rsi + 0x68]
movsxd rcx, dword [rcx]
add rdi, rcx
mov rax, qword [rax]
mov r9, qword [rax]
test r9, r9
je 0x140005d42
sub rdi, r9
cmp rdi, 0xf
jbe 0x140005d1f
lea rcx, [rsp + 0x878]
mov rdx, rdi
call fcn.140001510
jmp 0x140005d42
mov qword [rsp + 0x888], rdi
lea rcx, [rsp + 0x878]
mov rdx, r9
mov r8, rdi
call fcn.140054b10
mov byte [rsp + rdi + 0x878], 0
mov rcx, qword [rsp + 0x888]
cmp qword [rsp + 0x890], 0x10
jb 0x140005d5f
mov rdi, qword [rsp + 0x878]
jmp 0x140005d67
lea rdi, [rsp + 0x878]
mov r15, qword [rsi + 0xf8]
mov qword [rsp + 0x80], r12
mov r14, rcx
sub r14, r15
jb 0x1400063fe
xor eax, eax
mov qword [rsp + 0x80], rax
test rax, rax
je 0x140005da8
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x60], rax
lea rcx, [rsp + 0x60]
call fcn.140001220
add rdi, r15
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 0xf
mov byte [rsp + 0x80], 0
cmp r14, 0xf
jbe 0x140005df2
lea rcx, [rsp + 0x80]
mov rdx, r14
mov r9, rdi
call fcn.140001510
jmp 0x140005e16
mov qword [rsp + 0x90], r14
lea rcx, [rsp + 0x80]
mov rdx, rdi
mov r8, r14
call fcn.140054b10
mov byte [rsp + r14 + 0x80], 0
mov rax, qword [rsp + 0x98]
cmp rax, 0x10
jb 0x140005e5d
mov rcx, qword [rsp + 0x80]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140005e58
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140006438
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400528a0
cmp dword [rsi + 8], 3
jne 0x140005f68
cmp byte [0x1400924a4], 0
jne 0x140005f68
movaps xmm0, xmmword [0x140076960]
movaps xmmword [rsp + 0x60], xmm0
lea rax, [0x1400924a4]
mov qword [rsp + 0x60], rax
movzx eax, byte [0x1400924a4]
mov byte [0x1400924a4], 1
mov byte [rsp + 0x68], al
mov eax, dword [0x1400924b0]
mov ecx, dword [0x140094580]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400064d1
mov rcx, rsi
mov rdx, rbx
call fcn.140006520
mov rax, qword [rsp + 0x90]
cmp qword [rsp + 0x98], 0x10
jb 0x140005ee9
mov rbx, qword [rsp + 0x80]
mov qword [rsp + 0x1050], rbx
mov qword [rsp + 0x1058], rax
mov rcx, qword [0x1400924a8]
lea rdx, [rsp + 0x1050]
call fcn.14000afc0
mov rax, qword [rsp + 0x98]
cmp rax, 0x10
jb 0x140005f54
mov rcx, qword [rsp + 0x80]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140005f4f
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140006438
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400528a0
cmp qword [rsp + 0x60], 0
je 0x140005f68
movzx eax, byte [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
mov byte [rcx], al
mov rax, qword [0x140092450]
test rax, rax
je 0x140005fa7
mov r9, qword [rsi + 0xf8]
mov r8d, dword [rsi + 0x108]
mov rdx, qword [rsi + 0x100]
mov ecx, dword [rsi + 8]
lea r10, [rsp + 0x878]
mov qword [rsp + 0x20], r10
call qword [case.0x140042b80.0]
test al, al
jne 0x1400062e1
mov eax, dword [0x140091010]
test al, 2
je 0x140005fda
cmp qword [rsp + 0x890], 0x10
jb 0x140005fc6
mov rcx, qword [rsp + 0x878]
jmp 0x140005fce
lea rcx, [rsp + 0x878]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x140091010]
test al, 4
jne 0x140005fe9
cmp dword [rsi + 8], 2
jl 0x140006048
cmp eax, 1
ja 0x140006048
mov rdi, qword [rsp + 0x888]
cmp qword [rsp + 0x890], 0x10
jb 0x14000600b
mov rbx, qword [rsp + 0x878]
test rdi, rdi
jne 0x140006018
jmp 0x140006048
lea rbx, [rsp + 0x878]
test rdi, rdi
je 0x140006048
xor r14d, r14d
nop dword [rax + rax]
mov r8d, edi
sub r8d, r14d
lea rdx, [rbx + r14]
mov ecx, 2
call fcn.14005d694
test eax, eax
js 0x140006042
mov eax, eax
add r14, rax
cmp r14, rdi
jb 0x140006020
mov eax, dword [0x140091010]
test al, 1
je 0x1400060a3
call fcn.140004d10
test al, al
je 0x1400060a3
mov dword [rsp + 0x80], 0xaaaaaaaa
mov r8d, dword [rsp + 0x888]
cmp qword [rsp + 0x890], 0x10
jb 0x14000607d
mov rdx, qword [rsp + 0x878]
jmp 0x140006085
lea rdx, [rsp + 0x878]
mov rcx, qword [0x140092468]
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [rsi + 8], 3
jne 0x1400062e1
mov rcx, qword [0x1400925e0]
test rcx, rcx
je 0x1400060f2
mov rax, qword [rsp + 0x888]
cmp qword [rsp + 0x890], 0x10
jb 0x1400060d6
mov rdx, qword [rsp + 0x878]
jmp 0x1400060de
lea rdx, [rsp + 0x878]
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x58], rax
lea rdx, [rsp + 0x50]
call fcn.14001ddb0
lea rdi, [rsp + 0x80]
mov r8d, 0x400
mov rcx, rdi
mov dl, 0xaa
call fcn.140054950
cmp qword [rsp + 0x890], 0x10
jb 0x14000611f
mov rdx, qword [rsp + 0x878]
jmp 0x140006127
lea rdx, [rsp + 0x878]
mov r8d, 0x400
mov rcx, rdi
call fcn.14000b9f0
mov rcx, rdi
call fcn.14000bce0
mov eax, dword [0x1400924a0]
mov ecx, dword [0x140094580]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14000643d
mov rax, qword [0x140092490]
cmp rax, qword [0x140092498]
je 0x140006513
mov qword [rsp + 0x1050], r12
mov eax, dword [0x1400924a0]
mov ecx, dword [0x140094580]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140006487
lea rcx, [0x140092480]
call fcn.14000ac20
lea rcx, [rsp + 0x1050]
mov rdx, rax
call fcn.14001c390
cmp qword [rsp + 0x1050], 0
je 0x1400062d4
mov rdi, qword [rsp + 0x878]
mov r14, qword [rsp + 0x890]
cmp r14, 0x10
lea rbx, [rsp + 0x878]
mov rcx, rbx
cmovae rcx, rdi
add rcx, r13
mov qword [rsp + 0x40], rcx
je 0x140006207
call fcn.14005d030
mov qword [rsp + 0x48], rax
jmp 0x140006249
mov qword [rsp + 0x48], 0
lea rdx, str....._base_strings_string_piece.h
lea r9, [0x140076cdc]
lea rdi, [rsp + 0x60]
mov rcx, rdi
mov r8d, 0x7f
call fcn.140001100
mov rcx, rdi
call fcn.140001220
mov rdi, qword [rsp + 0x878]
mov r14, qword [rsp + 0x890]
mov rax, qword [rsi + 0xf8]
sub r13, rax
cmp r14, 0x10
cmovae rbx, rdi
add rbx, rax
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], r13
mov edi, dword [rsi + 0x108]
mov rbx, qword [rsi + 0x100]
mov rax, qword [rsp + 0x1050]
mov qword [rsp + 0x60], rax
test rax, rax
je 0x140006291
mov rcx, qword [rsp + 0x60]
call fcn.14000ae70
mov rax, qword [rsp + 0x1050]
mov rax, qword [rax + 8]
mov rcx, qword [rsp + 0x60]
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x30]
mov rdx, rbx
mov r8d, edi
call qword [case.0x140042b80.0]
cmp qword [rsp + 0x60], 0
je 0x1400062d4
mov rcx, qword [rsp + 0x60]
lock dec dword [rcx]
jne 0x1400062d4
call fcn.14001c300
lea rcx, [rsp + 0x1050]
call fcn.14001c3c0
mov rax, qword [rsp + 0x890]
cmp rax, 0x10
jb 0x140006328
mov rcx, qword [rsp + 0x878]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140006323
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140006438
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400528a0
lea rcx, [rsi + 0x10c]
call fcn.14001c420
mov rax, qword [rsi + 0x10]
movsxd rax, dword [rax + 4]
lea rcx, [0x140076ce0]
mov qword [rsi + rax + 0x10], rcx
mov rax, qword [rsi + 0x10]
movsxd rax, dword [rax + 4]
lea ecx, [rax - 0x88]
mov dword [rsi + rax + 0xc], ecx
lea rcx, [rsi + 0x18]
lea rax, vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rsi + 0x18], rax
call fcn.14004e580
lea rax, vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
mov qword [rsi + 0x18], rax
mov rdi, qword [rsi + 0x78]
test rdi, rdi
je 0x1400063bc
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1400063b4
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140042b80.0]
test rax, rax
je 0x1400063b4
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x140042b80.0]
mov rcx, rdi
call fcn.140052b84
lea rax, vtable.std::ios_base.0
mov qword [rsi + 0x98], rax
add rsi, 0x98
mov rcx, rsi
call fcn.140051ea0
mov rcx, qword [rsp + 0x1060]
xor rcx, rsp
call fcn.140052880
nop
add rsp, 0x1068
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.140016ee0
mov rbp, rax
mov rcx, r15
call fcn.140016ee0
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], rax
lea rdx, str....._base_strings_string_piece.h
lea r9, [0x140076ca2]
xor ecx, ecx
mov r8d, 0xe2
call fcn.140017230
jmp 0x140005d84
call fcn.14005cf9c
lea rcx, [0x1400924a0]
call fcn.140052f34
cmp dword [0x1400924a0], 0xffffffff
jne 0x140006162
mov qword [0x140092480], 0
xorps xmm0, xmm0
movups xmmword [0x140092488], xmm0
mov qword [0x140092498], 0
lea rcx, [0x1400924a0]
call fcn.140052ed4
jmp 0x140006162
lea rcx, [0x1400924a0]
call fcn.140052f34
cmp dword [0x1400924a0], 0xffffffff
jne 0x1400061a3
mov qword [0x140092480], 0
xorps xmm0, xmm0
movups xmmword [0x140092488], xmm0
mov qword [0x140092498], 0
lea rcx, [0x1400924a0]
call fcn.140052ed4
jmp 0x1400061a3
lea rcx, [0x1400924b0]
call fcn.140052f34
cmp dword [0x1400924b0], 0xffffffff
jne 0x140005ec3
lea rcx, str.LOG_FATAL
mov edx, 0x400
call fcn.14000af90
mov qword [0x1400924a8], rax
lea rcx, [0x1400924b0]
call fcn.140052ed4
jmp 0x140005ec3
int3