Function at 0x401ad0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x25c
push ebx
push ebp
push esi
push edi
push 0
push 0x8000080
push 3
push 0
push 3
push 0x80000000
push 0x40a0a4
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x401b37
push 0x40a0a4
lea eax, [esp + 0x18]
push str.Cannot_read:__s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [esp + 0x14]
push 0
push str.Error
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x25c
ret
push 0x40b751
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 2
push 2
push 0
jle 0x401b52
push 0xfffff588
jmp 0x401b57
push 0xfffffe00
mov esi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push ebp
call esi
push 2
push 0
push 0xfffffe00
push ebp
call esi
mov edi, dword [sym.imp.KERNEL32.dll_ReadFile]
lea edx, [esp + 0x10]
push 0
push edx
push 0x200
push 0x40a6e0
push ebp
mov ebx, eax
call edi
cmp byte [0x40a6e0], 0x40
je 0x401c9b
push 2
push 0
push 0xfffff588
push ebp
call esi
mov ebx, eax
lea eax, [esp + 0x10]
push 0
push eax
push 0x200
push 0x40a6e0
push ebp
call edi
cmp byte [0x40a6e0], 0x40
je 0x401c9b
push 2
push 0
push 0xfffff587
push ebp
call esi
lea ecx, [esp + 0x10]
push 0
push ecx
push 0x200
push 0x40a6e0
push ebp
mov ebx, eax
call edi
cmp byte [0x40a6e0], 0x40
je 0x401c9b
push 2
push 0
push 0xfffff580
push ebp
call esi
lea edx, [esp + 0x10]
push 0
push edx
push 0x200
push 0x40a6e0
push ebp
mov ebx, eax
call edi
cmp byte [0x40a6e0], 0x40
je 0x401c9b
push 2
push 0
push 0xfffff53a
push ebp
call esi
mov ebx, eax
lea eax, [esp + 0x10]
push 0
push eax
push 0x200
push 0x40a6e0
push ebp
call edi
cmp byte [0x40a6e0], 0x40
je 0x401c9b
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x40a0a4
lea ecx, [esp + 0x18]
push str._s_is_invalid._The_program_has_not_been_initialized__is_corrupted__or_has_been_improperly_signed.
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
add esp, 0xc
lea edx, [esp + 0x14]
push 0
push str.Error
push edx
push 0
call esi
push 0
push 0x4093ec
push 0x40a6e0
push 0
call esi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x25c
ret
push 0x40a6e1
call fcn.00402c20
mov ecx, 0x1f
mov esi, 0x40a6ea
mov edi, 0x4098a4
mov dword [0x40b6e4], eax
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0x40a760
movsb byte es:[edi], byte [esi]
call fcn.00402c20
mov ecx, dword [0x40a76e]
mov edx, dword [0x40a772]
mov dword [0x40b6e0], eax
mov eax, dword [0x40a76a]
mov dword [0x409ba8], ecx
mov cl, byte [0x40a778]
mov dword [0x409ba4], eax
mov ax, word [0x40a776]
mov byte [0x409bb2], cl
mov ecx, 5
mov esi, 0x40a77a
mov edi, 0x40b73d
mov dword [0x409bac], edx
mov word [0x409bb0], ax
rep movsd dword es:[edi], dword [esi]
mov ecx, 5
mov esi, 0x40a78f
mov edi, 0x40b75b
add esp, 8
rep movsd dword es:[edi], dword [esi]
mov dx, word [0x40a7ac]
mov al, byte [0x40a7ae]
mov ecx, dword [0x40a7e0]
mov word [0x40b76f], dx
mov edx, dword [0x40a7e4]
mov byte [0x40b771], al
mov ax, word [0x40a7e8]
mov dword [0x40a6a4], ecx
mov ecx, 0xc
mov esi, 0x40a7f4
mov edi, 0x40b6f0
mov dword [0x40a6a8], edx
mov word [0x40a6ac], ax
push ebp
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov ax, word [0x40a82b]
mov dl, byte [0x40a82a]
mov ecx, dword [0x40a826]
mov word [0x40b727], ax
mov al, byte [0x40a830]
mov byte [0x40b726], dl
mov dx, word [0x40a82e]
mov byte [0x40b72c], al
mov ax, word [0x40a834]
mov dword [0x40b722], ecx
mov cl, byte [0x40a82d]
mov esi, dword [0x40b6e4]
mov word [0x40b72a], dx
mov dl, byte [0x40a833]
mov word [0x40b730], ax
mov eax, dword [0x40a83b]
mov byte [0x40b729], cl
mov cx, word [0x40a831]
mov byte [0x40b72f], dl
mov edx, dword [0x40a837]
mov dword [0x40b737], eax
mov eax, dword [0x40b6e0]
mov word [0x40b72d], cx
mov cl, byte [0x40a836]
mov dword [0x40b733], edx
mov edx, eax
mov byte [0x40b732], cl
mov cx, word [0x40a83f]
sub edx, esi
sub ebx, eax
mov word [0x40b73b], cx
mov dword [0x40b6ec], edx
mov dword [0x40b6e8], ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x25c
ret