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

Disassembly:
push 0x2fc
mov eax, 0x66c98a
call fcn.006233d9
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.004492d2
mov edi, eax
test edi, edi
je 0x443130
push 0xb9
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 3
lea ecx, [ebp - 0x2f4]
call fcn.00424945
mov esi, eax
push 0x6d1cc4
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.00424868
push str.SoftwareTencentMobileGamePC
call fcn.0063fd28
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.004491f3
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], bl
call fcn.00667b03
mov edi, dword [ebp - 0x29c]
mov dword [edi + 0x884], 0x11
jmp 0x443136
mov edi, dword [ebp - 0x29c]
mov edi, dword [edi + 0x98c]
or dword [ebp - 0x2a4], 0xffffffff
mov esi, dword [edi]
jmp 0x4436d8
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.004480f8
pop ecx
mov ecx, eax
call fcn.00448166
mov eax, dword [esi + 8]
lea ecx, [ebp - 0x258]
mov dword [ebp - 0x2a4], eax
xor eax, eax
push ebx
push 0x6cffd8
mov dword [ebp - 0x244], 7
mov dword [ebp - 0x248], ebx
mov word [ebp - 0x258], ax
call fcn.004284b9
mov byte [ebp - 4], 2
cmp dword [esi + 8], 7
jne 0x44320d
lea eax, [ebp - 0x2c0]
push eax
push ecx
call fcn.00429253
pop ecx
mov ecx, eax
call fcn.00446063
push 0
push 1
lea ecx, [ebp - 0x2c0]
mov ebx, dword [eax + 0x10]
call fcn.00429616
test ebx, ebx
jne 0x44320b
call fcn.00429253
cmp dword [eax + 0x78], ebx
jne 0x44320b
call fcn.00429253
mov al, byte [eax + 0xfc]
test al, al
jne 0x44320b
mov ebx, str._nodesktopIcon
push ebx
call fcn.0063fd28
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 0x443218
mov eax, dword [eax]
push ebx
sub esp, 0x10
lea ecx, [ebp - 0x228]
push eax
push closesocket
call fcn.004492d2
mov dword [ebp - 0x2a0], eax
test eax, eax
je 0x443247
cmp eax, 0x3fd
jne 0x4436e5
call fcn.00458f03
lea eax, [ebp - 0x2dc]
push eax
push ecx
call fcn.00429253
pop ecx
mov ecx, eax
call fcn.00446043
mov edx, eax
lea eax, [esi + 0x24]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x240]
call fcn.0044916c
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x2dc]
mov byte [ebp - 4], 6
call fcn.00428e8b
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.0044466d
add eax, 0x20
lea ecx, [ebp - 0x240]
cmp eax, ecx
je 0x4432dd
push 0xffffffffffffffff
push ebx
push ecx
mov ecx, eax
call fcn.00428d74
lea eax, [ebp - 0x240]
push eax
lea ecx, [ebp - 0x2c0]
call fcn.00448d82
lea edx, [ebp - 0x2c0]
lea ecx, [ebp - 0x308]
call fcn.004490ff
push 0
push 1
mov ecx, dword [eax]
cmp ecx, 2
lea ecx, [ebp - 0x2c0]
sete bl
call fcn.00428e8b
xor bl, 1
je 0x443353
lea eax, [ebp - 0x240]
push eax
lea ecx, [ebp - 0x2c0]
call fcn.00448d82
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 7
call fcn.00448b58
xor ebx, ebx
mov byte [ebp - 4], 6
push ebx
push 1
lea ecx, [ebp - 0x2c0]
call fcn.00428e8b
jmp 0x443355
xor ebx, ebx
push 0x208
lea eax, [ebp - 0x21c]
push ebx
push eax
call fcn.0063af90
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 0x44338f
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.00438700
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 0x443419
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.00458ba4
mov bl, al
mov byte [ebp - 4], 8
pop ecx
neg bl
lea ecx, [ebp - 0x300]
sbb bl, bl
call fcn.00426f3b
add bl, 1
jne 0x443765
xor ebx, ebx
push ebx
xor eax, eax
mov dword [ebp - 0x298], ebx
push 0x6cffd8
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x2ac], 7
mov dword [ebp - 0x2b0], ebx
mov word [ebp - 0x2c0], ax
call fcn.004284b9
lea eax, [ebp - 0x298]
push eax
push 1
lea ecx, [esi + 0xd0]
lea edx, [ebp - 0x2c0]
call fcn.00458de3
pop ecx
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x2c0]
call fcn.00428e8b
mov eax, dword [ebp - 0x298]
xor ecx, ecx
push 0x110
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.00445fd7
push 0x6d1bcc
mov ecx, ebx
call fcn.00424868
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], 8
call fcn.00667b03
cmp dword [ebp - 0x298], 0
jne 0x443863
push str.Tinst.exe
lea edx, [ebp - 0x270]
lea ecx, [ebp - 0x288]
call fcn.00438700
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 0x443806
and dword [ebp - 0x298], 0
push 0x12c
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.00667b03
lea eax, [ebp - 0x298]
push eax
push 1
lea edx, [ebp - 0x258]
lea ecx, [ebp - 0x288]
call fcn.00458de3
pop ecx
pop ecx
push 0x12e
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.00445fd7
push 0x6d1bcc
mov ecx, ebx
call fcn.00424868
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], 0xc
call fcn.00667b03
cmp dword [ebp - 0x298], 0
jne 0x4437e4
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.0044466d
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.004480f8
pop ecx
mov ecx, eax
call fcn.00448166
push ebx
push 1
lea ecx, [ebp - 0x288]
call fcn.00428e8b
push ebx
push 1
lea ecx, [ebp - 0x270]
call fcn.00428e8b
push ebx
push 1
lea ecx, [ebp - 0x240]
call fcn.00428e8b
push ebx
push 1
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], bl
call fcn.00428e8b
mov esi, dword [esi]
cmp esi, edi
jne 0x44314a
jmp 0x4438a2
push 0xe7
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 3
lea ecx, [ebp - 0x2f4]
call fcn.00424945
mov esi, eax
push 0x6d1cc4
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.004491f3
lea ecx, [ebp - 0x2f4]
call fcn.00667b03
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x884], 0x11
jmp 0x443891
push 0x100
push str.CMainWnd::InstallComponent
push str.component.cpp
push str.Component
push 2
lea ecx, [ebp - 0x2f4]
call fcn.00424945
mov esi, eax
push 0x6d1d1c
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.004491f3
lea ecx, [ebp - 0x2f4]
call fcn.00667b03
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x884], 0x13
jmp 0x443875
mov eax, dword [ebp - 0x29c]
xor ebx, ebx
mov dword [eax + 0x884], 0x10
push ebx
push 1
lea ecx, [ebp - 0x288]
call fcn.00428e8b
jmp 0x443875
push 0x127
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.00667b03
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x884], 0xf
jmp 0x4437f6
mov eax, dword [ebp - 0x29c]
xor ebx, ebx
mov dword [eax + 0x884], 0xe
push ebx
push 1
lea ecx, [ebp - 0x270]
call fcn.00428e8b
push ebx
push 1
lea ecx, [ebp - 0x240]
call fcn.00428e8b
push ebx
push 1
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], bl
call fcn.00428e8b
lea ecx, [ebp - 0x228]
call fcn.00424849
mov eax, dword [ebp - 0x29c]
mov ecx, dword [eax + 0x884]
test ecx, ecx
je 0x443923
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.004480f8
pop ecx
mov ecx, eax
call fcn.00448166
push 0x141
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.00667b03
jmp 0x4439b1
push dword [eax + 0x8ac]
lea ecx, [ebp - 0x2c0]
call fcn.0042928c
lea edx, [ebp - 0x2c0]
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x2dc]
call fcn.00430e2b
mov ecx, eax
mov byte [ebp - 4], 0x12
call fcn.004425b7
push ebx
push 1
lea ecx, [ebp - 0x2dc]
call fcn.00428e8b
push ebx
push 1
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], bl
call fcn.00429616
push 0x149
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.00667b03
mov bl, 1
lea ecx, [ebp - 0x228]
call fcn.00424849
mov al, bl
call fcn.00623383
ret