Function at 0x401a60
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
xor esi, esi
mov edi, ecx
push 0x423af0
mov dword [ebp - 4], esi
call fcn.0040b76b
push 0x500000
call fcn.0040bd24
mov dword [ebp - 0x18], eax
lea ebx, [eax + 0x100000]
and ebx, 0xfff00000
push ebx
push str.Sequential_write_test_4MB_buffer__i_n
call fcn.0040b76b
add esp, 0x10
mov dword [edi + 0x254], 0x2000000
mov dword [edi + 0x258], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], esi
lea ecx, [edi + 0x24c]
push ecx
lea eax, [ebp - 4]
push eax
push 0x400000
push ebx
push dword [edi + 0x218]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x401af0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x401afe
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
cmp eax, 0x32
jge 0x401b11
jmp 0x401ac0
push dword [ebp - 4]
push 0
push esi
push str.status__i_bWriteDone__i_bytesOut__i_n
call fcn.0040b76b
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
sub eax, dword [ebp - 0x10]
sbb edx, dword [ebp - 0xc]
push edx
push eax
push 0
push 0xc800000
call fcn.0041d790
push eax
push str.Sequential_Write_transfer_rate:__i_KB_s_n
call fcn.0040b76b
push str.Random_write_test_4KB_buffer_n
mov dword [edi + 0x254], 0x2000000
mov dword [edi + 0x258], 0
call fcn.0040b76b
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
sub eax, dword [ebp - 0xc]
sbb edx, dword [ebp - 0x10]
test edx, edx
ja 0x401bd8
jb 0x401b83
cmp eax, 0x7d0
jae 0x401bd8
lea eax, [edi + 0x24c]
push eax
push 0
push 0x1000
push ebx
push dword [edi + 0x218]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [ebp - 0x14], 0
jne 0x401bb0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x401bbf
add dword [edi + 0x254], 0x1000
inc dword [ebp - 8]
jmp 0x401b6a
push dword [ebp - 4]
push 0
push dword [edi + 0x254]
push esi
push str.status__i_Offset:__i_bWriteDone__i_bytesWrite__i_n
call fcn.0040b76b
add esp, 0x14
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov eax, dword [ebp - 8]
shr eax, 1
push eax
push str.Random_4K_write_IOPS___i_n
call fcn.0040b76b
push str.Flush_Buffer__n
call fcn.0040b76b
add esp, 0xc
mov dword [edi + 0x254], 0x2000000
mov dword [edi + 0x258], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov dword [ebp - 0x10], 0
nop dword [eax]
lea eax, [edi + 0x24c]
push eax
push 0
push 0x400000
push ebx
push dword [edi + 0x218]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x401c4b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x401c59
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, 0x64
jl 0x401c20
jmp 0x401c6c
push dword [ebp - 4]
push 0
push esi
push str.status__i_bReadDone__i_bytesRead__i_n
call fcn.0040b76b
add esp, 0x10
push ebx
push str.Sequential_read_test_4MB_buffer__i_n
call fcn.0040b76b
add esp, 8
mov dword [edi + 0x254], 0x2000000
mov dword [edi + 0x258], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], 0
lea eax, [edi + 0x24c]
push eax
push 0
push 0x400000
push ebx
push dword [edi + 0x218]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x401ccc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x401cda
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, 0x32
jl 0x401ca1
jmp 0x401ced
push dword [ebp - 4]
push 0
push esi
push str.status__i_bReadDone__i_bytesRead__i_n
call fcn.0040b76b
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
sub eax, dword [ebp - 0x14]
push eax
sbb edx, dword [ebp - 0xc]
push edx
push eax
push 0
push 0xc800000
call fcn.0041d790
push eax
push str.Sequential_Read_transfer_rate:__i_KB_s_in__i_ms_n
call fcn.0040b76b
push str.Random_read__test_4KB_buffer_n
call fcn.0040b76b
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
sub eax, dword [ebp - 0x10]
sbb edx, dword [ebp - 0xc]
test edx, edx
ja 0x401d9d
jb 0x401d50
cmp eax, 0x7d0
jae 0x401d9d
nop dword [eax]
lea eax, [edi + 0x24c]
push eax
push 0
push 0x1000
push ebx
push dword [edi + 0x218]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x401d7b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x401d8a
add dword [edi + 0x254], 0x100000
inc dword [ebp - 8]
jmp 0x401d33
push dword [ebp - 4]
push 0
push esi
push str.status__i_bReadDone__i_bytesRead__i_n
call fcn.0040b76b
add esp, 0x10
mov eax, dword [ebp - 8]
shr eax, 1
push eax
push str.Random_4K_read_IOPS___i_n
call fcn.0040b76b
push dword [ebp - 0x18]
call fcn.0040bb61
add esp, 0xc
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8