Function at 0x1400f68f0
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
sub rsp, 0x498
mov r12, rcx
mov rax, qword [0x14030c028]
xor rax, rsp
mov qword [rsp + 0x490], rax
lea rax, [0x1402a1db0]
mov qword [rcx], rax
lea rsi, [rcx + 0x10]
lea r14, [rcx + 0x18]
lea rdx, [rsp + 0x90]
mov rcx, r14
call fcn.14001b7fe
movzx r13d, byte [rsp + 0xa7]
test r13b, r13b
jns 0x1400f695d
mov rcx, qword [rsp + 0x90]
mov r13, qword [rsp + 0x98]
call fcn.140255d7c
mov rax, qword [rsi]
movsxd rcx, dword [rax + 4]
add rcx, rsi
lea rdi, [rsp + 0x90]
mov rdx, rdi
call fcn.1400cb3e6
lea rdx, [0x140321918]
mov rcx, rdi
call fcn.1400e18e6
mov rcx, qword [rax]
mov rbp, qword [rcx + 0x38]
mov rcx, rax
mov dl, 0xa
mov rax, rbp
call qword [case.0x140112150.0]
mov ebx, eax
mov rcx, rdi
call fcn.1400cd5bc
mov rcx, rsi
mov edx, ebx
call fcn.14001b0e8
mov rcx, rsi
call fcn.14001a08e
movabs rsi, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x70], rsi
movaps xmm0, xmmword [0x14029de10]
movaps xmmword [rsp + 0x60], xmm0
lea rbx, [rsp + 0x60]
mov rcx, r14
mov rdx, rbx
call fcn.14001b7fe
test byte [0x14030f1a0], 0x19
jne 0x1400f6e82
cmp dword [r12 + 8], 3
jne 0x1400f6b16
cmp byte [0x1403227ac], 0
jne 0x1400f6b16
mov byte [0x1403227ac], 1
mov eax, dword [0x1403227b8]
mov ecx, dword [0x14031d424]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400f6f2d
mov rcx, r14
mov rdx, rdi
call fcn.14001b7fe
cmp byte [rsp + 0xa7], 0
jns 0x1400f6a51
mov rdi, qword [rsp + 0x90]
add rdi, qword [r12 + 0x118]
mov r15d, dword [r12 + 0x128]
mov rbp, qword [r12 + 0x120]
test rbp, rbp
je 0x1400f6a88
mov rcx, rbp
mov edx, 0x5c
call fcn.140259530
lea r8, [rax + 1]
test rax, rax
cmove r8, rbp
jmp 0x1400f6a8b
xor r8d, r8d
mov qword [rsp + 0x20], rdi
lea rdx, str._s:_d:__s
lea rdi, [rsp + 0x78]
mov rcx, rdi
mov r9d, r15d
call fcn.140102780
cmp byte [rsp + 0xa7], 0
jns 0x1400f6abe
mov rcx, qword [rsp + 0x90]
call fcn.140255d7c
movzx eax, byte [rsp + 0x8f]
test al, al
cmovs rdi, qword [rsp + 0x78]
cmovs rax, qword [rsp + 0x80]
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x98], rax
mov rcx, qword [0x1403227b0]
lea rdx, [rsp + 0x90]
call fcn.140155210
cmp byte [rsp + 0x8f], 0
jns 0x1400f6b0f
mov rcx, qword [rsp + 0x78]
call fcn.140255d7c
mov byte [0x1403227ac], 0
mov rax, qword [0x140322760]
test rax, rax
je 0x1400f6b52
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 [case.0x140112150.0]
test al, al
jne 0x1400f6df0
mov eax, dword [0x14030ebf8]
test al, 2
je 0x1400f6b77
cmp byte [rsp + 0x77], 0
jns 0x1400f6b68
mov rbx, qword [rsp + 0x60]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x14030ebf8]
test al, 4
jne 0x1400f6b88
cmp dword [r12 + 8], 2
jl 0x1400f6bd8
cmp eax, 1
ja 0x1400f6bd8
movzx edi, byte [rsp + 0x77]
test dil, dil
cmovs rdi, qword [rsp + 0x68]
lea rbx, [rsp + 0x60]
cmovs rbx, qword [rsp + 0x60]
test rdi, rdi
je 0x1400f6bd8
xor ebp, ebp
nop dword [rax + rax]
mov r8d, edi
sub r8d, ebp
lea rdx, [rbx + rbp]
mov ecx, 2
call fcn.14027373c
test eax, eax
js 0x1400f6bd2
mov eax, eax
add rbp, rax
cmp rbp, rdi
jb 0x1400f6bb0
mov eax, dword [0x14030ebf8]
test al, 1
je 0x1400f6c28
call fcn.1400f6030
test al, al
je 0x1400f6c28
mov dword [rsp + 0x90], 0xaaaaaaaa
movzx r8d, byte [rsp + 0x77]
test r8b, r8b
cmovs r8d, dword [rsp + 0x68]
lea rdx, [rsp + 0x60]
cmovs rdx, qword [rsp + 0x60]
mov rcx, qword [0x140322778]
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [r12 + 8], 3
jne 0x1400f6df0
mov rcx, qword [0x140322708]
test rcx, rcx
je 0x1400f6c6c
movzx eax, byte [rsp + 0x77]
test al, al
lea rdx, [rsp + 0x60]
cmovs rdx, qword [rsp + 0x60]
mov qword [rsp + 0x50], rdx
cmovs rax, qword [rsp + 0x68]
mov qword [rsp + 0x58], rax
lea rdx, [rsp + 0x50]
call fcn.1400f13b0
lea rdi, [rsp + 0x90]
mov r8d, 0x400
mov rcx, rdi
mov dl, 0xaa
call fcn.140259320
cmp byte [rsp + 0x77], 0
jns 0x1400f6c92
mov rdx, qword [rsp + 0x60]
jmp 0x1400f6c97
lea rdx, [rsp + 0x60]
mov r8d, 0x400
mov rcx, rdi
call fcn.140102160
mov rcx, rdi
call fcn.140019da0
mov eax, dword [0x1403227a8]
mov ecx, dword [0x14031d424]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400f6eb7
mov rax, qword [0x140322798]
cmp rax, qword [0x1403227a0]
je 0x1400f6f6f
mov qword [rsp + 0x78], rsi
mov eax, dword [0x1403227a8]
mov ecx, dword [0x14031d424]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400f6ef2
mov rdx, qword [0x1403227a0]
test rdx, rdx
mov rax, qword [0x140322790]
cmove rdx, rax
dec rdx
cmp rax, rdx
jb 0x1400f6f72
shl rdx, 3
add rdx, qword [0x140322788]
lea rcx, [rsp + 0x78]
call fcn.1400ebd30
mov rdi, qword [rsp + 0x78]
test rdi, rdi
je 0x1400f6de6
cmp byte [rsp + 0x77], 0
jns 0x1400f6d62
mov rsi, qword [rsp + 0x60]
jmp 0x1400f6d67
lea rsi, [rsp + 0x60]
mov rcx, rsi
add rcx, r13
mov qword [rsp + 0x40], rcx
je 0x1400f6f75
call fcn.14027a170
mov qword [rsp + 0x48], rax
mov rax, qword [r12 + 0x118]
sub r13, rax
add rsi, rax
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], r13
mov r8d, dword [r12 + 0x128]
mov rdx, qword [r12 + 0x120]
mov eax, 1
lock xadd dword [rdi], eax
test eax, eax
jle 0x1400f6f78
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx + 8]
lea rbp, [rsp + 0x40]
mov qword [rsp + 0x20], rbp
lea r9, [rsp + 0x30]
call qword [case.0x140112150.0]
lock dec dword [rdi]
jne 0x1400f6de6
mov rcx, rdi
call fcn.1400ebc00
lea rcx, [rsp + 0x78]
call fcn.1400ebd10
cmp byte [rsp + 0x77], 0
jns 0x1400f6e01
mov rcx, qword [rsp + 0x60]
call fcn.140255d7c
lea rcx, [r12 + 0x12c]
call fcn.140155180
mov rax, qword [r12 + 0x10]
movsxd rax, dword [rax + 4]
lea rcx, [0x1402a1188]
mov qword [r12 + rax + 0x10], rcx
lea rax, [0x1402a1190]
mov qword [r12 + 0x18], rax
cmp byte [r12 + 0x6f], 0
jns 0x1400f6e41
mov rcx, qword [r12 + 0x58]
call fcn.140255d7c
sub r12, 0xffffffffffffff80
mov rcx, r14
call fcn.140019d4a
mov rcx, r14
call fcn.140019da0
mov rcx, r12
call fcn.140019d44
mov rcx, qword [rsp + 0x490]
xor rcx, rsp
call fcn.140257200
nop
add rsp, 0x498
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x90], r12
mov qword [rsp + 0x98], rbx
lea rcx, str.LogMessage
lea rdx, [rsp + 0x90]
call fcn.1400f6f80
cmp dword [r12 + 8], 3
je 0x1400f69fb
jmp 0x1400f6b16
lea rcx, [0x1403227a8]
call fcn.140255ea0
cmp dword [0x1403227a8], 0xffffffff
jne 0x1400f6cd2
xorps xmm0, xmm0
movups xmmword [0x140322798], xmm0
movups xmmword [0x140322788], xmm0
lea rcx, [0x1403227a8]
call fcn.140255f38
jmp 0x1400f6cd2
lea rcx, [0x1403227a8]
call fcn.140255ea0
cmp dword [0x1403227a8], 0xffffffff
jne 0x1400f6d10
xorps xmm0, xmm0
movups xmmword [0x140322798], xmm0
movups xmmword [0x140322788], xmm0
lea rcx, [0x1403227a8]
call fcn.140255f38
jmp 0x1400f6d10
lea rcx, [0x1403227b8]
call fcn.140255ea0
cmp dword [0x1403227b8], 0xffffffff
jne 0x1400f6a34
lea rcx, str.LOG_FATAL
mov edx, 0x400
call fcn.1401551e0
mov qword [0x1403227b0], rax
lea rcx, [0x1403227b8]
call fcn.140255f38
jmp 0x1400f6a34
int3
int3
int3
int3