Function at 0x401b4b
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x730
mov eax, dword [0x410284]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
cmp word [eax], 0x22
je 0x401b71
push 0x20
jmp 0x401b76
push 0x22
add eax, 4
pop ecx
push ecx
push eax
call fcn.00401fb6
pop ecx
pop ecx
test eax, eax
jne 0x401b90
mov dword [ebp - 0x72c], 0x40eb54
jmp 0x401bb4
lea esi, [eax + 2]
jmp 0x401ba6
push 8
push eax
call fcn.00402caf
pop ecx
pop ecx
test eax, eax
je 0x401bae
add esi, 2
movzx eax, word [esi]
test ax, ax
jne 0x401b95
mov dword [ebp - 0x72c], esi
mov edi, 0x104
push edi
mov esi, 0x411be0
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
cmp word [0x411be0], 0x22
je 0x401bda
mov dword [ebp - 0x724], esi
jmp 0x401be7
mov dword [ebp - 0x724], 0x411be2
sub eax, 2
mov edx, dword [ebp - 0x724]
xor ecx, ecx
lea ebx, [ebp - 0x720]
mov word [edx + eax*2], cx
mov byte [0x410ec0], 0x50
call fcn.004011a6
mov ebx, eax
xor eax, eax
test ebx, ebx
setne al
push str.Failed_to_find_shebang
push eax
call fcn.0040110b
pop ecx
lea eax, [ebx + 0x104]
xor esi, esi
pop ecx
mov ecx, ebx
cmp ebx, eax
jae 0x401c3e
mov dl, byte [ecx]
cmp dl, 0xd
je 0x401c3c
cmp dl, 0xa
je 0x401c3c
inc ecx
cmp ecx, eax
jb 0x401c29
jmp 0x401c3e
mov esi, ecx
xor eax, eax
test esi, esi
setne al
push str.Expected_to_find_terminator_in_shebang_line
push eax
call fcn.0040110b
pop ecx
pop ecx
push edi
lea eax, [ebp - 0x20c]
push eax
mov byte [esi], 0
sub esi, ebx
push esi
push ebx
push 8
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov esi, eax
xor eax, eax
xor ebx, ebx
cmp esi, ebx
setne al
push str.Expected_to_decode_shebang_line_using_UTF_8
push eax
call fcn.0040110b
xor eax, eax
mov word [ebp + esi*2 - 0x20c], ax
pop ecx
pop ecx
lea esi, [ebp - 0x20c]
cmp word [ebp - 0x20c], bx
je 0x401cb8
movzx eax, word [esi]
push 8
push eax
call fcn.00402caf
pop ecx
pop ecx
test eax, eax
je 0x401cb8
add esi, 2
cmp word [esi], bx
jne 0x401c9f
xor eax, eax
cmp word [esi], 0x23
push str.Expected_to_find__at_start_of_shebang_line
sete al
push eax
call fcn.0040110b
pop ecx
pop ecx
push 2
pop edi
jmp 0x401ce1
push 8
push eax
call fcn.00402caf
pop ecx
pop ecx
test eax, eax
je 0x401ceb
add esi, edi
movzx eax, word [esi]
cmp ax, bx
jne 0x401cd3
xor eax, eax
cmp word [esi], 0x21
push str.Expected_to_find___following__in_shebang_line
sete al
push eax
call fcn.0040110b
pop ecx
pop ecx
jmp 0x401d11
push 8
push eax
call fcn.00402caf
pop ecx
pop ecx
test eax, eax
je 0x401d1b
add esi, edi
movzx eax, word [esi]
cmp ax, bx
jne 0x401d03
lea eax, [ebp - 0x728]
push eax
push esi
mov dword [ebp - 0x728], ebx
call fcn.00401981
mov edi, eax
xor eax, eax
test edi, edi
setne al
push str.Expected_to_find_executable_in_shebang_line
push eax
call fcn.0040110b
xor eax, eax
cmp dword [ebp - 0x728], eax
push str.Expected_to_find_arguments__even_if_empty__in_shebang_line
setne al
push eax
call fcn.0040110b
push 0xf
pop ebx
push ebx
push edi
push str._launcher_dir__
call fcn.004024ae
add esp, 0x24
test eax, eax
jne 0x401de4
push 0x411be0
lea eax, [ebp - 0x414]
push 0x104
push eax
call fcn.00403a0f
add esp, 0xc
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
cmp word [edi + 0x1e], 0x22
jne 0x401dc6
push 0x10
pop ebx
lea eax, [edi + 0x20]
push 0x22
push eax
call fcn.00401fb6
mov esi, eax
xor eax, eax
test esi, esi
setne al
push edi
push str.Expected_terminating_double_quote_for_executable_in_shebang_line:__ls
push eax
call fcn.0040110b
add esp, 0x14
xor eax, eax
mov word [esi], ax
lea eax, [edi + ebx*2]
push eax
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x61c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea edi, [ebp - 0x61c]
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x401de9
sub eax, edx
sar eax, 1
mov esi, eax
mov eax, dword [ebp - 0x728]
lea ecx, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x401e03
sub eax, ecx
sar eax, 1
mov dword [ebp - 0x730], eax
mov eax, dword [ebp - 0x724]
lea ecx, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x401e21
sub eax, ecx
sar eax, 1
mov ecx, eax
mov eax, dword [ebp - 0x72c]
lea edx, [eax + 2]
mov bx, word [eax]
add eax, 2
test bx, bx
jne 0x401e3b
sub eax, edx
sar eax, 1
add ecx, eax
add ecx, dword [ebp - 0x730]
push 2
lea esi, [ecx + esi + 8]
push esi
call fcn.00402302
mov ebx, eax
xor eax, eax
test ebx, ebx
setne al
push str.Expected_to_be_able_to_allocate_command_line_memory
push eax
call fcn.0040110b
push dword [ebp - 0x72c]
push dword [ebp - 0x724]
push dword [ebp - 0x728]
push edi
push str.__ls___ls___ls___ls
push esi
push esi
push ebx
call fcn.00402a27
add esp, 0x30
push ebx
call fcn.0040170c
int3