Function at 0x408010
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x30
call fcn.0040a010
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
call fcn.00403008
test eax, eax
je 0x408098
mov dword [esp], 1
mov eax, dword [fcn.0040b0f0]
call eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x1f
mov dword [esp + 4], 1
mov dword [esp], str.Nanodump_does_not_support_WoW64
call sub.msvcrt.dll_fwrite
mov dword [esp], 1
mov eax, dword [fcn.0040b0f0]
call eax
mov dword [esp + 4], eax
mov dword [esp], 0xa
call sub.msvcrt.dll_fputc
mov eax, 0xffffffff
jmp 0x40845c
mov dword [esp + 0x20], 1
jmp 0x408365
mov eax, dword [esp + 0x20]
lea edx, [eax*4]
mov eax, dword [ebp + 0xc]
add eax, edx
mov eax, dword [eax]
mov edx, eax
mov eax, 0x41b7e0
mov ecx, 3
mov esi, edx
mov edi, eax
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
sub edx, eax
mov eax, edx
movsx eax, al
test eax, eax
je 0x40810f
mov eax, dword [esp + 0x20]
lea edx, [eax*4]
mov eax, dword [ebp + 0xc]
add eax, edx
mov eax, dword [eax]
mov edx, eax
mov eax, str.__valid
mov ecx, 8
mov esi, edx
mov edi, eax
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
sub edx, eax
mov eax, edx
movsx eax, al
test eax, eax
jne 0x40811c
mov dword [esp + 0x24], 1
jmp 0x408360
mov eax, dword [esp + 0x20]
lea edx, [eax*4]
mov eax, dword [ebp + 0xc]
add eax, edx
mov eax, dword [eax]
mov edx, eax
mov eax, 0x41b7eb
mov ecx, 3
mov esi, edx
mov edi, eax
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
sub edx, eax
mov eax, edx
movsx eax, al
test eax, eax
je 0x40818a
mov eax, dword [esp + 0x20]
lea edx, [eax*4]
mov eax, dword [ebp + 0xc]
add eax, edx
mov eax, dword [eax]
mov edx, eax
mov eax, str.__write
mov ecx, 8
mov esi, edx
mov edi, eax
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
sub edx, eax
mov eax, edx
movsx eax, al
test eax, eax
jne 0x40820c
mov eax, dword [esp + 0x20]
add eax, 1
cmp dword [ebp + 8], eax
jg 0x4081ec
mov dword [esp], 1
mov eax, dword [fcn.0040b0f0]
call eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x15
mov dword [esp + 4], 1
mov dword [esp], str.missing___write_value
call sub.msvcrt.dll_fwrite
mov dword [esp], 1
mov eax, dword [fcn.0040b0f0]
call eax
mov dword [esp + 4], eax
mov dword [esp], 0xa
call sub.msvcrt.dll_fputc
mov eax, 0
jmp 0x40845c
add dword [esp + 0x20], 1
mov eax, dword [esp + 0x20]
lea edx, [eax*4]
mov eax, dword [ebp + 0xc]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 0x28], eax
jmp 0x408360
mov eax, dword [esp + 0x20]
lea edx, [eax*4]
mov eax, dword [ebp + 0xc]
add eax, edx
mov eax, dword [eax]
mov edx, eax
mov eax, 0x41b80c
mov ecx, 3
mov esi, edx
mov edi, eax
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
sub edx, eax
mov eax, edx
movsx eax, al
test eax, eax
je 0x408276
mov eax, dword [esp + 0x20]
lea edx, [eax*4]
mov eax, dword [ebp + 0xc]
add eax, edx
mov eax, dword [eax]
mov edx, eax
mov eax, str.__duplicate
mov ecx, 0xc
mov esi, edx
mov edi, eax
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
sub edx, eax
mov eax, edx
movsx eax, al
test eax, eax
jne 0x408283
mov dword [esp + 0x2c], 1
jmp 0x408360
mov eax, dword [esp + 0x20]
lea edx, [eax*4]
mov eax, dword [ebp + 0xc]
add eax, edx
mov eax, dword [eax]
mov edx, eax
mov eax, 0x41b81b
mov ecx, 3
mov esi, edx
mov edi, eax
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
sub edx, eax
mov eax, edx
movsx eax, al
test eax, eax
je 0x4082ed
mov eax, dword [esp + 0x20]
lea edx, [eax*4]
mov eax, dword [ebp + 0xc]
add eax, edx
mov eax, dword [eax]
mov edx, eax
mov eax, str.__help
mov ecx, 7
mov esi, edx
mov edi, eax
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
sub edx, eax
mov eax, edx
movsx eax, al
test eax, eax
jne 0x408304
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00407c80
mov eax, 0
jmp 0x40845c
mov eax, dword [esp + 0x20]
lea edx, [eax*4]
mov eax, dword [ebp + 0xc]
add eax, edx
mov ebx, dword [eax]
mov dword [esp], 1
mov eax, dword [fcn.0040b0f0]
call eax
mov dword [esp + 8], ebx
mov dword [esp + 4], str.invalid_argument:__s
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 1
mov eax, dword [fcn.0040b0f0]
call eax
mov dword [esp + 4], eax
mov dword [esp], 0xa
call sub.msvcrt.dll_fputc
mov eax, 0
jmp 0x40845c
add dword [esp + 0x20], 1
mov eax, dword [esp + 0x20]
cmp eax, dword [ebp + 8]
jl 0x4080a5
cmp dword [esp + 0x28], 0
jne 0x4083cf
mov dword [esp], 1
mov eax, dword [fcn.0040b0f0]
call eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x29
mov dword [esp + 4], 1
mov dword [esp], str.You_need_to_provide_the___write_parameter
call sub.msvcrt.dll_fwrite
mov dword [esp], 1
mov eax, dword [fcn.0040b0f0]
call eax
mov dword [esp + 4], eax
mov dword [esp], 0xa
call sub.msvcrt.dll_fputc
mov eax, 0
jmp 0x40845c
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00401a7d
test eax, eax
jne 0x40842a
mov dword [esp], 1
mov eax, dword [fcn.0040b0f0]
call eax
mov edx, dword [esp + 0x28]
mov dword [esp + 8], edx
mov dword [esp + 4], str.You_need_to_provide_the_full_path:__s
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 1
mov eax, dword [fcn.0040b0f0]
call eax
mov dword [esp + 4], eax
mov dword [esp], 0xa
call sub.msvcrt.dll_fputc
mov eax, 0
jmp 0x40845c
mov eax, dword [0x41aa20]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0x40c020
call fcn.00408464
mov eax, 0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret