Function at 0x402850
Capabilities:
Link many functions at runtime
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe1c
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
push 0x3fa
mov dword [ebp - 0xe18], eax
mov esi, 0xcc
lea eax, [ebp - 0xa06]
mov dword [ebp - 0xa0c], 0xcc0000
push 0
push eax
mov word [ebp - 0xa08], si
call fcn.0040bf00
push 0x3fa
lea eax, [ebp - 0x606]
mov dword [ebp - 0x60c], 0xcc0000
push 0
push eax
mov word [ebp - 0x608], si
call fcn.0040bf00
push 0x208
lea eax, [ebp - 0x20c]
mov dword [ebp - 0xe14], 0
push 0
push eax
call fcn.0040bf00
add esp, 0x24
lea eax, [ebp - 0x20c]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x20c]
push 0x5c
push eax
call fcn.0040b6e5
xor ecx, ecx
mov word [eax + 2], cx
lea eax, [ebp - 0x20c]
push eax
call fcn.0040e6e9
add esp, 0xc
or edi, 0xffffffff
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov ebx, dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov dword [ebp - 0xe10], eax
test eax, eax
je 0x402966
push 0xf01ff
push str.updateService
push eax
call ebx
test eax, eax
je 0x40295b
push eax
call esi
push dword [ebp - 0xe10]
call esi
xor edi, edi
jmp 0x402966
push dword [ebp - 0xe10]
or edi, 0xffffffff
call esi
neg edi
push 0xf003f
sbb edi, edi
push 0
neg edi
push 0
dec edi
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0xe10], eax
test eax, eax
je 0x4029af
push 0xf01ff
push str.wfds
push eax
call ebx
test eax, eax
je 0x4029a7
push eax
call esi
push dword [ebp - 0xe10]
call esi
or edi, 0xffffffff
jmp 0x4029af
push dword [ebp - 0xe10]
call esi
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0xe10], eax
test eax, eax
je 0x4029f1
push 0xf01ff
push str.node_client
push eax
call ebx
test eax, eax
je 0x4029e9
push eax
call esi
push dword [ebp - 0xe10]
call esi
or edi, 0xffffffff
jmp 0x4029f1
push dword [ebp - 0xe10]
call esi
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0xe10], eax
test eax, eax
je 0x402a33
push 0xf01ff
push str.node_client0
push eax
call ebx
test eax, eax
je 0x402a2b
push eax
call esi
push dword [ebp - 0xe10]
call esi
or edi, 0xffffffff
jmp 0x402a33
push dword [ebp - 0xe10]
call esi
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0xe10], eax
test eax, eax
je 0x402a75
push 0xf01ff
push str.node_client1
push eax
call ebx
test eax, eax
je 0x402a6d
push eax
call esi
push dword [ebp - 0xe10]
call esi
or edi, 0xffffffff
jmp 0x402a75
push dword [ebp - 0xe10]
call esi
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0xe10], eax
test eax, eax
je 0x402ab7
push 0xf01ff
push str.node_client2
push eax
call ebx
test eax, eax
je 0x402aaf
push eax
call esi
push dword [ebp - 0xe10]
call esi
or edi, 0xffffffff
jmp 0x402ab7
push dword [ebp - 0xe10]
call esi
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0xe10], eax
test eax, eax
je 0x402af9
push 0xf01ff
push str.node_client3
push eax
call ebx
test eax, eax
je 0x402af1
push eax
call esi
push dword [ebp - 0xe10]
call esi
or edi, 0xffffffff
jmp 0x402af9
push dword [ebp - 0xe10]
call esi
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0xe10], eax
test eax, eax
je 0x402b3b
push 0xf01ff
push str.node_client4
push eax
call ebx
test eax, eax
je 0x402b33
push eax
call esi
push dword [ebp - 0xe10]
call esi
or edi, 0xffffffff
jmp 0x402b3b
push dword [ebp - 0xe10]
call esi
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0xe10], eax
test eax, eax
je 0x402b7d
push 0xf01ff
push str.node_client5
push eax
call ebx
test eax, eax
je 0x402b75
push eax
call esi
push dword [ebp - 0xe10]
call esi
or edi, 0xffffffff
jmp 0x402b7d
push dword [ebp - 0xe10]
call esi
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0xe10], eax
test eax, eax
je 0x402bbf
push 0xf01ff
push str.node_client6
push eax
call ebx
test eax, eax
je 0x402bb7
push eax
call esi
push dword [ebp - 0xe10]
call esi
or edi, 0xffffffff
jmp 0x402bbf
push dword [ebp - 0xe10]
call esi
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0xe10], eax
test eax, eax
je 0x402c01
push 0xf01ff
push str.node_client7
push eax
call ebx
test eax, eax
je 0x402bf9
push eax
call esi
push dword [ebp - 0xe10]
call esi
or edi, 0xffffffff
jmp 0x402c01
push dword [ebp - 0xe10]
call esi
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0xe10], eax
test eax, eax
je 0x402c43
push 0xf01ff
push str.node_client8
push eax
call ebx
test eax, eax
je 0x402c3b
push eax
call esi
push dword [ebp - 0xe10]
call esi
or edi, 0xffffffff
jmp 0x402c43
push dword [ebp - 0xe10]
call esi
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0xe10], eax
test eax, eax
je 0x402c82
push 0xf01ff
push str.node_client9
push eax
call ebx
test eax, eax
je 0x402c7a
push eax
call esi
push dword [ebp - 0xe10]
call esi
jmp 0x402c86
push dword [ebp - 0xe10]
call esi
test edi, edi
je 0x402c9f
push 0x10
push 0x42df24
push 0x42df34
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x402dfb
mov esi, dword [sym.imp.KERNEL32.dll_OpenMutexW]
push str.Global_____0EF75D1F_A86A_45EB_983C_7F405129DF33_____
push 0
push 1
call esi
test eax, eax
jne 0x402cda
push str.Global_____1091BDBD_4D35_4B99_A398_D60A6C7B2FBC_____
push eax
push 1
call esi
test eax, eax
jne 0x402cda
push 0x10
push 0x42df24
push 0x42e030
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x402dfb
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.kernel32.dll
mov dword [ebp - 0xe1c], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x402d19
push str.Wow64DisableWow64FsRedirection
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x402d19
lea ecx, [ebp - 0xe14]
push ecx
call eax
mov dword [ebp - 0xe1c], eax
mov ecx, str.._dd_launcher.json
call fcn.004089e0
mov edi, eax
test edi, edi
jne 0x402d30
xor esi, esi
jmp 0x402dbd
mov dword [ebp - 0xe10], edi
cmp byte [edi], 0xef
jne 0x402d50
cmp byte [edi + 1], 0xbb
jne 0x402d50
cmp byte [edi + 2], 0xbf
jne 0x402d50
lea eax, [edi + 3]
mov dword [ebp - 0xe10], eax
xor edx, edx
lea ecx, [ebp - 0xe10]
call fcn.00408f30
push edi
mov esi, eax
call fcn.0041501c
add esp, 4
test esi, esi
je 0x402dbd
cmp dword [esi + 4], 4
jne 0x40311d
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x402e10
push 0xd
mov edx, str.depend_wegame
call fcn.00408b60
add esp, 4
test eax, eax
je 0x402e10
cmp dword [eax + 4], 6
jne 0x402e10
cmp dword [eax + 8], 0
je 0x402e10
call fcn.00406040
test eax, eax
je 0x402e10
push 0x10
push 0x42df24
push 0x42e078
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp dword [ebp - 0xe1c], 0
je 0x402df0
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, dword [ebp - 0xe14]
push str.kernel32.dll
call eax
test eax, eax
je 0x402df0
push str.Wow64RevertWow64FsRedirection
push eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
test eax, eax
je 0x402df0
push edi
call eax
test esi, esi
je 0x402dfb
mov ecx, esi
call fcn.0040a700
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040a851
mov esp, ebp
pop ebp
ret 0x10
cmp dword [esi + 4], 4
jne 0x40311d
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x40311d
push 0x10
mov edx, str.is_wegame_family
call fcn.00408b60
add esp, 4
test eax, eax
je 0x40311d
cmp dword [eax + 4], 6
jne 0x40311d
cmp dword [eax + 8], 0
je 0x40311d
call fcn.00406370
push 0x1ff
lea eax, [ebp - 0x60c]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0
call eax
lea eax, [ebp - 0x60c]
push 0x5c
push eax
call fcn.0040b6e5
mov ebx, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
add esp, 8
test eax, eax
je 0x402eab
xor ecx, ecx
mov word [eax], cx
xor eax, eax
push str.c:windows_tgp_config.ini
mov word [ebp - 0x20e], ax
lea eax, [ebp - 0x60c]
push eax
push str.path
push str.game
call ebx
lea eax, [ebp - 0x60c]
push 0x5c
push eax
call fcn.0040b6e5
add esp, 8
test eax, eax
je 0x402ede
push str.c:windows_tgp_config.ini
add eax, 2
xor ecx, ecx
push eax
push str.name
push str.game
mov word [ebp - 0x20e], cx
call ebx
cmp dword [esi + 4], 4
jne 0x40311d
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x40311d
push 0xe
mov edx, str.back_to_wegame
call fcn.00408b60
add esp, 4
test eax, eax
je 0x40311d
cmp dword [eax + 4], 6
jne 0x40311d
cmp dword [eax + 8], 0
je 0x40311d
push 0x400
lea eax, [ebp - 0xe0c]
push 0
push eax
call fcn.0040bf00
add esp, 0xc
cmp dword [esi + 4], 4
jne 0x403001
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x403001
push 0xd
mov edx, str.back_to_param
call fcn.00408b60
add esp, 4
test eax, eax
je 0x403001
xor edx, edx
lea ecx, [eax + 8]
cmp dword [eax + 4], 2
cmovne ecx, edx
test ecx, ecx
je 0x403001
mov ebx, dword [ecx]
test ebx, ebx
je 0x403001
push 0x1ff
lea eax, [ebp - 0xa0c]
push str.__append_param
push eax
call fcn.0040e084
xor eax, eax
lea ecx, [ebp - 0x9ee]
push ebx
mov edx, 0x1f0
mov word [ebp - 0x60e], ax
call fcn.004085d0
add esp, 0x10
xor eax, eax
mov word [ebp - 0x60e], ax
lea eax, [ebp - 0xe0c]
push 0x1ff
push eax
lea eax, [ebp - 0xa0c]
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
xor eax, eax
lea ecx, [ebp - 0xa0c]
mov word [ebp - 0xa0e], ax
mov edx, 0x1ff
lea eax, [ebp - 0xe0c]
push eax
call fcn.004075c0
add esp, 4
xor eax, eax
mov word [ebp - 0x60e], ax
jmp 0x40300a
xor eax, eax
mov word [ebp - 0xa0c], ax
lea ecx, [ebp - 0xe0c]
call fcn.00406730
test eax, eax
jne 0x402dbd
push 0x208
push eax
mov word [ebp - 0xa0e], ax
lea eax, [ebp - 0x20c]
push eax
call fcn.0040bf00
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x20c]
add esp, 0xc
push 0x104
push eax
push 0
call ebx
lea eax, [ebp - 0x20c]
push 0x5c
push eax
call fcn.0040b6e5
xor ecx, ecx
push 0x1fe
mov word [eax], cx
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x60c]
push eax
call fcn.0040e084
lea eax, [ebp - 0x60c]
push eax
lea eax, [ebp - 0xe0c]
push eax
call fcn.0040df83
add esp, 0x1c
test eax, eax
je 0x403123
mov ecx, esi
call fcn.004015d0
mov ecx, esi
call fcn.004017e0
mov ecx, esi
call fcn.00401f50
mov ecx, esi
call fcn.004022a0
mov ecx, esi
call fcn.00401b00
mov ecx, esi
call fcn.004012d0
mov ecx, esi
call fcn.004025f0
lea eax, [ebp - 0xe0c]
push 0x1ff
push eax
lea eax, [ebp - 0x60c]
push eax
call fcn.0040e084
xor eax, eax
push 0x1ff
mov word [ebp - 0x20e], ax
lea eax, [ebp - 0x60c]
push str.dd_launcher.exe
push eax
call fcn.0040de40
push 1
push 0
lea edx, [ebp - 0xa0c]
lea ecx, [ebp - 0x60c]
call section..text
add esp, 0x20
jmp 0x402dbd
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
cmp dword [esi + 4], 4
jne 0x40350a
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x40316d
push 0x11
mov edx, str.depend_battle.net
call fcn.00408b60
add esp, 4
test eax, eax
je 0x40316d
cmp dword [eax + 4], 6
jne 0x40316d
cmp dword [eax + 8], 0
je 0x40316d
call fcn.00404240
test eax, eax
je 0x40316d
push 0x10
push 0x42df24
push 0x42e1b0
jmp 0x402db5
cmp dword [esi + 4], 4
jne 0x40350a
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4033f3
push 0xc
mov edx, str.depend_steam
call fcn.00408b60
add esp, 4
test eax, eax
je 0x4033f3
cmp dword [eax + 4], 6
jne 0x4033f3
cmp dword [eax + 8], 0
je 0x4033f3
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.0040bf00
add esp, 0xc
lea ecx, [ebp - 0x20c]
call fcn.00405880
test eax, eax
je 0x4031e3
push 0x10
push 0x42df24
push 0x42e218
jmp 0x402db5
xor eax, eax
push 0x208
push eax
mov word [ebp - 6], ax
lea eax, [ebp - 0xc14]
push eax
call fcn.0040bf00
add esp, 0xc
lea eax, [ebp - 0xc14]
push 0x104
push eax
push 0
call ebx
lea eax, [ebp - 0xc14]
push 0x5c
push eax
call fcn.0040b6e5
xor ecx, ecx
push 0x1fe
mov word [eax], cx
lea eax, [ebp - 0xc14]
push eax
lea eax, [ebp - 0x60c]
push eax
call fcn.0040e084
lea eax, [ebp - 0x60c]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.0040df83
add esp, 0x1c
test eax, eax
je 0x403352
xor eax, eax
mov word [ebp - 0xa0c], ax
cmp dword [esi + 4], 4
jne 0x4034f1
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4032e1
push 8
mov edx, str.run_game
call fcn.00408b60
add esp, 4
test eax, eax
je 0x4032e1
xor edx, edx
lea ecx, [eax + 8]
cmp dword [eax + 4], 2
cmovne ecx, edx
test ecx, ecx
je 0x4032e1
mov ebx, dword [ecx]
test ebx, ebx
je 0x4032e1
push 0x1ff
lea eax, [ebp - 0xa0c]
push str.__run_game
push eax
call fcn.0040e084
push ebx
mov edx, 0x1f4
lea ecx, [ebp - 0x9f6]
xor eax, eax
mov word [ebp - 0x60e], ax
call fcn.004085d0
add esp, 0x10
xor eax, eax
mov word [ebp - 0x60e], ax
lea eax, [ebp - 0x20c]
jmp 0x4030cf
cmp dword [esi + 4], 4
jne 0x4034f1
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4034f1
push 0xc
mov edx, str.append_param
call fcn.00408b60
add esp, 4
test eax, eax
je 0x4034f1
xor edx, edx
lea ecx, [eax + 8]
cmp dword [eax + 4], 2
cmovne ecx, edx
test ecx, ecx
je 0x4034f1
mov edi, dword [ecx]
test edi, edi
je 0x4034f1
push 0x1ff
lea eax, [ebp - 0xa0c]
push str.__append_param
push eax
call fcn.0040e084
push edi
mov edx, 0x1f0
lea ecx, [ebp - 0x9ee]
jmp 0x4032bc
push 0x200
lea eax, [ebp - 0xc0c]
push 0
push eax
call fcn.0040bf00
push 0xff
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0xc0c]
push eax
call fcn.0040e084
xor eax, eax
push 0xff
mov word [ebp - 0xa0e], ax
lea eax, [ebp - 0xc0c]
push str._steamappslibraryfolders.vdf
push eax
call fcn.0040de40
xor eax, eax
mov word [ebp - 0xa0e], ax
lea eax, [ebp - 0x20c]
push 0xff
push eax
lea eax, [ebp - 0xc0c]
push eax
call fcn.0040e084
xor eax, eax
push 0xff
mov word [ebp - 0xa0e], ax
lea eax, [ebp - 0xc0c]
push str._steamapps
push eax
call fcn.0040de40
add esp, 0x3c
lea ecx, [ebp - 0xc0c]
xor eax, eax
mov word [ebp - 0xa0e], ax
call fcn.00405020
cmp dword [esi + 4], 4
jne 0x40350a
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x40350a
push 0xb
mov edx, str.depend_epic
call fcn.00408b60
add esp, 4
test eax, eax
je 0x40350a
cmp dword [eax + 4], 6
jne 0x40350a
cmp dword [eax + 8], 0
je 0x40350a
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.0040bf00
add esp, 0xc
lea ecx, [ebp - 0x20c]
call fcn.00404cf0
test eax, eax
je 0x403469
push 0x10
push 0x42df24
push 0x42e2b0
jmp 0x402db5
xor eax, eax
push 0x208
push eax
mov word [ebp - 6], ax
lea eax, [ebp - 0xc14]
push eax
call fcn.0040bf00
add esp, 0xc
lea eax, [ebp - 0xc14]
push 0x104
push eax
push 0
call ebx
lea eax, [ebp - 0xc14]
push 0x5c
push eax
call fcn.0040b6e5
xor ecx, ecx
push 0x1fe
mov word [eax], cx
lea eax, [ebp - 0xc14]
push eax
lea eax, [ebp - 0x60c]
push eax
call fcn.0040e084
lea eax, [ebp - 0x60c]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.0040df83
add esp, 0x1c
test eax, eax
je 0x403505
mov ebx, dword [ebp - 0xe18]
push str.__no_launch
push ebx
call fcn.0040b485
add esp, 8
test eax, eax
jne 0x403510
xor eax, eax
mov word [ebp - 0xa0c], ax
lea eax, [ebp - 0x20c]
jmp 0x4030cf
call fcn.00404940
mov ebx, dword [ebp - 0xe18]
cmp dword [esi + 4], 4
jne 0x403737
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x403624
push 0xd
mov edx, str.depend_origin
call fcn.00408b60
add esp, 4
test eax, eax
je 0x403624
cmp dword [eax + 4], 6
jne 0x403624
cmp dword [eax + 8], 0
je 0x403624
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.0040bf00
add esp, 0xc
lea ecx, [ebp - 0x20c]
call fcn.00403c70
test eax, eax
je 0x403586
push 0x10
push 0x42df24
push 0x42e348
jmp 0x402db5
xor eax, eax
push 0x208
push eax
mov word [ebp - 6], ax
lea eax, [ebp - 0xc14]
push eax
call fcn.0040bf00
add esp, 0xc
lea eax, [ebp - 0xc14]
push 0x104
push eax
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0
call eax
lea eax, [ebp - 0xc14]
push 0x5c
push eax
call fcn.0040b6e5
xor ecx, ecx
push 0x1fe
mov word [eax], cx
lea eax, [ebp - 0xc14]
push eax
lea eax, [ebp - 0x60c]
push eax
call fcn.0040e084
lea eax, [ebp - 0x60c]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.0040df83
add esp, 0x1c
test eax, eax
je 0x40361f
push str.__no_launch
push ebx
call fcn.0040b485
add esp, 8
test eax, eax
jne 0x403624
mov word [ebp - 0xa0c], ax
lea eax, [ebp - 0x20c]
jmp 0x4030cf
call fcn.00403950
cmp dword [esi + 4], 4
jne 0x403737
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x403737
push 0xc
mov edx, str.depend_uplay
call fcn.00408b60
add esp, 4
test eax, eax
je 0x403737
cmp dword [eax + 4], 6
jne 0x403737
cmp dword [eax + 8], 0
je 0x403737
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.0040bf00
add esp, 0xc
lea ecx, [ebp - 0x20c]
call fcn.00405df0
test eax, eax
je 0x40369a
push 0x10
push 0x42df24
push 0x42e3b8
jmp 0x402db5
xor eax, eax
push 0x208
push eax
mov word [ebp - 6], ax
lea eax, [ebp - 0xc14]
push eax
call fcn.0040bf00
add esp, 0xc
lea eax, [ebp - 0xc14]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0xc14]
push 0x5c
push eax
call fcn.0040b6e5
xor ecx, ecx
push 0x1fe
mov word [eax], cx
lea eax, [ebp - 0xc14]
push eax
lea eax, [ebp - 0x60c]
push eax
call fcn.0040e084
lea eax, [ebp - 0x60c]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.0040df83
add esp, 0x1c
test eax, eax
je 0x403732
push str.__no_launch
push ebx
call fcn.0040b485
add esp, 8
test eax, eax
jne 0x403737
mov word [ebp - 0xa0c], ax
lea eax, [ebp - 0x20c]
jmp 0x4030cf
call fcn.00405ad0
mov ecx, esi
call fcn.004015d0
mov ecx, esi
call fcn.004017e0
mov ecx, esi
call fcn.00401f50
mov ecx, esi
call fcn.004022a0
mov ecx, esi
call fcn.00401b00
mov ecx, esi
call fcn.004012d0
mov ecx, esi
call fcn.004025f0
push str.__no_launch
push ebx
call fcn.0040b485
add esp, 8
test eax, eax
jne 0x402dbd
cmp dword [esi + 4], 4
jne 0x402dbd
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x402dbd
push 8
mov edx, str.launcher
call fcn.00408b60
add esp, 4
test eax, eax
je 0x402dbd
xor edx, edx
lea ecx, [eax + 8]
cmp dword [eax + 4], 2
cmovne ecx, edx
test ecx, ecx
je 0x402dbd
mov eax, dword [ecx]
test eax, eax
je 0x402dbd
push eax
mov edx, 0x200
lea ecx, [ebp - 0x60c]
call fcn.004085d0
xor eax, eax
add esp, 4
mov word [ebp - 0x20e], ax
cmp dword [esi + 4], 4
jne 0x40383a
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x40383a
push 5
mov edx, str.param
call fcn.00408b60
add esp, 4
test eax, eax
je 0x40383a
xor edx, edx
lea ecx, [eax + 8]
cmp dword [eax + 4], 2
cmovne ecx, edx
test ecx, ecx
je 0x40383a
mov eax, dword [ecx]
test eax, eax
je 0x40383a
push eax
mov edx, 0x200
lea ecx, [ebp - 0xa0c]
call fcn.004085d0
add esp, 4
xor eax, eax
mov word [ebp - 0x60e], ax
jmp 0x403843
xor eax, eax
mov word [ebp - 0xa0c], ax
push str.__append_param
push ebx
call fcn.0040b485
add esp, 8
test eax, eax
je 0x4038ac
lea edi, [eax + 0x1e]
xor eax, eax
cmp ax, word [ebp - 0xa0c]
lea eax, [ebp - 0xa0c]
push 0x1ff
jne 0x40387a
push edi
push eax
call fcn.0040e084
add esp, 0xc
jmp 0x4038a3
push 0x42e41c
push eax
call fcn.0040de40
xor eax, eax
push 0x1ff
mov word [ebp - 0x60e], ax
lea eax, [ebp - 0xa0c]
push edi
push eax
call fcn.0040de40
add esp, 0x18
xor eax, eax
mov word [ebp - 0x60e], ax
xor eax, eax
cmp ax, word [ebp - 0x60c]
je 0x402dbd
push str.__run_game
push ebx
call fcn.0040b485
add esp, 8
test eax, eax
je 0x4038f7
add eax, 0x16
xor ecx, ecx
push 0x1ff
push eax
lea eax, [ebp - 0x60c]
mov word [ebp - 0xa0c], cx
push eax
call fcn.0040e084
add esp, 0xc
xor eax, eax
mov word [ebp - 0x20e], ax
push 1
push 0
lea edx, [ebp - 0xa0c]
lea ecx, [ebp - 0x60c]
call section..text
add esp, 8
mov ecx, esi
call fcn.0040a700
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, dword [ebp - 0xe14]
push str.kernel32.dll
call eax
test eax, eax
je 0x402dfb
push str.Wow64RevertWow64FsRedirection
push eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
test eax, eax
je 0x402dfb
push esi
call eax
jmp 0x402dfb