Function at 0x403020
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x624618
mov eax, dword fs:[0]
push eax
sub esp, 0x68
mov eax, dword [0x69ea44]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x40], ecx
mov eax, dword [str..PhysicalDrive]
mov ecx, dword [0x63c6f0]
mov edx, dword [0x63c6f4]
mov dword [ebp - 0x24], eax
mov eax, dword [0x63c6f8]
mov dword [ebp - 0x20], ecx
mov cx, word [0x63c6fc]
mov dword [ebp - 0x1c], edx
lea edx, [ebp + 8]
mov dword [ebp - 0x18], eax
push edx
lea eax, [ebp - 0x24]
mov word [ebp - 0x14], cx
push eax
lea ecx, [ebp - 0x50]
xor ebx, ebx
push ecx
mov dword [ebp - 4], ebx
call fcn.00402720
mov eax, dword [eax]
add esp, 0xc
push ebx
push ebx
push 3
push ebx
push 3
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, dword [ebp - 0x50]
add esi, 0xfffffff0
mov edi, eax
cmp dword [esi + 0xc], ebx
jne 0x4030d3
push 0x63c0a0
push ebx
push 0x70
push str.C:Program_Files__x86_Microsoft_Visual_Studio_10.0VC_atlmfcinclude_atlsimpstr.h
push 2
call fcn.005f2790
add esp, 0x14
cmp eax, 1
jne 0x4030d3
int3
lea eax, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x4030ec
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
cmp edi, 0xffffffff
jne 0x403169
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CreateFile___Error:__ld_n
call fcn.005f3600
add eax, 0x40
push eax
call fcn.005f3360
mov ecx, dword [ebp - 0x40]
add esp, 0xc
push ebx
push ebx
push str.disk_error
call fcn.0041a260
mov esi, dword [ebp + 8]
add esi, 0xfffffff0
cmp dword [esi + 0xc], ebx
mov dword [ebp - 4], edi
lea edi, [esi + 0xc]
jne 0x40314b
push 0x63c0a0
push ebx
push 0x70
push str.C:Program_Files__x86_Microsoft_Visual_Studio_10.0VC_atlmfcinclude_atlsimpstr.h
push 2
call fcn.005f2790
add esp, 0x14
cmp eax, 1
jne 0x40314b
int3
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x403161
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
or eax, 0xffffffff
jmp 0x40347e
push 0x200
call fcn.005f4940
push 0x200
mov esi, eax
push ebx
push esi
call fcn.005f49b0
add esp, 0x10
push ebx
push ebx
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push ebx
lea ecx, [ebp - 0x5c]
push ecx
push 0x200
push esi
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov esi, dword [sym.imp.KERNEL32.dll_DeviceIoControl]
push ebx
lea edx, [ebp - 0x44]
push edx
push ebx
push ebx
push 0x18
lea eax, [ebp - 0x74]
push eax
push 0x7c058
push edi
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], 0xf0ccf0cc
call esi
cmp eax, ebx
jne 0x40323c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.IOCTL_DISK_CREATE_DISK_Error:__ld_n
call fcn.005f3600
add eax, 0x40
push eax
call fcn.005f3360
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x40]
push ebx
push ebx
push str.error3
call fcn.0041a260
mov esi, dword [ebp + 8]
add esi, 0xfffffff0
lea edi, [esi + 0xc]
mov dword [ebp - 4], 0xffffffff
cmp dword [edi], ebx
jne 0x40322d
push 0x63c0a0
push ebx
push 0x70
push str.C:Program_Files__x86_Microsoft_Visual_Studio_10.0VC_atlmfcinclude_atlsimpstr.h
push 2
call fcn.005f2790
add esp, 0x14
cmp eax, 1
jne 0x40322d
int3
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jmp 0x403155
push ebx
lea ecx, [ebp - 0x44]
push ecx
push ebx
push ebx
push ebx
push ebx
push 0x70140
push edi
call esi
test eax, eax
jne 0x403294
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.IOCTL_DISK_UPDATE_PROPERTIES_Error:__ld_n
call fcn.005f3600
add eax, 0x40
push eax
call fcn.005f3360
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
push ebx
push str.error4
mov ecx, dword [ebp - 0x40]
call fcn.0041a260
lea ecx, [ebp + 8]
call fcn.00401140
or eax, 0xffffffff
jmp 0x40347e
lea edx, [ebp - 0x3c]
push edx
push edi
call fcn.004018a0
add esp, 8
push ebx
cmp eax, 0xffffffff
jne 0x4032af
push ebx
push str.disk_parameter_error
jmp 0x40327c
mov eax, dword [ebp - 0x2c]
mul dword [ebp - 0x30]
mov ecx, dword [ebp - 0x28]
push ecx
push edx
push eax
call fcn.005f4970
mov ecx, dword [ebp - 0x3c]
mov esi, eax
mov eax, dword [ebp - 0x38]
push eax
push ecx
push edx
push esi
mov dword [ebp - 0x48], edx
call fcn.005f4970
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x48]
shld eax, esi, 1
add esi, esi
push 0x270
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x48], eax
call fcn.005f4940
mov esi, eax
add esp, 4
cmp esi, ebx
jne 0x403324
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x40]
push ebx
push ebx
push str.error6
call fcn.0041a260
lea ecx, [ebp + 8]
call fcn.00401140
mov eax, 0xffff
jmp 0x40347e
push 0x270
push ebx
push esi
call fcn.005f49b0
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0x48]
mov dword [esi], ebx
mov dword [esi + 4], 4
mov dword [esi + 8], 0xf0ccf0cc
mov byte [esi + 0x4c], 1
mov byte [esi + 0xdc], 1
mov byte [esi + 0xe0], bl
mov dword [esi + 0xd8], ebx
mov byte [esi + 0x16c], 1
mov byte [esi + 0x170], bl
mov dword [esi + 0x168], ebx
mov byte [esi + 0x1fc], 1
mov byte [esi + 0x200], bl
mov dword [esi + 0x1f8], ebx
add esp, 0xc
sub eax, ecx
push ebx
mov dword [esi + 0x38], ecx
mov ecx, dword [ebp - 0x54]
sbb ecx, edx
mov dword [esi + 0x3c], edx
lea edx, [ebp - 0x44]
push edx
push ebx
push ebx
push 0x270
push esi
push 0x7c054
push edi
mov dword [esi + 0x30], ebx
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], ecx
mov dword [esi + 0x48], 1
mov byte [esi + 0x4c], 1
mov word [esi + 0x50], 0x10b
mov byte [esi + 0x52], 1
mov dword [esi + 0x54], ebx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x40340a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.IOCTL_DISK_SET_DRIVE_LAYOUT_EX_Error:__ld_n
call fcn.005f3600
add eax, 0x40
push eax
call fcn.005f3360
push esi
call fcn.004046d0
add esp, 0x10
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
push ebx
push str.error7
jmp 0x40327c
push ebx
lea eax, [ebp - 0x44]
push eax
push ebx
push ebx
push ebx
push ebx
push 0x70140
push edi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x403459
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.IOCTL_DISK_UPDATE_PROPERTIES_Error:__ld_n
call fcn.005f3600
add eax, 0x40
push eax
call fcn.005f3360
push esi
call fcn.004046d0
add esp, 0x10
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
push ebx
push str.error8
jmp 0x40327c
push esi
call fcn.004046d0
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x12c
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [ebp + 8]
call fcn.00401140
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005f3100
mov esp, ebp
pop ebp
ret 8