Function at 0x401000
Capabilities:
Accept command line arguments
Create process on windows
Terminate process

Disassembly:
push ebx
push edi
push esi
mov eax, 0x2084c
call fcn.00401370
lea edi, [esp + 0x44]
push 0x400
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
cmp eax, 0x400
jne 0x401042
push 0x10
push str.TMLoader
push str.Failed_to_launch_a_game_with_modifications__because_the_path_is_too_long.
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 1
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov ecx, 1
nop word [eax + eax]
mov esi, edi
xor edx, edx
add edi, 2
mov eax, esi
jmp 0x401073
cmp esi, eax
movzx edx, dl
cmovne edx, ecx
cmove eax, edi
nop word cs:[eax + eax]
add edi, 2
movzx ebx, word [edi - 2]
cmp ebx, 0x2e
jle 0x401090
cmp ebx, 0x5c
je 0x401050
cmp ebx, 0x2f
jne 0x401070
jmp 0x401050
je 0x40105b
test ebx, ebx
jne 0x401070
test dl, 1
cmove eax, esi
movzx ecx, word [esi]
cmp ecx, 0x53
je 0x4010b1
test ecx, ecx
je 0x40113f
jmp 0x40115b
movzx ecx, word [esi + 2]
test ecx, ecx
je 0x40113f
cmp ecx, 0x68
jne 0x40115b
movzx ecx, word [esi + 4]
test ecx, ecx
je 0x40113f
cmp ecx, 0x69
jne 0x40115b
movzx ecx, word [esi + 6]
test ecx, ecx
je 0x40113f
cmp ecx, 0x6d
jne 0x40115b
movzx ecx, word [esi + 8]
test ecx, ecx
je 0x40113f
cmp ecx, 0x52
jne 0x40115b
movzx ecx, word [esi + 0xa]
test ecx, ecx
je 0x40113f
cmp ecx, 0x75
jne 0x40115b
movzx ecx, word [esi + 0xc]
test ecx, ecx
je 0x40113f
cmp ecx, 0x6e
jne 0x40115b
movzx ecx, word [esi + 0xe]
test ecx, ecx
je 0x40113f
cmp ecx, 0x2e
jne 0x40115b
movzx ecx, word [esi + 0x10]
test ecx, ecx
je 0x40113f
cmp ecx, 0x65
jne 0x40115b
movzx ecx, word [esi + 0x12]
test ecx, ecx
je 0x40113f
cmp ecx, 0x78
jne 0x40115b
movzx ecx, word [esi + 0x14]
test ecx, ecx
je 0x40113f
cmp ecx, 0x65
jne 0x40115b
push 0x10
push str.TMLoader
push str.This_program_is_not_yet_assigned_to_any_game.
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 2
call dword [sym.imp.KERNEL32.dll_ExitProcess]
movaps xmm0, xmmword [str.tmml:run_defaultbak.]
movups xmmword [esp + 0x84c], xmm0
mov word [esp + 0x85c], 0x3b
mov edi, 0x26
nop dword [eax]
movzx ecx, word [eax + edi - 0x26]
test ecx, ecx
je 0x40119b
cmp ecx, 0x2e
je 0x40119b
mov word [esp + edi + 0x838], cx
add edi, 2
jmp 0x401180
movaps xmm0, xmmword [0x402010]
movups xmmword [esp + edi + 0x838], xmm0
mov word [esp + edi + 0x848], 0x3b
lea ebx, [esp + edi]
add ebx, 0x84a
mov eax, esi
nop
movzx ecx, word [eax]
test ecx, ecx
je 0x4011da
cmp ecx, 0x2e
je 0x4011da
add eax, 2
mov word [ebx], cx
add ebx, 2
add edi, 2
jmp 0x4011c0
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
test eax, eax
je 0x40128c
mov word [ebx], 0x3b
movzx ecx, word [eax]
cmp cx, 0x22
jne 0x401220
add eax, 2
nop dword [eax]
movzx ecx, word [eax]
test ecx, ecx
je 0x401215
add eax, 2
cmp ecx, 0x22
jne 0x401200
cmp word [eax], 0
jne 0x401240
add ebx, 2
jmp 0x40128c
test cx, cx
je 0x401215
movzx ecx, word [eax + 2]
add eax, 2
cmp cx, 0x20
jne 0x401220
nop word cs:[eax + eax]
movzx ecx, word [eax + 2]
add eax, 2
cmp cx, 0x20
je 0x401240
add ebx, 2
test cx, cx
je 0x40128c
lea edx, [edi - 2]
cmp edx, 0x1fffa
ja 0x40128c
add eax, 2
mov word [esp + edi + 0x84c], cx
lea edx, [edi + 2]
movzx ecx, word [eax]
test cx, cx
je 0x401283
add eax, 2
cmp edi, 0x1fffb
mov edi, edx
jb 0x401263
lea ebx, [esp + edx]
add ebx, 0x84c
mov word [ebx], 0
mov dword [esp], 0
mov dword [esp + 0x2c], 0
mov word [esp + 0x30], 0
mov eax, esp
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
test byte [esp + 0x2c], 1
movzx eax, word [esp + 0x30]
mov edi, 0xa
cmovne edi, eax
lea eax, [esp + 0x84c]
push edi
push 0
push 0
push eax
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
ja 0x40135d
push 0x30
push str.TMLoader
push str.Failed_to_launch_a_game_with_modifications._nTo_fix_this_issue__run_TMLoader_and_install_the_protocol._nTrying_to_launch_the_backup_game_instead.
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
nop word cs:[eax + eax]
cmp word [esi], 0x2e
lea esi, [esi + 2]
jne 0x401300
mov eax, dword [esi]
mov dword [esi + 8], eax
movzx eax, word [esi + 4]
mov word [esi + 0xc], ax
movsd xmm0, qword [0x402020]
movsd qword [esi], xmm0
mov word [esi + 0xe], 0
lea eax, [esp + 0x44]
push edi
push 0
push 0
push eax
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
ja 0x40135d
push 0x10
push str.TMLoader
push str.Failed_to_launch_the_backup_game.
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 3
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]