Function at 0x1400e9e20
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 rsi, rcx
mov rax, qword [0x140203038]
xor rax, rsp
mov qword [rsp + 0x490], rax
lea rax, [0x1401d56c0]
mov qword [rcx], rax
lea r14, [rcx + 0x10]
lea rdi, [rcx + 0x18]
lea rbx, [rsp + 0x90]
mov rcx, rdi
mov rdx, rbx
call fcn.140045798
movzx r12d, byte [rbx + 0x17]
test r12b, r12b
jns 0x1400e9e7f
mov r12, qword [rsp + 0x98]
jns 0x1400e9e8e
mov rcx, qword [rsp + 0x90]
call fcn.1400eb6ac
mov rax, qword [rsi + 0x10]
movsxd rcx, dword [rax + 4]
add rcx, r14
lea rbx, [rsp + 0x90]
mov rdx, rbx
call fcn.14006108c
lea rdx, [0x140217a50]
mov rcx, rbx
call fcn.1400644f0
mov rcx, qword [rax]
mov r8, qword [rcx + 0x38]
mov rcx, rax
mov dl, 0xa
mov rax, r8
call qword [case.0x140166830.0]
mov ebp, eax
mov rcx, rbx
call fcn.1400611ce
mov rcx, r14
mov edx, ebp
call fcn.140045610
mov rcx, r14
call fcn.140044ec4
movabs r13, 0xaaaaaaaaaaaaaaaa
lea r14, [rsp + 0x60]
mov qword [r14 + 0x10], r13
movaps xmm0, xmmword [0x1401d39f0]
movaps xmmword [r14], xmm0
mov rcx, rdi
mov rdx, r14
call fcn.140045798
movzx eax, byte [r14 + 0x17]
mov r8, rax
test al, al
jns 0x1400e9f23
mov r8, qword [rsp + 0x68]
mov rcx, qword [rsi + 0x118]
sub r8, rcx
jb 0x1400ea36b
js 0x1400ea36e
test al, al
jns 0x1400e9f42
mov r14, qword [rsp + 0x60]
add r14, rcx
lea r15, [rsp + 0x48]
mov rcx, r15
mov rdx, r14
call fcn.140046066
mov eax, dword [rsi + 0x128]
mov rcx, qword [rsi + 0x120]
mov dword [rsp + 0x8c], eax
mov qword [rsp + 0x80], rcx
test byte [0x140205f80], 0x19
jne 0x1400ea2f5
cmp byte [rsp + 0x5f], 0
jns 0x1400e9f8f
mov rcx, qword [rsp + 0x48]
call fcn.1400eb6ac
cmp dword [rsi + 8], 3
jne 0x1400e9fa2
cmp byte [0x140218e4c], 0
je 0x1400ea174
mov rax, qword [0x140218e00]
test rax, rax
je 0x1400e9fde
mov r9, qword [rsi + 0x118]
mov r8d, dword [rsi + 0x128]
mov rdx, qword [rsi + 0x120]
mov ecx, dword [rsi + 8]
lea r10, [rsp + 0x60]
mov qword [rsp + 0x20], r10
call qword [case.0x140166830.0]
test al, al
jne 0x1400ea06e
mov eax, dword [0x1402070d8]
test al, 2
je 0x1400ea007
cmp byte [rsp + 0x77], 0
jns 0x1400e9ff6
mov rcx, qword [rsp + 0x60]
jmp 0x1400e9ffb
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x1402070d8]
test al, 4
jne 0x1400ea016
cmp dword [rsi + 8], 2
jl 0x1400ea05c
cmp eax, 1
ja 0x1400ea05c
lea rbx, [rsp + 0x60]
movzx r14d, byte [rbx + 0x17]
test r14b, r14b
cmovs r14, qword [rbx + 8]
cmovs rbx, qword [rbx]
test r14, r14
je 0x1400ea05c
xor r15d, r15d
mov r8d, r14d
sub r8d, r15d
lea rdx, [rbx + r15]
mov ecx, 2
call fcn.140109728
test eax, eax
js 0x1400ea056
mov eax, eax
add r15, rax
cmp r14, r15
ja 0x1400ea034
mov eax, dword [0x1402070d8]
test al, 1
jne 0x1400ea0fa
cmp dword [rsi + 8], 3
je 0x1400ea147
cmp byte [rsp + 0x77], 0
jns 0x1400ea07f
mov rcx, qword [rsp + 0x60]
call fcn.1400eb6ac
lea rcx, [rsi + 0x12c]
call fcn.14007e180
mov rax, qword [rsi + 0x10]
movsxd rax, dword [rax + 4]
lea rcx, [0x1401d53c8]
mov qword [rsi + rax + 0x10], rcx
lea rax, [0x1401d53e0]
mov qword [rsi + 0x18], rax
cmp byte [rsi + 0x6f], 0
jns 0x1400ea0b9
mov rcx, qword [rsi + 0x58]
call fcn.1400eb6ac
sub rsi, 0xffffffffffffff80
mov rcx, rdi
call fcn.14004478e
mov rcx, rdi
call fcn.1400447b0
mov rcx, rsi
call fcn.140044788
mov rcx, qword [rsp + 0x490]
xor rcx, rsp
call fcn.1400ecd30
nop
add rsp, 0x498
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.14012d8e0
test al, al
je 0x1400ea064
lea r9, [rsp + 0x90]
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 [0x140218e18]
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x1400ea064
lea rbx, [rsp + 0x90]
mov r8d, 0x400
mov rcx, rbx
mov dl, 0xaa
call fcn.1400eee80
cmp byte [rsp + 0x77], 0
jns 0x1400ea202
mov rdx, qword [rsp + 0x60]
jmp 0x1400ea207
mov byte [0x140218e4c], 1
mov eax, dword [0x140218e58]
mov ecx, dword [0x1402136f0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400ea329
mov rcx, rsi
mov rdx, rbx
call fcn.140169cf0
movzx eax, byte [rsp + 0xa7]
test al, al
cmovs rbx, qword [rsp + 0x90]
cmovs rax, qword [rsp + 0x98]
lea rdx, [rsp + 0x48]
mov qword [rdx], rbx
mov qword [rdx + 8], rax
mov rcx, qword [0x140218e50]
call fcn.14006a560
cmp byte [rsp + 0xa7], 0
jns 0x1400ea1f6
mov rcx, qword [rsp + 0x90]
call fcn.1400eb6ac
mov byte [0x140218e4c], 0
jmp 0x1400e9fa2
lea rdx, [rsp + 0x60]
mov r8d, 0x400
mov rcx, rbx
call fcn.140070980
mov rcx, rbx
call fcn.1400447b0
call fcn.1400b0d30
mov rcx, qword [rax + 0x10]
cmp rcx, qword [rax + 0x18]
je 0x1400ea371
mov qword [rsp + 0x48], r13
call fcn.1400b0d30
mov rcx, qword [rax + 8]
mov rdx, qword [rax + 0x18]
test rdx, rdx
cmove rdx, rcx
dec rdx
cmp rcx, rdx
jb 0x1400ea374
shl rdx, 3
add rdx, qword [rax]
lea rbx, [rsp + 0x48]
mov rcx, rbx
call fcn.14003fde0
cmp qword [rbx], 0
jne 0x1400ea27e
lea rcx, [rsp + 0x48]
call fcn.140077b40
jmp 0x1400ea06e
cmp byte [rsp + 0x77], 0
jns 0x1400ea28c
mov rbx, qword [rsp + 0x60]
jmp 0x1400ea291
lea rbx, [rsp + 0x60]
mov rcx, rbx
add rcx, r12
mov qword [rsp + 0x38], rcx
jne 0x1400ea2a2
xor eax, eax
jmp 0x1400ea2a7
call fcn.1401136e0
mov qword [rsp + 0x40], rax
mov rax, qword [rsi + 0x118]
add rbx, rax
mov qword [rsp + 0x28], rbx
sub r12, rax
mov qword [rsp + 0x30], r12
js 0x1400ea377
mov r8d, dword [rsi + 0x128]
mov rdx, qword [rsi + 0x120]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x48]
lea r9, [rsp + 0x28]
call fcn.14012dbb0
jmp 0x1400ea26f
lea rax, [rsp + 0x80]
lea rdx, [rsp + 0x90]
mov qword [rdx], rax
lea rax, [rsp + 0x8c]
mov qword [rdx + 8], rax
mov qword [rdx + 0x10], r15
lea rcx, str.LogMessage
call fcn.1400b1120
jmp 0x1400e9f7e
lea rcx, [0x140218e58]
call fcn.1400eb7d0
cmp dword [0x140218e58], 0xffffffff
jne 0x1400ea1a0
lea rcx, str.LOG_FATAL
mov edx, 0x400
call fcn.1400ad270
mov qword [0x140218e50], rax
lea rcx, [0x140218e58]
call fcn.1400eb868
jmp 0x1400ea1a0
int3
int3
int3
int3
int3