Function at 0x40aad0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x27c
mov eax, dword [0x46706c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
push edi
cmp byte [esi + 0x5d9d], 0
mov ecx, dword [esi + 0x619e]
mov dword [ebp - 0x268], ecx
je 0x40ab96
or eax, 0xffffffff
xor ebx, ebx
test ecx, ecx
jle 0x40ab72
mov esi, dword [esi + 0x61aa]
add esi, 0x63
lea edx, [esi - 0x18]
mov eax, 0x45dad8
mov edi, 0xc
mov ecx, dword [edx]
cmp ecx, dword [eax]
jne 0x40ab60
add edx, 4
add eax, 4
sub edi, 4
jae 0x40ab20
cmp byte [esi], 0x41
jne 0x40ab60
cmp byte [esi + 1], 0x73
jne 0x40ab60
cmp byte [esi + 2], 0x63
jne 0x40ab60
cmp byte [esi + 3], 0x6c
jne 0x40ab60
cmp byte [esi + 4], 0x65
jne 0x40ab60
cmp byte [esi + 5], 0x70
jne 0x40ab60
cmp byte [esi + 6], 0x69
jne 0x40ab60
cmp byte [esi + 7], 0x75
je 0x40ab83
inc ebx
add esi, 0xbb
cmp ebx, dword [ebp - 0x268]
jl 0x40ab13
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00414edc
mov esp, ebp
pop ebp
ret
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00414edc
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [ebp - 0x268], eax
test ecx, ecx
jle 0x40ab6f
mov dword [ebp - 0x264], eax
xor ebx, ebx
nop word [eax + eax]
mov eax, dword [esi + 0x61aa]
xor ecx, ecx
mov eax, dword [ebx + eax + 0xb]
cmp ecx, dword [esi + 0x61a6]
ja 0x40ad12
jb 0x40abd6
cmp eax, dword [esi + 0x61a2]
ja 0x40ad12
movups xmm0, xmmword [str.Z:WinClonManager1.exe]
push ecx
push ecx
push eax
push ecx
movups xmmword [ebp - 0x1c], xmm0
lea eax, [ebp - 0x1c]
mov ecx, esi
movq xmm0, qword [0x45dabc]
push eax
movq qword [ebp - 0xc], xmm0
call fcn.0040ad70
test al, al
je 0x40ad12
push 0x200
lea eax, [ebp - 0x260]
xor bl, bl
push 0
push eax
call fcn.0042d530
add esp, 0xc
lea eax, [ebp - 0x60]
push 0x40
push 0
push eax
call fcn.0042d530
add esp, 0xc
lea eax, [ebp - 0x60]
push dword [esi + 0x5d09]
push str..PHYSICALDRIVE_d
push 0x20
push eax
call fcn.004011f0
add esp, 0x10
lea eax, [ebp - 0x60]
push 0
push 0
push 3
push 0
push 3
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x40ad01
push 0x200
lea eax, [ebp - 0x260]
push 0
push eax
call fcn.0042d530
add esp, 0xc
mov dword [ebp - 0x270], 0x800
lea eax, [ebp - 0x26c]
mov dword [ebp - 0x26c], 0
push 0
push eax
push 0x800
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x40acb8
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x40ad0c
push 0
lea eax, [ebp - 0x278]
push eax
push 0x200
lea eax, [ebp - 0x260]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
setne bl
test eax, eax
je 0x40ad0c
mov eax, dword [ebp - 0x278]
or eax, dword [ebp - 0x274]
je 0x40ad0c
test bl, bl
je 0x40ad01
cmp byte [ebp - 0xdb], 0x35
mov eax, 1
movzx ebx, bl
cmovge ebx, eax
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test bl, bl
jne 0x40ad4b
mov ebx, dword [ebp - 0x264]
mov eax, dword [ebp - 0x268]
add ebx, 0xbb
inc eax
mov dword [ebp - 0x264], ebx
mov dword [ebp - 0x268], eax
cmp eax, dword [esi + 0x619e]
jl 0x40abb0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00414edc
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x268]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.00414edc
mov esp, ebp
pop ebp
ret