Function at 0x140038910
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, 0x1098
call fcn.14008f6a0
sub rsp, rax
movaps xmmword [rsp + 0x1080], xmm6
mov rsi, rcx
mov rax, qword [0x1400e0338]
xor rax, rsp
mov qword [rsp + 0x1078], rax
lea rax, [0x1400be8e0]
mov qword [rcx], rax
lea r15, [rcx + 0x10]
mov rax, qword [rcx + 0x10]
movsxd rax, dword [rax + 4]
test byte [rcx + rax + 0x30], 5
je 0x140038984
movaps xmm0, xmmword [0x1400bb540]
movaps xmmword [rsp + 0xb0], xmm0
mov r12, 0xffffffffffffffff
cmp dword [rsi + 8], 3
je 0x1400389ba
jmp 0x140038b5f
mov rcx, qword [r15 + rax + 0x28]
mov rax, qword [rcx]
mov dword [rsp + 0x20], 0x10
lea rdx, [rsp + 0xb0]
xor r8d, r8d
mov r9d, 1
call qword [rax + 0x18]
mov r12, qword [rsp + 0xb8]
cmp dword [rsi + 8], 3
jne 0x140038b5f
call fcn.140049fa0
test al, al
jne 0x140038b5f
lea r14, [rsp + 0x8a0]
mov r8d, 0x7d8
mov rcx, r14
mov dl, 0xaa
call fcn.1400928e0
mov rcx, r14
call fcn.140049fe0
mov rax, qword [r15]
movsxd rcx, dword [rax + 4]
add rcx, r15
lea rdi, [rsp + 0xb0]
mov rdx, rdi
call fcn.140012d1a
lea rdx, [0x1400e2b28]
mov rcx, rdi
call fcn.140027d3e
mov rbp, qword [rax]
mov rcx, rax
mov dl, 0xa
call qword [rbp + 0x38]
mov ebx, eax
mov rcx, rdi
call fcn.140015f1e
mov rcx, r15
mov edx, ebx
call fcn.140013b78
mov rcx, r15
call fcn.140012c34
mov rcx, r14
mov rdx, r15
call fcn.14004a050
lea rdi, [rsp + 0xb0]
mov r8d, 0x7e8
mov rcx, rdi
mov dl, 0xaa
call fcn.1400928e0
mov rcx, rdi
call fcn.14004a080
mov rcx, rdi
call fcn.14004a170
test al, al
jne 0x140038a7e
lea rcx, [rsp + 0xb0]
mov rdx, r15
call fcn.14004a180
call fcn.14004a2c0
test rax, rax
je 0x140038b5f
mov rbx, rax
cmp dword [rax + 0x58], 0
je 0x140038b5f
lea rdx, str.IPC_message_handler_context:
mov r8d, 0x1d
mov rcx, r15
call fcn.1400042cc
mov r14, rax
mov r8d, dword [rbx + 0x58]
lea rdx, str.0x_08X
lea rbx, [rsp + 0x90]
mov rcx, rbx
call fcn.14003bba0
movzx r8d, byte [rsp + 0xa7]
test r8b, r8b
jns 0x140038aea
mov r8, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x90]
mov rcx, r14
mov rdx, rbx
call fcn.1400042cc
mov rbx, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
add rcx, rbx
lea rdi, [rsp + 0x80]
mov rdx, rdi
call fcn.140012d1a
lea rdx, [0x1400e2b28]
mov rcx, rdi
call fcn.140027d3e
mov rbp, qword [rax]
mov rcx, rax
mov dl, 0xa
call qword [rbp + 0x38]
mov ebp, eax
mov rcx, rdi
call fcn.140015f1e
mov rcx, rbx
mov edx, ebp
call fcn.140013b78
mov rcx, rbx
call fcn.140012c34
cmp byte [rsp + 0xa7], 0
jns 0x140038b5f
mov rcx, qword [rsp + 0x90]
call fcn.14008f3a4
mov rax, qword [rsi + 0x10]
movsxd rcx, dword [rax + 4]
add rcx, r15
lea rdi, [rsp + 0xb0]
mov rdx, rdi
call fcn.140012d1a
lea rdx, [0x1400e2b28]
mov rcx, rdi
call fcn.140027d3e
mov rbp, qword [rax]
mov rcx, rax
mov dl, 0xa
call qword [rbp + 0x38]
mov ebx, eax
mov rcx, rdi
call fcn.140015f1e
mov rcx, r15
mov edx, ebx
call fcn.140013b78
mov rcx, r15
call fcn.140012c34
lea r14, [rsi + 0x18]
movabs r13, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x8b0], r13
movaps xmm6, xmmword [section..rdata]
movaps xmmword [rsp + 0x8a0], xmm6
lea rbx, [rsp + 0x8a0]
mov rcx, r14
mov rdx, rbx
call fcn.140010ec4
test byte [0x1400e07f0], 0x19
jne 0x140038f9f
mov rax, qword [0x1400e38a0]
test rax, rax
je 0x140038c37
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 rax
test al, al
je 0x140038c37
cmp byte [rsp + 0x8b7], 0
jns 0x140038f1a
jmp 0x140038f0d
mov eax, dword [0x1400e02f8]
test al, 2
je 0x140038c62
cmp byte [rsp + 0x8b7], 0
jns 0x140038c53
mov rbx, qword [rsp + 0x8a0]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x1400e02f8]
test al, 4
jne 0x140038c71
cmp eax, 1
ja 0x140038cc5
cmp dword [rsi + 8], 2
jl 0x140038cc5
mov ecx, 2
call fcn.1400935e8
movzx edx, byte [rsp + 0x8b7]
test dl, dl
cmovs rdx, qword [rsp + 0x8a8]
lea rcx, [rsp + 0x8a0]
cmovs rcx, qword [rsp + 0x8a0]
mov r8d, 1
mov r9, rax
call fcn.1400a4e94
mov ecx, 2
call fcn.1400935e8
mov rcx, rax
call fcn.1400a4b40
mov eax, dword [0x1400e02f8]
test al, 1
je 0x140038d21
call fcn.1400380c0
test al, al
je 0x140038d21
mov dword [rsp + 0xb0], 0xaaaaaaaa
movzx r8d, byte [rsp + 0x8b7]
test r8b, r8b
cmovs r8d, dword [rsp + 0x8a8]
lea rdx, [rsp + 0x8a0]
cmovs rdx, qword [rsp + 0x8a0]
mov rcx, qword [0x1400e38b8]
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0xb0]
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [rsi + 8], 3
jne 0x140038db0
mov rcx, qword [0x1400e59f0]
lea rdi, [rsp + 0x8a0]
test rcx, rcx
je 0x140038d72
movzx eax, byte [rsp + 0x8b7]
test al, al
mov rdx, qword [rsp + 0x8a0]
cmovns rdx, rdi
mov qword [rsp + 0x70], rdx
cmovs rax, qword [rsp + 0x8a8]
mov qword [rsp + 0x78], rax
lea rdx, [rsp + 0x70]
call fcn.14004b070
lea rbx, [rsp + 0xb4]
mov r8d, 0x400
mov rcx, rbx
mov dl, 0xaa
call fcn.1400928e0
mov dword [rsp + 0xb0], 0xbedead01
mov dword [rsp + 0x4b4], 0x5050dead
cmp byte [rdi + 0x17], 0
jns 0x140038dbd
mov rdx, qword [rsp + 0x8a0]
jmp 0x140038dc5
lea rdi, [rsp + 0x8a0]
jmp 0x140038f07
lea rdx, [rsp + 0x8a0]
mov r8d, 0x400
mov rcx, rbx
call fcn.140045cc0
lea rcx, [rsp + 0xb0]
call fcn.14000e6e0
mov eax, dword [0x1400e38e0]
mov ecx, dword [0x1400e5988]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140039115
mov rax, qword [0x1400e38d0]
cmp rax, qword [0x1400e38d8]
jne 0x140038e1f
call fcn.140049fc0
jmp 0x140038f07
mov qword [rsp + 0x90], r13
mov eax, dword [0x1400e38e0]
mov ecx, dword [0x1400e5988]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140039150
lea rcx, [0x1400e38c0]
mov rdx, qword [0x1400e38d8]
test rdx, rdx
jne 0x140038e66
mov rdx, qword [0x1400e38c8]
add rdx, 0xffffffffffffffff
call fcn.140033050
lea rcx, [rsp + 0x90]
mov rdx, rax
call fcn.140044730
mov rbx, qword [rsp + 0x90]
test rbx, rbx
je 0x140038efa
cmp byte [rdi + 0x17], 0
jns 0x140038e9c
mov rbp, qword [rsp + 0x8a0]
jmp 0x140038ea4
lea rbp, [rsp + 0x8a0]
lea rcx, [r12 + rbp]
mov qword [rsp + 0x60], rcx
test rbp, rbp
je 0x140038eb9
call fcn.1400a6650
jmp 0x140038ebb
xor eax, eax
mov qword [rsp + 0x68], rax
mov rax, qword [rsi + 0x118]
sub r12, rax
add rbp, rax
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], r12
mov r8d, dword [rsi + 0x128]
mov rdx, qword [rsi + 0x120]
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x50]
mov rcx, rbx
call qword [rbx + 8]
lea rcx, [rsp + 0x90]
call fcn.140044710
cmp byte [rdi + 0x17], 0
jns 0x140038f1a
mov rcx, qword [rsp + 0x8a0]
call fcn.14008f3a4
lea rcx, [rsi + 0x138]
call fcn.140049c40
mov rax, qword [rsi + 0x10]
movsxd rax, dword [rax + 4]
lea rcx, [0x1400bafe8]
mov qword [rsi + rax + 0x10], rcx
lea rax, [0x1400baf80]
mov qword [rsi + 0x18], rax
cmp byte [rsi + 0x6f], 0
lea rsi, [rsi + 0x80]
jns 0x140038f5b
mov rcx, qword [r15 + 0x48]
call fcn.14008f3a4
mov rcx, r14
call fcn.14001284a
mov rcx, r14
call fcn.14000e6e0
mov rcx, rsi
call fcn.140012844
mov rcx, qword [rsp + 0x1078]
xor rcx, rsp
call fcn.14008f710
movaps xmm6, xmmword [rsp + 0x1080]
add rsp, 0x1098
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, byte [rsp + 0x8b7]
test al, al
mov rcx, qword [rsp + 0x8a0]
cmovns rcx, rbx
cmovs rax, qword [rsp + 0x8a8]
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], rax
mov r8, qword [rsi + 0x118]
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x80]
mov r9, 0xffffffffffffffff
call fcn.1400475e0
mov ecx, 0x30
call fcn.14008f354
mov rdi, rax
mov r9d, dword [rsi + 0x128]
movups xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0xb0], xmm0
mov rdx, qword [rsi + 0x120]
lea r8, [rsp + 0xb0]
mov rcx, rax
call fcn.14004b520
call sub.KERNEL32.dll_GetCurrentThreadId
mov ebp, eax
mov qword [rsp + 0xa8], r13
lea rcx, [rsp + 0xa8]
call fcn.14004b8e0
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xc0], xmm6
mov qword [rsp + 0xd0], r13
mov word [rsp + 0xb0], 0x801
lea rax, str.message
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc8], rdi
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], ebp
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0x8008
lea rdx, [0x1400e07f0]
lea r8, str.LogMessage
mov cl, 0x49
xor r9d, r9d
call fcn.14004fa90
mov al, byte [rsp + 0xb0]
test al, al
je 0x140038bf5
xor edi, edi
jmp 0x1400390ea
add rdi, 1
movzx ecx, al
cmp rdi, rcx
jae 0x140038bf5
cmp byte [rsp + rdi + 0xb1], 8
jne 0x1400390da
mov rcx, qword [rsp + rdi*8 + 0xc8]
test rcx, rcx
je 0x1400390da
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
movzx eax, byte [rsp + 0xb0]
jmp 0x1400390da
lea rcx, [0x1400e38e0]
call fcn.14008f4c0
cmp dword [0x1400e38e0], 0xffffffff
jne 0x140038e05
xorps xmm0, xmm0
movups xmmword [0x1400e38d0], xmm0
movups xmmword [0x1400e38c0], xmm0
lea rcx, [0x1400e38e0]
call fcn.14008f558
jmp 0x140038e05
lea rcx, [0x1400e38e0]
call fcn.14008f4c0
cmp dword [0x1400e38e0], 0xffffffff
jne 0x140038e4c
xorps xmm0, xmm0
movups xmmword [0x1400e38d0], xmm0
movups xmmword [0x1400e38c0], xmm0
lea rcx, [0x1400e38e0]
call fcn.14008f558
jmp 0x140038e4c