Function at 0x41a031
Capabilities:
Accept command line arguments
Check if file exists
Create process on windows
Get file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x240
mov eax, dword [0x4434f4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor edx, edx
mov dword [ebp - 0x23c], ecx
push esi
inc edx
lea ecx, [ebp - 0x234]
xor ebx, ebx
call fcn.0041fda0
test eax, eax
je 0x41a3e0
lea eax, [ebp - 0x234]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
push ecx
lea eax, [ebp - 0x238]
mov esi, 0x104
push eax
mov edx, esi
lea ecx, [ebp - 0x234]
call fcn.0040c131
test eax, eax
js 0x41a3e0
mov eax, dword [ebp - 0x238]
mov edx, esi
push ecx
push 0x402478
push ecx
lea ecx, [ebp - 0x234]
sub edx, eax
lea ecx, [ecx + eax*2]
call fcn.0040c197
test eax, eax
js 0x41a3e0
lea eax, [ebp - 0x234]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x41a3e0
test al, 0x10
jne 0x41a3e0
push edi
lea eax, [ebp - 0x234]
push 0x20
push eax
call dword [sym.imp.msvcrt.dll_wcschr]
pop ecx
pop ecx
push 2
pop edi
push 0x22
pop ecx
test eax, eax
je 0x41a17a
cmp cx, word [ebp - 0x234]
je 0x41a17a
lea ecx, [ebp - 0x234]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, edi
cmp ax, bx
jne 0x41a10c
sub ecx, edx
sar ecx, 1
push 2
pop edx
lea edi, [ecx + 5]
xor ecx, ecx
mov eax, edi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0044183a
mov esi, eax
pop ecx
test esi, esi
je 0x41a163
lea eax, [ebp - 0x234]
push eax
push 0x4042b8
push edi
push esi
call fcn.0040c0b5
add esp, 0x10
lea ecx, [ebp - 0x234]
mov edx, 0x104
push esi
call fcn.0040c010
jmp 0x41a16c
xor eax, eax
mov word [ebp - 0x234], ax
test esi, esi
je 0x41a177
push esi
call fcn.00441807
pop ecx
push 2
pop edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov esi, eax
mov dword [ebp - 0x238], esi
test esi, esi
je 0x41a3ca
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, edi
cmp ax, bx
jne 0x41a195
sub ecx, edx
sar ecx, 1
lea eax, [ecx + 1]
xor ecx, ecx
mov dword [ebp - 0x240], eax
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0044183a
mov edi, eax
pop ecx
test edi, edi
je 0x41a25d
mov edx, dword [ebp - 0x240]
mov ecx, edi
push esi
call fcn.0040c010
test eax, eax
js 0x41a256
push edi
call dword [sym.imp.msvcrt.dll__wcslwr]
mov dword [esp], 0x4038fc
push edi
call dword [sym.imp.msvcrt.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
je 0x41a207
add eax, 0x1a
push 0x22
pop ecx
cmp cx, word [eax]
jne 0x41a241
push 2
pop ecx
add eax, ecx
jmp 0x41a241
push 0x403918
push edi
call dword [sym.imp.msvcrt.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
je 0x41a250
add eax, 0x12
push 0x402478
push eax
mov dword [ebp - 0x240], eax
call dword [sym.imp.msvcrt.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
je 0x41a23b
sub eax, edi
add eax, 0x18
jmp 0x41a243
mov eax, dword [ebp - 0x240]
sub eax, edi
sar eax, 1
lea esi, [esi + eax*2]
mov dword [ebp - 0x238], esi
jmp 0x41a256
mov dword [ebp - 0x238], ebx
push edi
call fcn.00441807
pop ecx
mov eax, dword [ebp - 0x23c]
lea edi, [ebp - 0x1c]
mov esi, 0x40392c
push 5
pop ecx
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
test eax, eax
je 0x41a31e
cmp word [eax], bx
je 0x41a31e
mov esi, 0x403944
lea edi, [ebp - 0x2c]
lea edx, [ebp - 0x1c]
push 2
lea ecx, [edx + 2]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
mov ax, word [edx]
add edx, edi
cmp ax, bx
jne 0x41a299
sub edx, ecx
lea ecx, [ebp - 0x2c]
sar edx, 1
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, edi
cmp ax, bx
jne 0x41a2ad
sub ecx, esi
mov esi, dword [ebp - 0x23c]
sar ecx, 1
lea edi, [esi + 2]
mov ax, word [esi]
add esi, 2
cmp ax, bx
jne 0x41a2c4
sub esi, edi
sar esi, 1
push 2
lea eax, [esi + ecx]
xor ecx, ecx
lea esi, [edx + 1]
add esi, eax
pop edx
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0044183a
mov edi, eax
pop ecx
test edi, edi
je 0x41a3be
lea eax, [ebp - 0x1c]
mov edx, esi
push eax
mov ecx, edi
call fcn.0040c010
lea eax, [ebp - 0x2c]
mov edx, esi
push eax
mov ecx, edi
call fcn.0040c045
mov eax, dword [ebp - 0x23c]
jmp 0x41a396
mov esi, dword [ebp - 0x238]
test esi, esi
je 0x41a3c4
mov ecx, esi
push 2
pop edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, edi
cmp ax, bx
jne 0x41a334
sub ecx, edx
lea edx, [ebp - 0x1c]
sar ecx, 1
lea edi, [edx + 2]
mov ax, word [edx]
add edx, 2
cmp ax, bx
jne 0x41a348
sub edx, edi
lea eax, [ecx + 1]
sar edx, 1
xor ecx, ecx
add eax, edx
push 2
pop edx
mov dword [ebp - 0x23c], eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0044183a
mov edi, eax
pop ecx
test edi, edi
je 0x41a3c4
mov edx, dword [ebp - 0x23c]
lea eax, [ebp - 0x1c]
push eax
mov ecx, edi
call fcn.0040c010
mov eax, esi
mov esi, dword [ebp - 0x23c]
push eax
mov edx, esi
mov ecx, edi
call fcn.0040c045
push 0xa
push ebx
push edi
lea eax, [ebp - 0x234]
push eax
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push edi
mov ebx, eax
call fcn.00441807
pop ecx
jmp 0x41a3df
mov esi, dword [ebp - 0x238]
push 0xa
push ebx
push esi
jmp 0x41a3ce
push 0xa
push ebx
push ebx
lea eax, [ebp - 0x234]
push eax
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov ebx, eax
pop edi
mov ecx, dword [ebp - 4]
push 0x20
pop eax
cmp eax, ebx
pop esi
sbb eax, eax
xor ecx, ebp
neg eax
pop ebx
call fcn.00441b90
mov esp, ebp
pop ebp
ret