Function at 0x445390
Capabilities:
Get common file path
Get graphical window text
Get startup folder

Disassembly:
push 0xffffffffffffffff
push 0x4c00e2
mov eax, dword fs:[0]
push eax
sub esp, 0xbf4
mov eax, dword [0x4e44b4]
xor eax, esp
mov dword [esp + 0xbf0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4e44b4]
xor eax, esp
push eax
lea eax, [esp + 0xc08]
mov dword fs:[0], eax
movzx eax, cx
xor ebx, ebx
cmp eax, 0x3f6
mov esi, edx
mov dword [esp + 0x20], ebx
jg 0x4454aa
je 0x4454a0
cmp eax, 0x3ea
jg 0x445487
cmp eax, 0x3e8
jge 0x445411
sub eax, 2
je 0x445407
sub eax, 6
jne 0x445c06
call fcn.0044c0e0
jmp 0x445c06
cmp cx, 0x3e9
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
jne 0x445454
push 5
push 0x414
push esi
call edi
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
push eax
call ebx
push 5
push 0x415
push esi
call edi
push eax
call ebx
push 1
push 0x415
push esi
call edi
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
jmp 0x445c06
push ebx
push 0x414
push esi
call edi
mov ebp, dword [sym.imp.USER32.dll_ShowWindow]
push eax
call ebp
push ebx
push 0x415
push esi
call edi
push eax
call ebp
push ebx
push 0x415
push esi
call edi
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
jmp 0x445c06
cmp eax, 0x3f5
jne 0x445c06
push 6
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x445c06
call fcn.0044bfa0
jmp 0x445c06
sub eax, 0x3f8
je 0x445787
sub eax, 0x19
je 0x445617
sub eax, 4
jne 0x445c06
push 0x206
lea eax, [esp + 0x1e2]
push ebx
push eax
mov word [esp + 0x1e8], bx
call fcn.00499a30
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
add esp, 0xc
push 0x104
lea ecx, [esp + 0x1e0]
push ecx
push 0x414
push esi
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindowTextW]
sub esp, 0x1c
lea edx, [esp + 0x1f8]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
call fcn.00405140
sub esp, 0x1c
mov dword [esp + 0xc48], 0x10
mov ecx, esp
mov dword [esp + 0x54], esp
push str.CurrentInstallPath
call fcn.00402090
mov dword [esp + 0xc48], 0xffffffff
call fcn.00401b00
add esp, 0x38
lea eax, [esp + 0x20]
push eax
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x445c06
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x19c]
lea edx, [esp + 0x7f4]
push eax
mov dword [esp + 0x1a0], esi
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], edx
mov dword [esp + 0x1ac], 0x4d24e8
mov dword [esp + 0x1b0], 0x45
mov dword [esp + 0x1b4], 0x445160
mov dword [esp + 0x1b8], ebx
mov dword [esp + 0x1bc], ebx
call dword [sym.imp.SHELL32.dll_SHBrowseForFolderW]
cmp eax, ebx
je 0x445c06
lea ecx, [esp + 0x3e4]
push ecx
push eax
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
lea eax, [esp + 0x3e4]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4455e1
sub eax, edx
sar eax, 1
cmp eax, 0x96
ja 0x44576d
lea edx, [esp + 0x3e4]
push edx
push 0x414
push esi
call edi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
jmp 0x445c06
push 0x206
lea eax, [esp + 0x1e2]
push ebx
push eax
mov word [esp + 0x1e8], bx
call fcn.00499a30
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
add esp, 0xc
push 0x104
lea ecx, [esp + 0x1e0]
push ecx
push 0x410
push esi
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindowTextW]
sub esp, 0x1c
lea edx, [esp + 0x1f8]
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call fcn.00405140
sub esp, 0x1c
mov dword [esp + 0xc48], 0xf
mov ecx, esp
mov dword [esp + 0x50], esp
push str.CurrentInstallPath
call fcn.00402090
mov dword [esp + 0xc48], 0xffffffff
call fcn.00401b00
add esp, 0x38
lea eax, [esp + 0x24]
push eax
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x445c06
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x1bc]
lea edx, [esp + 0x9fc]
push eax
mov dword [esp + 0x1c0], esi
mov dword [esp + 0x1c4], ecx
mov dword [esp + 0x1c8], edx
mov dword [esp + 0x1cc], 0x4d24b0
mov dword [esp + 0x1d0], 0x45
mov dword [esp + 0x1d4], 0x445160
mov dword [esp + 0x1d8], ebx
mov dword [esp + 0x1dc], ebx
call dword [sym.imp.SHELL32.dll_SHBrowseForFolderW]
cmp eax, ebx
je 0x445c06
lea ecx, [esp + 0x5ec]
push ecx
push eax
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
lea eax, [esp + 0x5ec]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x445731
sub eax, edx
sar eax, 1
cmp eax, 0x96
ja 0x44576d
lea edx, [esp + 0x5ec]
push edx
push 0x410
push esi
call edi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov dword [0x4edaf8], 1
jmp 0x445c06
push 0x10
push esi
mov edx, 0x4cafb0
mov ecx, 0x4d24c4
call fcn.0043ff40
add esp, 8
jmp 0x445c06
push 0x206
lea eax, [esp + 0x1e2]
push ebx
push eax
mov word [esp + 0x1e8], bx
call fcn.00499a30
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
add esp, 0xc
push 0x104
lea ecx, [esp + 0x1e0]
push ecx
push 0x410
push esi
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindowTextW]
sub esp, 0x1c
lea edx, [esp + 0x1f8]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call fcn.00405140
sub esp, 0x1c
mov dword [esp + 0xc48], ebx
mov ecx, esp
mov dword [esp + 0x54], esp
push 0x4c98b4
call fcn.00402090
mov dword [esp + 0xc48], 0xffffffff
call fcn.00401b00
add esp, 0x38
lea ecx, [esp + 0x1bc]
call fcn.00475600
push ebx
push 1
push 0xf0
push 0x3e8
push esi
mov dword [esp + 0xc24], 1
call edi
mov ebp, dword [sym.imp.USER32.dll_SendMessageW]
push eax
call ebp
cmp eax, 1
jne 0x445940
push str.Users
lea ecx, [esp + 0x80]
call fcn.00405140
lea eax, [esp + 0x1dc]
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0xc14], 2
call fcn.00405140
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0xf0]
mov byte [esp + 0xc14], 3
call fcn.00475a60
lea edx, [esp + 0x7c]
push edx
lea ecx, [esp + 0xb8]
push ecx
mov ecx, eax
mov byte [esp + 0xc18], 4
call fcn.00476020
push eax
lea ecx, [esp + 0x1c0]
mov byte [esp + 0xc14], 5
call fcn.00475e00
lea ecx, [esp + 0xb4]
mov byte [esp + 0xc10], 4
call fcn.00475620
lea ecx, [esp + 0xec]
mov byte [esp + 0xc10], 3
call fcn.00475620
lea ecx, [esp + 0x44]
call fcn.00402400
lea ecx, [esp + 0x7c]
mov byte [esp + 0xc10], 1
call fcn.00402400
sub esp, 0x1c
lea edx, [esp + 0x1d8]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call fcn.00405180
sub esp, 0x1c
mov byte [esp + 0xc48], 6
mov ecx, esp
mov dword [esp + 0x54], esp
push 0x4c98d4
call fcn.00402090
mov byte [esp + 0xc48], 1
call fcn.00401b00
add esp, 0x38
push ebx
jmp 0x445bcf
push ebx
push 1
push 0xf0
push 0x3ea
push esi
call edi
push eax
call ebp
cmp eax, 1
jne 0x445b36
lea ecx, [esp + 0x19c]
call fcn.00475600
mov esi, 1
push esi
push 5
lea eax, [esp + 0x5f4]
push eax
push ebx
mov byte [esp + 0xc20], 7
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x445ab8
push str.Tencent_Files
lea ecx, [esp + 0x2c]
call fcn.00405140
lea ecx, [esp + 0x5ec]
push ecx
lea ecx, [esp + 0x64]
mov byte [esp + 0xc14], 8
call fcn.00405140
lea edx, [esp + 0x60]
push edx
lea ecx, [esp + 0xd4]
mov byte [esp + 0xc14], 9
call fcn.00475a60
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x9c]
mov bl, 0xa
push edx
mov ecx, eax
mov byte [esp + 0xc18], bl
call fcn.00476020
push eax
lea ecx, [esp + 0x1a0]
mov byte [esp + 0xc14], 0xb
call fcn.00475e00
lea ecx, [esp + 0x98]
mov byte [esp + 0xc10], bl
call fcn.00475620
lea ecx, [esp + 0xd0]
mov byte [esp + 0xc10], 9
call fcn.00475620
lea ecx, [esp + 0x60]
call fcn.00402400
lea ecx, [esp + 0x28]
mov byte [esp + 0xc10], 7
call fcn.00402400
sub esp, 0x1c
lea eax, [esp + 0x1b8]
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.00405180
sub esp, 0x1c
mov byte [esp + 0xc48], 0xc
mov ecx, esp
mov dword [esp + 0x54], esp
push 0x4c98d4
call fcn.00402090
mov byte [esp + 0xc48], 7
call fcn.00401b00
add esp, 0x38
push esi
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x38], esp
push 0x4c98e8
call fcn.00402090
call fcn.00401d20
add esp, 0x20
lea ecx, [esp + 0x19c]
mov byte [esp + 0xc10], 1
call fcn.00475620
jmp 0x445bea
cmp dword [0x4e8f68], esi
jne 0x445aff
call fcn.004722e0
cmp eax, 3
jg 0x445aff
push 3
push 0xa7
push str.R:BuildWorkTempQQ1.87HummerPack4921AutoProject_setup3HummerSetupuidialog_select_installdir_dialog.cpp
lea ecx, [esp + 0x114]
call fcn.00473160
add eax, 4
push str.Check_failed:_false.
mov byte [esp + 0xc14], 0xd
push eax
mov dword [esp + 0x28], esi
call fcn.004041d0
add esp, 8
mov dword [esp + 0xc10], 7
test byte [esp + 0x20], 1
je 0x445b1d
lea ecx, [esp + 0x108]
call fcn.00472c30
lea ecx, [esp + 0x19c]
mov byte [esp + 0xc10], 1
call fcn.00475620
jmp 0x445bea
push ebx
push 1
push 0xf0
push 0x3e9
push esi
call edi
push eax
call ebp
cmp eax, 1
jne 0x445bea
push 0x206
lea ecx, [esp + 0x3ea]
push ebx
push ecx
mov word [esp + 0x3f0], bx
call fcn.00499a30
add esp, 0xc
push 0x104
lea edx, [esp + 0x3e8]
push edx
push 0x414
push esi
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindowTextW]
sub esp, 0x1c
lea eax, [esp + 0x400]
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.00405140
sub esp, 0x1c
mov byte [esp + 0xc48], 0xe
mov ecx, esp
mov dword [esp + 0x54], esp
push 0x4c98d4
call fcn.00402090
mov byte [esp + 0xc48], 1
call fcn.00401b00
add esp, 0x38
push 2
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x38], esp
push 0x4c98e8
call fcn.00402090
call fcn.00401d20
add esp, 0x20
call fcn.0044c040
lea ecx, [esp + 0x1bc]
mov dword [esp + 0xc10], 0xffffffff
call fcn.00475620
mov ecx, dword [esp + 0xc08]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xbf0]
xor ecx, esp
call fcn.00495cb8
add esp, 0xc00
ret