Function at 0x41b500
Capabilities:
Create directory
Create process on windows
Create thread
Get common file path

Disassembly:
mov eax, 0x16b0
call fcn.00459750
mov eax, dword [0x48e780]
xor eax, esp
mov dword [esp + 0x16ac], eax
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0xa86]
push ecx
mov word [esp + 0xa88], ax
call fcn.004595b0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x682]
push eax
mov word [esp + 0x684], dx
call fcn.004595b0
add esp, 0x18
call fcn.004020a0
test eax, eax
je 0x41b575
push 0x100
push 0x473d18
push str.SOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionUninstall
call fcn.00401d00
add esp, 0xc
push ebp
push esi
push edi
push 0
push 0x473d18
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
call fcn.00401d00
push 0x104
lea ecx, [esp + 0xa98]
push ecx
push str.UninstallString
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall16Lao_Desktop
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.004013e0
mov ebp, dword [sym.imp.KERNEL32.dll_CreateProcessW]
add esp, 0x20
cmp al, 1
je 0x41b5e3
push 0x104
lea edx, [esp + 0xa8c]
push edx
push str.UninstallString
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall16Lao_Desktop
push SysReAllocString
call fcn.004013e0
add esp, 0x14
cmp al, 1
jne 0x41b6f7
lea eax, [esp + 0xa88]
push eax
lea ecx, [esp + 0x26c]
push ecx
call fcn.00458d28
lea edx, [esp + 0xa90]
push edx
lea eax, [esp + 0xc9c]
push eax
call fcn.00458d28
lea ecx, [esp + 0x278]
push ecx
call fcn.0045919d
push str.__uninstall
mov esi, eax
call fcn.0045919d
push str.16lao_Desktop.exe___uninstall
mov edi, eax
call fcn.0045919d
mov edx, esi
sub edx, eax
xor eax, eax
mov word [esp + edx*2 + 0xc9a], ax
lea edx, [esp + 0x284]
xor ecx, ecx
push str._silent
sub esi, edi
push edx
mov word [esp + esi*2 + 0x28c], cx
call fcn.00458cfa
push 0x40
lea eax, [esp + 0x48]
push 0
push eax
mov dword [esp + 0x4c], 0x44
call fcn.004595b0
add esp, 0x30
xor eax, eax
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x20]
push edx
push eax
push eax
push eax
push eax
push eax
push eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
lea eax, [esp + 0x288]
push eax
push 0
mov dword [esp + 0x34], 0
call ebp
test eax, eax
jne 0x41b6c4
lea ecx, [esp + 0x678]
push ecx
push str.CreateProcess__s_failed__n
call fcn.004015d0
add esp, 8
jmp 0x41b6e2
mov edx, dword [esp + 0xc]
push 0xffffffffffffffff
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x41b6e7
push str._16lao_setup_:_WaitForSingleObject_failed__n
call fcn.004015d0
add esp, 4
call fcn.00401590
lea eax, [esp + 0xc90]
push eax
call fcn.004017c0
add esp, 4
mov edx, dword [0x490a74]
mov eax, dword [edx + 0x10]
push 0x104
lea ecx, [esp + 0x67c]
push ecx
push str.UninstallString
push eax
push SysReAllocString
call fcn.004013e0
add esp, 0x14
cmp al, 1
je 0x41b755
mov edx, dword [0x490a74]
mov eax, dword [edx + 0x10]
push 0x104
lea ecx, [esp + 0x67c]
push ecx
push str.UninstallString
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.004013e0
add esp, 0x14
cmp al, 1
jne 0x41b86a
lea ecx, [esp + 0x678]
push ecx
lea edx, [esp + 0x26c]
push edx
call fcn.00458d28
lea eax, [esp + 0x680]
push eax
lea ecx, [esp + 0xc9c]
push ecx
call fcn.00458d28
lea edx, [esp + 0x278]
push edx
call fcn.0045919d
push str.__uninstall
mov esi, eax
call fcn.0045919d
push str.16lao_Desktop.exe___uninstall
mov edi, eax
call fcn.0045919d
mov ecx, esi
sub ecx, eax
xor edx, edx
sub esi, edi
xor eax, eax
add esp, 0x1c
mov word [esp + ecx*2 + 0xc8e], dx
mov word [esp + esi*2 + 0x268], ax
cmp byte [0x490ca8], dl
je 0x41b7d8
push str._update
lea ecx, [esp + 0x26c]
push ecx
jmp 0x41b7e5
push str._silent
lea edx, [esp + 0x26c]
push edx
call fcn.00458cfa
add esp, 8
push 0x40
lea eax, [esp + 0x24]
push 0
push eax
mov dword [esp + 0x28], 0x44
call fcn.004595b0
add esp, 0xc
xor eax, eax
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x20]
push edx
push eax
push eax
push eax
push eax
push eax
push eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
lea eax, [esp + 0x288]
push eax
push 0
mov dword [esp + 0x34], 0
call ebp
test eax, eax
jne 0x41b9f0
lea ecx, [esp + 0x678]
push ecx
push str.CreateProcess__s_failed__n
call fcn.004015d0
add esp, 8
call fcn.00401590
lea eax, [esp + 0xc90]
push eax
call fcn.004017c0
add esp, 4
push 0x490a70
push 0
push 0x490a78
push 0x41ae80
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0
push 0x490660
mov dword [0x48d004], eax
call edi
lea ecx, [esp + 0x470]
push 0x490660
push ecx
call fcn.00458d28
lea edx, [esp + 0x68]
push 0x490660
push edx
call fcn.00458d28
mov esi, 0x490cf0
call fcn.0041a360
lea eax, [esp + 0x480]
push eax
push str._16lao_setup_:working_path_is__s_n
call fcn.004015d0
push str.16Lao_Browser.exe
push str._16lao_setup_:szExeName_is__s_n
call fcn.004015d0
push str.uninstall.exe
push str._16lao_setup_:szUninstallName_is__s_n
call fcn.004015d0
push str.updater.exe
push str._16lao_setup_:szUpDaterName_is__s_n
call fcn.004015d0
add esp, 0x30
lea ecx, [esp + 0x14b0]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp eax, 0x104
ja 0x41b9d6
test eax, eax
je 0x41b9d6
lea edx, [esp + 0x14b0]
push str.browser.7z
push edx
call fcn.00458cfa
lea eax, [esp + 0x478]
push eax
lea ecx, [esp + 0x14bc]
push ecx
call fcn.0044f3e0
lea edx, [esp + 0x14c0]
push edx
call fcn.004015e0
lea eax, [esp + 0x484]
push eax
lea ecx, [esp + 0x12c0]
push ecx
call fcn.00458d28
lea edx, [esp + 0x12c4]
push 0x482748
push edx
call fcn.00458cfa
lea eax, [esp + 0x12cc]
push str.16lao_Desktop.exe___uninstall
push eax
call fcn.00458cfa
mov esi, dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
add esp, 0x2c
lea ecx, [esp + 0x60]
push ecx
push 0
push 0
push 0x10
push 0
call esi
test eax, eax
jge 0x41ba19
push 0x12b
push str..App.cpp
push str.FILE:__S__LINE:__d
call fcn.004015d0
push str.Get_DESKTOP_DIR_failed.
call fcn.004015d0
add esp, 0x10
pop edi
pop esi
xor al, al
pop ebp
mov ecx, dword [esp + 0x16ac]
xor ecx, esp
call fcn.00459157
add esp, 0x16b0
ret
mov edx, dword [esp + 0xc]
push 0xffffffffffffffff
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x41b85a
push str._16lao_setup_:_WaitForSingleObject_failed__n
call fcn.004015d0
add esp, 4
call fcn.00401590
jmp 0x41b9d6
lea edx, [esp + 0x60]
push 0x482748
push edx
call fcn.00458cfa
mov eax, dword [0x490a74]
mov ecx, dword [eax + 0x40]
push ecx
lea edx, [esp + 0x6c]
push edx
call fcn.00458cfa
lea eax, [esp + 0x70]
push eax
call fcn.004015e0
mov edx, dword [0x490a74]
mov eax, dword [edx + 0x48]
lea ecx, [esp + 0x74]
push ecx
push 0x490cf0
push eax
lea ecx, [esp + 0x490]
push ecx
push 0x490cf0
call fcn.00401460
add esp, 0x28
test eax, eax
jne 0x41ba9d
push 0x135
push str..App.cpp
push str.FILE:__S__LINE:__d
call fcn.004015d0
lea edx, [esp + 0x6c]
push edx
push str.createShortcut__s_failed.
call fcn.004015d0
add esp, 0x14
jmp 0x41b9d6
lea eax, [esp + 0x60]
push eax
push 0
push 0
push 0xb
push 0
call esi
test eax, eax
jge 0x41bace
push 0x13c
push str..App.cpp
push str.FILE:__S__LINE:__d
call fcn.004015d0
push str._16lao_setup_:_Get_STARTMENU_DIR_failed.
jmp 0x41b9ce
lea ecx, [esp + 0x60]
push 0x482748
push ecx
call fcn.00458cfa
mov edx, dword [0x490a74]
mov eax, dword [edx + 0x48]
push eax
lea ecx, [esp + 0x6c]
push ecx
call fcn.00458cfa
lea edx, [esp + 0x70]
push edx
call fcn.004017c0
add esp, 0x14
push 0
lea eax, [esp + 0x64]
push eax
call edi
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x884]
push edx
call fcn.00458d28
lea eax, [esp + 0x888]
push 0x482748
push eax
call fcn.00458cfa
mov ecx, dword [0x490a74]
mov edx, dword [ecx + 0x50]
push edx
lea eax, [esp + 0x894]
push eax
call fcn.00458cfa
lea ecx, [esp + 0x898]
push 0x473980
push ecx
call fcn.00458cfa
lea edx, [esp + 0x490]
push edx
lea eax, [esp + 0x10c4]
push eax
call fcn.00458d28
lea ecx, [esp + 0x10c8]
push 0x482748
push ecx
call fcn.00458cfa
lea edx, [esp + 0x10d0]
push str.uninstall.exe
push edx
call fcn.00458cfa
lea eax, [esp + 0x8b8]
push eax
call fcn.004015e0
mov edx, dword [0x490a74]
mov eax, dword [edx + 0x50]
lea ecx, [esp + 0x8bc]
push ecx
push 0x490cf0
push eax
lea ecx, [esp + 0x4b8]
push ecx
lea edx, [esp + 0x10ec]
push edx
call fcn.00401460
add esp, 0x50
test eax, eax
jne 0x41bbfb
push 0x155
push str..App.cpp
push str.FILE:__S__LINE:__d
call fcn.004015d0
lea eax, [esp + 0x88c]
push eax
push str.createShortcut__s_failed.
call fcn.004015d0
add esp, 0x14
jmp 0x41b9d6
lea ecx, [esp + 0x60]
push 0x482748
push ecx
call fcn.00458cfa
mov edx, dword [0x490a74]
mov eax, dword [edx + 0x40]
push eax
lea ecx, [esp + 0x6c]
push ecx
call fcn.00458cfa
lea edx, [esp + 0x70]
push edx
call fcn.004015e0
mov ecx, dword [0x490a74]
mov edx, dword [ecx + 0x48]
lea eax, [esp + 0x74]
push eax
push 0x490cf0
push edx
lea eax, [esp + 0x490]
push eax
push 0x490cf0
call fcn.00401460
add esp, 0x28
test eax, eax
jne 0x41bc80
push 0x160
push str..App.cpp
push str.FILE:__S__LINE:__d
call fcn.004015d0
lea ecx, [esp + 0x6c]
push ecx
push str.createShortcut__s_failed.
call fcn.004015d0
add esp, 0x14
jmp 0x41b9d6
call fcn.004016b0
cmp eax, 4
jl 0x41bd9a
lea edx, [esp + 0x470]
push edx
lea eax, [esp + 0xe9c]
push eax
call fcn.00458d28
lea ecx, [esp + 0xea0]
push 0x482748
push ecx
call fcn.00458cfa
mov edx, dword [0x490a74]
mov eax, dword [edx + 0x40]
push eax
lea ecx, [esp + 0xeac]
push ecx
call fcn.00458cfa
mov eax, dword [0x490a74]
mov ecx, dword [eax + 0x48]
lea edx, [esp + 0xeb0]
push edx
push 0x490cf0
push ecx
lea edx, [esp + 0x494]
push edx
push 0x490cf0
call fcn.00401460
add esp, 0x2c
test eax, eax
jne 0x41bd29
push 0x16d
push str..App.cpp
push str.FILE:__S__LINE:__d
call fcn.004015d0
lea eax, [esp + 0xea4]
push eax
push str.createShortcut__s_failed.
call fcn.004015d0
add esp, 0x14
jmp 0x41b9d6
push 0
push 0
push 0
lea ecx, [esp + 0xea4]
push ecx
push str.taskbarpin
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov esi, eax
cmp esi, 0x20
ja 0x41bd86
push 0x175
push str..App.cpp
push str.FILE:__S__LINE:__d
call fcn.004015d0
push esi
push str._16lao_setup_:__taskbarpin_failed__error_code_is__d_n
call fcn.004015d0
push 0x176
push str..App.cpp
push str.FILE:__S__LINE:__d
call fcn.004015d0
add esp, 0x20
call fcn.00401590
push 0
push 0
push 0x2000
push 0x8000000
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
mov edi, dword [0x490a74]
mov esi, dword [edi + 0x3c]
call fcn.0041a530
lea edx, [esp + 0x12a8]
push 0x490cf0
push edx
call fcn.0041a670
mov ecx, dword [esp + 0x16c0]
add esp, 8
pop edi
pop esi
pop ebp
xor ecx, esp
mov al, 1
call fcn.00459157
add esp, 0x16b0
ret