Function at 0x402fb0
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xbc
mov ebx, dword [esp + 0xd0]
lea eax, [esp + 0x68]
mov dword [esp], 0
mov dword [esp + 8], eax
mov edi, dword [esp + 0xd4]
lea ebp, [ebx*4 + 4]
mov dword [esp + 0x68], 0
mov dword [esp + 4], ebp
call fcn.00427280
mov esi, eax
mov eax, edx
or eax, esi
mov dword [esp + 0x44], eax
jne 0x403150
mov eax, dword [esp + 0x68]
mov dword [esp + 8], ebp
xor esi, esi
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_memset
test ebx, ebx
jg 0x40302d
jmp 0x4037c9
add esi, 1
cmp ebx, esi
je 0x4031e5
mov dword [esp + 0x80], 0
mov eax, dword [esp + 0x68]
lea ebp, [eax + esi*4]
mov eax, dword [edi + esi*4]
mov dword [esp], eax
call sub.msvcrt.dll_wcslen
lea ecx, [esp + 0x80]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 4], eax
mov eax, dword [edi + esi*4]
mov dword [esp], eax
call fcn.00428940
mov ecx, edx
or ecx, eax
je 0x403022
mov dword [esp + 4], edx
mov ebp, eax
mov dword [esp], eax
call fcn.0041d490
mov edx, dword [fcn.004a1b90]
mov dword [esp], 2
mov edi, eax
mov dword [esp + 0x44], edx
call edx
mov dword [esp + 0x14], edi
mov edi, 1
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0x4a362e
mov dword [esp + 4], str.__s__Error_while_encoding_argument__d_into_UTF_8:__lu___s_
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov edx, dword [esp + 0x44]
mov dword [esp], 2
call edx
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x4a3677
call sub.msvcrt.dll_fwrite
mov edx, dword [esp + 0x44]
mov dword [esp], 2
call edx
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x403140
xor esi, esi
lea esi, [esi]
lea edi, [edi]
lea edx, [ecx + esi*4]
mov eax, dword [edx]
test eax, eax
je 0x403129
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0041d440
mov ecx, dword [esp + 0x68]
add esi, 1
cmp ebx, esi
jg 0x403110
lea eax, [esp + 0x68]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0041d440
add esp, 0xbc
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], edx
mov dword [esp], esi
call fcn.0041d490
mov dword [esp], 2
mov edi, dword [fcn.004a1b90]
mov ebp, eax
call edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0x4a362e
mov dword [esp + 4], str.__s__Error_while_allocating_temporary_UTF_8_encoded_argv:__lu___s_
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call edi
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x4a3677
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call edi
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov edi, 1
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x403140
test ebx, ebx
jg 0x403104
jmp 0x403130
mov ebp, 0x555020
mov eax, ecx
mov ecx, 0x10
mov edx, dword [esp + 0x68]
mov edi, ebp
mov dword [esp + 0x80], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x84], 0x402c40
mov dword [esp + 0x88], 0x402ba0
mov dword [esp + 0x8c], 0x402bb0
mov dword [esp + 0x94], 0x402f50
mov dword [esp + 0x98], 0x402ef0
mov dword [esp + 0x9c], 0x402e90
mov dword [esp + 0xa0], 0x402e30
mov dword [esp + 0xa4], 0x402dd0
mov dword [esp + 0xa8], 0x402d70
mov dword [esp + 0xac], 0x402d00
rep stosd dword es:[edi], eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
cmp ebx, 1
jle 0x4032c2
mov dword [esp + 4], edx
mov dword [esp + 0xc], 0xd
mov dword [esp + 8], 0x4a39c0
mov dword [esp], ebx
mov dword [esp + 0x44], edx
call fcn.0041c880
mov edx, dword [esp + 0x44]
test eax, eax
jne 0x4032e2
mov esi, dword [edx]
mov dword [esp], 2
mov edi, 1
call dword [0x4a20fc]
mov edx, esi
call fcn.00402cb0
jmp 0x4031cc
mov eax, dword [0x55505c]
test eax, eax
jne 0x403623
mov eax, dword [0x555058]
test eax, eax
jne 0x4035e5
lea eax, [esp + 0x6c]
mov dword [esp + 4], 0x12
mov dword [esp + 8], eax
mov eax, dword [0x555020]
mov dword [esp], eax
call fcn.004152a0
mov ebp, eax
mov eax, edx
or eax, ebp
jne 0x4036fe
lea eax, [esp + 0x74]
mov dword [esp + 0x18], 0
mov dword [esp + 8], eax
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
call fcn.00415b60
mov ebp, eax
mov eax, edx
or eax, ebp
jne 0x4038be
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x403640
mov eax, dword [esp + 0x74]
test eax, eax
jne 0x4038fc
mov eax, dword [0x555054]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.004153f0
mov ebp, eax
mov eax, edx
or eax, ebp
jne 0x403880
lea eax, [esp + 0x78]
mov dword [esp + 4], 0x200
mov dword [esp + 8], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.00415640
mov ebp, eax
mov eax, edx
or eax, ebp
jne 0x4039c8
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.004155c0
mov ebp, eax
mov eax, edx
or eax, ebp
jne 0x403af3
lea eax, [esp + 0x6c]
mov dword [esp + 0x48], edx
mov dword [esp], eax
call fcn.004152d0
mov edx, dword [0x55503c]
mov eax, 2
mov ecx, dword [esp + 0x48]
test edx, edx
jne 0x403432
mov esi, dword [0x555038]
xor eax, eax
test esi, esi
setne al
mov edx, dword [0x555034]
mov esi, dword [0x555040]
mov dword [esp + 0x5c], edx
mov edx, dword [0x555030]
mov dword [esp + 0x58], edx
mov edx, dword [0x55504c]
mov dword [esp + 0x54], edx
mov edx, dword [0x555054]
mov dword [esp + 0x50], edx
mov edx, dword [0x555050]
mov dword [esp + 0x4c], edx
mov edx, dword [0x555020]
mov dword [esp + 0x48], edx
mov edx, 0x3ffffff
cmp edx, edi
mov edx, 0
mov edi, edx
sbb edi, dword [esp + 0x44]
mov dword [esp + 0x44], ecx
jb 0x403b31
mov edx, dword [0x555048]
mov dword [esp + 0x18], eax
lea edi, [esp + 0x80]
mov eax, dword [0x555028]
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x30], edi
lea edi, [esp + 0x74]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0xc], edx
mov edx, dword [0x55502c]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x48]
mov dword [esp], edx
call fcn.00401520
mov ecx, dword [esp + 0x44]
mov edi, edx
or edi, eax
jne 0x403bfc
mov esi, dword [esp + 0x74]
mov edx, 0x4a362a
mov eax, dword [0x555020]
mov edi, dword [fcn.004a1b90]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], eax
mov dword [esp], 2
call edi
mov edx, dword [esp + 0x48]
mov dword [esp + 0x10], esi
mov dword [esp + 4], str.Formatted_volume___s__successfully_as__s_s_
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x44]
mov dword [esp], eax
mov dword [esp + 8], edx
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call edi
mov dword [esp], 0xa
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputc
mov dword [esp], 2
call edi
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov ecx, dword [esp + 0x6c]
test ecx, ecx
mov ecx, dword [esp + 0x4c]
je 0x403c11
lea eax, [esp + 0x6c]
mov dword [esp + 0x44], ecx
mov dword [esp], eax
call fcn.004152d0
mov ecx, dword [esp + 0x44]
mov esi, eax
mov eax, edx
or eax, esi
je 0x4036f0
mov dword [esp], esi
mov dword [esp + 4], edx
call fcn.0041d490
mov dword [esp], 2
mov ebp, eax
call edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0x4a362e
mov dword [esp + 4], str.__s__Error_while_attempting_to_destroy_device_handle_at_cleanup:__lu___s_
jmp 0x403185
mov dword [esp], 1
xor edi, edi
call dword [0x4a20fc]
mov dword [esp + 0xc], 0x4a3588
mov dword [esp + 8], str.format_sd
mov esi, eax
mov dword [esp + 4], str._s__s_n
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], esi
call fcn.0041d1c0
jmp 0x4031cc
mov esi, dword [edx]
mov dword [esp], 1
xor edi, edi
call dword [0x4a20fc]
mov edx, esi
call fcn.00402cb0
jmp 0x4031cc
mov ebp, dword [0x555020]
mov edi, dword [fcn.004a1b90]
mov dword [esp], 2
call edi
mov dword [esp + 4], str.Warning:__s_is_mounted.
mov dword [esp + 8], ebp
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call edi
mov dword [esp], 0xa
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputc
mov dword [esp], 2
call edi
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov eax, dword [0x555054]
mov dword [esp], 2
test eax, eax
je 0x403b98
call edi
mov dword [esp + 8], str.format_sd
mov dword [esp + 4], str._s_is_forced_anyway.
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call edi
mov dword [esp], 0xa
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputc
mov dword [esp], 2
call edi
mov dword [esp], eax
call sub.msvcrt.dll_fflush
jmp 0x403395
xor eax, eax
or ebp, ecx
setne al
mov edi, eax
jmp 0x4031cc
mov dword [esp + 4], edx
mov dword [esp], ebp
mov dword [esp + 0x44], edx
call fcn.0041d490
mov dword [esp], 2
mov esi, dword [fcn.004a1b90]
mov edi, eax
call esi
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x4a362e
mov dword [esp + 4], str.__s__Failed_to_create_fat_device:__lu___s_
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call esi
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x4a3677
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call esi
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x44]
test eax, eax
je 0x4031c7
lea eax, [esp + 0x6c]
mov dword [esp + 0x44], ecx
mov dword [esp], eax
call fcn.004152d0
mov ecx, dword [esp + 0x44]
mov esi, eax
mov eax, edx
or eax, esi
je 0x4036f0
mov dword [esp], esi
mov dword [esp + 4], edx
call fcn.0041d490
mov dword [esp], 2
mov edi, dword [fcn.004a1b90]
mov ebp, eax
jmp 0x4035c6
mov esi, 0x555020
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x68]
mov ecx, 0x10
mov edi, esi
mov dword [esp + 0x80], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x84], 0x402c40
mov dword [esp + 0x88], 0x402ba0
mov dword [esp + 0x8c], 0x402bb0
mov dword [esp + 0x94], 0x402f50
mov dword [esp + 0x98], 0x402ef0
mov dword [esp + 0x9c], 0x402e90
mov dword [esp + 0xa0], 0x402e30
mov dword [esp + 0xa4], 0x402dd0
mov dword [esp + 0xa8], 0x402d70
mov dword [esp + 0xac], 0x402d00
rep stosd dword es:[edi], eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
jmp 0x4032c2
mov dword [esp + 4], edx
mov dword [esp], ebp
mov dword [esp + 0x44], edx
call fcn.0041d490
mov dword [esp], 2
mov esi, dword [fcn.004a1b90]
mov edi, eax
call esi
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x4a362e
mov dword [esp + 4], str.__s__Failed_to_open_fat_device:__lu___s_
jmp 0x403737
mov dword [esp + 4], edx
mov dword [esp], ebp
mov dword [esp + 0x44], edx
call fcn.0041d490
mov dword [esp], 2
mov esi, dword [fcn.004a1b90]
mov edi, eax
call esi
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x4a362e
mov dword [esp + 4], str.__s__Error_while_checking_if_the_device_is_in_use:__lu___s_
jmp 0x403737
mov ebp, dword [0x555020]
mov edi, dword [fcn.004a1b90]
mov dword [esp], 2
call edi
mov dword [esp + 4], str.Warning:__s_is_in_use.
mov dword [esp + 8], ebp
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call edi
mov dword [esp], 0xa
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputc
mov dword [esp], 2
call edi
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov ebp, dword [0x555054]
mov dword [esp], 2
test ebp, ebp
jne 0x4036a7
call edi
mov dword [esp + 8], 0x35
mov ebp, 0x10
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.Refusing_to_create_a_new_filesystem_on_a_busy_device.
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call edi
mov dword [esp], 0xa
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputc
mov dword [esp], 2
call edi
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov esi, dword [esp + 0x6c]
xor ecx, ecx
test esi, esi
jne 0x403591
jmp 0x4031c7
mov dword [esp + 4], edx
mov dword [esp], ebp
mov dword [esp + 0x44], edx
call fcn.0041d490
mov dword [esp], 2
mov edi, dword [fcn.004a1b90]
mov esi, eax
call edi
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x4a362e
mov dword [esp + 4], str.__s__Error_while_getting_device_sector_count:__lu___s_
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call edi
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x4a3677
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call edi
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x44]
test eax, eax
je 0x4031c7
mov dword [esp], eax
mov dword [esp + 0x44], ecx
call fcn.004155c0
mov ecx, dword [esp + 0x44]
mov esi, eax
mov eax, edx
or eax, esi
je 0x403789
mov dword [esp + 4], edx
mov dword [esp], esi
mov dword [esp + 0x48], ecx
call fcn.0041d490
mov dword [esp], 2
mov dword [esp + 0x44], eax
call edi
mov edx, dword [esp + 0x44]
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0x4a362e
mov dword [esp + 0x10], edx
mov dword [esp + 4], str.__s__Error_while_attempting_to_close_open_device_at_cleanup:__lu___s_
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call edi
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x4a3677
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call edi
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov ecx, dword [esp + 0x48]
jmp 0x403789
mov dword [esp + 4], edx
mov dword [esp], ebp
mov dword [esp + 0x44], edx
call fcn.0041d490
mov dword [esp], 2
mov edi, dword [fcn.004a1b90]
mov esi, eax
call edi
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x4a362e
mov dword [esp + 4], 0x4a383c
jmp 0x403a01
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x54]
lea edi, [esp + 0x80]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x5c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1c], esi
mov dword [esp], eax
mov dword [esp + 0x74], 0x4a3866
call fcn.004021c0
mov ecx, dword [esp + 0x44]
mov edi, edx
or edi, eax
jne 0x403bfc
mov esi, dword [esp + 0x74]
mov edx, 0x4a3624
jmp 0x403513
call edi
mov dword [esp + 8], 0x38
mov ebp, 0x16
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.Refusing_to_create_a_new_filesystem_on_a_mounted_device.
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call edi
mov dword [esp], 0xa
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputc
mov dword [esp], 2
call edi
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov eax, dword [esp + 0x6c]
xor ecx, ecx
test eax, eax
jne 0x403591
jmp 0x4031c7
mov ecx, edx
mov edx, dword [esp + 0x6c]
mov ebp, eax
test edx, edx
jne 0x403789
jmp 0x4031c7
xor edi, edi
jmp 0x4031cc