Function at 0x401e60
Capabilities:
Read file on windows
Terminate process

Disassembly:
sub esp, 0x10
mov eax, dword [0x410b5c]
push ebx
push ebp
push esi
push edi
push 0x8002
push eax
call dword [sym.imp.MSVCRT.dll__open]
mov edi, eax
add esp, 8
cmp edi, 0xffffffff
mov dword [esp + 0x14], edi
jne 0x402086
call dword [sym.imp.MSVCRT.dll__errno]
mov ebp, dword [eax]
mov eax, dword [0x410b2c]
mov ecx, dword [0x410b5c]
mov ebx, dword [sym.imp.MSVCRT.dll_printf]
test eax, eax
mov dword [esp + 0x14], ecx
jne 0x401ed8
push 0x7d0
mov dword [0x410b2c], 1
call fcn.004049d0
push eax
push 0x410158
call ebx
push str._Version_6.00.8168
call ebx
push str._nCopyright__C__Microsoft_Corp_1990_1998._All_rights_reserved._n_n
call ebx
add esp, 0x14
mov edx, dword [0x410b70]
test edx, edx
jne 0x401f3f
push 2
call fcn.004049d0
add esp, 4
mov dword [0x410b70], eax
test eax, eax
je 0x401f34
mov esi, eax
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
and ecx, 0xffff
push ecx
call fcn.0040e2f0
mov edx, eax
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x401f39
mov edx, 0x410034
mov dword [0x410b70], edx
push 0x5e2
push edx
push 0x41006c
call ebx
mov ecx, dword [0x4108e4]
add esp, 0xc
test ecx, ecx
jne 0x401f70
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ecx, eax
test ecx, ecx
mov dword [0x4108e4], ecx
je 0x401fb4
mov eax, dword [0x4108e0]
test eax, eax
jne 0x401f8e
push str.LoadStringA
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [0x4108e0], eax
je 0x401fb4
mov ecx, dword [0x410b74]
push 0x400
push 0x4104e0
push 0x5e2
push ecx
call eax
test eax, eax
jne 0x401faf
mov byte [0x4104e0], al
mov eax, 0x4104e0
mov edx, dword [esp + 0x14]
push edx
push eax
call ebx
add esp, 8
test ebp, ebp
je 0x401fd5
push ebp
call dword [sym.imp.MSVCRT.dll_strerror]
push eax
push str.:__s
call ebx
add esp, 0xc
push 0x410088
call ebx
mov eax, dword [sym.imp.MSVCRT.dll__iob]
mov esi, dword [sym.imp.MSVCRT.dll_fflush]
add eax, 0x20
push eax
call esi
mov ecx, dword [sym.imp.MSVCRT.dll__iob]
add ecx, 0x40
push ecx
call esi
mov eax, dword [0x4109f8]
add esp, 0xc
test eax, eax
jne 0x40207e
mov ecx, dword [0x410a24]
mov dword [0x4109f8], 1
test ecx, ecx
je 0x40201d
mov edx, dword [ecx]
call dword [edx]
mov ecx, dword [0x410a28]
test ecx, ecx
je 0x40207e
mov eax, dword [ecx]
call dword [eax + 0x28]
mov eax, dword [0x410b50]
test eax, eax
je 0x40204a
mov eax, dword [0x410b5c]
test eax, eax
je 0x40207e
push eax
call dword [sym.imp.MSVCRT.dll__unlink]
add esp, 4
jmp 0x40207e
mov edx, dword [0x410b5c]
test edx, edx
je 0x40207e
mov ecx, dword [0x410a18]
test ecx, ecx
je 0x40207e
mov eax, dword [0x410a1c]
test eax, eax
je 0x40207e
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x18]
push ecx
push edx
mov dword [esp + 0x24], eax
call dword [sym.imp.MSVCRT.dll__utime]
add esp, 8
push 4
call dword [sym.imp.MSVCRT.dll_exit]
lea edx, [esp + 0x13]
push 1
push edx
push edi
call dword [sym.imp.MSVCRT.dll__read]
add esp, 0xc
cmp eax, 0xffffffff
je 0x4020c9
push 0
push 0
push edi
call dword [sym.imp.MSVCRT.dll__lseek]
add esp, 0xc
cmp eax, 0xffffffff
je 0x4020c9
lea eax, [esp + 0x13]
push 1
push eax
push edi
call dword [sym.imp.MSVCRT.dll__write]
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40224a
call dword [sym.imp.MSVCRT.dll__errno]
mov ebp, dword [eax]
mov eax, dword [0x410b2c]
mov ecx, dword [0x410b5c]
mov ebx, dword [sym.imp.MSVCRT.dll_printf]
test eax, eax
mov dword [esp + 0x18], ecx
jne 0x402117
push 0x7d0
mov dword [0x410b2c], 1
call fcn.004049d0
push eax
push 0x410158
call ebx
push str._Version_6.00.8168
call ebx
push str._nCopyright__C__Microsoft_Corp_1990_1998._All_rights_reserved._n_n
call ebx
add esp, 0x14
mov edx, dword [0x410b70]
test edx, edx
jne 0x402188
push 2
call fcn.004049d0
add esp, 4
mov dword [0x410b70], eax
test eax, eax
je 0x40217d
mov esi, eax
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
and ecx, 0xffff
push ecx
call fcn.0040e2f0
mov edx, eax
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x14]
mov dword [0x410b70], edx
jmp 0x402188
mov edx, 0x410034
mov dword [0x410b70], edx
push 0x5df
push edx
push 0x41006c
call ebx
mov ecx, dword [0x4108e4]
add esp, 0xc
test ecx, ecx
jne 0x4021b9
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ecx, eax
test ecx, ecx
mov dword [0x4108e4], ecx
je 0x4021fd
mov eax, dword [0x4108e0]
test eax, eax
jne 0x4021d7
push str.LoadStringA
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [0x4108e0], eax
je 0x4021fd
mov ecx, dword [0x410b74]
push 0x400
push 0x4104e0
push 0x5df
push ecx
call eax
test eax, eax
jne 0x4021f8
mov byte [0x4104e0], al
mov eax, 0x4104e0
mov edx, dword [esp + 0x18]
push edx
push eax
call ebx
add esp, 8
test ebp, ebp
je 0x40221e
push ebp
call dword [sym.imp.MSVCRT.dll_strerror]
push eax
push str.:__s
call ebx
add esp, 0xc
push 0x410088
call ebx
mov eax, dword [sym.imp.MSVCRT.dll__iob]
mov esi, dword [sym.imp.MSVCRT.dll_fflush]
add eax, 0x20
push eax
call esi
mov ecx, dword [sym.imp.MSVCRT.dll__iob]
add ecx, 0x40
push ecx
call esi
add esp, 0xc
call fcn.00401dd0
push edi
call dword [sym.imp.MSVCRT.dll__close]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret