Function at 0x4061c3
Capabilities:
Write file on windows

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0x80]
mov dword [rbp + 0x10], ecx
mov qword [rbp + 0x18], rdx
call fcn.00406880
mov qword [rbp - 0x28], 0
mov dword [rbp - 0x2c], 0
mov qword [rbp - 0x38], 0
mov qword [rbp - 0x40], 0
mov dword [rbp - 0x44], 1
jmp 0x406679
mov eax, dword [rbp - 0x44]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x18]
add rax, rdx
mov rax, qword [rax]
mov rdx, rax
lea rax, [0x0041458e]
mov ecx, 3
mov rsi, rdx
mov rdi, rax
repe cmpsb byte [rsi], byte [rdi]
seta dl
setb al
sub edx, eax
mov eax, edx
movsx eax, al
test eax, eax
je 0x406288
mov eax, dword [rbp - 0x44]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x18]
add rax, rdx
mov rax, qword [rax]
mov rdx, rax
lea rax, str.__valid
mov ecx, 8
mov rsi, rdx
mov rdi, rax
repe cmpsb byte [rsi], byte [rdi]
seta dl
setb al
sub edx, eax
mov eax, edx
movsx eax, al
test eax, eax
jne 0x406294
mov dword [rbp - 0x2c], 1
jmp 0x406675
mov eax, dword [rbp - 0x44]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x18]
add rax, rdx
mov rax, qword [rax]
mov rdx, rax
lea rax, [0x00414599]
mov ecx, 3
mov rsi, rdx
mov rdi, rax
repe cmpsb byte [rsi], byte [rdi]
seta dl
setb al
sub edx, eax
mov eax, edx
movsx eax, al
test eax, eax
je 0x406312
mov eax, dword [rbp - 0x44]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x18]
add rax, rdx
mov rax, qword [rax]
mov rdx, rax
lea rax, str.__write
mov ecx, 8
mov rsi, rdx
mov rdi, rax
repe cmpsb byte [rsi], byte [rdi]
seta dl
setb al
sub edx, eax
mov eax, edx
movsx eax, al
test eax, eax
jne 0x40638e
mov eax, dword [rbp - 0x44]
add eax, 1
cmp dword [rbp + 0x10], eax
jg 0x40636a
mov ecx, 1
mov rax, qword [fcn.00407e90]
call rax
mov r9, rax
mov r8d, 0x15
mov edx, 1
lea rcx, str.missing___write_value
call sub.msvcrt.dll_fwrite
mov ecx, 1
mov rax, qword [fcn.00407e90]
call rax
mov rdx, rax
mov ecx, 0xa
call sub.msvcrt.dll_fputc
mov eax, 0
jmp 0x4067c1
add dword [rbp - 0x44], 1
mov eax, dword [rbp - 0x44]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x18]
add rax, rdx
mov rax, qword [rax]
mov qword [rbp - 0x28], rax
jmp 0x406675
mov eax, dword [rbp - 0x44]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x18]
add rax, rdx
mov rax, qword [rax]
mov rdx, rax
lea rax, str._wdll
mov ecx, 6
mov rsi, rdx
mov rdi, rax
repe cmpsb byte [rsi], byte [rdi]
seta dl
setb al
sub edx, eax
mov eax, edx
movsx eax, al
test eax, eax
je 0x40640c
mov eax, dword [rbp - 0x44]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x18]
add rax, rdx
mov rax, qword [rax]
mov rdx, rax
lea rax, str.__write_dll
mov ecx, 0xc
mov rsi, rdx
mov rdi, rax
repe cmpsb byte [rsi], byte [rdi]
seta dl
setb al
sub edx, eax
mov eax, edx
movsx eax, al
test eax, eax
jne 0x406488
mov eax, dword [rbp - 0x44]
add eax, 1
cmp dword [rbp + 0x10], eax
jg 0x406464
mov ecx, 1
mov rax, qword [fcn.00407e90]
call rax
mov r9, rax
mov r8d, 0x19
mov edx, 1
lea rcx, str.missing___write_dll_value
call sub.msvcrt.dll_fwrite
mov ecx, 1
mov rax, qword [fcn.00407e90]
call rax
mov rdx, rax
mov ecx, 0xa
call sub.msvcrt.dll_fputc
mov eax, 0
jmp 0x4067c1
add dword [rbp - 0x44], 1
mov eax, dword [rbp - 0x44]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x18]
add rax, rdx
mov rax, qword [rax]
mov qword [rbp - 0x38], rax
jmp 0x406675
mov eax, dword [rbp - 0x44]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x18]
add rax, rdx
mov rax, qword [rax]
mov rdx, rax
lea rax, str._ldll
mov ecx, 6
mov rsi, rdx
mov rdi, rax
repe cmpsb byte [rsi], byte [rdi]
seta dl
setb al
sub edx, eax
mov eax, edx
movsx eax, al
test eax, eax
je 0x406506
mov eax, dword [rbp - 0x44]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x18]
add rax, rdx
mov rax, qword [rax]
mov rdx, rax
lea rax, str.__load_dll
mov ecx, 0xb
mov rsi, rdx
mov rdi, rax
repe cmpsb byte [rsi], byte [rdi]
seta dl
setb al
sub edx, eax
mov eax, edx
movsx eax, al
test eax, eax
jne 0x406582
mov eax, dword [rbp - 0x44]
add eax, 1
cmp dword [rbp + 0x10], eax
jg 0x40655e
mov ecx, 1
mov rax, qword [fcn.00407e90]
call rax
mov r9, rax
mov r8d, 0x14
mov edx, 1
lea rcx, str.missing___load_value
call sub.msvcrt.dll_fwrite
mov ecx, 1
mov rax, qword [fcn.00407e90]
call rax
mov rdx, rax
mov ecx, 0xa
call sub.msvcrt.dll_fputc
mov eax, 0
jmp 0x4067c1
add dword [rbp - 0x44], 1
mov eax, dword [rbp - 0x44]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x18]
add rax, rdx
mov rax, qword [rax]
mov qword [rbp - 0x40], rax
jmp 0x406675
mov eax, dword [rbp - 0x44]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x18]
add rax, rdx
mov rax, qword [rax]
mov rdx, rax
lea rax, [0x0041460c]
mov ecx, 3
mov rsi, rdx
mov rdi, rax
repe cmpsb byte [rsi], byte [rdi]
seta dl
setb al
sub edx, eax
mov eax, edx
movsx eax, al
test eax, eax
je 0x406600
mov eax, dword [rbp - 0x44]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x18]
add rax, rdx
mov rax, qword [rax]
mov rdx, rax
lea rax, str.__help
mov ecx, 7
mov rsi, rdx
mov rdi, rax
repe cmpsb byte [rsi], byte [rdi]
seta dl
setb al
sub edx, eax
mov eax, edx
movsx eax, al
test eax, eax
jne 0x406619
mov rax, qword [rbp + 0x18]
mov rax, qword [rax]
mov rcx, rax
call fcn.00405e0d
mov eax, 0
jmp 0x4067c1
mov eax, dword [rbp - 0x44]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x18]
add rax, rdx
mov rbx, qword [rax]
mov ecx, 1
mov rax, qword [fcn.00407e90]
call rax
mov r8, rbx
lea rdx, str.invalid_argument:__s
mov rcx, rax
call sub.msvcrt.dll_fprintf
mov ecx, 1
mov rax, qword [fcn.00407e90]
call rax
mov rdx, rax
mov ecx, 0xa
call sub.msvcrt.dll_fputc
mov eax, 0
jmp 0x4067c1
add dword [rbp - 0x44], 1
mov eax, dword [rbp - 0x44]
cmp eax, dword [rbp + 0x10]
jl 0x40620a
cmp qword [rbp - 0x28], 0
jne 0x4066d9
mov ecx, 1
mov rax, qword [fcn.00407e90]
call rax
mov r9, rax
mov r8d, 0x29
mov edx, 1
lea rcx, str.You_need_to_provide_the___write_parameter
call sub.msvcrt.dll_fwrite
mov ecx, 1
mov rax, qword [fcn.00407e90]
call rax
mov rdx, rax
mov ecx, 0xa
call sub.msvcrt.dll_fputc
mov eax, 0
jmp 0x4067c1
mov rax, qword [rbp - 0x28]
mov rcx, rax
call fcn.00401936
test eax, eax
jne 0x406732
mov ecx, 1
mov rax, qword [fcn.00407e90]
call rax
mov rdx, qword [rbp - 0x28]
mov r8, rdx
lea rdx, str.You_need_to_provide_the_full_path:__s
mov rcx, rax
call sub.msvcrt.dll_fprintf
mov ecx, 1
mov rax, qword [fcn.00407e90]
call rax
mov rdx, rax
mov ecx, 0xa
call sub.msvcrt.dll_fputc
mov eax, 0
jmp 0x4067c1
cmp qword [rbp - 0x40], 0
je 0x40678a
cmp qword [rbp - 0x38], 0
je 0x40678a
mov ecx, 1
mov rax, qword [fcn.00407e90]
call rax
mov r9, rax
mov r8d, 0x3e
mov edx, 1
lea rcx, str.The_options___write_dll_and___load_dll_cannot_be_used_together
call sub.msvcrt.dll_fwrite
mov ecx, 1
mov rax, qword [fcn.00407e90]
call rax
mov rdx, rax
mov ecx, 0xa
call sub.msvcrt.dll_fputc
mov eax, 0
jmp 0x4067c1
mov eax, dword [0x00413820]
mov r8, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x38]
mov edx, dword [rbp - 0x2c]
mov dword [rsp + 0x28], edx
mov rdx, qword [rbp - 0x28]
mov qword [rsp + 0x20], rdx
mov r9, r8
mov r8, rcx
mov edx, eax
lea rcx, [0x00409020]
call fcn.00405c0c
mov eax, 0
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
ret