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

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
mov eax, 0x1040
call fcn.140143bd0
sub rsp, rax
movaps xmmword [rsp + 0x1030], xmm6
mov rsi, rcx
mov rax, qword [0x1401c2c08]
xor rax, rsp
mov qword [rsp + 0x1028], rax
lea rbx, [rcx + 0x18]
lea rdx, [rsp + 0x68]
lea r8, [rsp + 0x850]
mov rcx, rbx
call fcn.14000dc2c
movzx edi, byte [rsp + 0x68]
test dil, 1
jne 0x14005267c
shr edi, 1
jmp 0x14005268b
mov rdi, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x78]
call fcn.1401438d8
lea r14, [rsi + 0x10]
cmp dword [rsi + 8], 3
jne 0x14005284f
call fcn.1400918e0
test al, al
jne 0x14005284f
call fcn.140091900
test al, al
jne 0x14005284f
lea r15, [rsp + 0x850]
mov r8d, 0x7d8
mov rcx, r15
mov dl, 0xaa
call fcn.140146ec0
mov rcx, r15
call fcn.140091920
mov rax, qword [r14]
movsxd rcx, dword [rax + 4]
add rcx, r14
lea r12, [rsp + 0x68]
mov rdx, r12
call fcn.14000ee46
lea rdx, [0x1401c5298]
mov rcx, r12
call fcn.140025268
mov rcx, qword [rax]
mov r8, qword [rcx + 0x38]
mov rcx, rax
mov dl, 0xa
mov rax, r8
call qword [0x1401b1be0]
mov ebp, eax
mov rcx, r12
call fcn.1400126fa
mov rcx, r14
mov edx, ebp
call fcn.1400102da
mov rcx, r14
call fcn.14000f30e
mov rcx, r15
mov rdx, r14
call fcn.140091990
lea r15, [rsp + 0x68]
mov r8d, 0x7e8
mov rcx, r15
mov dl, 0xaa
call fcn.140146ec0
mov rcx, r15
call fcn.1400919c0
mov rcx, r15
call fcn.140091ae0
test al, al
jne 0x14005276b
lea rcx, [rsp + 0x68]
mov rdx, r14
call fcn.140091af0
call fcn.140091c50
test rax, rax
je 0x140052847
mov r12, rax
cmp dword [rax + 0x60], 0
je 0x140052847
lea rdx, str.IPC_message_handler_context:
mov r8d, 0x1d
mov rcx, r14
call fcn.14000206f
mov r15, rax
mov r8d, dword [r12 + 0x60]
lea rdx, str.0x_08X
lea rcx, [rsp + 0x30]
call fcn.140046020
movzx r8d, byte [rsp + 0x30]
test r8b, 1
je 0x1400527cc
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
jmp 0x1400527d4
shr r8d, 1
lea rdx, [rsp + 0x31]
mov rcx, r15
call fcn.14000206f
mov r15, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
add rcx, r15
lea r12, [rsp + 0x58]
mov rdx, r12
call fcn.14000ee46
lea rdx, [0x1401c5298]
mov rcx, r12
call fcn.140025268
mov rcx, qword [rax]
mov r8, qword [rcx + 0x38]
mov rcx, rax
mov dl, 0xa
mov rax, r8
call qword [0x1401b1be0]
mov ebp, eax
mov rcx, r12
call fcn.1400126fa
mov rcx, r15
mov edx, ebp
call fcn.1400102da
mov rcx, r15
call fcn.14000f30e
test byte [rsp + 0x30], 1
je 0x140052847
mov rcx, qword [rsp + 0x40]
call fcn.1401438d8
mov rcx, r14
call fcn.140040930
mov rax, qword [rsi + 0x10]
movsxd rcx, dword [rax + 4]
add rcx, r14
lea r15, [rsp + 0x68]
mov rdx, r15
call fcn.14000ee46
lea rdx, [0x1401c5298]
mov rcx, r15
call fcn.140025268
mov rcx, qword [rax]
mov r8, qword [rcx + 0x38]
mov rcx, rax
mov dl, 0xa
mov rax, r8
call qword [0x1401b1be0]
mov ebp, eax
mov rcx, r15
call fcn.1400126fa
mov rcx, r14
mov edx, ebp
call fcn.1400102da
mov rcx, r14
call fcn.14000f30e
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x860], rax
movaps xmm6, xmmword [section..rdata]
movaps xmmword [rsp + 0x850], xmm6
lea r14, [rsp + 0x850]
lea r15, [rsp + 0x68]
mov rcx, rbx
mov rdx, r14
mov r8, r15
call fcn.14000dc2c
mov r8, qword [rsi + 0x118]
mov qword [rsp + 0x20], r15
lea rbx, [rsp + 0x30]
mov rcx, rbx
mov rdx, r14
mov r9, 0xffffffffffffffff
call fcn.14002aba4
mov eax, dword [rsi + 0x128]
mov rcx, qword [rsi + 0x120]
mov dword [rsp + 0x54], eax
mov qword [rsp + 0x58], rcx
test byte [0x1401c1af0], 0x19
jne 0x140052937
test byte [rsp + 0x30], 1
jne 0x140052968
cmp dword [rsi + 8], 3
je 0x14005297c
jmp 0x140052a5b
lea rax, [rsp + 0x58]
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0x54]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rbx
lea rcx, str.LogMessage
lea rdx, [rsp + 0x68]
call fcn.140053610
test byte [rsp + 0x30], 1
je 0x14005292c
mov rcx, qword [rsp + 0x40]
call fcn.1401438d8
cmp dword [rsi + 8], 3
jne 0x140052a5b
cmp byte [0x1401c6464], 0
jne 0x140052a5b
movaps xmmword [rsp + 0x30], xmm6
lea rax, [0x1401c6464]
mov qword [rsp + 0x30], rax
movzx eax, byte [0x1401c6464]
mov byte [0x1401c6464], 1
mov byte [rsp + 0x38], al
mov eax, dword [0x1401c6470]
mov ecx, dword [0x1401c65c8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 0x40]
jg 0x140052c14
lea rdx, [rsp + 0x68]
mov rcx, rsi
call fcn.140052c60
movzx eax, byte [rsp + 0x68]
test al, 1
jne 0x1400529fa
shr eax, 1
lea rcx, [rsp + 0x69]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rax
jmp 0x140052a17
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rax
test rax, rax
js 0x140052bee
test rcx, rcx
jne 0x140052a25
test rax, rax
jne 0x140052c01
mov rcx, qword [0x1401c6468]
lea rdx, [rsp + 0x58]
call fcn.1400408d0
test byte [rsp + 0x68], 1
je 0x140052a47
mov rcx, qword [rsp + 0x78]
call fcn.1401438d8
cmp qword [rsp + 0x30], 0
je 0x140052a5b
movzx eax, byte [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
mov byte [rcx], al
mov rax, qword [0x1401c6418]
test rax, rax
je 0x140052a92
mov r9, qword [rsi + 0x118]
mov r8d, dword [rsi + 0x128]
mov rdx, qword [rsi + 0x120]
mov ecx, dword [rsi + 8]
mov qword [rsp + 0x20], r14
call qword [0x1401b1be0]
test al, al
jne 0x140052b94
mov eax, dword [0x1401c2be8]
test al, 2
je 0x140052ac4
test byte [rsp + 0x850], 1
je 0x140052ab0
mov rcx, qword [rsp + 0x860]
jmp 0x140052ab8
lea rcx, [rsp + 0x851]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x1401c2be8]
test al, 4
jne 0x140052ad5
test eax, 0xfffffffa
jne 0x140052b38
cmp dword [rsi + 8], 2
jl 0x140052b38
movzx ebx, byte [rsp + 0x850]
test bl, 1
je 0x140052af9
mov rbx, qword [rsp + 0x858]
mov r14, qword [rsp + 0x860]
test rbx, rbx
jne 0x140052b08
jmp 0x140052b38
shr ebx, 1
lea r14, [rsp + 0x851]
test rbx, rbx
je 0x140052b38
xor r15d, r15d
nop dword [rax + rax]
mov r8d, ebx
sub r8d, r15d
lea rdx, [r14 + r15]
mov ecx, 2
call fcn.14015ffa4
test eax, eax
js 0x140052b32
mov eax, eax
add r15, rax
cmp r15, rbx
jb 0x140052b10
mov eax, dword [0x1401c2be8]
test al, 1
je 0x140052b94
call fcn.140051c30
test al, al
je 0x140052b94
mov dword [rsp + 0x68], 0xaaaaaaaa
movzx r8d, byte [rsp + 0x850]
test r8b, 1
je 0x140052b6e
mov r8d, dword [rsp + 0x858]
mov rdx, qword [rsp + 0x860]
jmp 0x140052b79
shr r8d, 1
lea rdx, [rsp + 0x851]
mov rcx, qword [0x1401c6430]
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [rsi + 8], 3
jne 0x140052bad
lea r8, [rsp + 0x850]
mov rcx, rsi
mov rdx, rdi
call fcn.140052d20
test byte [rsp + 0x850], 1
je 0x140052bc4
mov rcx, qword [rsp + 0x860]
call fcn.1401438d8
mov rcx, qword [rsp + 0x1028]
xor rcx, rsp
call fcn.140143c30
movaps xmm6, xmmword [rsp + 0x1030]
add rsp, 0x1040
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea rcx, [0x140180113]
lea rdx, str....._third_partylibc_srcinclude_string_view:311:_assertion___len___static_cast_size_type__numeric_limits_difference_type_::max____failed:_string_view::string_view__CharT___size_t_:_length_does_not_fit_in_difference_type_n
call fcn.140005804
lea rcx, [0x140180113]
lea rdx, str....._third_partylibc_srcinclude_string_view:313:_assertion___len__0____s___nullptr_failed:_string_view::string_view__CharT___size_t_:_received_nullptr_n
call fcn.140005804
lea rcx, [0x1401c6470]
call fcn.1401439f0
cmp dword [0x1401c6470], 0xffffffff
jne 0x1400529d1
lea rcx, str.LOG_FATAL
mov edx, 0x400
call fcn.1400408a0
mov qword [0x1401c6468], rax
lea rcx, [0x1401c6470]
call fcn.140143a88
jmp 0x1400529d1