Function at 0x42fee4
Capabilities:
Get disk size
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x278
mov eax, dword [0x49f2a0]
xor eax, ebp
mov dword [ebp - 4], eax
and dword [ebp - 0x234], 0
mov eax, dword [ebp - 0x234]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 8]
xor esi, esi
push esi
push esi
push 3
push esi
push 3
shld eax, ebx, 0x14
push 0xc0000000
push edi
push str.._c:
mov dword [ebp - 0x210], edi
mov dword [ebp - 0x208], eax
shl ebx, 0x14
call fcn.0042f614
pop ecx
pop ecx
push eax
call dword [sym.imp.___total_physical_size__lu_MB_CreateFileA]
mov dword [ebp - 0x214], eax
cmp eax, 0xffffffff
jne 0x42ff5f
push edi
push str.cant_open_drive__c:_for_write_access_n
call fcn.00450f5c
pop ecx
pop ecx
jmp 0x430694
push esi
lea ecx, [ebp - 0x218]
push ecx
push esi
push esi
push esi
push esi
push 0x90083
push eax
call dword [sym.imp.___total_physical_size__lu_MB_DeviceIoControl]
test eax, eax
jne 0x42ffa6
push esi
push 5
call fcn.0044dfdf
test eax, eax
je 0x42ffa6
push edi
push str._ncant_do_extended_DASD_on_drive__c:_s
call dword [sym.imp.___total_physical_size__lu_MB_GetLastError]
push eax
push 0x209
push str.ntfsResize
call fcn.0044dc85
add esp, 0x14
push dword [ebp - 0x214]
call fcn.0042f7c1
mov dword [ebp - 0x23c], eax
lea eax, [ebp - 0x234]
push eax
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x24c]
push eax
lea eax, [ebp - 0x248]
push eax
push edi
push 0x469ef0
mov dword [ebp - 0x238], edx
call fcn.0042f614
pop ecx
pop ecx
push eax
call dword [sym.imp.___total_physical_size__lu_MB_GetDiskFreeSpaceA]
test eax, eax
jne 0x430000
push str.cant_get_free_space_info_n
call fcn.00450f5c
jmp 0x42ff59
mov edi, dword [ebp - 0x248]
imul edi, dword [ebp - 0x24c]
lea eax, [ebp - 0x254]
push eax
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x278]
push eax
push dword [ebp - 0x210]
push 0x469ef0
call fcn.0042f614
pop ecx
pop ecx
push eax
call dword [sym.imp.___total_physical_size__lu_MB_GetDiskFreeSpaceExA]
test eax, eax
je 0x42fff1
mov eax, dword [ebp - 0x254]
mov ecx, dword [ebp - 0x250]
shrd eax, ecx, 0x14
push edi
shr ecx, 0x14
push ecx
mov ecx, dword [ebp - 0x240]
push eax
mov eax, dword [ebp - 0x244]
shrd eax, ecx, 0x14
shr ecx, 0x14
push ecx
push eax
push dword [ebp - 0x210]
push str.Drive__c:_total_size___I64u_MB__free__I64u_MB__clustersize__lu_n
call fcn.00450f5c
mov eax, dword [ebp - 0x244]
add esp, 0x1c
push dword [ebp - 0x234]
mov dword [ebp - 0x220], eax
mov eax, dword [ebp - 0x240]
push dword [ebp - 0x214]
mov dword [ebp - 0x21c], eax
call fcn.0042f944
xor ecx, ecx
push esi
add eax, 1
push edi
adc ecx, esi
push ecx
push eax
call fcn.00453310
push esi
push esi
push esi
push dword [ebp - 0x214]
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x22c], edx
call fcn.0044df99
push esi
lea eax, [ebp - 0x218]
push eax
mov esi, 0x200
push esi
lea eax, [ebp - 0x204]
push eax
push dword [ebp - 0x214]
call dword [sym.imp.___total_physical_size__lu_MB_ReadFile]
test eax, eax
je 0x430676
cmp dword [ebp - 0x218], esi
jne 0x430676
push 8
pop ecx
mov edi, 0x474a94
lea esi, [ebp - 0x201]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x43011e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x43014c
lea eax, [ebp - 0x201]
push eax
push str.Currently__only_the_NTFS_filesystem_is_supported_nthis_filesystem_is__8.8s
call dword [sym.imp.___total_physical_size__lu_MB_GetLastError]
push eax
push 0x257
push str.ntfsResize
call fcn.0044dc85
add esp, 0x14
jmp 0x430694
movzx eax, byte [ebp - 0x1f7]
cdq
push edx
push eax
push dword [ebp - 0x208]
push ebx
call fcn.004565f0
sub ebx, eax
sbb dword [ebp - 0x208], edx
mov eax, dword [ebp - 0x220]
mov dword [ebp - 0x20c], ebx
mov ebx, dword [ebp - 0x21c]
shrd eax, ebx, 0x14
shr ebx, 0x14
push ebx
push eax
push 0xf
push dword [ebp - 0x21c]
mov dword [ebp - 0x264], eax
push dword [ebp - 0x220]
call fcn.0040c6f5
push eax
push str.current_______size_is__s___I64u_MB_n
call fcn.00450f5c
mov esi, dword [ebp - 0x22c]
mov eax, dword [ebp - 0x230]
add esp, 0x10
shrd eax, esi, 0x14
shr esi, 0x14
push esi
push eax
push 0xf
push dword [ebp - 0x22c]
mov dword [ebp - 0x25c], eax
push dword [ebp - 0x230]
call fcn.0040c6f5
push eax
push str.min._possible_size_is__s___I64u_MB_n
call fcn.00450f5c
mov edi, dword [ebp - 0x238]
mov eax, dword [ebp - 0x23c]
add esp, 0x10
shrd eax, edi, 0x14
shr edi, 0x14
push edi
push eax
push 0xf
push dword [ebp - 0x238]
mov dword [ebp - 0x270], eax
push dword [ebp - 0x23c]
call fcn.0040c6f5
push eax
push str.max._possible_size_is__s___I64u_MB_n
call fcn.00450f5c
add esp, 0x10
cmp dword [ebp + 0xc], 0xffffffff
jne 0x43023d
push dword [ebp - 0x214]
call dword [sym.imp.___total_physical_size__lu_MB_CloseHandle]
xor eax, eax
jmp 0x430697
mov eax, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x20c]
shrd ecx, eax, 0x14
shr eax, 0x14
push eax
push ecx
push 0xf
push dword [ebp - 0x208]
mov dword [ebp - 0x228], ecx
push dword [ebp - 0x20c]
mov dword [ebp - 0x224], eax
call fcn.0040c6f5
push eax
push str.wanted________size_is__s___I64u_MB_n
call fcn.00450f5c
mov eax, dword [ebp - 0x208]
add esp, 0x10
cmp eax, dword [ebp - 0x22c]
ja 0x4302d5
jb 0x43029d
mov eax, dword [ebp - 0x20c]
cmp eax, dword [ebp - 0x230]
jae 0x4302d5
push esi
push dword [ebp - 0x25c]
push dword [ebp - 0x224]
push dword [ebp - 0x228]
push str.wanted___I64u_MB____min___I64u_MB___correcting_this_n
call fcn.00450f5c
mov eax, dword [ebp - 0x230]
mov dword [ebp - 0x20c], eax
mov eax, dword [ebp - 0x22c]
add esp, 0x14
mov dword [ebp - 0x208], eax
mov esi, dword [ebp - 0x238]
cmp dword [ebp - 0x208], esi
jb 0x43032e
ja 0x4302f3
mov eax, dword [ebp - 0x20c]
cmp eax, dword [ebp - 0x23c]
jbe 0x43032e
mov eax, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x208]
shrd eax, ecx, 0x14
push edi
push dword [ebp - 0x270]
shr ecx, 0x14
push ecx
push eax
push str.wanted___I64u_MB____max___I64u_MB___correcting_this_n
call fcn.00450f5c
mov eax, dword [ebp - 0x23c]
add esp, 0x14
mov dword [ebp - 0x20c], eax
mov dword [ebp - 0x208], esi
mov eax, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x20c]
shrd ecx, eax, 0x14
shr eax, 0x14
mov dword [ebp - 0x228], ecx
mov dword [ebp - 0x224], eax
cmp ecx, dword [ebp - 0x264]
jne 0x43036d
cmp eax, ebx
jne 0x43036d
push eax
push ecx
push str.wanted_size_equals_current_size___I64u_MB___no_need_to_resize_n
call fcn.00450f5c
add esp, 0xc
jmp 0x430236
xor ebx, ebx
push ebx
push 5
call fcn.0044dfdf
test eax, eax
je 0x430414
mov eax, dword [ebp - 0x208]
cmp eax, dword [ebp - 0x21c]
jb 0x430414
mov ecx, dword [ebp - 0x20c]
ja 0x4303a1
cmp ecx, dword [ebp - 0x220]
jbe 0x430414
shrd ecx, eax, 9
push ebx
shr eax, 9
mov dword [ebp - 0x21c], eax
lea eax, [ebp - 0x218]
push eax
push ebx
push ebx
push 8
lea eax, [ebp - 0x220]
push eax
push 0x900f0
push dword [ebp - 0x214]
mov dword [ebp - 0x220], ecx
call dword [sym.imp.___total_physical_size__lu_MB_DeviceIoControl]
test eax, eax
je 0x4303f8
push str._ncongratulations__n
call fcn.00450f5c
mov dword [esp], str.the_drive_has_been_successfully_resized__n_n
call fcn.00450f5c
pop ecx
jmp 0x430236
push dword [ebp - 0x210]
push str._nvolume_extension_didnt_work_on_drive__c:
call dword [sym.imp.___total_physical_size__lu_MB_GetLastError]
push eax
push 0x29a
jmp 0x43013a
movzx eax, byte [ebp - 0x1f7]
cdq
push edx
push eax
push dword [ebp - 0x1d8]
push dword [ebp - 0x1dc]
call fcn.004544c0
mov ecx, dword [ebp - 0x234]
xor esi, esi
cmp ecx, eax
jne 0x43043f
cmp esi, edx
je 0x430466
push esi
push ecx
push edx
push eax
push str.bootsector_says__I64u_clusters_nfilesystem_says__I64u_clusters___aborting_n
call dword [sym.imp.___total_physical_size__lu_MB_GetLastError]
push eax
push 0x2a2
push str.ntfsResize
call fcn.0044dc85
add esp, 0x20
jmp 0x430694
mov edi, 0x46a8cc
mov esi, str.chkdsk
cmp dword [ebp + 0x10], ebx
je 0x430481
push str._nSkipping_initial_CHKDSK_on_drive____n_n
call fcn.00450f5c
jmp 0x4304e1
push dword [ebp - 0x210]
push str.verifying_filesystem_on__c:_for_integrity_first_n
call fcn.00450f5c
pop ecx
pop ecx
push ebx
push dword [ebp - 0x210]
push edi
call fcn.0042f614
pop ecx
pop ecx
push eax
push esi
push esi
push ebx
call fcn.0045659d
add esp, 0x14
cmp eax, ebx
je 0x4304d0
cmp eax, 2
je 0x4304d0
push eax
push dword [ebp - 0x210]
push str._nCHKDSK_detected_some_errors_on_drive__c:__errorlevel__d__n_nplease_run_CHKDSK__F_first_and_make_sure__that_the_drive_nhas_no_errors_before_resizing_it_n
call fcn.00450f5c
add esp, 0xc
jmp 0x430694
push dword [ebp - 0x210]
push str._nDrive__c:_checked_and_no_errors_found_n_n
call fcn.00450f5c
pop ecx
pop ecx
push dword [ebp - 0x224]
push dword [ebp - 0x228]
push 0xf
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
call fcn.0040c6f5
push eax
push dword [ebp - 0x210]
push str._nresizing__c:_to__s___I64u_MB__n_n
call fcn.00450f5c
movzx eax, word [ebp - 0x1f9]
add esp, 0x14
cdq
push edx
push eax
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
call fcn.004544c0
push ebx
push ebx
push ebx
push dword [ebp - 0x214]
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1d8], edx
call fcn.0044df99
push ebx
lea eax, [ebp - 0x218]
push eax
push 0x200
lea eax, [ebp - 0x204]
push eax
push dword [ebp - 0x214]
call dword [sym.imp.___total_physical_size__lu_MB_WriteFile]
test eax, eax
je 0x430663
cmp dword [ebp - 0x218], 0x200
jne 0x430663
push dword [ebp - 0x214]
call dword [sym.imp.___total_physical_size__lu_MB_CloseHandle]
push dword [ebp - 0x224]
push dword [ebp - 0x228]
push 0xf
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
call fcn.0040c6f5
push eax
push dword [ebp - 0x210]
push str.drive__c:_has_been_resized_to__s___I64u_MB_n
call fcn.00450f5c
push str._nyou_MUST_run_CHKDSK__F_on_this_drive_before_you_continue_nto_use_it__if_this_is_your_systemdrive__please_reboot_your_ncomputer_now_n_nrunning_CHKDSK__F_now._Please_let_it_run___n_n
call fcn.00450f5c
add esp, 0x18
push ebx
push 0x474ac8
push dword [ebp - 0x210]
push edi
call fcn.0042f614
pop ecx
pop ecx
push eax
push esi
push esi
push ebx
call fcn.0045659d
push 0x46a57c
mov esi, eax
call fcn.00450f5c
mov eax, esi
add esp, 0x1c
sub eax, ebx
je 0x430659
dec eax
je 0x43062b
dec eax
je 0x430621
dec eax
je 0x430617
push esi
push str.unknown_exit_code__d_from_CHKDSK_nplease_make_sure_that_CHKDSK_runs_to_success_nbefore_continuing_to_use_this_drive_n
call fcn.00450f5c
pop ecx
jmp 0x4303f2
push str.you_MUST_CHKDSK__F_the_drive_nplease_answer_all_questions_with_YES_nand_reboot_the_maschine_if_necessary_n_n
jmp 0x4303ed
push str.chkdsk_returned_status_2___assuming_that_means_OK__n
jmp 0x4303ed
push str.chkdsk_found_some_errors__and_corrected_them_n
call fcn.00450f5c
mov dword [esp], str.this_is_the_expected_behaviour_n
call fcn.00450f5c
mov dword [esp], str.it_should_be_safe_to_use_this_drive_now_n
call fcn.00450f5c
mov dword [esp], str.SUCCESS_
jmp 0x4303ed
push str.chkdsk_found_no_errors__but_it_should___n
jmp 0x4303ed
push str.Unable_to_write_the_boot_record______
call dword [sym.imp.___total_physical_size__lu_MB_GetLastError]
push eax
push 0x2d0
jmp 0x430687
push str.Unable_to_read_the_boot_record___aborting
call dword [sym.imp.___total_physical_size__lu_MB_GetLastError]
push eax
push 0x251
push str.ntfsResize
call fcn.0044dc85
add esp, 0x10
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00450b32
leave
ret 0xc