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

Disassembly:
push 0x2fc
mov eax, 0x66a86a
call fcn.00621369
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.00448c12
mov edi, eax
test edi, edi
je 0x442af0
push 0xa5
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 3
lea ecx, [ebp - 0x2f4]
call fcn.00424945
mov esi, eax
push 0x6ceb5c
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.00424868
push str.SoftwareTencentMobileGamePC
call fcn.0063dcb8
pop ecx
push eax
push str.SoftwareTencentMobileGamePC
mov ecx, esi
call fcn.00425448
push str._reg_path_failed._error_code:
mov ecx, esi
call fcn.00424868
push edi
mov ecx, esi
call fcn.00448b33
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], bl
call fcn.00665a93
mov edi, dword [ebp - 0x29c]
mov dword [edi + 0x884], 0x11
jmp 0x442af6
mov edi, dword [ebp - 0x29c]
mov edi, dword [edi + 0x98c]
or dword [ebp - 0x2a4], 0xffffffff
mov esi, dword [edi]
jmp 0x443098
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.00447a38
pop ecx
mov ecx, eax
call fcn.00447aa6
mov eax, dword [esi + 8]
lea ecx, [ebp - 0x258]
mov dword [ebp - 0x2a4], eax
xor eax, eax
push ebx
push 0x6cced8
mov dword [ebp - 0x244], 7
mov dword [ebp - 0x248], ebx
mov word [ebp - 0x258], ax
call fcn.004284c0
mov byte [ebp - 4], 2
cmp dword [esi + 8], 7
jne 0x442bcd
lea eax, [ebp - 0x2c0]
push eax
push ecx
call fcn.0042925a
pop ecx
mov ecx, eax
call fcn.0044599b
push 0
push 1
lea ecx, [ebp - 0x2c0]
mov ebx, dword [eax + 0x10]
call fcn.0042961d
test ebx, ebx
jne 0x442bcb
call fcn.0042925a
cmp dword [eax + 0x78], ebx
jne 0x442bcb
call fcn.0042925a
mov al, byte [eax + 0xf8]
test al, al
jne 0x442bcb
mov ebx, str._nodesktopIcon
push ebx
call fcn.0063dcb8
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x258]
call fcn.00425448
xor ebx, ebx
lea eax, [esi + 0x40]
cmp dword [eax + 0x14], 8
jb 0x442bd8
mov eax, dword [eax]
push ebx
sub esp, 0x10
lea ecx, [ebp - 0x228]
push eax
push closesocket
call fcn.00448c12
mov dword [ebp - 0x2a0], eax
test eax, eax
je 0x442c07
cmp eax, 0x3fd
jne 0x4430a5
call fcn.00456ffd
lea eax, [ebp - 0x2dc]
push eax
push ecx
call fcn.0042925a
pop ecx
mov ecx, eax
call fcn.0044597b
mov edx, eax
lea eax, [esi + 0x24]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x240]
call fcn.00448aac
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x2dc]
mov byte [ebp - 4], 6
call fcn.00428e92
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.004215f6
mov ecx, dword [ebp - 0x29c]
lea eax, [esi + 8]
add ecx, 0x87c
push eax
mov dword [ebp - 0x2c4], ecx
call fcn.00443fe9
add eax, 0x20
lea ecx, [ebp - 0x240]
cmp eax, ecx
je 0x442c9d
push 0xffffffffffffffff
push ebx
push ecx
mov ecx, eax
call fcn.00428d7b
lea eax, [ebp - 0x240]
push eax
lea ecx, [ebp - 0x2c0]
call fcn.004486c2
lea edx, [ebp - 0x2c0]
lea ecx, [ebp - 0x308]
call fcn.00448a3f
push 0
push 1
mov ecx, dword [eax]
cmp ecx, 2
lea ecx, [ebp - 0x2c0]
sete bl
call fcn.00428e92
xor bl, 1
je 0x442d13
lea eax, [ebp - 0x240]
push eax
lea ecx, [ebp - 0x2c0]
call fcn.004486c2
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 7
call fcn.00448498
xor ebx, ebx
mov byte [ebp - 4], 6
push ebx
push 1
lea ecx, [ebp - 0x2c0]
call fcn.00428e92
jmp 0x442d15
xor ebx, ebx
push 0x208
lea eax, [ebp - 0x21c]
push ebx
push eax
call fcn.00638f20
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 0x442d4f
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.004382cb
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 0x442dd9
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.00456c9e
mov bl, al
mov byte [ebp - 4], 8
pop ecx
neg bl
lea ecx, [ebp - 0x300]
sbb bl, bl
call fcn.00426f40
add bl, 1
jne 0x443125
xor ebx, ebx
push ebx
xor eax, eax
mov dword [ebp - 0x298], ebx
push 0x6cced8
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x2ac], 7
mov dword [ebp - 0x2b0], ebx
mov word [ebp - 0x2c0], ax
call fcn.004284c0
lea eax, [ebp - 0x298]
push eax
push 1
lea ecx, [esi + 0xd0]
lea edx, [ebp - 0x2c0]
call fcn.00456edd
pop ecx
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x2c0]
call fcn.00428e92
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.00424945
mov ebx, eax
push str.install_component
mov ecx, ebx
mov byte [ebp - 4], 0xb
call fcn.00424868
push 0xffffffffffffffff
lea eax, [esi + 0xc]
mov ecx, ebx
push 0
push eax
mov dword [ebp - 0x2a0], eax
call fcn.004253a9
push str._Result_
mov ecx, ebx
call fcn.00424868
push dword [ebp - 0x298]
mov ecx, ebx
call fcn.0044590f
push 0x6cea64
mov ecx, ebx
call fcn.00424868
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], 8
call fcn.00665a93
cmp dword [ebp - 0x298], 0
jne 0x443223
push str.Tinst.exe
lea edx, [ebp - 0x270]
lea ecx, [ebp - 0x288]
call fcn.004382cb
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 0x4431c6
and dword [ebp - 0x298], 0
push 0x118
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 1
call fcn.00424945
mov ebx, eax
push str.install_component_params:
mov ecx, ebx
mov byte [ebp - 4], 0xe
call fcn.00424868
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x258]
mov ecx, ebx
push eax
call fcn.004253a9
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], 0xc
call fcn.00665a93
lea eax, [ebp - 0x298]
push eax
push 1
lea edx, [ebp - 0x258]
lea ecx, [ebp - 0x288]
call fcn.00456edd
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.00424945
mov ebx, eax
push str.install_component
mov ecx, ebx
mov byte [ebp - 4], 0xf
call fcn.00424868
push 0xffffffffffffffff
push 0
push dword [ebp - 0x2a0]
mov ecx, ebx
call fcn.004253a9
push str._installer__Tinst__Result_
mov ecx, ebx
call fcn.00424868
push dword [ebp - 0x298]
mov ecx, ebx
call fcn.0044590f
push 0x6cea64
mov ecx, ebx
call fcn.00424868
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], 0xc
call fcn.00665a93
cmp dword [ebp - 0x298], 0
jne 0x4431a4
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea ecx, [ebp - 0x228]
call fcn.00424849
mov ecx, dword [ebp - 0x2c4]
lea eax, [esi + 8]
push eax
call fcn.00443fe9
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.00447a38
pop ecx
mov ecx, eax
call fcn.00447aa6
push ebx
push 1
lea ecx, [ebp - 0x288]
call fcn.00428e92
push ebx
push 1
lea ecx, [ebp - 0x270]
call fcn.00428e92
push ebx
push 1
lea ecx, [ebp - 0x240]
call fcn.00428e92
push ebx
push 1
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], bl
call fcn.00428e92
mov esi, dword [esi]
cmp esi, edi
jne 0x442b0a
jmp 0x443262
push 0xd3
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 3
lea ecx, [ebp - 0x2f4]
call fcn.00424945
mov esi, eax
push 0x6ceb5c
mov ecx, esi
mov byte [ebp - 4], 3
call fcn.00424868
mov eax, dword [ebp - 0x2a8]
mov ecx, esi
push 0xffffffffffffffff
add eax, 0x38
push ebx
push eax
call fcn.004253a9
push str._reg_path_failed._error_code:
mov ecx, esi
call fcn.00424868
push dword [ebp - 0x2a0]
mov ecx, esi
call fcn.00448b33
lea ecx, [ebp - 0x2f4]
call fcn.00665a93
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x884], 0x11
jmp 0x443251
push 0xec
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 2
lea ecx, [ebp - 0x2f4]
call fcn.00424945
mov esi, eax
push 0x6cebb4
mov ecx, esi
mov byte [ebp - 4], 0xa
call fcn.00424868
push 0xffffffffffffffff
xor ebx, ebx
lea eax, [ebp - 0x270]
push ebx
push eax
mov ecx, esi
call fcn.004253a9
push str._failed._error_code:
mov ecx, esi
call fcn.00424868
push dword [ebp - 0x2a0]
mov ecx, esi
call fcn.00448b33
lea ecx, [ebp - 0x2f4]
call fcn.00665a93
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x884], 0x13
jmp 0x443235
mov eax, dword [ebp - 0x29c]
xor ebx, ebx
mov dword [eax + 0x884], 0x10
push ebx
push 1
lea ecx, [ebp - 0x288]
call fcn.00428e92
jmp 0x443235
push 0x113
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.component
push 3
call fcn.00424945
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.004253a9
push str._dont_exist_
mov ecx, esi
call fcn.00424868
lea ecx, [ebp - 0x2f4]
call fcn.00665a93
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x884], 0xf
jmp 0x4431b6
mov eax, dword [ebp - 0x29c]
xor ebx, ebx
mov dword [eax + 0x884], 0xe
push ebx
push 1
lea ecx, [ebp - 0x270]
call fcn.00428e92
push ebx
push 1
lea ecx, [ebp - 0x240]
call fcn.00428e92
push ebx
push 1
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], bl
call fcn.00428e92
lea ecx, [ebp - 0x228]
call fcn.00424849
mov eax, dword [ebp - 0x29c]
mov ecx, dword [eax + 0x884]
test ecx, ecx
je 0x4432e3
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.00447a38
pop ecx
mov ecx, eax
call fcn.00447aa6
push 0x12d
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 3
lea ecx, [ebp - 0x2f4]
call fcn.00424945
push str.component_install_failed.
mov ecx, eax
mov byte [ebp - 4], 0x10
call fcn.00424868
lea ecx, [ebp - 0x2f4]
call fcn.00665a93
jmp 0x443371
push dword [eax + 0x8ac]
lea ecx, [ebp - 0x2c0]
call fcn.00429293
lea edx, [ebp - 0x2c0]
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x2dc]
call fcn.00430e3a
mov ecx, eax
mov byte [ebp - 4], 0x12
call fcn.00441f87
push ebx
push 1
lea ecx, [ebp - 0x2dc]
call fcn.00428e92
push ebx
push 1
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], bl
call fcn.0042961d
push 0x135
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 1
lea ecx, [ebp - 0x2f4]
call fcn.00424945
push str.component_install_success
mov ecx, eax
mov byte [ebp - 4], 0x13
call fcn.00424868
lea ecx, [ebp - 0x2f4]
call fcn.00665a93
mov bl, 1
lea ecx, [ebp - 0x228]
call fcn.00424849
mov al, bl
call fcn.00621313
ret