Function at 0x401000
Capabilities:
Accept command line arguments
Check if file exists
Get file size
Terminate process

Disassembly:
call dword [sym.imp.kernel32.dll_GetCommandLineA]
mov esi, eax
mov edi, 0x401536
lodsb al, byte [esi]
cmp al, 0x22
jne 0x401019
lodsb al, byte [esi]
cmp al, 0x22
jne 0x401012
jmp 0x401026
lodsb al, byte [esi]
or al, al
je 0x401277
cmp al, 0x20
jne 0x401019
lodsb al, byte [esi]
or al, al
je 0x401277
cmp al, 0x20
je 0x401026
cmp al, 0x22
jne 0x401048
lodsb al, byte [esi]
stosb byte es:[edi], al
lodsb al, byte [esi]
cmp al, 0x22
je 0x401052
or al, al
je 0x401277
jmp 0x401038
stosb byte es:[edi], al
lodsb al, byte [esi]
cmp al, 0x20
je 0x401052
or al, al
jne 0x401048
xor eax, eax
stosb byte es:[edi], al
push 0x104
push 0x4012ef
push 0x401536
call dword [sym.imp.kernel32.dll_GetLongPathNameA]
push 0x401428
push 0x401536
push 0x104
push 0x4012ef
call dword [sym.imp.kernel32.dll_GetFullPathNameA]
push 0x401536
call dword [sym.imp.shlwapi.dll_PathFileExistsA]
cmp eax, 1
jne 0x401277
push 0x401536
call dword [sym.imp.shlwapi.dll_PathIsDirectoryA]
cmp eax, 0
jne 0x401277
push 0x401536
push 0x401432
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x4012aa
push 0x401432
call dword [sym.imp.kernel32.dll_lstrcatA]
push 0
push 0x401536
call dword [sym.imp.kernel32.dll__lopen]
cmp eax, 0xffffffff
je 0x401277
mov dword [0x401424], eax
push 0
push dword [0x401424]
call dword [sym.imp.kernel32.dll_GetFileSize]
mov dword [0x40142e], eax
push 0
push 0
push 2
push 0
push 0
push 0x40000000
push 0x401432
call dword [sym.imp.kernel32.dll_CreateFileA]
mov dword [0x401420], eax
push dword [0x401428]
push 0x40127f
push 0x4012ef
call dword [sym.imp.user32.dll_wsprintfA]
add esp, 0xc
push eax
push 0x4012ef
push dword [0x401420]
call dword [sym.imp.kernel32.dll__lwrite]
mov word [0x40142c], 0
push 0x2d
push 0x4013f3
call dword [sym.imp.kernel32.dll_RtlZeroMemory]
push 0x104
push 0x4012ef
call dword [sym.imp.kernel32.dll_RtlZeroMemory]
mov edi, 0x4012ef
push 0x2d
push 0x4013f3
push dword [0x401424]
call dword [sym.imp.kernel32.dll__lread]
or eax, eax
je 0x40122c
mov ebx, eax
mov ecx, eax
mov al, byte [ecx + 0x4012af]
stosb byte es:[edi], al
mov esi, 0x4013f3
lodsb al, byte [esi]
ror word [0x40142c], 1
movzx ax, al
add word [0x40142c], ax
loop 0x40119a
mov ecx, ebx
mov esi, 0x4013f3
xor eax, eax
lodsb al, byte [esi]
shl eax, 8
lodsb al, byte [esi]
shl eax, 8
lodsb al, byte [esi]
mov ebx, eax
shr eax, 0x12
and eax, 0x3f
mov al, byte [eax + 0x4012af]
stosb byte es:[edi], al
mov eax, ebx
shr eax, 0xc
and eax, 0x3f
mov al, byte [eax + 0x4012af]
stosb byte es:[edi], al
mov eax, ebx
shr eax, 6
and eax, 0x3f
mov al, byte [eax + 0x4012af]
stosb byte es:[edi], al
mov eax, ebx
and eax, 0x3f
mov al, byte [eax + 0x4012af]
stosb byte es:[edi], al
cmp ecx, 3
jbe 0x401204
sub ecx, 3
jmp 0x4011b6
mov eax, 0xa0d
stosd dword es:[edi], eax
push 0x4012ef
call dword [sym.imp.kernel32.dll_lstrlenA]
push eax
push 0x4012ef
push dword [0x401420]
call dword [sym.imp.kernel32.dll__lwrite]
jmp 0x40114d
movzx edx, word [0x40142c]
push dword [0x40142e]
push edx
push 0x40128e
push 0x4012ef
call dword [sym.imp.user32.dll_wsprintfA]
add esp, 0x10
push eax
push 0x4012ef
push dword [0x401420]
call dword [sym.imp.kernel32.dll__lwrite]
push dword [0x401420]
call dword [sym.imp.kernel32.dll__lclose]
push dword [0x401424]
call dword [sym.imp.kernel32.dll__lclose]
push 0
call dword [sym.imp.kernel32.dll_ExitProcess]