Function at 0x42a2d9
Capabilities:
Check if file exists
Get common file path
Set current directory

Disassembly:
push 0x2fc
mov eax, 0x5b74da
call fcn.005718de
mov dword [ebp - 0x29c], ecx
xor eax, eax
lea edi, [ebp - 0x228]
stosd dword es:[edi], eax
xor ebx, ebx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x224], ebx
mov dword [ebp - 0x220], ebx
push ebx
sub esp, 0x10
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x228]
push str.SoftwareTencentMobileGamePC
push closesocket
call fcn.00430522
mov edi, eax
test edi, edi
je 0x42a3ae
push 0xa5
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 3
lea ecx, [ebp - 0x2f4]
call fcn.0041138d
mov esi, eax
push 0x5f68e4
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.004116b0
push str.SoftwareTencentMobileGamePC
call fcn.0058e083
pop ecx
push eax
push str.SoftwareTencentMobileGamePC
mov ecx, esi
call fcn.0040d756
push str._reg_path_failed._error_code:
mov ecx, esi
call fcn.004116b0
push edi
mov ecx, esi
call fcn.00430443
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], bl
call fcn.005b3223
mov edi, dword [ebp - 0x29c]
mov dword [edi + 0x884], 0x11
jmp 0x42a3b4
mov edi, dword [ebp - 0x29c]
mov edi, dword [edi + 0x98c]
or dword [ebp - 0x2a4], 0xffffffff
mov esi, dword [edi]
jmp 0x42a956
push ebx
push ebx
push ebx
lea eax, [esi + 8]
mov dword [ebp - 0x2a8], eax
mov eax, dword [eax]
push ebx
cdq
push edx
push eax
push ebx
push ebx
push 0x12d
push ecx
call fcn.0042f2f5
pop ecx
mov ecx, eax
call fcn.0042f363
mov eax, dword [esi + 8]
lea ecx, [ebp - 0x258]
mov dword [ebp - 0x2a4], eax
xor eax, eax
push ebx
push 0x5f4ce8
mov dword [ebp - 0x244], 7
mov dword [ebp - 0x248], ebx
mov word [ebp - 0x258], ax
call fcn.004107ce
mov byte [ebp - 4], 2
cmp dword [esi + 8], 7
jne 0x42a48b
lea eax, [ebp - 0x2c0]
push eax
push ecx
call fcn.00411721
pop ecx
mov ecx, eax
call fcn.0042d25b
push 0
push 1
lea ecx, [ebp - 0x2c0]
mov ebx, dword [eax + 0x10]
call fcn.00411ab5
test ebx, ebx
jne 0x42a489
call fcn.00411721
cmp dword [eax + 0x78], ebx
jne 0x42a489
call fcn.00411721
mov al, byte [eax + 0xf8]
test al, al
jne 0x42a489
mov ebx, str._nodesktopIcon
push ebx
call fcn.0058e083
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x258]
call fcn.0040d756
xor ebx, ebx
lea eax, [esi + 0x40]
cmp dword [eax + 0x14], 8
jb 0x42a496
mov eax, dword [eax]
push ebx
sub esp, 0x10
lea ecx, [ebp - 0x228]
push eax
push closesocket
call fcn.00430522
mov dword [ebp - 0x2a0], eax
test eax, eax
je 0x42a4c5
cmp eax, 0x3fd
jne 0x42a963
call fcn.0043e774
lea eax, [ebp - 0x2dc]
push eax
push ecx
call fcn.00411721
pop ecx
mov ecx, eax
call fcn.0042d23b
mov edx, eax
lea eax, [esi + 0x24]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x240]
call fcn.00430369
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x2dc]
mov byte [ebp - 4], 6
call fcn.0041164f
cmp dword [ebp - 0x22c], 8
lea eax, [ebp - 0x240]
push ecx
cmovae eax, dword [ebp - 0x240]
lea ecx, [ebp - 0x228]
push eax
push str.InstallPath
call fcn.00409a7b
mov ecx, dword [ebp - 0x29c]
lea eax, [esi + 8]
add ecx, 0x87c
push eax
mov dword [ebp - 0x2c4], ecx
call fcn.0042b88e
add eax, 0x20
lea ecx, [ebp - 0x240]
cmp eax, ecx
je 0x42a55b
push 0xffffffffffffffff
push ebx
push ecx
mov ecx, eax
call fcn.00410f13
lea eax, [ebp - 0x240]
push eax
lea ecx, [ebp - 0x2c0]
call fcn.0042ff7f
lea edx, [ebp - 0x2c0]
lea ecx, [ebp - 0x308]
call fcn.004302fc
push 0
push 1
mov ecx, dword [eax]
cmp ecx, 2
lea ecx, [ebp - 0x2c0]
sete bl
call fcn.0041164f
xor bl, 1
je 0x42a5d1
lea eax, [ebp - 0x240]
push eax
lea ecx, [ebp - 0x2c0]
call fcn.0042ff7f
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 7
call fcn.0042fd55
xor ebx, ebx
mov byte [ebp - 4], 6
push ebx
push 1
lea ecx, [ebp - 0x2c0]
call fcn.0041164f
jmp 0x42a5d3
xor ebx, ebx
push 0x208
lea eax, [ebp - 0x21c]
push ebx
push eax
call fcn.00589540
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov eax, dword [ebp - 0x2a8]
add eax, 0xb0
cmp dword [eax + 0x14], 8
jb 0x42a60d
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push str.Setup_
lea edx, [esi + 0xb8]
lea ecx, [ebp - 0x270]
call fcn.0042075b
pop ecx
mov byte [ebp - 4], 8
lea eax, [ebp - 0x270]
cmp dword [ebp - 0x25c], 8
cmovae eax, dword [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x42a697
mov dword [ebp - 0x300], ebx
mov dword [ebp - 0x2fc], ebx
mov dword [ebp - 0x2f8], ebx
push ebx
lea edx, [ebp - 0x300]
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x270]
call fcn.0043e415
mov bl, al
mov byte [ebp - 4], 8
pop ecx
neg bl
lea ecx, [ebp - 0x300]
sbb bl, bl
call fcn.0040f24e
add bl, 1
jne 0x42a9e3
xor ebx, ebx
push ebx
xor eax, eax
mov dword [ebp - 0x298], ebx
push 0x5f4ce8
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x2ac], 7
mov dword [ebp - 0x2b0], ebx
mov word [ebp - 0x2c0], ax
call fcn.004107ce
lea eax, [ebp - 0x298]
push eax
push 1
lea ecx, [esi + 0xd0]
lea edx, [ebp - 0x2c0]
call fcn.0043e654
pop ecx
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x2c0]
call fcn.0041164f
mov eax, dword [ebp - 0x298]
xor ecx, ecx
push 0xfc
push str.CMainWnd::InstallComponent
push str.component.cpp
cmp eax, 0x3e8
push str.Component
cmove eax, ecx
lea ecx, [ebp - 0x2f4]
push 1
mov dword [ebp - 0x298], eax
call fcn.0041138d
mov ebx, eax
push str.install_component
mov ecx, ebx
mov byte [ebp - 4], 0xb
call fcn.004116b0
push 0xffffffffffffffff
lea eax, [esi + 0xc]
mov ecx, ebx
push 0
push eax
mov dword [ebp - 0x2a0], eax
call fcn.00411573
push str._Result_
mov ecx, ebx
call fcn.004116b0
push dword [ebp - 0x298]
mov ecx, ebx
call fcn.0042d1cf
push 0x5f67ec
mov ecx, ebx
call fcn.004116b0
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], 8
call fcn.005b3223
cmp dword [ebp - 0x298], 0
jne 0x42aae1
push str.Tinst.exe
lea edx, [ebp - 0x270]
lea ecx, [ebp - 0x288]
call fcn.0042075b
pop ecx
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x288]
cmp dword [ebp - 0x274], 8
cmovae eax, dword [ebp - 0x288]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea ecx, [ebp - 0x2f4]
test eax, eax
je 0x42aa84
and dword [ebp - 0x298], 0
push 0x118
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 1
call fcn.0041138d
mov ebx, eax
push str.install_component_params:
mov ecx, ebx
mov byte [ebp - 4], 0xe
call fcn.004116b0
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x258]
mov ecx, ebx
push eax
call fcn.00411573
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], 0xc
call fcn.005b3223
lea eax, [ebp - 0x298]
push eax
push 1
lea edx, [ebp - 0x258]
lea ecx, [ebp - 0x288]
call fcn.0043e654
pop ecx
pop ecx
push 0x11a
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 1
lea ecx, [ebp - 0x2f4]
call fcn.0041138d
mov ebx, eax
push str.install_component
mov ecx, ebx
mov byte [ebp - 4], 0xf
call fcn.004116b0
push 0xffffffffffffffff
push 0
push dword [ebp - 0x2a0]
mov ecx, ebx
call fcn.00411573
push str._installer__Tinst__Result_
mov ecx, ebx
call fcn.004116b0
push dword [ebp - 0x298]
mov ecx, ebx
call fcn.0042d1cf
push 0x5f67ec
mov ecx, ebx
call fcn.004116b0
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], 0xc
call fcn.005b3223
cmp dword [ebp - 0x298], 0
jne 0x42aa62
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea ecx, [ebp - 0x228]
call fcn.0040ccff
mov ecx, dword [ebp - 0x2c4]
lea eax, [esi + 8]
push eax
call fcn.0042b88e
xor ebx, ebx
push ebx
push ebx
push ebx
mov byte [eax + 0x38], 1
mov eax, dword [ebp - 0x2a4]
push ebx
cdq
push edx
push eax
push ebx
push ebx
push 0x12f
push ecx
call fcn.0042f2f5
pop ecx
mov ecx, eax
call fcn.0042f363
push ebx
push 1
lea ecx, [ebp - 0x288]
call fcn.0041164f
push ebx
push 1
lea ecx, [ebp - 0x270]
call fcn.0041164f
push ebx
push 1
lea ecx, [ebp - 0x240]
call fcn.0041164f
push ebx
push 1
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], bl
call fcn.0041164f
mov esi, dword [esi]
cmp esi, edi
jne 0x42a3c8
jmp 0x42ab20
push 0xd3
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 3
lea ecx, [ebp - 0x2f4]
call fcn.0041138d
mov esi, eax
push 0x5f68e4
mov ecx, esi
mov byte [ebp - 4], 3
call fcn.004116b0
mov eax, dword [ebp - 0x2a8]
mov ecx, esi
push 0xffffffffffffffff
add eax, 0x38
push ebx
push eax
call fcn.00411573
push str._reg_path_failed._error_code:
mov ecx, esi
call fcn.004116b0
push dword [ebp - 0x2a0]
mov ecx, esi
call fcn.00430443
lea ecx, [ebp - 0x2f4]
call fcn.005b3223
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x884], 0x11
jmp 0x42ab0f
push 0xec
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 2
lea ecx, [ebp - 0x2f4]
call fcn.0041138d
mov esi, eax
push 0x5f693c
mov ecx, esi
mov byte [ebp - 4], 0xa
call fcn.004116b0
push 0xffffffffffffffff
xor ebx, ebx
lea eax, [ebp - 0x270]
push ebx
push eax
mov ecx, esi
call fcn.00411573
push str._failed._error_code:
mov ecx, esi
call fcn.004116b0
push dword [ebp - 0x2a0]
mov ecx, esi
call fcn.00430443
lea ecx, [ebp - 0x2f4]
call fcn.005b3223
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x884], 0x13
jmp 0x42aaf3
mov eax, dword [ebp - 0x29c]
xor ebx, ebx
mov dword [eax + 0x884], 0x10
push ebx
push 1
lea ecx, [ebp - 0x288]
call fcn.0041164f
jmp 0x42aaf3
push 0x113
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.component
push 3
call fcn.0041138d
mov esi, eax
push 0xffffffffffffffff
xor ebx, ebx
mov byte [ebp - 4], 0xd
push ebx
lea eax, [ebp - 0x288]
mov ecx, esi
push eax
call fcn.00411573
push str._dont_exist_
mov ecx, esi
call fcn.004116b0
lea ecx, [ebp - 0x2f4]
call fcn.005b3223
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x884], 0xf
jmp 0x42aa74
mov eax, dword [ebp - 0x29c]
xor ebx, ebx
mov dword [eax + 0x884], 0xe
push ebx
push 1
lea ecx, [ebp - 0x270]
call fcn.0041164f
push ebx
push 1
lea ecx, [ebp - 0x240]
call fcn.0041164f
push ebx
push 1
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], bl
call fcn.0041164f
lea ecx, [ebp - 0x228]
call fcn.0040ccff
mov eax, dword [ebp - 0x29c]
mov ecx, dword [eax + 0x884]
test ecx, ecx
je 0x42aba1
mov eax, dword [ebp - 0x2a4]
push ebx
push ebx
push ebx
push ebx
cdq
push edx
push eax
mov eax, ecx
cdq
push edx
push eax
push 0x12e
push ecx
call fcn.0042f2f5
pop ecx
mov ecx, eax
call fcn.0042f363
push 0x12d
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 3
lea ecx, [ebp - 0x2f4]
call fcn.0041138d
push str.component_install_failed.
mov ecx, eax
mov byte [ebp - 4], 0x10
call fcn.004116b0
lea ecx, [ebp - 0x2f4]
call fcn.005b3223
jmp 0x42ac2f
push dword [eax + 0x8ac]
lea ecx, [ebp - 0x2c0]
call fcn.004116f2
lea edx, [ebp - 0x2c0]
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x2dc]
call fcn.004192ca
mov ecx, eax
mov byte [ebp - 4], 0x12
call fcn.00429842
push ebx
push 1
lea ecx, [ebp - 0x2dc]
call fcn.0041164f
push ebx
push 1
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], bl
call fcn.00411ab5
push 0x135
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 1
lea ecx, [ebp - 0x2f4]
call fcn.0041138d
push str.component_install_success
mov ecx, eax
mov byte [ebp - 4], 0x13
call fcn.004116b0
lea ecx, [ebp - 0x2f4]
call fcn.005b3223
mov bl, 1
lea ecx, [ebp - 0x228]
call fcn.0040ccff
mov al, bl
call fcn.00571888
ret