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

Disassembly:
push 0x2fc
mov eax, 0x66ff62
call fcn.00626979
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.0044955b
mov edi, eax
test edi, edi
je 0x44328a
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 0x6d5c24
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.004248a8
push str.SoftwareTencentMobileGamePC
call fcn.00643278
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.0044947c
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], bl
call fcn.0066b093
mov edi, dword [ebp - 0x29c]
mov dword [edi + 0x884], 0x11
jmp 0x443290
mov edi, dword [ebp - 0x29c]
mov edi, dword [edi + 0x98c]
or dword [ebp - 0x2a4], 0xffffffff
mov esi, dword [edi]
jmp 0x443835
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.00448338
pop ecx
mov ecx, eax
call fcn.004483a6
mov eax, dword [esi + 8]
lea ecx, [ebp - 0x258]
mov dword [ebp - 0x2a4], eax
xor eax, eax
push ebx
push 0x6d3f48
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 0x44336a
lea eax, [ebp - 0x2c0]
push eax
push ecx
call fcn.00429293
pop ecx
mov ecx, eax
call fcn.004464fc
push 0
push 1
lea ecx, [ebp - 0x2c0]
mov ebx, dword [eax + 0x10]
call fcn.00429656
test ebx, ebx
jne 0x443368
call fcn.00429293
cmp dword [eax + 0x88], ebx
jne 0x443368
call fcn.00429293
mov al, byte [eax + 0x10c]
test al, al
jne 0x443368
mov ebx, str._nodesktopIcon
push ebx
call fcn.00643278
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 0x443375
mov eax, dword [eax]
push ebx
sub esp, 0x10
lea ecx, [ebp - 0x228]
push eax
push closesocket
call fcn.0044955b
mov dword [ebp - 0x2a0], eax
test eax, eax
je 0x4433a4
cmp eax, 0x3fd
jne 0x443842
call fcn.0045c07f
lea eax, [ebp - 0x2dc]
push eax
push ecx
call fcn.00429293
pop ecx
mov ecx, eax
call fcn.004464dc
mov edx, eax
lea eax, [esi + 0x24]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x240]
call fcn.004493f5
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.0044486a
add eax, 0x20
lea ecx, [ebp - 0x240]
cmp eax, ecx
je 0x44343a
push 0xffffffffffffffff
push ebx
push ecx
mov ecx, eax
call fcn.00428db4
lea eax, [ebp - 0x240]
push eax
lea ecx, [ebp - 0x2c0]
call fcn.00448fc2
lea edx, [ebp - 0x2c0]
lea ecx, [ebp - 0x308]
call fcn.00449392
push 0
push 1
mov ecx, dword [eax]
cmp ecx, 2
lea ecx, [ebp - 0x2c0]
sete bl
call fcn.00428ecb
xor bl, 1
je 0x4434b0
lea eax, [ebp - 0x240]
push eax
lea ecx, [ebp - 0x2c0]
call fcn.00448fc2
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 7
call fcn.00448d98
xor ebx, ebx
mov byte [ebp - 4], 6
push ebx
push 1
lea ecx, [ebp - 0x2c0]
call fcn.00428ecb
jmp 0x4434b2
xor ebx, ebx
push 0x208
lea eax, [ebp - 0x21c]
push ebx
push eax
call fcn.0063e4e0
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 0x4434ec
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.00438834
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 0x443576
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.0045bd20
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 0x4438c2
xor ebx, ebx
push ebx
xor eax, eax
mov dword [ebp - 0x298], ebx
push 0x6d3f48
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.0045bf5f
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.00446470
push 0x6d5b2c
mov ecx, ebx
call fcn.004248a8
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], 8
call fcn.0066b093
cmp dword [ebp - 0x298], 0
jne 0x4439c0
push str.Tinst.exe
lea edx, [ebp - 0x270]
lea ecx, [ebp - 0x288]
call fcn.00438834
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 0x443963
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.0066b093
lea eax, [ebp - 0x298]
push eax
push 1
lea edx, [ebp - 0x258]
lea ecx, [ebp - 0x288]
call fcn.0045bf5f
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.00446470
push 0x6d5b2c
mov ecx, ebx
call fcn.004248a8
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], 0xc
call fcn.0066b093
cmp dword [ebp - 0x298], 0
jne 0x443941
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.0044486a
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.00448338
pop ecx
mov ecx, eax
call fcn.004483a6
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 0x4432a4
jmp 0x4439ff
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 0x6d5c24
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.0044947c
lea ecx, [ebp - 0x2f4]
call fcn.0066b093
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x884], 0x11
jmp 0x4439ee
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 0x6d5c7c
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.0044947c
lea ecx, [ebp - 0x2f4]
call fcn.0066b093
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x884], 0x13
jmp 0x4439d2
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 0x4439d2
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.0066b093
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x884], 0xf
jmp 0x443953
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 0x443a80
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.00448338
pop ecx
mov ecx, eax
call fcn.004483a6
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.0066b093
jmp 0x443b0e
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.00430e8c
mov ecx, eax
mov byte [ebp - 4], 0x12
call fcn.00442711
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.0066b093
mov bl, 1
lea ecx, [ebp - 0x228]
call fcn.00424889
mov al, bl
call fcn.00626923
ret