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

Disassembly:
push 0x2fc
mov eax, 0x66fdf2
call fcn.006267e9
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.0044953b
mov edi, eax
test edi, edi
je 0x44326a
push 0xbc
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 3
lea ecx, [ebp - 0x2f4]
call fcn.00424985
mov esi, eax
push 0x6d4c2c
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.004248a8
push str.SoftwareTencentMobileGamePC
call fcn.00643138
pop ecx
push eax
push str.SoftwareTencentMobileGamePC
mov ecx, esi
call fcn.00425488
push str._reg_path_failed._error_code:
mov ecx, esi
call fcn.004248a8
push edi
mov ecx, esi
call fcn.0044945c
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], bl
call fcn.0066af23
mov edi, dword [ebp - 0x29c]
mov dword [edi + 0x884], 0x11
jmp 0x443270
mov edi, dword [ebp - 0x29c]
mov edi, dword [edi + 0x98c]
or dword [ebp - 0x2a4], 0xffffffff
mov esi, dword [edi]
jmp 0x443812
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.00448318
pop ecx
mov ecx, eax
call fcn.00448386
mov eax, dword [esi + 8]
lea ecx, [ebp - 0x258]
mov dword [ebp - 0x2a4], eax
xor eax, eax
push ebx
push 0x6d2f48
mov dword [ebp - 0x244], 7
mov dword [ebp - 0x248], ebx
mov word [ebp - 0x258], ax
call fcn.004284f9
mov byte [ebp - 4], 2
cmp dword [esi + 8], 7
jne 0x443347
lea eax, [ebp - 0x2c0]
push eax
push ecx
call fcn.00429293
pop ecx
mov ecx, eax
call fcn.004464d9
push 0
push 1
lea ecx, [ebp - 0x2c0]
mov ebx, dword [eax + 0x10]
call fcn.00429656
test ebx, ebx
jne 0x443345
call fcn.00429293
cmp dword [eax + 0x78], ebx
jne 0x443345
call fcn.00429293
mov al, byte [eax + 0xfc]
test al, al
jne 0x443345
mov ebx, str._nodesktopIcon
push ebx
call fcn.00643138
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x258]
call fcn.00425488
xor ebx, ebx
lea eax, [esi + 0x40]
cmp dword [eax + 0x14], 8
jb 0x443352
mov eax, dword [eax]
push ebx
sub esp, 0x10
lea ecx, [ebp - 0x228]
push eax
push closesocket
call fcn.0044953b
mov dword [ebp - 0x2a0], eax
test eax, eax
je 0x443381
cmp eax, 0x3fd
jne 0x44381f
call fcn.0045bf3e
lea eax, [ebp - 0x2dc]
push eax
push ecx
call fcn.00429293
pop ecx
mov ecx, eax
call fcn.004464b9
mov edx, eax
lea eax, [esi + 0x24]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x240]
call fcn.004493d5
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x2dc]
mov byte [ebp - 4], 6
call fcn.00428ecb
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.00421636
mov ecx, dword [ebp - 0x29c]
lea eax, [esi + 8]
add ecx, 0x87c
push eax
mov dword [ebp - 0x2c4], ecx
call fcn.00444847
add eax, 0x20
lea ecx, [ebp - 0x240]
cmp eax, ecx
je 0x443417
push 0xffffffffffffffff
push ebx
push ecx
mov ecx, eax
call fcn.00428db4
lea eax, [ebp - 0x240]
push eax
lea ecx, [ebp - 0x2c0]
call fcn.00448fa2
lea edx, [ebp - 0x2c0]
lea ecx, [ebp - 0x308]
call fcn.00449372
push 0
push 1
mov ecx, dword [eax]
cmp ecx, 2
lea ecx, [ebp - 0x2c0]
sete bl
call fcn.00428ecb
xor bl, 1
je 0x44348d
lea eax, [ebp - 0x240]
push eax
lea ecx, [ebp - 0x2c0]
call fcn.00448fa2
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 7
call fcn.00448d78
xor ebx, ebx
mov byte [ebp - 4], 6
push ebx
push 1
lea ecx, [ebp - 0x2c0]
call fcn.00428ecb
jmp 0x44348f
xor ebx, ebx
push 0x208
lea eax, [ebp - 0x21c]
push ebx
push eax
call fcn.0063e3a0
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 0x4434c9
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.00438812
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 0x443553
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.0045bbdf
mov bl, al
mov byte [ebp - 4], 8
pop ecx
neg bl
lea ecx, [ebp - 0x300]
sbb bl, bl
call fcn.00426f7b
add bl, 1
jne 0x44389f
xor ebx, ebx
push ebx
xor eax, eax
mov dword [ebp - 0x298], ebx
push 0x6d2f48
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x2ac], 7
mov dword [ebp - 0x2b0], ebx
mov word [ebp - 0x2c0], ax
call fcn.004284f9
lea eax, [ebp - 0x298]
push eax
push 1
lea ecx, [esi + 0xd0]
lea edx, [ebp - 0x2c0]
call fcn.0045be1e
pop ecx
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x2c0]
call fcn.00428ecb
mov eax, dword [ebp - 0x298]
xor ecx, ecx
push 0x113
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.00424985
mov ebx, eax
push str.install_component
mov ecx, ebx
mov byte [ebp - 4], 0xb
call fcn.004248a8
push 0xffffffffffffffff
lea eax, [esi + 0xc]
mov ecx, ebx
push 0
push eax
mov dword [ebp - 0x2a0], eax
call fcn.004253e9
push str._Result_
mov ecx, ebx
call fcn.004248a8
push dword [ebp - 0x298]
mov ecx, ebx
call fcn.0044644d
push 0x6d4b34
mov ecx, ebx
call fcn.004248a8
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], 8
call fcn.0066af23
cmp dword [ebp - 0x298], 0
jne 0x44399d
push str.Tinst.exe
lea edx, [ebp - 0x270]
lea ecx, [ebp - 0x288]
call fcn.00438812
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 0x443940
and dword [ebp - 0x298], 0
push 0x12f
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 1
call fcn.00424985
mov ebx, eax
push str.install_component_params:
mov ecx, ebx
mov byte [ebp - 4], 0xe
call fcn.004248a8
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x258]
mov ecx, ebx
push eax
call fcn.004253e9
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], 0xc
call fcn.0066af23
lea eax, [ebp - 0x298]
push eax
push 1
lea edx, [ebp - 0x258]
lea ecx, [ebp - 0x288]
call fcn.0045be1e
pop ecx
pop ecx
push 0x131
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 1
lea ecx, [ebp - 0x2f4]
call fcn.00424985
mov ebx, eax
push str.install_component
mov ecx, ebx
mov byte [ebp - 4], 0xf
call fcn.004248a8
push 0xffffffffffffffff
push 0
push dword [ebp - 0x2a0]
mov ecx, ebx
call fcn.004253e9
push str._installer__Tinst__Result_
mov ecx, ebx
call fcn.004248a8
push dword [ebp - 0x298]
mov ecx, ebx
call fcn.0044644d
push 0x6d4b34
mov ecx, ebx
call fcn.004248a8
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], 0xc
call fcn.0066af23
cmp dword [ebp - 0x298], 0
jne 0x44391e
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea ecx, [ebp - 0x228]
call fcn.00424889
mov ecx, dword [ebp - 0x2c4]
lea eax, [esi + 8]
push eax
call fcn.00444847
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.00448318
pop ecx
mov ecx, eax
call fcn.00448386
push ebx
push 1
lea ecx, [ebp - 0x288]
call fcn.00428ecb
push ebx
push 1
lea ecx, [ebp - 0x270]
call fcn.00428ecb
push ebx
push 1
lea ecx, [ebp - 0x240]
call fcn.00428ecb
push ebx
push 1
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], bl
call fcn.00428ecb
mov esi, dword [esi]
cmp esi, edi
jne 0x443284
jmp 0x4439dc
push 0xea
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 3
lea ecx, [ebp - 0x2f4]
call fcn.00424985
mov esi, eax
push 0x6d4c2c
mov ecx, esi
mov byte [ebp - 4], 3
call fcn.004248a8
mov eax, dword [ebp - 0x2a8]
mov ecx, esi
push 0xffffffffffffffff
add eax, 0x38
push ebx
push eax
call fcn.004253e9
push str._reg_path_failed._error_code:
mov ecx, esi
call fcn.004248a8
push dword [ebp - 0x2a0]
mov ecx, esi
call fcn.0044945c
lea ecx, [ebp - 0x2f4]
call fcn.0066af23
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x884], 0x11
jmp 0x4439cb
push 0x103
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 2
lea ecx, [ebp - 0x2f4]
call fcn.00424985
mov esi, eax
push 0x6d4c84
mov ecx, esi
mov byte [ebp - 4], 0xa
call fcn.004248a8
push 0xffffffffffffffff
xor ebx, ebx
lea eax, [ebp - 0x270]
push ebx
push eax
mov ecx, esi
call fcn.004253e9
push str._failed._error_code:
mov ecx, esi
call fcn.004248a8
push dword [ebp - 0x2a0]
mov ecx, esi
call fcn.0044945c
lea ecx, [ebp - 0x2f4]
call fcn.0066af23
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x884], 0x13
jmp 0x4439af
mov eax, dword [ebp - 0x29c]
xor ebx, ebx
mov dword [eax + 0x884], 0x10
push ebx
push 1
lea ecx, [ebp - 0x288]
call fcn.00428ecb
jmp 0x4439af
push 0x12a
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.component
push 3
call fcn.00424985
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.004253e9
push str._dont_exist_
mov ecx, esi
call fcn.004248a8
lea ecx, [ebp - 0x2f4]
call fcn.0066af23
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x884], 0xf
jmp 0x443930
mov eax, dword [ebp - 0x29c]
xor ebx, ebx
mov dword [eax + 0x884], 0xe
push ebx
push 1
lea ecx, [ebp - 0x270]
call fcn.00428ecb
push ebx
push 1
lea ecx, [ebp - 0x240]
call fcn.00428ecb
push ebx
push 1
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], bl
call fcn.00428ecb
lea ecx, [ebp - 0x228]
call fcn.00424889
mov eax, dword [ebp - 0x29c]
mov ecx, dword [eax + 0x884]
test ecx, ecx
je 0x443a5d
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.00448318
pop ecx
mov ecx, eax
call fcn.00448386
push 0x144
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 3
lea ecx, [ebp - 0x2f4]
call fcn.00424985
push str.component_install_failed.
mov ecx, eax
mov byte [ebp - 4], 0x10
call fcn.004248a8
lea ecx, [ebp - 0x2f4]
call fcn.0066af23
jmp 0x443aeb
push dword [eax + 0x8ac]
lea ecx, [ebp - 0x2c0]
call fcn.004292cc
lea edx, [ebp - 0x2c0]
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x2dc]
call fcn.00430e6a
mov ecx, eax
mov byte [ebp - 4], 0x12
call fcn.004426f1
push ebx
push 1
lea ecx, [ebp - 0x2dc]
call fcn.00428ecb
push ebx
push 1
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], bl
call fcn.00429656
push 0x14c
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 1
lea ecx, [ebp - 0x2f4]
call fcn.00424985
push str.component_install_success
mov ecx, eax
mov byte [ebp - 4], 0x13
call fcn.004248a8
lea ecx, [ebp - 0x2f4]
call fcn.0066af23
mov bl, 1
lea ecx, [ebp - 0x228]
call fcn.00424889
mov al, bl
call fcn.00626793
ret