Function at 0x18001c660
Capabilities:
Write file on windows

Disassembly:
push rbp
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x118
lea rbp, [rsp + 0x80]
cmp qword [0x18001ec60], 0
mov ebx, ecx
mov rsi, rdx
mov rdi, r8
je 0x18001c8e0
mov rcx, rsi
call qword [0x18001ec60]
movzx eax, al
bt eax, ebx
jae 0x18001c978
mov ecx, dword [0x18001eca0]
xor eax, eax
mov rdx, qword gs:[0x30]
cmp dword [rdx + 0x48], ecx
je 0x18001c737
test byte [0x18001e9a0], 8
jne 0x18001c848
test byte [0x18001e9c0], 8
jne 0x18001c790
lea r13, [rbp - 0x40]
mov r12, r13
test byte [0x18001e9b0], 8
jne 0x18001c7f8
mov rax, qword gs:[0x30]
mov r8d, dword [rax + 0x48]
lea rdx, str._04x:
mov rcx, r12
call sym.sprintf
test rdi, rdi
je 0x18001c70c
cmp ebx, 3
jbe 0x18001c750
mov ecx, 2
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov rcx, r13
mov rbx, rax
call qword [sym.imp.ucrtbase.dll_strlen]
mov r9, rbx
mov edx, 1
mov rcx, r13
mov r8, rax
call qword [sym.imp.ucrtbase.dll_fwrite]
add rsp, 0x118
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop rbp
ret
cdqe
inc rsi
mov qword [rsp + 0x28], rdi
lea r8, str._s:_s:_s
lea rcx, [r12 + rax]
mov rax, r13
mov qword [rsp + 0x20], rsi
sub rax, rcx
lea rdx, [rax + 0xc8]
lea rax, [0x180033e20]
mov r9, qword [rax + rbx*8]
call sym.snprintf.constprop.0
jmp 0x18001c70c
cmp qword [0x18001ec60], 0
je 0x18001c900
lea rcx, [0x18001e9c0]
call qword [0x18001ec60]
test al, 8
je 0x18001c6d2
call qword [sym.imp.kernel32.dll_GetTickCount]
lea r13, [rbp - 0x40]
lea rdx, str._3u._03u:
mov r8d, eax
mov rcx, r13
mov r9, r8
imul r8, r8, 0x10624dd3
shr r8, 0x26
imul eax, r8d, 0x3e8
sub r9d, eax
call sym.sprintf
movsxd r12, eax
add r12, r13
jmp 0x18001c6d9
cmp qword [0x18001ec60], 0
je 0x18001c920
lea rcx, [0x18001e9b0]
call qword [0x18001ec60]
test al, 8
je 0x18001c6e6
mov rax, qword gs:[0x30]
mov r8d, dword [rax + 0x40]
mov rcx, r12
lea rdx, str._04x:
call sym.sprintf
cdqe
add r12, rax
jmp 0x18001c6e6
cmp qword [0x18001ec60], 0
je 0x18001c940
lea rcx, [0x18001e9a0]
call qword [0x18001ec60]
test al, 8
je 0x18001c6c5
cmp qword [0x18001eae0], 0
je 0x18001c960
lea rcx, [rbp - 0x48]
lea r13, [rbp - 0x40]
call qword [sym.imp.kernel32.dll_QueryPerformanceCounter]
imul rax, qword [rbp - 0x48], 0xf4240
mov rcx, r13
cqo
idiv qword [0x18001eae0]
movabs rdx, 0x431bde82d7b634db
mov r9, rax
imul rdx
mov rax, r9
sar rax, 0x3f
sar rdx, 0x12
mov r8, rdx
lea rdx, str._3u._06u:
sub r8, rax
imul rax, r8, 0xf4240
sub r9d, eax
call sym.sprintf
movsxd r12, eax
add r12, r13
jmp 0x18001c6d9
lea r8, [sym.fallback__wine_dbg_get_channel_flags]
lea rdx, str.__wine_dbg_get_channel_flags
lea rcx, [0x18001ec60]
call sym.load_func.part.0
jmp 0x18001c68d
lea r8, [sym.fallback__wine_dbg_get_channel_flags]
lea rdx, str.__wine_dbg_get_channel_flags
lea rcx, [0x18001ec60]
call sym.load_func.part.0
jmp 0x18001c79e
lea r8, [sym.fallback__wine_dbg_get_channel_flags]
lea rdx, str.__wine_dbg_get_channel_flags
lea rcx, [0x18001ec60]
call sym.load_func.part.0
jmp 0x18001c806
lea r8, [sym.fallback__wine_dbg_get_channel_flags]
lea rdx, str.__wine_dbg_get_channel_flags
lea rcx, [0x18001ec60]
call sym.load_func.part.0
jmp 0x18001c856
lea rcx, [0x18001eae0]
call qword [sym.imp.kernel32.dll_QueryPerformanceFrequency]
jmp 0x18001c879
mov eax, 0xffffffff
jmp 0x18001c737