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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x430]
sub rsp, 0x530
mov rax, qword [0x1400d61c0]
xor rax, rsp
mov qword [rbp + 0x420], rax
lea r15, [rcx + 8]
mov rsi, rcx
xor r13d, r13d
lea rdx, [rbp - 0x30]
mov rcx, r15
mov dword [rsp + 0x30], r13d
call fcn.140026920
mov dl, 0xa
mov r12, qword [rax + 8]
add r12, qword [rax]
mov rax, qword [r15]
movsxd rcx, dword [rax + 4]
add rcx, r15
call fcn.140027570
movzx edx, al
mov rcx, r15
call fcn.1400278b0
mov rcx, r15
call fcn.140005130
lea rcx, [rsi + 0x10]
lea rdx, [rbp]
call fcn.140027150
mov rax, qword [0x1400da518]
test rax, rax
je 0x140025421
mov r9, qword [rsi + 0xf0]
lea rcx, [rbp]
mov r8d, dword [rsi + 0x100]
mov rdx, qword [rsi + 0xf8]
mov qword [rsp + 0x20], rcx
mov ecx, dword [rsi]
call rax
test al, al
jne 0x1400256db
test byte [0x1400d6d10], 2
mov r14d, 1
je 0x140025446
cmp qword [rbp + 0x18], 0x10
lea rcx, [rbp]
cmovae rcx, qword [rbp]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x14002544b
cmp dword [rsi], 2
jl 0x14002548a
cmp qword [rbp + 0x18], 0x10
lea rdi, [rbp]
mov rbx, qword [rbp + 0x10]
mov ecx, 2
cmovae rdi, qword [rbp]
call fcn.140089540
mov r9, rax
mov r8, r14
mov rdx, rbx
mov rcx, rdi
call fcn.14008b4e0
mov ecx, 2
call fcn.140089540
mov rcx, rax
call fcn.14008ad40
test byte [0x1400d6d10], r14b
je 0x1400254c5
call fcn.140024ab0
test al, al
je 0x1400254c5
cmp qword [rbp + 0x18], 0x10
lea rdx, [rbp]
mov r8d, dword [rbp + 0x10]
lea r9, [rsp + 0x50]
cmovae rdx, qword [rbp]
mov rcx, qword [0x1400da510]
mov qword [rsp + 0x20], r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [rsi], 3
jne 0x1400256db
mov rcx, qword [0x1400dc758]
test rcx, rcx
je 0x14002550b
cmp qword [rbp + 0x18], 0x10
lea rax, [rbp]
lea rdx, [rsp + 0x70]
cmovae rax, qword [rbp]
mov qword [rsp + 0x60], rax
mov rax, qword [rbp + 0x10]
mov qword [rsp + 0x68], rax
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x70], xmm0
call fcn.14003e060
mov r8d, 0x400
lea rdx, [rbp]
cmp qword [rbp + 0x10], r8
cmovb r8, qword [rbp + 0x10]
cmp qword [rbp + 0x18], 0x10
cmovae rdx, qword [rbp]
test r8, r8
je 0x140025536
lea rcx, [rbp + 0x20]
call fcn.140082000
lea rcx, [rbp + 0x20]
call fcn.140037830
mov rax, qword [0x1400da530]
test rax, rax
je 0x1400256cd
cmp rax, r14
je 0x140025564
mov rax, qword [0x1400da530]
test rax, rax
je 0x1400256cd
lea rcx, [0x1400da530]
call fcn.140026fe0
cmp qword [rax + 0x20], r13
je 0x1400256cd
lea rcx, [0x1400da530]
call fcn.140026fe0
mov rcx, qword [rax]
mov rbx, qword [rax + 0x20]
add rbx, qword [rax + 0x18]
mov rax, r13
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x38], rbx
mov qword [rbp - 0x48], rcx
test rcx, rcx
je 0x1400255b4
mov rdx, qword [rcx]
test rdx, rdx
je 0x1400255b4
mov rax, qword [rdx]
mov qword [rbp - 0x60], rax
dec rbx
mov qword [rbp - 0x50], rbx
test rax, rax
je 0x1400255d9
mov rax, qword [rax]
test rax, rax
je 0x1400255d9
mov rax, qword [rax]
mov qword [rbp - 0x18], rax
test rax, rax
je 0x1400255d9
mov rdx, qword [rax]
jmp 0x1400255dc
mov rdx, r13
mov rax, qword [rdx + 0x10]
mov rcx, rbx
dec rax
shr rcx, 1
and rcx, rax
and ebx, r14d
mov rax, qword [rdx + 8]
mov rax, qword [rax + rcx*8]
mov rbx, qword [rax + rbx*8]
test rbx, rbx
je 0x1400256db
lock xadd dword [rbx], r14d
mov r8, qword [rbp + 0x18]
lea rcx, [rbp]
mov rdx, qword [rbp]
cmp r8, 0x10
cmovae rcx, rdx
or rdi, 0xffffffffffffffff
add rcx, r12
mov qword [rsp + 0x40], rcx
test rcx, rcx
jne 0x140025635
mov qword [rsp + 0x48], r13
jmp 0x140025652
cmp byte [rcx], r13b
jne 0x140025641
mov qword [rsp + 0x48], r13
jmp 0x140025652
mov rax, rdi
inc rax
cmp byte [rcx + rax], r13b
jne 0x140025644
mov qword [rsp + 0x48], rax
movaps xmm0, xmmword [rsp + 0x40]
lea rax, [rbp]
mov rcx, qword [rsi + 0xf0]
lea r9, [rbp - 0x70]
cmp r8, 0x10
movdqa xmmword [rbp - 0x80], xmm0
lea r8, [rsp + 0x30]
cmovae rax, rdx
sub r12, rcx
add rax, rcx
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], rax
lea rdx, [rsp + 0x40]
mov eax, dword [rsi + 0x100]
mov rcx, rbx
movaps xmm0, xmmword [rsp + 0x40]
mov dword [rsp + 0x30], eax
mov rax, qword [rsi + 0xf8]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x20], rax
movdqa xmmword [rbp - 0x70], xmm0
call qword [rbx + VariantCopy]
lock xadd dword [rbx], edi
cmp edi, 1
jne 0x1400256db
mov rcx, rbx
call qword [rbx + 0x10]
jmp 0x1400256db
cmp byte [0x1400dc868], r13b
jne 0x14002578b
int3
mov rax, qword [rbp + 0x18]
cmp rax, 0x10
jb 0x140025729
mov rcx, qword [rbp]
inc rax
cmp rax, 0x1000
jb 0x140025724
test cl, 0x1f
jne 0x140025794
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x14002579a
sub rcx, rax
cmp rcx, 8
jb 0x1400257a0
cmp rcx, 0x27
ja 0x1400257a6
mov rcx, rax
call fcn.140080c40
mov ecx, dword [rsi + 0x104]
call qword [sym.imp.KERNEL32.dll_SetLastError]
lea rcx, [r15 + 0x88]
call fcn.1400261d0
lea rax, vtable.std::ios_base.0
lea rcx, [r15 + 0x88]
mov qword [r15 + 0x88], rax
call fcn.14008009c
mov rcx, qword [rbp + 0x420]
xor rcx, rsp
call fcn.1400812a0
lea r11, [rsp + 0x530]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, r14d
call fcn.14008912c
int3
call fcn.1400853c8
int3
call fcn.1400853c8
int3
call fcn.1400853c8
int3
call fcn.1400853c8
int3