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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x490
mov r12, rcx
mov rax, qword [0x140113018]
xor rax, rsp
mov qword [rsp + 0x488], rax
lea rax, [0x1400f7f08]
mov qword [rcx], rax
lea r15, [rcx + 0x10]
mov rax, qword [rcx + 0x10]
movsxd rcx, dword [rax + 4]
test byte [r12 + rcx + 0x30], 5
jne 0x1400396b2
mov rcx, qword [r15 + rcx + 0x28]
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov dword [rsp + 0x20], 0x10
lea rbx, [rsp + 0x80]
mov rdx, rbx
xor r8d, r8d
mov r9d, 1
call qword [0x140131010]
mov r13, qword [rbx + 8]
mov rax, qword [r15]
movsxd rcx, dword [rax + 4]
add rcx, r15
lea rsi, [rsp + 0x80]
mov rdx, rsi
call fcn.14005ce00
lea rdx, [0x140120ac8]
mov rcx, rsi
call fcn.14005d610
mov rcx, qword [rax]
mov rdi, qword [rcx + 0x38]
mov rcx, rax
mov dl, 0xa
mov rax, rdi
call qword [0x140131010]
mov ebx, eax
mov rcx, rsi
call fcn.14005cf10
mov rcx, r15
mov edx, ebx
call fcn.14001a780
mov rcx, r15
call fcn.140019b30
lea r14, [r12 + 0x18]
movabs rsi, 0xaaaaaaaaaaaaaaaa
lea rbx, [rsp + 0x60]
mov qword [rbx + 0x10], rsi
movaps xmm0, xmmword [0x1400f69f0]
movaps xmmword [rbx], xmm0
mov rcx, r14
mov rdx, rbx
call fcn.14001a9d0
test byte [0x140115850], 0x19
jne 0x1400396be
mov rax, qword [0x140122230]
test rax, rax
je 0x1400395a7
mov r9, qword [r12 + 0x118]
mov r8d, dword [r12 + 0x128]
mov rdx, qword [r12 + 0x120]
mov ecx, dword [r12 + 8]
mov qword [rsp + 0x20], rbx
call qword [0x140131010]
test al, al
jne 0x14003961e
mov eax, dword [0x140115350]
test al, 2
jne 0x1400396de
test al, 4
jne 0x1400395c6
cmp dword [r12 + 8], 2
jl 0x14003960a
cmp eax, 1
ja 0x14003960a
mov ecx, 2
call fcn.140085bf8
lea rcx, [rsp + 0x60]
movzx edx, byte [rcx + 0x17]
test dl, dl
cmovs rdx, qword [rcx + 8]
cmovs rcx, qword [rcx]
mov r8d, 1
mov r9, rax
call fcn.1400989a4
mov ecx, 2
call fcn.140085bf8
mov rcx, rax
call fcn.140098650
mov eax, dword [0x140115350]
test al, 1
jne 0x1400396fe
cmp dword [r12 + 8], 3
je 0x14003974b
cmp byte [rsp + 0x77], 0
jns 0x14003962f
mov rcx, qword [rsp + 0x60]
call fcn.140081674
lea rcx, [r12 + 0x12c]
call fcn.140073240
lea rbx, [r12 + 0x80]
mov rax, qword [r12 + 0x10]
movsxd rax, dword [rax + 4]
lea rcx, [0x1400f7b58]
mov qword [r12 + rax + 0x10], rcx
lea rax, [0x1400f7dd0]
mov qword [r12 + 0x18], rax
cmp byte [r12 + 0x6f], 0
jns 0x140039676
mov rcx, qword [r15 + 0x48]
call fcn.140081674
mov rcx, r14
call fcn.140057e90
mov rcx, r14
call fcn.140058180
mov rcx, rbx
call fcn.140057e80
mov rcx, qword [rsp + 0x488]
xor rcx, rsp
call fcn.140081fe0
nop
add rsp, 0x490
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r13, 0xffffffffffffffff
jmp 0x1400394de
lea rdx, [rsp + 0x80]
mov qword [rdx], r12
mov qword [rdx + 8], rbx
lea rcx, str.LogMessage
call fcn.1400ceb50
jmp 0x14003956f
cmp byte [rsp + 0x77], 0
jns 0x1400396ea
mov rbx, qword [rsp + 0x60]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x140115350]
jmp 0x1400395b5
call fcn.1400ce7e0
test al, al
je 0x140039612
lea r9, [rsp + 0x80]
mov dword [r9], 0xaaaaaaaa
lea rdx, [rsp + 0x60]
movzx r8d, byte [rdx + 0x17]
test r8b, r8b
cmovs r8d, dword [rdx + 8]
cmovs rdx, qword [rdx]
mov rcx, qword [0x140122248]
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x140039612
mov rcx, qword [0x140122308]
test rcx, rcx
je 0x14003977f
lea rax, [rsp + 0x60]
movzx ebx, byte [rax + 0x17]
test bl, bl
mov rdi, qword [rax]
cmovns rdi, rax
lea rdx, [rsp + 0x50]
mov qword [rdx], rdi
cmovs rbx, qword [rax + 8]
mov qword [rdx + 8], rbx
call fcn.1400d1640
lea rbx, [rsp + 0x80]
mov r8d, 0x400
mov rcx, rbx
mov dl, 0xaa
call fcn.140084d10
cmp byte [rsp + 0x77], 0
jns 0x1400397a5
mov rdx, qword [rsp + 0x60]
jmp 0x1400397aa
lea rdx, [rsp + 0x60]
mov r8d, 0x400
mov rcx, rbx
call fcn.140065a30
mov rcx, rbx
call fcn.140058180
call fcn.1400ceae0
mov rcx, qword [rax + 0x10]
cmp rcx, qword [rax + 0x18]
je 0x14003988d
mov qword [rsp + 0x48], rsi
call fcn.1400ceae0
mov rcx, qword [rax + 8]
mov rdx, qword [rax + 0x18]
test rdx, rdx
cmove rdx, rcx
dec rdx
cmp rcx, rdx
jb 0x140039890
shl rdx, 3
add rdx, qword [rax]
lea rsi, [rsp + 0x48]
mov rcx, rsi
call fcn.140065440
mov rbx, qword [rsi]
test rbx, rbx
je 0x14003987e
cmp byte [rsp + 0x77], 0
jns 0x140039822
mov rsi, qword [rsp + 0x60]
jmp 0x140039827
lea rsi, [rsp + 0x60]
mov rcx, rsi
add rcx, r13
mov qword [rsp + 0x38], rcx
je 0x140039893
call fcn.14009a7e0
lea rcx, [rsp + 0x38]
mov qword [rcx + 8], rax
mov rax, qword [r12 + 0x118]
sub r13, rax
add rsi, rax
lea r9, [rsp + 0x28]
mov qword [r9], rsi
mov qword [r9 + 8], r13
mov r8d, dword [r12 + 0x128]
mov rdx, qword [r12 + 0x120]
mov rax, qword [rbx + 8]
mov qword [rsp + 0x20], rcx
mov rcx, rbx
call qword [0x140131010]
lea rcx, [rsp + 0x48]
call fcn.140065420
jmp 0x14003961e
int3
int3
int3