Function at 0x140044c30
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x20], r9
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x520
lea rbp, [rsp + 0x40]
mov r12, rcx
mov qword [rbp + 0x530], rbx
mov rbx, r8
mov r13, rdx
mov r8, qword [rdx + 8]
movzx esi, byte [r8 + 0xa4]
mov ecx, esi
sub ecx, 1
je 0x14004516f
sub ecx, 1
je 0x140044fa6
sub ecx, 1
je 0x140044f3c
cmp ecx, 1
je 0x140044d21
mov rdx, qword [rbx + 0x40]
lea rcx, [r12 + 0x10]
mov rax, qword [rbp + 0x540]
xor r14d, r14d
mov rdx, qword [rdx + 0x110]
mov dword [rax], r14d
call fcn.140025b30
cmp rsi, 5
jb 0x140044cbf
mov rax, qword [str._unknown_]
jmp 0x140044cca
lea rcx, str._unknown_
mov rax, qword [rcx + rsi*8]
mov r9d, esi
mov qword [rsp + 0x20], rax
lea r8, str.Unknown_action_type__d___s_
mov edx, 0x400
lea rcx, [rbp + 0xe0]
call fcn.1400033a0
mov rdi, 0xffffffffffffffff
lea rax, [rbp + 0xe0]
mov r8, rdi
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], r14b
jne 0x140044d00
lea rdx, [rbp + 0xe0]
mov rcx, r12
call fcn.140025b90
mov dword [r12], edi
jmp 0x14004543d
mov rcx, qword [rbx + 0x40]
add rcx, 0x40
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, qword [rbx + 0x40]
add rcx, 0x68
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rdx, qword [r13 + 8]
xor r14d, r14d
movsxd rcx, dword [rdx + 8]
lea rax, [rdx + 8]
lea rdi, [r14 - 1]
lea rsi, [rax + rcx]
mov eax, r14d
sub eax, ecx
movsxd rcx, dword [rdx]
neg eax
sbb rax, rax
and rsi, rax
lea r15, [rdx + rcx]
mov eax, r14d
sub eax, ecx
neg eax
sbb rax, rax
and r15, rax
mov eax, dword [rdx + 0xac]
cmp qword [0x1400988b8], r14
mov dword [rbp + 0x538], eax
jne 0x140044d97
cmp byte [0x140098f68], r14b
je 0x140044e51
lea rcx, [0x1400988c0]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [0x1400988ec]
mov eax, dword [rbp + 0x538]
add edx, 0x18
mov dword [rbp], eax
test r15, r15
jne 0x140044dc7
mov ecx, r14d
mov dword [rbp + 0x30], r14d
mov eax, r14d
jmp 0x140044dde
mov rcx, rdi
nop word [rax + rax]
inc rcx
cmp byte [r15 + rcx], r14b
jne 0x140044dd0
mov dword [rbp + 0x30], ecx
mov eax, edx
add edx, ecx
mov qword [rbp + 0x58], r15
mov dword [rbp + 4], eax
test rsi, rsi
jne 0x140044df5
mov dword [rbp + 0x34], r14d
mov eax, r14d
jmp 0x140044e10
mov rax, rdi
nop dword [rax + rax]
inc rax
cmp byte [rsi + rax], r14b
jne 0x140044e00
mov dword [rbp + 0x34], eax
lea r14d, [rdx + 5]
add edx, 0xa
mov dword [rbp + 0xac], 2
add eax, edx
mov qword [rbp + 0x60], rsi
mov r9d, 8
mov dword [rbp + 0xa8], eax
lea rdx, [rbp]
mov dword [rbp + 8], r14d
lea rcx, [rbp + 0x30]
lea r8d, [r9 + 4]
call fcn.140025270
lea rcx, [0x1400988c0]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, qword [rbx + 0x40]
mov r8d, 0xffffffff
lea rdx, [rax + 0x68]
lea rcx, [rax + 0x30]
call qword [sym.imp.KERNEL32.dll_SleepConditionVariableCS]
test eax, eax
je 0x140045467
mov rcx, qword [rbx + 0x40]
mov rax, qword [r13 + 8]
mov edx, dword [rcx + 0x90]
mov r8d, dword [rax + 0xac]
cmp edx, r8d
je 0x140044e93
cmp edx, edi
jne 0x140045474
add rcx, 0x68
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [rbx + 0x40]
add rcx, 0x40
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xorps xmm0, xmm0
movups xmmword [r12], xmm0
movups xmmword [r12 + 0x10], xmm0
movups xmmword [r12 + 0x20], xmm0
mov rax, qword [rbx + 0x40]
cmp dword [rax + 0x90], edi
jne 0x14004543d
mov dword [r12], edi
lea rcx, [r12 + 0x10]
mov rdx, qword [rbx + 0x40]
mov rdx, qword [rdx + 0x110]
call fcn.140025b30
mov rax, qword [rbx + 0x40]
mov rdx, qword [rax + 0x98]
inc rdi
cmp byte [rdx + rdi], 0
jne 0x140044ef3
mov r8, rdi
mov rcx, r12
call fcn.140025b90
mov rax, qword [rbx + 0x40]
mov rcx, qword [rax + 0x98]
test rcx, rcx
je 0x14004543d
mov rdx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
mov rax, qword [rax + 0x110]
neg rdx
lock xadd qword [rax], rdx
call fcn.1400578b0
jmp 0x14004543d
movsxd rcx, dword [r8 + 0x3c]
lea r10, [r8 + 0x2c]
movsxd r9, dword [r8 + 0x28]
xor r14d, r14d
movsxd r11, dword [r10]
mov rbx, qword [rbx + 0x40]
mov rax, qword [rbp + 0x540]
lea rdx, [r10 + r11]
mov dword [rax], r14d
lea rax, [r8 + 0x3c]
lea r8, [rax + rcx]
mov eax, r14d
sub eax, ecx
mov rcx, r12
neg eax
sbb rax, rax
sub r14d, r11d
and r8, rax
neg r14d
sbb rax, rax
and rdx, rax
mov rax, qword [rbx + 0x110]
mov qword [rsp + 0x28], rax
mov rax, qword [rbx + 0x1d0]
mov qword [rsp + 0x20], rax
call fcn.140003400
jmp 0x14004543d
movsxd rcx, dword [r8 + 0x3c]
xor r14d, r14d
mov rax, qword [rbp + 0x540]
xorps xmm0, xmm0
mov dword [rax], r14d
mov rax, qword [rbx + 0x40]
movsxd rbx, dword [r8 + 4]
mov dword [rbp + 0x520], ebx
mov rdi, qword [rax + 0x110]
lea rax, [r8 + 0x3c]
lea rdx, [rax + rcx]
mov eax, r14d
sub eax, ecx
neg eax
sbb rax, rax
and rdx, rax
mov eax, r14d
movsxd rcx, dword [rdx]
sub eax, ecx
neg eax
lea rsi, [rdx + rcx]
sbb rax, rax
movsxd rcx, dword [r8 + 8]
lea rdx, [0x140088db0]
and rsi, rax
mov dword [rbp + 0x538], ecx
lea rax, [r8 + 8]
movups xmmword [r12], xmm0
lea r15, [rax + rcx]
mov rcx, rsi
movups xmmword [r12 + 0x10], xmm0
movups xmmword [r12 + 0x20], xmm0
call fcn.140014890
mov r13, rax
test rax, rax
jne 0x1400450ae
mov ebx, 0x2800
mov dword [r12 + 0x20], r14d
mov qword [r12 + 0x18], rbx
lea ecx, [rbx + 8]
call fcn.140057c1c
mov qword [rax], rbx
lock xadd qword [rdi], rbx
add rax, 8
mov qword [r12 + 0x10], rax
mov byte [rax], r14b
mov qword [r12 + 0x28], rdi
call fcn.14005688c
mov ecx, dword [rax]
call fcn.1400568ac
mov r9, rsi
mov qword [rsp + 0x20], rax
lea r8, str.Error_opening_for_writing_the_file:__s__error:__s
mov edx, 0x400
lea rcx, [rbp + 0xe0]
call fcn.1400033a0
lea rax, [rbp + 0xe0]
mov rdi, 0xffffffffffffffff
nop dword [rax]
inc rdi
cmp byte [rax + rdi], r14b
jne 0x1400450a0
jmp 0x140045150
cmp dword [rbp + 0x538], r14d
mov r9, r13
mov r8, rbx
mov edx, 1
cmove r15, r14
mov rcx, r15
call fcn.140056750
mov rcx, r13
mov r15, rax
call fcn.14005649c
cmp r15, rbx
je 0x14004543d
mov ebx, 0x2800
mov dword [r12 + 0x20], r14d
mov qword [r12 + 0x18], rbx
lea ecx, [rbx + 8]
call fcn.140057c1c
mov qword [rax], rbx
lock xadd qword [rdi], rbx
mov r9d, dword [rbp + 0x520]
lea r8, str.fwrite_was_supposed_to_write__d_bytes_to__s__but_wrote__zd_bytes
add rax, 8
mov qword [rsp + 0x28], r15
mov qword [r12 + 0x10], rax
lea rcx, [rbp + 0xe0]
mov edx, 0x400
mov qword [rsp + 0x20], rsi
mov byte [rax], r14b
mov qword [r12 + 0x28], rdi
call fcn.1400033a0
lea rax, [rbp + 0xe0]
mov rdi, 0xffffffffffffffff
inc rdi
cmp byte [rax + rdi], r14b
jne 0x140045147
mov r8, rdi
lea rdx, [rbp + 0xe0]
mov rcx, r12
call fcn.140025b90
mov dword [r12], 1
jmp 0x14004543d
movsxd r15, dword [r8 + 0x70]
mov rax, r15
shl rax, 4
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x14004518d
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.14004cea0
sub rsp, rcx
xor r14d, r14d
lea rsi, [rsp + 0x40]
test r15d, r15d
jle 0x14004524a
mov r10d, r14d
mov r11, rsi
nop dword [rax]
nop word [rax + rax]
mov rax, qword [r13 + 8]
lea r9, [r10*8]
add rax, 0x74
lea r11, [r11 + 0x10]
movsxd rcx, dword [rax]
lea r8, [rax + rcx]
mov eax, r14d
sub eax, ecx
neg eax
sbb rax, rax
and r8, rax
mov eax, r14d
add r8, r9
movsxd rcx, dword [r8]
sub eax, ecx
neg eax
sbb rax, rax
lea rdx, [r8 + rcx]
and rdx, rax
mov qword [r11 - 0x10], rdx
mov rax, qword [r13 + 8]
add rax, 0x74
movsxd rcx, dword [rax]
lea rdx, [rax + rcx]
mov eax, r14d
sub eax, ecx
neg eax
sbb rax, rax
and rax, rdx
add rax, 4
add rax, r9
movsxd rcx, dword [rax]
lea rdx, [rax + rcx]
mov eax, r14d
sub eax, ecx
neg eax
sbb rax, rax
inc r10
and rdx, rax
mov qword [r11 - 8], rdx
cmp r10, r15
jl 0x1400451c0
mov rax, qword [r13 + 8]
lea rcx, [rbp + 0x538]
mov qword [rbp + 0x10], rax
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x14004545a
mov rax, qword [rbp + 0x538]
xor edx, edx
sub rax, qword [0x140098f18]
mov r9, rsi
imul rax, rax, 0xf4240
mov r8d, r15d
div qword [0x140098f10]
add rax, qword [0x140098f20]
mov qword [rbp + 0x18], rax
mov rax, qword [rbx + 0x40]
mov ebx, dword [rbx + 0x38]
mov qword [rbp + 0x20], rax
dec ebx
mov r11, qword [rax + 0x110]
mov rax, qword [r13 + 8]
movsxd rcx, dword [rax]
lea r10, [rax + rcx]
mov eax, r14d
sub eax, ecx
lea rcx, [rbp + 0xb0]
neg eax
lea rax, [rbp + 0x10]
mov qword [rsp + 0x38], rax
sbb rdx, rdx
lea rax, [0x140044c20]
and rdx, r10
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], r11
call fcn.1400262d0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmmword [r12], xmm0
movups xmmword [r12 + 0x10], xmm1
movups xmmword [r12 + 0x20], xmm2
mov rdx, qword [r13 + 8]
mov qword [rbp + 0x528], rdx
mov eax, dword [rdx + 0xa4]
shr eax, 0xa
and al, 1
mov dword [rbp + 0x538], eax
je 0x140045330
cmp dword [rdx + 0x60], r14d
je 0x140045433
mov rcx, qword [r12 + 0x10]
movzx eax, byte [rcx]
test al, al
je 0x140045433
cmp al, 0xd
je 0x140045348
cmp al, 0xa
jne 0x14004534d
inc rcx
jmp 0x140045335
mov r13d, r14d
cmp dword [rdx + 0x60], r14d
je 0x140045425
lea rax, [rdx + 0x64]
mov qword [rbp + 0x520], r14
mov qword [rbp], rax
mov r8, r14
mov rdi, 0xffffffffffffffff
nop dword [rax]
nop word [rax + rax]
movsxd rcx, dword [rax]
mov rbx, qword [r12 + 0x10]
lea rdx, [rax + rcx]
mov eax, r14d
sub eax, ecx
neg eax
sbb rax, rax
and rdx, rax
add rdx, r8
movsxd rax, dword [rdx]
test eax, eax
lea rcx, [rdx + rax]
cmove rcx, r14
call fcn.140049b80
mov r15, rax
test rax, rax
je 0x1400453d3
cmp byte [rax], 2
jne 0x1400453fb
lea rcx, [rax + 0x10]
mov rdx, rbx
call fcn.14004a330
neg eax
sbb esi, esi
neg esi
dec esi
cmp esi, edi
jne 0x14004541d
mov r8, qword [rbp + 0x520]
inc r13d
mov rax, qword [rbp + 0x528]
add r8, 4
mov qword [rbp + 0x520], r8
cmp r13d, dword [rax + 0x60]
je 0x140045425
mov rax, qword [rbp]
jmp 0x140045380
mov esi, edi
nop dword [rax]
mov rdx, rbx
mov rcx, r15
inc esi
call fcn.14004a330
test eax, eax
jne 0x1400453cf
movzx eax, byte [rbx]
inc rbx
test al, al
je 0x1400453d3
jmp 0x140045400
mov r14d, 1
jmp 0x140045433
movzx eax, byte [rbp + 0x538]
xor eax, 1
lea r14d, [rax + rax]
mov rax, qword [rbp + 0x540]
mov dword [rax], r14d
mov rbx, qword [rbp + 0x530]
mov rax, r12
lea rsp, [rbp + 0x4e0]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013bd0
int3
lea rcx, str.SleepConditionVariableCS___failed
call fcn.140013bd0
int3
lea rcx, str.RPC_result_did_not_match_node_index__d__d
call fcn.140013b50
int3