Function at 0x402aa0
Capabilities:
Accept command line arguments
Contain obfuscated stackstrings
Create process on windows
Create process suspended
Create thread
Get common file path
Hide graphical window
Parse pe header
Query or enumerate registry value
Read .ini file
Read file on windows
Resume thread
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40a602
mov eax, dword fs:[0]
push eax
sub esp, 0x444
mov eax, dword [0x412018]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x36c]
xor ebx, ebx
push ecx
mov dword [ebp - 0x3a0], eax
mov dword [ebp - 4], ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [ebp - 0x34c], eax
mov eax, 0xf
mov dword [ebp - 0x318], eax
mov dword [ebp - 0x31c], ebx
mov byte [ebp - 0x32c], bl
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x2ac], ebx
mov byte [ebp - 0x2bc], bl
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x274], ebx
mov byte [ebp - 0x284], bl
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1cc], ebx
mov byte [ebp - 0x1dc], bl
mov dword [ebp - 0x388], ebx
mov dword [ebp - 0x384], ebx
mov dword [ebp - 0x380], ebx
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0x1b0], ebx
mov byte [ebp - 0x1c0], bl
mov dword [ebp - 0x2c4], eax
mov dword [ebp - 0x2c8], ebx
mov byte [ebp - 0x2d8], bl
mov dword [ebp - 0x2e0], eax
mov dword [ebp - 0x2e4], ebx
mov byte [ebp - 0x2f4], bl
mov dword [ebp - 0x360], ebx
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x1e8], ebx
mov byte [ebp - 0x1f8], bl
mov dword [ebp - 0x190], eax
mov dword [ebp - 0x194], ebx
mov byte [ebp - 0x1a4], bl
mov dword [ebp - 0x2fc], eax
mov dword [ebp - 0x300], ebx
mov byte [ebp - 0x310], bl
mov dword [ebp - 0x334], eax
mov dword [ebp - 0x338], ebx
mov byte [ebp - 0x348], bl
mov byte [ebp - 4], 0xc
mov byte [ebp - 0x355], bl
mov esi, 0x104
jmp 0x402bf0
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004068f0
mov edi, eax
add esp, 4
mov dword [ebp - 0x35c], edi
push esi
push edi
push ebx
mov byte [ebp - 4], 0xd
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
cmp eax, esi
jne 0x402c3a
push edi
add esi, 0x104
mov byte [ebp - 4], 0xc
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
add esp, 4
jmp 0x402bf0
xor eax, eax
mov word [ebp - 0x150], ax
mov eax, edi
mov dword [ebp - 0x13c], 7
mov dword [ebp - 0x140], ebx
lea edx, [eax + 2]
jmp 0x402c60
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x402c60
sub eax, edx
sar eax, 1
push eax
mov eax, edi
lea ecx, [ebp - 0x150]
call fcn.00401ee0
lea ecx, [ebp - 0x150]
lea ebx, [ebp - 0x16c]
mov byte [ebp - 4], 0xe
call fcn.004012d0
mov ebx, 0xf
mov edi, eax
lea esi, [ebp - 0x32c]
mov byte [ebp - 4], bl
call fcn.00402580
cmp dword [ebp - 0x158], 0x10
jb 0x402cc0
mov ecx, dword [ebp - 0x16c]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
cmp dword [ebp - 0x13c], 8
mov dword [ebp - 0x158], ebx
mov dword [ebp - 0x15c], 0
mov byte [ebp - 0x16c], 0
jb 0x402cf0
mov edx, dword [ebp - 0x150]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x35c]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
add esp, 4
lea edi, [ebp - 0x32c]
call fcn.004050d0
cmp eax, 0xffffffff
je 0x402d4d
push eax
mov ecx, edi
push ecx
xor ebx, ebx
lea esi, [ebp - 0x30]
call fcn.00405140
mov ebx, 0x10
mov edi, eax
lea esi, [ebp - 0x2bc]
mov byte [ebp - 4], bl
call fcn.00402580
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x1c], ebx
jb 0x402d4d
mov edx, dword [ebp - 0x30]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push 0
push 0
call ebx
mov edi, eax
test edi, edi
jne 0x402d8d
lea eax, [ebp - 0x34c]
push eax
lea ecx, [ebp - 0x400]
mov dword [ebp - 0x34c], 0x40f8c8
call dword [sym.imp.MSVCR100.dll_public:_void___thiscall_std::exception::constructor_char_const__const_const__]
push 0x410440
lea ecx, [ebp - 0x400]
push ecx
call sub.MSVCR100.dll__CxxThrowException
xor ecx, ecx
mov eax, edi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004068f0
mov esi, eax
add esp, 4
mov dword [ebp - 0x35c], esi
push esi
push edi
mov byte [ebp - 4], 0x11
call ebx
test eax, eax
jne 0x402dea
lea eax, [ebp - 0x34c]
push eax
lea ecx, [ebp - 0x3dc]
mov dword [ebp - 0x34c], str.Unable_to_get_current_directory
call dword [sym.imp.MSVCR100.dll_public:_void___thiscall_std::exception::constructor_char_const__const_const__]
push 0x410440
lea ecx, [ebp - 0x3dc]
push ecx
call sub.MSVCR100.dll__CxxThrowException
xor edx, edx
mov eax, esi
mov word [ebp - 0x150], dx
mov dword [ebp - 0x13c], 7
mov dword [ebp - 0x140], 0
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x402e10
sub eax, edx
sar eax, 1
push eax
mov eax, esi
lea ecx, [ebp - 0x150]
call fcn.00401ee0
lea ecx, [ebp - 0x150]
lea ebx, [ebp - 0x16c]
mov byte [ebp - 4], 0x12
call fcn.004012d0
mov edi, eax
lea esi, [ebp - 0x284]
mov byte [ebp - 4], 0x13
call fcn.00402580
cmp dword [ebp - 0x158], 0x10
jb 0x402e6c
mov eax, dword [ebp - 0x16c]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
cmp dword [ebp - 0x13c], 8
mov dword [ebp - 0x158], 0xf
mov dword [ebp - 0x15c], 0
mov byte [ebp - 0x16c], 0
jb 0x402ea0
mov ecx, dword [ebp - 0x150]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x35c]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
mov eax, 1
add esp, 4
mov byte [ebp - 0x34d], 0
mov dword [ebp - 0x35c], eax
jmp 0x402ed0
cmp eax, dword [ebp - 0x36c]
jge 0x403465
mov ecx, dword [ebp - 0x34c]
mov eax, dword [ecx + eax*4]
lea esi, [ebp - 0x30]
call fcn.00401ff0
mov ecx, esi
lea ebx, [ebp - 0x16c]
mov byte [ebp - 4], 0x14
call fcn.004012d0
call fcn.004011e0
mov dword [ebp - 0x13c], 0xf
mov dword [ebp - 0x140], 0
mov byte [ebp - 0x150], 0
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x15c]
lea esi, [ebp - 0x150]
test ecx, ecx
jne 0x402f3c
or eax, 0xffffffff
call fcn.00402140
jmp 0x402f45
push 0
mov ebx, ecx
call fcn.00406560
cmp dword [ebp - 0x13c], 0x10
mov edi, dword [ebp - 0x150]
jae 0x402f5a
lea edi, [ebp - 0x150]
mov ecx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x16c]
cmp ecx, 0x10
jae 0x402f71
lea eax, [ebp - 0x16c]
mov edx, dword [ebp - 0x15c]
mov esi, dword [ebp - 0x16c]
lea ebx, [eax + edx]
cmp ecx, 0x10
jae 0x402f8b
lea esi, [ebp - 0x16c]
cmp esi, ebx
je 0x402fa7
nop
cmp esi, ebx
je 0x402fa7
movsx eax, byte [esi]
push eax
call dword [sym.imp.MSVCR100.dll_tolower]
add esp, 4
mov byte [edi], al
inc esi
inc edi
jmp 0x402f90
lea ecx, [ebp - 0x150]
push ecx
mov edx, str..ini
call fcn.004050a0
cmp eax, 0xffffffff
je 0x403210
lea edx, [ebp - 0x16c]
push edx
mov edx, 0x40f8c0
call fcn.004050a0
cmp eax, 0xffffffff
je 0x402ff3
lea eax, [ebp - 0x16c]
push eax
or eax, 0xffffffff
xor ebx, ebx
lea ecx, [ebp - 0x1dc]
call fcn.004024a0
jmp 0x403146
cmp dword [ebp - 0x158], 0x10
mov eax, dword [ebp - 0x16c]
jae 0x403008
lea eax, [ebp - 0x16c]
cmp byte [eax], 0x5c
jne 0x40303d
lea ecx, [ebp - 0x16c]
push ecx
lea edx, [ebp - 0x284]
push edx
lea eax, [ebp - 0x30]
push eax
call fcn.00405990
add esp, 0xc
mov edi, eax
lea esi, [ebp - 0x1dc]
mov byte [ebp - 4], 0x18
call fcn.00402580
lea esi, [ebp - 0x30]
jmp 0x40308a
push 0x40f8c4
lea ecx, [ebp - 0x284]
push ecx
lea edx, [ebp - 0x188]
push edx
call fcn.004058b0
add esp, 0xc
mov ecx, eax
lea eax, [ebp - 0x16c]
lea ebx, [ebp - 0x30]
mov byte [ebp - 4], 0x19
call fcn.00405870
mov edi, eax
lea esi, [ebp - 0x1dc]
mov byte [ebp - 4], 0x1a
call fcn.00402580
mov esi, ebx
call fcn.004025f0
lea esi, [ebp - 0x188]
mov byte [ebp - 4], 0x17
call fcn.004025f0
lea ecx, [ebp - 0x1dc]
call fcn.00402620
test al, al
jne 0x403146
cmp dword [ebp - 0x158], 0x10
mov eax, dword [ebp - 0x16c]
jae 0x4030bb
lea eax, [ebp - 0x16c]
cmp byte [eax], 0x5c
jne 0x4030f0
lea eax, [ebp - 0x16c]
push eax
lea ecx, [ebp - 0x2bc]
push ecx
lea edx, [ebp - 0x30]
push edx
call fcn.00405990
add esp, 0xc
mov edi, eax
lea esi, [ebp - 0x1dc]
mov byte [ebp - 4], 0x1b
call fcn.00402580
lea esi, [ebp - 0x30]
jmp 0x40313d
push 0x40f8c4
lea eax, [ebp - 0x2bc]
push eax
lea ecx, [ebp - 0x188]
push ecx
call fcn.004058b0
add esp, 0xc
mov ecx, eax
lea eax, [ebp - 0x16c]
lea ebx, [ebp - 0x30]
mov byte [ebp - 4], 0x1c
call fcn.00405870
mov edi, eax
lea esi, [ebp - 0x1dc]
mov byte [ebp - 4], 0x1d
call fcn.00402580
mov esi, ebx
call fcn.004025f0
lea esi, [ebp - 0x188]
mov byte [ebp - 4], 0x17
call fcn.004025f0
xor edx, edx
push 0xfe
push edx
lea eax, [ebp - 0x132]
push eax
mov word [ebp - 0x134], dx
call sub.MSVCR100.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x1dc]
lea edx, [ebp - 0x30]
lea edi, [ebp - 0x134]
call fcn.004013d0
cmp dword [eax + 0x14], 8
jb 0x403180
mov eax, dword [eax]
push eax
push 0x80
lea ecx, [ebp - 0x134]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionNamesW]
lea esi, [ebp - 0x30]
call fcn.004011e0
xor bl, bl
lea ecx, [ecx]
cmp word [edi], 0
je 0x4031d5
push 0x40f918
push edi
call dword [sym.imp.MSVCR100.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x4031d9
mov eax, edi
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4031c0
sub eax, edx
sar eax, 1
lea edi, [edi + eax*2 + 2]
jmp 0x4031a0
test bl, bl
je 0x4031e5
mov byte [ebp - 0x34d], 1
jmp 0x40343a
cmp byte [ebp - 0x34d], 0
jne 0x403210
cmp dword [ebp - 0x1c8], 0x10
mov eax, dword [ebp - 0x1dc]
mov dword [ebp - 0x1cc], 0
jae 0x40320d
lea eax, [ebp - 0x1dc]
mov byte [eax], 0
mov ecx, 0x40f934
lea edi, [ebp - 0x150]
call fcn.00405a50
test al, al
jne 0x403232
mov ecx, str._launch
call fcn.00405a50
test al, al
je 0x403294
mov esi, dword [ebp - 0x35c]
lea eax, [esi + 1]
cmp eax, dword [ebp - 0x36c]
jge 0x40329a
mov edx, dword [ebp - 0x34c]
mov dword [ebp - 0x35c], eax
mov eax, dword [edx + eax*4]
lea esi, [ebp - 0x30]
call fcn.00401ff0
mov ecx, esi
lea ebx, [ebp - 0x188]
mov byte [ebp - 4], 0x1e
call fcn.004012d0
mov byte [ebp - 4], 0x1f
lea esi, [ebp - 0x1c0]
mov edi, eax
call fcn.00402580
lea esi, [ebp - 0x188]
call fcn.004025f0
lea esi, [ebp - 0x30]
call fcn.004011e0
jmp 0x40343a
mov esi, dword [ebp - 0x35c]
mov ecx, 0x40f944
lea edi, [ebp - 0x150]
call fcn.00405a50
test al, al
jne 0x4032bc
mov ecx, 0x40f94c
call fcn.00405a50
test al, al
je 0x4032eb
lea eax, [esi + 1]
cmp eax, dword [ebp - 0x36c]
jge 0x4032eb
mov ecx, dword [ebp - 0x34c]
mov edx, dword [ecx + eax*4]
push edx
mov dword [ebp - 0x35c], eax
call dword [sym.imp.MSVCR100.dll__wtoi]
add esp, 4
mov dword [ebp - 0x360], eax
jmp 0x40343a
mov ecx, 0x40f954
lea edi, [ebp - 0x150]
call fcn.00405a50
test al, al
jne 0x40330d
mov ecx, str._personaname
call fcn.00405a50
test al, al
je 0x40334f
lea eax, [esi + 1]
cmp eax, dword [ebp - 0x36c]
jge 0x40334f
mov ecx, dword [ebp - 0x34c]
mov dword [ebp - 0x35c], eax
mov eax, dword [ecx + eax*4]
lea esi, [ebp - 0x30]
call fcn.00401ff0
mov ecx, esi
lea ebx, [ebp - 0x188]
mov byte [ebp - 4], 0x20
call fcn.004012d0
mov byte [ebp - 4], 0x21
lea esi, [ebp - 0x2f4]
jmp 0x403275
mov ecx, 0x40f974
lea edi, [ebp - 0x150]
call fcn.00405a50
test al, al
jne 0x403371
mov ecx, str._language
call fcn.00405a50
test al, al
je 0x4033b3
lea eax, [esi + 1]
cmp eax, dword [ebp - 0x36c]
jge 0x4033b3
mov edx, dword [ebp - 0x34c]
mov dword [ebp - 0x35c], eax
mov eax, dword [edx + eax*4]
lea esi, [ebp - 0x30]
call fcn.00401ff0
mov ecx, esi
lea ebx, [ebp - 0x188]
mov byte [ebp - 4], 0x22
call fcn.004012d0
mov byte [ebp - 4], 0x23
lea esi, [ebp - 0x2d8]
jmp 0x403275
mov ecx, 0x40f98c
lea edi, [ebp - 0x150]
call fcn.00405a50
test al, al
jne 0x403433
mov ecx, str._sseinject
call fcn.00405a50
test al, al
jne 0x403433
mov ecx, 0x40f9a4
call fcn.00405a50
test al, al
jne 0x403404
mov ecx, str._help
call fcn.00405a50
test al, al
jne 0x403404
lea ecx, [ebp - 0x16c]
lea edi, [ebp - 0x388]
call fcn.00405260
jmp 0x40343a
push 0
push 0x40f918
push str.Usage:_SmartSteamLoader.exe__appid_123__launch_mygame.exe__language_english
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea esi, [ebp - 0x150]
call fcn.004025f0
lea esi, [ebp - 0x16c]
call fcn.004025f0
jmp 0x404e37
mov byte [ebp - 0x355], 1
lea esi, [ebp - 0x150]
call fcn.004025f0
lea esi, [ebp - 0x16c]
mov byte [ebp - 4], 0xc
call fcn.004025f0
inc dword [ebp - 0x35c]
mov eax, dword [ebp - 0x35c]
jmp 0x402ed0
cmp byte [ebp - 0x34d], 0
jne 0x4034e7
push str._steamclient.ini
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x30]
push ecx
call fcn.004058b0
add esp, 0xc
mov edi, eax
lea esi, [ebp - 0x1dc]
mov byte [ebp - 4], 0x24
call fcn.00402580
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.004025f0
lea ecx, [ebp - 0x1dc]
call fcn.00402620
test al, al
jne 0x4034e7
push str._steamclient.ini
lea edx, [ebp - 0x2bc]
push edx
lea eax, [ebp - 0x30]
push eax
call fcn.004058b0
add esp, 0xc
mov edi, eax
lea esi, [ebp - 0x1dc]
mov byte [ebp - 4], 0x25
call fcn.00402580
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.004025f0
lea ecx, [ebp - 0x1dc]
lea edx, [ebp - 0x30]
call fcn.004013d0
mov edi, eax
mov esi, 0x421dfc
mov byte [ebp - 4], 0x26
call fcn.00401b10
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x1c], 8
jb 0x40351c
mov ecx, dword [ebp - 0x30]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
cmp dword [ebp - 0x1b0], 0
jne 0x40355a
push str.Launcher
lea edx, [ebp - 0x30]
push edx
mov edx, 0x410174
mov ecx, str.Target
call fcn.00401650
mov edi, eax
lea esi, [ebp - 0x1c0]
mov byte [ebp - 4], 0x27
call fcn.00402580
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.004025f0
push str.Launcher
lea eax, [ebp - 0x30]
push eax
mov edx, 0x410174
mov ecx, str.CommandLine
call fcn.00401650
mov edi, eax
lea esi, [ebp - 0x1f8]
mov byte [ebp - 4], 0x28
call fcn.00402580
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.004025f0
push str.Launcher
lea ecx, [ebp - 0x30]
push ecx
mov edx, 0x410174
mov ecx, str.StartIn
call fcn.00401650
mov edi, eax
lea esi, [ebp - 0x1a4]
mov byte [ebp - 4], 0x29
call fcn.00402580
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.004025f0
push str.Launcher
lea edx, [ebp - 0x30]
push edx
mov edx, 0x410174
mov ecx, str.SteamClientPath
call fcn.00401650
mov edi, eax
lea esi, [ebp - 0x310]
mov byte [ebp - 4], 0x2a
call fcn.00402580
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.004025f0
push str.Launcher
lea eax, [ebp - 0x30]
push eax
mov edx, 0x410174
mov ecx, str.SteamClientPath64
call fcn.00401650
mov edi, eax
lea esi, [ebp - 0x348]
mov byte [ebp - 4], 0x2b
call fcn.00402580
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.004025f0
push str.Launcher
mov ecx, str.Persist
call fcn.004014e0
test eax, eax
push str.Launcher
mov ecx, str.AppendAppIdToProcess
setne byte [ebp - 0x366]
call fcn.004014e0
test eax, eax
push str.Launcher
mov ecx, str.ParanoidMode
setne byte [ebp - 0x367]
call fcn.004014e0
test eax, eax
setne byte [ebp - 0x365]
cmp byte [ebp - 0x355], 0
jne 0x403697
push str.Launcher
mov ecx, str.InjectDll
call fcn.004014e0
test eax, eax
setne byte [ebp - 0x355]
cmp dword [ebp - 0x360], 0
jne 0x4036b5
push str.SmartSteamEmu
mov ecx, str.AppId
call fcn.004014e0
mov dword [ebp - 0x360], eax
cmp dword [ebp - 0x2e4], 0
jne 0x4036f3
push str.SmartSteamEmu
lea ecx, [ebp - 0x30]
push ecx
mov edx, 0x40fb04
mov ecx, str.PersonaName
call fcn.00401650
mov edi, eax
lea esi, [ebp - 0x2f4]
mov byte [ebp - 4], 0x2c
call fcn.00402580
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.004025f0
cmp dword [ebp - 0x2c8], 0
jne 0x403731
push str.SmartSteamEmu
lea edx, [ebp - 0x30]
push edx
mov edx, str.English
mov ecx, 0x40fb1c
call fcn.00401650
mov edi, eax
lea esi, [ebp - 0x2d8]
mov byte [ebp - 4], 0x2d
call fcn.00402580
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.004025f0
mov esi, dword [ebp - 0x194]
test esi, esi
je 0x40375c
lea eax, [ebp - 0x1a4]
call fcn.00405080
cmp byte [eax], 0x5c
jne 0x40375c
lea ecx, [esi - 1]
or eax, 0xffffffff
lea esi, [ebp - 0x1a4]
call fcn.00402140
cmp dword [ebp - 0x360], 0
jne 0x403940
push str._steam_appid.txt
lea eax, [ebp - 0x1a4]
push eax
lea ecx, [ebp - 0x150]
push ecx
call fcn.004058b0
add esp, 0xc
mov bl, 0x2e
lea ecx, [ebp - 0x150]
mov byte [ebp - 4], bl
call fcn.00402620
test al, al
jne 0x40380f
push str._steam_appid.txt
lea edx, [ebp - 0x284]
push edx
lea eax, [ebp - 0x30]
push eax
call fcn.004058b0
add esp, 0xc
mov edi, eax
lea esi, [ebp - 0x150]
mov byte [ebp - 4], 0x2f
call fcn.00402580
lea esi, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.004025f0
lea ecx, [ebp - 0x150]
call fcn.00402620
test al, al
jne 0x40380f
push str._steam_appid.txt
lea ecx, [ebp - 0x2bc]
push ecx
lea edx, [ebp - 0x30]
push edx
call fcn.004058b0
add esp, 0xc
mov edi, eax
lea esi, [ebp - 0x150]
mov byte [ebp - 4], 0x30
call fcn.00402580
lea esi, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.004025f0
cmp dword [ebp - 0x13c], 0x10
mov eax, dword [ebp - 0x150]
jae 0x403824
lea eax, [ebp - 0x150]
push 0x40fb3c
push eax
lea eax, [ebp - 0x34c]
push eax
call dword [sym.imp.MSVCR100.dll_fopen_s]
add esp, 0xc
test eax, eax
jne 0x40387b
mov ecx, dword [ebp - 0x34c]
push ecx
push 1
lea edx, [ebp - 0x34]
push 0x20
push edx
call dword [sym.imp.MSVCR100.dll_fread]
mov eax, dword [ebp - 0x34c]
push eax
call dword [sym.imp.MSVCR100.dll_fclose]
lea ecx, [ebp - 0x34]
push ecx
call dword [sym.imp.MSVCR100.dll_atoi]
add esp, 0x18
mov dword [ebp - 0x360], eax
test eax, eax
jne 0x403931
push 4
push 0x40f918
push 0x40fb40
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 7
jne 0x403931
lea esi, [ebp - 0x150]
call fcn.004025f0
lea esi, [ebp - 0x348]
call fcn.004025f0
lea esi, [ebp - 0x310]
call fcn.004025f0
lea esi, [ebp - 0x1a4]
call fcn.004025f0
lea esi, [ebp - 0x1f8]
call fcn.004025f0
lea esi, [ebp - 0x2f4]
call fcn.004025f0
lea esi, [ebp - 0x2d8]
call fcn.004025f0
lea esi, [ebp - 0x1c0]
call fcn.004025f0
lea ebx, [ebp - 0x388]
call fcn.004054e0
lea esi, [ebp - 0x1dc]
call fcn.004025f0
lea esi, [ebp - 0x284]
call fcn.004025f0
lea esi, [ebp - 0x2bc]
call fcn.004025f0
lea esi, [ebp - 0x32c]
call fcn.004025f0
mov eax, 1
jmp 0x404ebd
lea esi, [ebp - 0x150]
mov byte [ebp - 4], 0xc
call fcn.004025f0
cmp dword [ebp - 0x1b0], 0
jne 0x403962
push 0
push 0x40f918
push str.Unable_to_launch_games__no_game_.exe_specified._Specify_Target_correctly_in_emulator_configuration_file.
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x4038a3
cmp dword [ebp - 0x1ac], 0x10
mov eax, dword [ebp - 0x1c0]
jae 0x403977
lea eax, [ebp - 0x1c0]
cmp byte [eax], 0x5c
jne 0x4039af
push 0xffffffffffffffff
lea edx, [ebp - 0x1c0]
push edx
mov ebx, 1
lea esi, [ebp - 0x30]
call fcn.00405140
mov edi, eax
lea esi, [ebp - 0x1c0]
mov byte [ebp - 4], 0x31
call fcn.00402580
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.004025f0
lea eax, [ebp - 0x1c0]
push eax
mov edx, 0x40f8c0
call fcn.004050a0
cmp eax, 0xffffffff
push 0x40f8c4
mov ebx, 1
lea eax, [ebp - 0x1c0]
setne byte [ebp - 0x34d]
call fcn.004053d0
xor ebx, ebx
cmp dword [ebp - 0x194], ebx
jne 0x403a22
cmp byte [ebp - 0x34d], bl
je 0x403b79
push eax
lea ecx, [ebp - 0x1c0]
push ecx
lea esi, [ebp - 0x30]
call fcn.00405140
mov edi, eax
lea esi, [ebp - 0x1a4]
mov byte [ebp - 4], 0x32
call fcn.00402580
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.004025f0
cmp byte [ebp - 0x34d], 0
jne 0x403a83
push 0x40f8c4
lea ecx, [ebp - 0x1a4]
push ecx
lea edx, [ebp - 0x188]
push edx
call fcn.004058b0
add esp, 0xc
mov ecx, eax
lea eax, [ebp - 0x1c0]
lea ebx, [ebp - 0x30]
mov byte [ebp - 4], 0x37
call fcn.00405870
mov edi, eax
lea esi, [ebp - 0x1c0]
mov byte [ebp - 4], 0x38
call fcn.00402580
mov esi, ebx
call fcn.004025f0
lea esi, [ebp - 0x188]
mov byte [ebp - 4], 0xc
call fcn.004025f0
xor ebx, ebx
lea eax, [ebp - 0x284]
push eax
lea edx, [ebp - 0x310]
lea ecx, [ebp - 0x1a4]
call fcn.004028f0
lea ecx, [ebp - 0x284]
add esp, 4
push ecx
lea edx, [ebp - 0x348]
lea ecx, [ebp - 0x1a4]
call fcn.004028f0
add esp, 4
cmp byte [ebp - 0x367], 0
je 0x403b0e
mov edx, dword [ebp - 0x360]
push ebx
push edx
lea ecx, [ebp - 0x188]
call fcn.004066c0
add esp, 8
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x39
call fcn.00405ab0
mov ecx, eax
lea ebx, [ebp - 0x388]
mov byte [ebp - 4], 0x3a
call fcn.004051a0
lea esi, [ebp - 0x30]
call fcn.004025f0
lea esi, [ebp - 0x188]
mov byte [ebp - 4], 0xc
call fcn.004025f0
xor ebx, ebx
mov eax, dword [ebp - 0x388]
mov dword [ebp - 0x34c], eax
lea ebx, [ebx]
lea eax, [ebp - 0x34c]
mov edi, dword [eax]
cmp edi, dword [ebp - 0x384]
je 0x403c91
cmp dword [ebp - 0x1e8], ebx
je 0x403b59
lea eax, [ebp - 0x1f8]
call fcn.00405080
cmp byte [eax], 0x20
je 0x403b59
mov bl, 0x20
lea esi, [ebp - 0x1f8]
call fcn.00406630
push 0
push edi
or eax, 0xffffffff
lea esi, [ebp - 0x1f8]
call fcn.00406470
add edi, 0x1c
lea eax, [ebp - 0x34c]
mov dword [eax], edi
xor ebx, ebx
jmp 0x403b20
lea edx, [ebp - 0x284]
push edx
or eax, 0xffffffff
xor ebx, ebx
lea ecx, [ebp - 0x1a4]
call fcn.004024a0
push 0x40f8c4
lea eax, [ebp - 0x1a4]
push eax
lea ecx, [ebp - 0x188]
push ecx
call fcn.004058b0
add esp, 0xc
mov ecx, eax
lea eax, [ebp - 0x1c0]
lea ebx, [ebp - 0x30]
mov byte [ebp - 4], 0x33
call fcn.00405870
mov ecx, eax
mov byte [ebp - 4], 0x34
call fcn.00402620
test al, al
lea esi, [ebp - 0x30]
sete bl
call fcn.004025f0
lea esi, [ebp - 0x188]
mov byte [ebp - 4], 0xc
call fcn.004025f0
test bl, bl
je 0x403a2b
lea edx, [ebp - 0x2bc]
push edx
or eax, 0xffffffff
xor ebx, ebx
lea ecx, [ebp - 0x1a4]
call fcn.004024a0
push 0x40f8c4
lea eax, [ebp - 0x1a4]
push eax
lea ecx, [ebp - 0x188]
push ecx
call fcn.004058b0
add esp, 0xc
mov ecx, eax
lea eax, [ebp - 0x1c0]
lea ebx, [ebp - 0x30]
mov byte [ebp - 4], 0x35
call fcn.00405870
mov ecx, eax
mov byte [ebp - 4], 0x36
call fcn.00402620
test al, al
lea esi, [ebp - 0x30]
sete bl
call fcn.004025f0
lea esi, [ebp - 0x188]
mov byte [ebp - 4], 0xc
call fcn.004025f0
test bl, bl
je 0x403a2b
lea edx, [ebp - 0x34c]
push edx
lea ecx, [ebp - 0x3e8]
mov dword [ebp - 0x34c], str.Unable_to_find_game_executable._Verify_your_StartIn_folder_and_Target_setup_in_configuration_file.
call dword [sym.imp.MSVCR100.dll_public:_void___thiscall_std::exception::constructor_char_const__const_const__]
push 0x410440
lea eax, [ebp - 0x3e8]
push eax
call sub.MSVCR100.dll__CxxThrowException
mov esi, dword [ebp - 0x1e8]
cmp esi, ebx
je 0x403cdb
lea eax, [ebp - 0x1f8]
call fcn.00405080
cmp byte [eax], 0x20
jne 0x403cdb
dec esi
push esi
lea ecx, [ebp - 0x1f8]
push ecx
xor ebx, ebx
lea esi, [ebp - 0x30]
call fcn.00405140
mov edi, eax
lea esi, [ebp - 0x1f8]
mov byte [ebp - 4], 0x3b
call fcn.00402580
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.004025f0
mov eax, str.SteamAppId
lea ecx, [ebp - 0x30]
call fcn.00402100
mov edx, dword [ebp - 0x360]
xor edi, edi
push edi
push edx
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x3c
call fcn.004027d0
add esp, 8
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.004025f0
mov eax, str.SteamGameId
lea ecx, [ebp - 0x188]
call fcn.00402100
mov eax, dword [ebp - 0x360]
push edi
push eax
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 0x3d
call fcn.004027d0
add esp, 8
lea esi, [ebp - 0x188]
mov byte [ebp - 4], 0xc
call fcn.004025f0
mov eax, str.SteamAppVersionId
lea ecx, [ebp - 0x30]
call fcn.00402100
push ebx
push ebx
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x3e
call fcn.004027d0
add esp, 8
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.004025f0
mov eax, str.SteamUser
lea ecx, [ebp - 0x188]
call fcn.00402100
lea ecx, [ebp - 0x2f4]
lea edx, [ebp - 0x188]
mov byte [ebp - 4], 0x3f
call fcn.004026c0
lea esi, [ebp - 0x188]
mov byte [ebp - 4], 0xc
call fcn.004025f0
mov eax, str.SteamAppUser
lea ecx, [ebp - 0x30]
call fcn.00402100
lea ecx, [ebp - 0x2f4]
lea edx, [ebp - 0x30]
mov byte [ebp - 4], 0x40
call fcn.004026c0
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.004025f0
mov eax, str.SteamPath
lea ecx, [ebp - 0x188]
call fcn.00402100
lea ecx, [ebp - 0x2bc]
lea edx, [ebp - 0x188]
mov byte [ebp - 4], 0x41
call fcn.004026c0
lea esi, [ebp - 0x188]
mov byte [ebp - 4], 0xc
call fcn.004025f0
mov eax, str.ValvePlatformMutex
lea ecx, [ebp - 0x30]
call fcn.00402100
mov byte [ebp - 4], 0x42
lea ecx, [ebp - 0x32c]
lea edx, [ebp - 0x30]
call fcn.004026c0
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.004025f0
mov eax, str.SSEConfigPath
lea ecx, [ebp - 0x188]
call fcn.00402100
lea ecx, [ebp - 0x1dc]
lea edx, [ebp - 0x188]
mov byte [ebp - 4], 0x43
call fcn.004026c0
lea esi, [ebp - 0x188]
mov byte [ebp - 4], 0xc
call fcn.004025f0
mov eax, str.SSELaunchParam
lea ecx, [ebp - 0x30]
call fcn.00402100
lea ecx, [ebp - 0x1f8]
lea edx, [ebp - 0x30]
mov byte [ebp - 4], 0x44
call fcn.004026c0
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.004025f0
cmp byte [ebp - 0x355], 0
mov eax, 0x40fe50
jne 0x403ea0
mov eax, 0x40fe54
lea ecx, [ebp - 0x188]
call fcn.00402100
mov eax, str.SSEInject
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x45
call fcn.00402100
lea ecx, [ebp - 0x188]
lea edx, [ebp - 0x30]
mov byte [ebp - 4], 0x46
call fcn.004026c0
lea esi, [ebp - 0x30]
call fcn.004025f0
lea esi, [ebp - 0x188]
mov byte [ebp - 4], 0xc
call fcn.004025f0
mov eax, str.SSEStartIn
lea ecx, [ebp - 0x230]
call fcn.00402100
lea ecx, [ebp - 0x1a4]
lea edx, [ebp - 0x230]
mov byte [ebp - 4], 0x47
call fcn.004026c0
lea esi, [ebp - 0x230]
mov byte [ebp - 4], 0xc
call fcn.004025f0
mov eax, str.SSEPersonaName
lea ecx, [ebp - 0x30]
call fcn.00402100
lea ecx, [ebp - 0x2f4]
lea edx, [ebp - 0x30]
mov byte [ebp - 4], 0x48
call fcn.004026c0
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call fcn.004025f0
mov eax, str.SSELanguage
lea ecx, [ebp - 0x188]
call fcn.00402100
lea ecx, [ebp - 0x2d8]
lea edx, [ebp - 0x188]
mov byte [ebp - 4], 0x49
call fcn.004026c0
lea esi, [ebp - 0x188]
call fcn.004025f0
mov eax, 7
xor ecx, ecx
mov dword [ebp - 0x354], ebx
mov dword [ebp - 0x370], ebx
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x290], ebx
mov word [ebp - 0x2a0], cx
xor edx, edx
mov dword [ebp - 0x254], eax
mov dword [ebp - 0x258], ebx
mov word [ebp - 0x268], dx
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x23c], ebx
mov word [ebp - 0x24c], cx
mov dword [ebp - 0x378], ebx
mov dword [ebp - 0x374], ebx
lea edx, [ebp - 0x354]
push edx
push eax
push ebx
push str.SoftwareValveSteam
push 0x80000001
mov byte [ebp - 4], 0x4d
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x404013
lea eax, [ebp - 0x3a4]
push eax
lea ecx, [ebp - 0x354]
push ecx
push ebx
push 6
push ebx
push ebx
push ebx
push str.SoftwareValveSteam
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
cmp dword [ebp - 0x354], ebx
je 0x4040f8
mov ecx, 0x104
lea eax, [ebp - 0x24c]
call fcn.00405170
cmp dword [ebp - 0x238], 8
mov eax, dword [ebp - 0x24c]
mov dword [ebp - 0x364], 0x104
mov dword [ebp - 0x34c], 1
jae 0x404058
lea eax, [ebp - 0x24c]
mov ecx, dword [ebp - 0x354]
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea edx, [ebp - 0x364]
push edx
push eax
lea eax, [ebp - 0x34c]
push eax
push ebx
push str.Language
push ecx
call edi
mov ecx, dword [ebp - 0x364]
shr ecx, 1
lea eax, [ebp - 0x24c]
call fcn.00405170
cmp dword [ebp - 0x2c8], ebx
je 0x4040e9
lea ecx, [ebp - 0x2d8]
lea edx, [ebp - 0x150]
call fcn.004013d0
cmp dword [ebp - 0x13c], 8
mov eax, dword [ebp - 0x150]
jae 0x4040bd
lea eax, [ebp - 0x150]
mov edx, dword [ebp - 0x140]
lea ecx, [edx + edx + 2]
mov edx, dword [ebp - 0x354]
push ecx
push eax
push 1
push ebx
push str.Language
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
lea esi, [ebp - 0x150]
call fcn.004011e0
mov eax, dword [ebp - 0x354]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4040fe
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea ecx, [ebp - 0x354]
push ecx
push 7
push ebx
push str.SoftwareValveSteamActiveProcess
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x404140
lea edx, [ebp - 0x3a4]
push edx
lea eax, [ebp - 0x354]
push eax
push ebx
push 6
push ebx
push ebx
push ebx
push str.SoftwareValveSteamActiveProcess
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
cmp dword [ebp - 0x354], ebx
je 0x40461d
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [ebp - 0x35c], eax
mov eax, 4
lea ecx, [ebp - 0x364]
push ecx
mov ecx, dword [ebp - 0x354]
lea edx, [ebp - 0x370]
push edx
mov dword [ebp - 0x364], eax
mov dword [ebp - 0x34c], eax
lea eax, [ebp - 0x34c]
push eax
push ebx
push 0x40fedc
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, 0x104
mov esi, 1
lea eax, [ebp - 0x2a0]
mov dword [ebp - 0x364], ecx
mov dword [ebp - 0x34c], esi
call fcn.00405170
cmp dword [ebp - 0x28c], 8
mov eax, dword [ebp - 0x2a0]
jae 0x4041c7
lea eax, [ebp - 0x2a0]
mov ecx, dword [ebp - 0x354]
lea edx, [ebp - 0x364]
push edx
push eax
lea eax, [ebp - 0x34c]
push eax
push ebx
push 0x40fee0
push ecx
call edi
mov ecx, dword [ebp - 0x364]
shr ecx, 1
lea eax, [ebp - 0x2a0]
call fcn.00405170
mov ecx, 0x104
lea eax, [ebp - 0x268]
mov dword [ebp - 0x364], ecx
mov dword [ebp - 0x34c], esi
call fcn.00405170
cmp dword [ebp - 0x254], 8
mov eax, dword [ebp - 0x268]
jae 0x404229
lea eax, [ebp - 0x268]
mov ecx, dword [ebp - 0x354]
lea edx, [ebp - 0x364]
push edx
push eax
lea eax, [ebp - 0x34c]
push eax
push ebx
push str.SteamClientDll64
push ecx
call edi
mov ecx, dword [ebp - 0x364]
shr ecx, 1
lea eax, [ebp - 0x268]
call fcn.00405170
cmp byte [ebp - 0x365], 0
je 0x404309
mov edx, dword [ebp - 0x370]
push edx
push ebx
push 0x410
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edi, eax
cmp edi, ebx
je 0x404309
push 0x800
call fcn.004068f0
add esp, 4
push 0x400
mov esi, eax
push esi
push ebx
push edi
call dword [sym.imp.PSAPI.DLL_GetModuleFileNameExW]
test eax, eax
je 0x4042f8
mov ecx, esi
call fcn.004067f0
test eax, eax
je 0x4042f8
push 4
push str.SmartSteamEmu___Paranoid_mode
push str.Steam_process_detected__nDo_you_want_to_continue_
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 7
jne 0x4042f8
push esi
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
add esp, 4
lea esi, [ebp - 0x24c]
call fcn.004011e0
lea esi, [ebp - 0x268]
call fcn.004011e0
lea esi, [ebp - 0x2a0]
call fcn.004011e0
jmp 0x4038a3
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
add esp, 4
lea ecx, [ebp - 0x310]
lea edx, [ebp - 0x30]
call fcn.004013d0
lea ecx, [ebp - 0x348]
lea edx, [ebp - 0x188]
mov byte [ebp - 4], 0x4e
call fcn.004013d0
push 4
lea eax, [ebp - 0x35c]
push eax
push 4
push ebx
mov byte [ebp - 4], 0x4f
mov ecx, dword [ebp - 0x354]
push 0x40fedc
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [ebp - 0x30]
mov esi, 8
cmp dword [ebp - 0x1c], esi
jae 0x40435e
lea eax, [ebp - 0x30]
mov edx, dword [ebp - 0x20]
lea ecx, [edx + edx + 2]
mov edx, dword [ebp - 0x354]
push ecx
push eax
push 1
push ebx
push 0x40fee0
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [ebp - 0x188]
cmp dword [ebp - 0x174], esi
jae 0x404390
lea eax, [ebp - 0x188]
mov ecx, dword [ebp - 0x178]
lea edx, [ecx + ecx + 2]
push edx
push eax
mov eax, dword [ebp - 0x354]
push 1
push ebx
push str.SteamClientDll64
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ecx, dword [ebp - 0x354]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea esi, [ebp - 0x378]
call fcn.00401210
test al, al
je 0x4044e9
mov eax, dword [ebp - 0x374]
cmp eax, ebx
je 0x404608
mov edx, dword [eax]
lea ebx, [eax + 4]
mov dword [ebp - 0x370], edx
mov eax, dword [ebx]
mov dword [ebp - 0x360], eax
add ebx, 4
mov eax, ebx
lea ecx, [ebp - 0x230]
call fcn.00402100
lea ecx, [ebp - 0x230]
lea edx, [ebp - 0x16c]
mov byte [ebp - 4], 0x50
call fcn.004013d0
mov edi, eax
lea esi, [ebp - 0x24c]
mov byte [ebp - 4], 0x51
call fcn.00401b10
lea esi, [ebp - 0x16c]
call fcn.004011e0
lea esi, [ebp - 0x230]
mov byte [ebp - 4], 0x4f
call fcn.004025f0
add ebx, dword [ebp - 0x360]
mov ecx, dword [ebx]
mov dword [ebp - 0x360], ecx
lea eax, [ebx + 4]
lea ecx, [ebp - 0x150]
call fcn.00402100
lea ecx, [ebp - 0x150]
lea edx, [ebp - 0x16c]
mov byte [ebp - 4], 0x52
call fcn.004013d0
mov edi, eax
lea esi, [ebp - 0x2a0]
mov byte [ebp - 4], 0x53
call fcn.00401b10
lea esi, [ebp - 0x16c]
call fcn.004011e0
lea esi, [ebp - 0x150]
mov byte [ebp - 4], 0x4f
call fcn.004025f0
mov edx, dword [ebp - 0x360]
lea eax, [ebx + edx + 8]
lea ecx, [ebp - 0x230]
call fcn.00402100
lea ecx, [ebp - 0x230]
lea edx, [ebp - 0x150]
mov byte [ebp - 4], 0x54
call fcn.004013d0
mov edi, eax
lea esi, [ebp - 0x268]
mov byte [ebp - 4], 0x55
call fcn.00401b10
lea esi, [ebp - 0x150]
call fcn.004011e0
jmp 0x4045fb
lea esi, [ebp - 0x378]
call fcn.00401280
test al, al
je 0x404608
mov esi, dword [ebp - 0x374]
cmp esi, ebx
je 0x404608
lea ecx, [ebp - 0x24c]
lea ebx, [ebp - 0x230]
call fcn.004012d0
lea ecx, [ebp - 0x2a0]
lea ebx, [ebp - 0x150]
mov byte [ebp - 4], 0x56
call fcn.004012d0
lea ecx, [ebp - 0x268]
lea ebx, [ebp - 0x16c]
mov byte [ebp - 4], 0x57
call fcn.004012d0
mov eax, dword [ebp - 0x370]
mov edi, dword [ebp - 0x220]
mov dword [esi], eax
mov eax, dword [ebp - 0x230]
mov dword [esi + 4], edi
mov ebx, 0x10
add esi, 8
cmp dword [ebp - 0x21c], ebx
jae 0x404572
lea eax, [ebp - 0x230]
push edi
push eax
push esi
call sub.MSVCR100.dll_memcpy
mov ecx, dword [ebp - 0x140]
add esi, edi
mov dword [esi], ecx
mov eax, dword [ebp - 0x150]
add esp, 0xc
add esi, 4
cmp dword [ebp - 0x13c], ebx
jae 0x40459e
lea eax, [ebp - 0x150]
mov edx, dword [ebp - 0x140]
push edx
push eax
push esi
call sub.MSVCR100.dll_memcpy
add esi, dword [ebp - 0x140]
mov eax, dword [ebp - 0x15c]
mov dword [esi], eax
mov eax, dword [ebp - 0x16c]
add esp, 0xc
add esi, 4
cmp dword [ebp - 0x158], ebx
jae 0x4045d4
lea eax, [ebp - 0x16c]
mov ecx, dword [ebp - 0x15c]
push ecx
push eax
push esi
call sub.MSVCR100.dll_memcpy
add esp, 0xc
lea esi, [ebp - 0x16c]
call fcn.004025f0
lea esi, [ebp - 0x150]
call fcn.004025f0
lea esi, [ebp - 0x230]
call fcn.004025f0
xor ebx, ebx
lea esi, [ebp - 0x188]
call fcn.004011e0
lea esi, [ebp - 0x30]
call fcn.004011e0
jmp 0x404639
push 4
push 0x40f918
push str.Unable_to_modify_steam_registry_information._Game_may_not_start_with_the_emulator._n_nDo_you_want_to_continue_
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 7
je 0x4042d2
push ebx
push ebx
push ebx
push 0x404fd0
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0x34c], eax
or eax, 0xffffffff
lea esi, [ebp - 0x3cc]
mov dword [ebp - 0x3cc], ebx
mov dword [ebp - 0x3c8], eax
mov dword [ebp - 0x3c4], eax
mov dword [ebp - 0x3c0], eax
mov dword [ebp - 0x3bc], eax
mov dword [ebp - 0x3b8], eax
mov dword [ebp - 0x3b4], ebx
mov dword [ebp - 0x3b0], eax
call fcn.00401060
push 0x40
lea edx, [ebp - 0x44c]
push ebx
push edx
mov dword [ebp - 0x450], ebx
call sub.MSVCR100.dll_memset
xor eax, eax
add esp, 0xc
mov dword [ebp - 0x398], ebx
mov dword [ebp - 0x394], eax
mov dword [ebp - 0x390], eax
mov dword [ebp - 0x38c], eax
mov dword [ebp - 0x200], 7
mov dword [ebp - 0x204], ebx
mov word [ebp - 0x214], ax
lea ecx, [ebp - 0x1f8]
lea edx, [ebp - 0x16c]
mov byte [ebp - 4], 0x59
call fcn.004013d0
mov esi, eax
lea ecx, [ebp - 0x1c0]
lea edx, [ebp - 0x150]
mov byte [ebp - 4], 0x5a
call fcn.004013d0
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 0x5b
call fcn.00405af0
push eax
mov eax, 0x4100a4
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 0x5c
call fcn.004056f0
add esp, 4
mov ecx, eax
mov eax, esi
lea edx, [ebp - 0x30]
mov byte [ebp - 4], 0x5d
call fcn.00405740
mov edi, eax
lea esi, [ebp - 0x214]
mov byte [ebp - 4], 0x5e
call fcn.00401b10
lea esi, [ebp - 0x30]
call fcn.004011e0
lea esi, [ebp - 0x188]
call fcn.004011e0
lea esi, [ebp - 0x230]
call fcn.004011e0
lea esi, [ebp - 0x150]
call fcn.004011e0
lea esi, [ebp - 0x16c]
mov byte [ebp - 4], 0x59
call fcn.004011e0
cmp byte [ebp - 0x355], 0
jne 0x4048f1
lea ecx, [ebp - 0x1a4]
lea edx, [ebp - 0x30]
call fcn.004013d0
mov ecx, 8
cmp dword [eax + 0x14], ecx
jb 0x4047a9
mov eax, dword [eax]
cmp dword [ebp - 0x200], ecx
mov ecx, dword [ebp - 0x214]
jae 0x4047bd
lea ecx, [ebp - 0x214]
lea edx, [ebp - 0x398]
push edx
lea edx, [ebp - 0x450]
push edx
push eax
push 0
push 4
push 1
push 0
push 0
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
lea esi, [ebp - 0x30]
sete bl
call fcn.004011e0
test bl, bl
je 0x404b05
lea ecx, [ebp - 0x1f8]
lea edx, [ebp - 0x30]
call fcn.004013d0
mov edi, eax
lea esi, [ebp - 0x214]
mov byte [ebp - 4], 0x5f
call fcn.00401b10
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0x59
call fcn.004011e0
cmp dword [ebp - 0x204], 0
mov ebx, 8
je 0x404845
cmp dword [ebp - 0x200], ebx
jb 0x40483d
mov edi, dword [ebp - 0x214]
jmp 0x404847
lea edi, [ebp - 0x214]
jmp 0x404847
xor edi, edi
lea ecx, [ebp - 0x1a4]
lea edx, [ebp - 0x188]
call fcn.004013d0
mov esi, eax
lea ecx, [ebp - 0x1c0]
lea edx, [ebp - 0x30]
mov byte [ebp - 4], 0x60
call fcn.004013d0
cmp dword [esi + 0x14], ebx
jb 0x404875
mov ecx, dword [esi]
jmp 0x404877
mov ecx, esi
cmp dword [eax + 0x14], ebx
jb 0x40487e
mov eax, dword [eax]
lea edx, [ebp - 0x398]
push edx
lea edx, [ebp - 0x450]
push edx
push ecx
push 0
push 4
push 1
push 0
push 0
push edi
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
lea esi, [ebp - 0x30]
sete bl
call fcn.004011e0
lea esi, [ebp - 0x188]
mov byte [ebp - 4], 0x59
call fcn.004011e0
test bl, bl
je 0x404b05
lea eax, [ebp - 0x34c]
push eax
lea ecx, [ebp - 0x40c]
mov dword [ebp - 0x34c], str.Unable_to_launch_game._Make_sure_the_Target_and_StartIn_folder_point_to_correct_path_and_folder.
call dword [sym.imp.MSVCR100.dll_public:_void___thiscall_std::exception::constructor_char_const__const_const__]
push 0x410440
lea ecx, [ebp - 0x40c]
push ecx
call sub.MSVCR100.dll__CxxThrowException
xor edx, edx
mov dword [ebp - 0x13c], 7
mov dword [ebp - 0x140], 0
mov word [ebp - 0x150], dx
lea ecx, [ebp - 0x310]
lea edx, [ebp - 0x30]
mov byte [ebp - 4], 0x61
call fcn.004013d0
mov edi, eax
lea esi, [ebp - 0x150]
mov byte [ebp - 4], 0x62
call fcn.00401b10
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0x61
call fcn.004011e0
lea ecx, [ebp - 0x1a4]
lea edx, [ebp - 0x188]
call fcn.004013d0
mov byte [ebp - 4], 0x63
mov edx, dword [ebp - 0x150]
mov ecx, 8
cmp dword [ebp - 0x13c], ecx
jae 0x40496b
lea edx, [ebp - 0x150]
cmp dword [eax + 0x14], ecx
jb 0x404972
mov eax, dword [eax]
cmp dword [ebp - 0x200], ecx
mov ecx, dword [ebp - 0x214]
jae 0x404986
lea ecx, [ebp - 0x214]
push edx
lea edx, [ebp - 0x398]
push edx
lea edx, [ebp - 0x450]
push edx
push eax
push 0
push 4
push 1
push 0
push 0
push ecx
push 0
call fcn.00407680
add esp, 0x2c
test eax, eax
lea esi, [ebp - 0x188]
setne bl
mov byte [ebp - 4], 0x61
call fcn.004011e0
test bl, bl
je 0x404af6
lea ecx, [ebp - 0x1f8]
lea edx, [ebp - 0x30]
call fcn.004013d0
mov edi, eax
lea esi, [ebp - 0x214]
mov byte [ebp - 4], 0x64
call fcn.00401b10
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0x61
call fcn.004011e0
cmp dword [ebp - 0x204], 0
je 0x404a14
cmp dword [ebp - 0x200], 8
jb 0x404a0c
mov ebx, dword [ebp - 0x214]
jmp 0x404a16
lea ebx, [ebp - 0x214]
jmp 0x404a16
xor ebx, ebx
lea ecx, [ebp - 0x310]
lea edx, [ebp - 0x230]
call fcn.004013d0
mov esi, eax
lea ecx, [ebp - 0x1a4]
lea edx, [ebp - 0x188]
mov byte [ebp - 4], 0x65
call fcn.004013d0
mov edi, eax
lea ecx, [ebp - 0x1c0]
lea edx, [ebp - 0x30]
mov byte [ebp - 4], 0x66
call fcn.004013d0
mov ecx, 8
mov byte [ebp - 4], 0x67
cmp dword [esi + 0x14], ecx
jb 0x404a64
mov edx, dword [esi]
jmp 0x404a66
mov edx, esi
cmp dword [edi + 0x14], ecx
jb 0x404a6f
mov ecx, dword [edi]
jmp 0x404a71
mov ecx, edi
cmp dword [eax + 0x14], 8
jb 0x404a79
mov eax, dword [eax]
push edx
lea edx, [ebp - 0x398]
push edx
lea edx, [ebp - 0x450]
push edx
push ecx
push 0
push 4
push 1
push 0
push 0
push ebx
push eax
call fcn.00407680
add esp, 0x2c
test eax, eax
lea esi, [ebp - 0x30]
setne bl
call fcn.004011e0
lea esi, [ebp - 0x188]
call fcn.004011e0
lea esi, [ebp - 0x230]
mov byte [ebp - 4], 0x61
call fcn.004011e0
test bl, bl
je 0x404af6
lea eax, [ebp - 0x34c]
push eax
lea ecx, [ebp - 0x3f4]
mov dword [ebp - 0x34c], str.Unable_to_launch_game._Make_sure_the_Target_and_StartIn_folder_point_to_correct_path_and_folder.
call dword [sym.imp.MSVCR100.dll_public:_void___thiscall_std::exception::constructor_char_const__const_const__]
push 0x410440
lea ecx, [ebp - 0x3f4]
push ecx
call sub.MSVCR100.dll__CxxThrowException
lea esi, [ebp - 0x150]
mov byte [ebp - 4], 0x59
call fcn.004011e0
mov eax, 0x410118
lea esi, [ebp - 0x30]
call fcn.00401ff0
cmp dword [ebp - 0x1c], 8
jb 0x404b25
mov edx, dword [ebp - 0x30]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov eax, dword [ebp - 0x394]
push eax
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov ecx, dword [ebp - 0x398]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp byte [ebp - 0x366], 0
je 0x404c4b
mov eax, dword [ebp - 0x3cc]
test eax, eax
je 0x404b68
push 0x400
push 0
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
mov edx, dword [ebp - 0x3a0]
push 0
push 0x404f60
push 0
push 0x81
push edx
call dword [sym.imp.USER32.dll_CreateDialogParamW]
mov edi, dword [sym.imp.USER32.dll_GetWindowRect]
mov esi, eax
lea eax, [ebp - 0x160]
push eax
push esi
call edi
lea ecx, [ebp - 0x144]
push ecx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call edi
mov ecx, dword [ebp - 0x154]
mov edx, dword [ebp - 0x15c]
mov edi, dword [ebp - 0x158]
push 0
mov eax, ecx
sub eax, edx
push eax
mov eax, edi
sub eax, dword [ebp - 0x160]
push eax
mov eax, dword [ebp - 0x138]
sub eax, dword [ebp - 0x140]
sub eax, ecx
add eax, edx
cdq
sub eax, edx
sar eax, 1
push eax
mov eax, dword [ebp - 0x13c]
sub eax, dword [ebp - 0x144]
sub eax, edi
add eax, dword [ebp - 0x160]
cdq
sub eax, edx
sar eax, 1
push eax
push esi
call dword [sym.imp.USER32.dll_MoveWindow]
mov ecx, dword [ebp + 0x14]
push ecx
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
mov edi, dword [sym.imp.USER32.dll_GetMessageW]
mov ebx, dword [sym.imp.USER32.dll_IsDialogMessageW]
push 0
push 0
push 0
lea edx, [ebp - 0x30]
push edx
call edi
test eax, eax
je 0x404c4b
cmp eax, 0xffffffff
je 0x404c4b
lea eax, [ebp - 0x30]
push eax
push esi
call ebx
test eax, eax
jne 0x404c15
lea ecx, [ebp - 0x30]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [ebp - 0x30]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x404c15
mov eax, dword [ebp - 0x394]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
call esi
mov ecx, dword [ebp - 0x398]
push ecx
call esi
mov esi, dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov ebx, dword [ebp - 0x34c]
mov byte [0x422260], 1
lea esp, [esp]
lea edx, [ebp - 0x39c]
push edx
push ebx
call esi
test eax, eax
je 0x404ca0
cmp dword [ebp - 0x39c], 0x103
jne 0x404ca0
push 1
call edi
jmp 0x404c80
lea esi, [ebp - 0x378]
call fcn.00401250
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea eax, [ebp - 0x354]
push eax
push 6
push 0
push str.SoftwareValveSteam
push 0x80000001
call edi
test eax, eax
jne 0x404d1c
mov ecx, dword [ebp - 0x354]
test ecx, ecx
je 0x404d1c
mov eax, dword [ebp - 0x24c]
mov ebx, 8
cmp dword [ebp - 0x238], ebx
jae 0x404cef
lea eax, [ebp - 0x24c]
mov edx, dword [ebp - 0x23c]
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
lea edx, [edx + edx + 2]
push edx
push eax
push 1
push 0
push str.Language
push ecx
call esi
mov eax, dword [ebp - 0x354]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x404d27
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ebx, 8
lea ecx, [ebp - 0x354]
push ecx
push 6
push 0
push str.SoftwareValveSteamActiveProcess
push 0x80000001
call edi
test eax, eax
jne 0x404dde
mov eax, dword [ebp - 0x354]
test eax, eax
je 0x404dde
push 4
lea edx, [ebp - 0x370]
push edx
push 4
push 0
push 0x40fedc
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [ebp - 0x2a0]
cmp dword [ebp - 0x28c], ebx
jae 0x404d81
lea eax, [ebp - 0x2a0]
mov ecx, dword [ebp - 0x290]
lea edx, [ecx + ecx + 2]
push edx
push eax
mov eax, dword [ebp - 0x354]
push 1
push 0
push 0x40fee0
push eax
call esi
mov eax, dword [ebp - 0x268]
cmp dword [ebp - 0x254], ebx
jae 0x404db3
lea eax, [ebp - 0x268]
mov ecx, dword [ebp - 0x258]
lea edx, [ecx + ecx + 2]
push edx
push eax
mov eax, dword [ebp - 0x354]
push 1
push 0
push str.SteamClientDll64
push eax
call esi
mov ecx, dword [ebp - 0x354]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea esi, [ebp - 0x214]
call fcn.004011e0
lea eax, [ebp - 0x3cc]
call section..text
mov eax, dword [ebp - 0x374]
test eax, eax
je 0x404e05
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov eax, dword [ebp - 0x378]
test eax, eax
je 0x404e16
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea esi, [ebp - 0x24c]
call fcn.004011e0
lea esi, [ebp - 0x268]
call fcn.004011e0
lea esi, [ebp - 0x2a0]
call fcn.004011e0
lea esi, [ebp - 0x348]
call fcn.004025f0
lea esi, [ebp - 0x310]
call fcn.004025f0
lea esi, [ebp - 0x1a4]
call fcn.004025f0
lea esi, [ebp - 0x1f8]
call fcn.004025f0
lea esi, [ebp - 0x2f4]
call fcn.004025f0
lea esi, [ebp - 0x2d8]
call fcn.004025f0
lea esi, [ebp - 0x1c0]
call fcn.004025f0
lea ebx, [ebp - 0x388]
call fcn.004054e0
lea esi, [ebp - 0x1dc]
call fcn.004025f0
lea esi, [ebp - 0x284]
call fcn.004025f0
lea esi, [ebp - 0x2bc]
call fcn.004025f0
lea esi, [ebp - 0x32c]
call fcn.004025f0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004068fb
mov esp, ebp
pop ebp
ret 0x10