Function at 0x41d3c0
Capabilities:
Create process on windows
Get common file path
Set current directory

Disassembly:
sub esp, 0xd00
mov eax, dword [0x48e780]
xor eax, esp
mov dword [esp + 0xcfc], eax
push esi
mov esi, dword [esp + 0xd08]
push edi
mov edi, dword [esp + 0xd14]
push 0
push 0
call fcn.004020f0
add esp, 8
test eax, eax
jge 0x41d409
push str.com_n
call fcn.004015d0
add esp, 4
or eax, 0xffffffff
jmp 0x41d9fc
call fcn.004016b0
cmp eax, 2
jl 0x41d418
call fcn.00401640
push 0x490a78
call fcn.00403950
push 0x490a78
call fcn.00401c60
mov dword [0x48d008], eax
mov eax, dword [0x493fbc]
push eax
call fcn.004019e0
add esp, 0xc
lea ecx, [esp + 0x2dc]
push ecx
push 0x104
mov dword [0x490a74], eax
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp eax, 0x104
ja 0x41d9fa
test eax, eax
je 0x41d9fa
lea edx, [esp + 0x2dc]
push edx
lea eax, [esp + 0xb00]
push eax
call fcn.00458d28
add esp, 8
lea ecx, [esp + 0x2dc]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
call fcn.0041a840
lea eax, [esp + 0xafc]
call fcn.0041a780
lea edx, [esp + 0x2dc]
push edx
lea eax, [esp + 0x4e8]
push eax
call fcn.00458d28
lea ecx, [esp + 0x4ec]
push 0x482748
push ecx
call fcn.00458cfa
lea edx, [esp + 0x4f4]
push 0x47e4fc
push edx
call fcn.00458cfa
mov edx, dword [0x490c8c]
lea eax, [esp + 0xc4]
push eax
lea ecx, [esp + 0x28]
push ecx
push 1
push 0x47e4fc
push edx
call fcn.0042fcfa
add esp, 0x2c
test eax, eax
jne 0x41d535
lea eax, [esp + 0x4e4]
push eax
call fcn.004015e0
mov edx, dword [esp + 0x10]
mov eax, dword [0x490c8c]
push 2
push 0
lea ecx, [esp + 0x4f0]
push ecx
push edx
push eax
call fcn.00431659
add esp, 0x18
test eax, eax
jne 0x41d9fa
push esi
call fcn.00427f37
lea ecx, [esp + 0x2e0]
push ecx
call fcn.00427f41
push 0x47e4fc
call fcn.00427f87
lea edx, [esp + 0x2e8]
push edx
push 0x490868
call fcn.00458d28
push 0x482748
push 0x490868
call fcn.00458cfa
push str.statement_browser.html
push 0x490868
call fcn.00458cfa
mov edx, dword [0x490c8c]
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x34]
push ecx
push 1
push str.statement_browser.html
push edx
call fcn.0042fcfa
add esp, 0x38
test eax, eax
jne 0x41d5d8
push 0x490868
call fcn.004015e0
mov eax, dword [esp + 0x10]
mov ecx, dword [0x490c8c]
push 2
push 0
push 0x490868
push eax
push ecx
call fcn.00431659
add esp, 0x18
test eax, eax
jne 0x41d9fa
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x6f6]
push eax
mov word [esp + 0x6f8], dx
call fcn.004595b0
push edi
push str.lpCmdLine_is__S_n
call fcn.004015d0
add esp, 0x14
push edi
lea ecx, [esp + 0x78]
call fcn.004041a0
cmp dword [esp + 0x88], 0
jbe 0x41d766
push 1
push 0
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x80]
mov byte [esp + 0x14], 0x23
call fcn.0041ada0
push str._update
mov esi, eax
call fcn.0045919d
add esp, 4
mov edi, eax
cmp esi, 0xffffffff
je 0x41d69d
sub esi, edi
dec esi
push esi
lea edx, [edi + 1]
push edx
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x80]
call fcn.0041d380
mov eax, dword [esp + 0x5c]
mov esi, 0x10
cmp dword [esp + 0x70], esi
jae 0x41d677
lea eax, [esp + 0x5c]
push eax
call fcn.00401260
push eax
push 0x490660
call fcn.00458d28
add esp, 0xc
lea ecx, [esp + 0x58]
mov byte [0x490ca7], 1
call fcn.004041e0
jmp 0x41d6f9
mov eax, dword [esp + 0x88]
sub eax, edi
dec eax
mov esi, 0x10
cmp eax, 0xffffffff
je 0x41d6f2
push eax
lea ecx, [edi + 1]
push ecx
lea edx, [esp + 0x60]
push edx
lea ecx, [esp + 0x80]
call fcn.0041d380
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x70], esi
jae 0x41d6d5
lea eax, [esp + 0x5c]
push eax
call fcn.00401260
push eax
push 0x490660
call fcn.00458d28
add esp, 0xc
lea ecx, [esp + 0x58]
call fcn.004041e0
mov byte [0x490ca7], 0
push edi
push 0
lea eax, [esp + 0x98]
push eax
lea ecx, [esp + 0x80]
call fcn.0041d380
mov eax, dword [esp + 0x94]
cmp dword [esp + 0xa8], esi
jae 0x41d727
lea eax, [esp + 0x94]
push eax
call fcn.00401260
push eax
lea ecx, [esp + 0x6f4]
push ecx
call fcn.00458d28
lea edx, [esp + 0x6f8]
push str._update
push edx
call fcn.00459525
add esp, 0x14
test eax, eax
sete al
lea ecx, [esp + 0x90]
mov byte [0x490ca8], al
call fcn.004041e0
push 0x490660
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x41d7de
xor ecx, ecx
push 0x490660
push ecx
push ecx
push 0x1a
push ecx
mov word [0x490660], cx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jge 0x41d7b8
push 0x4b9
push str..App.cpp
push str.FILE:__S__LINE:__d
call fcn.004015d0
push str._16lao_setup_:_Get_APPDATA_DIR__init_installpath__failed.
call fcn.004015d0
add esp, 0x10
jmp 0x41d9f1
push 0x482748
push 0x490660
call fcn.00458cfa
mov edx, dword [0x490a74]
mov eax, dword [edx + 0x48]
push eax
push 0x490660
call fcn.00458cfa
add esp, 0x10
cmp byte [0x490ca8], 0
je 0x41d8bf
push 0
call fcn.0041acc0
push 1
call fcn.0041b500
add esp, 8
test al, al
je 0x41d9e6
mov edi, str.16Lao_Browser.exe
call fcn.0041a8c0
test eax, eax
jne 0x41d9e6
lea esi, [esp + 0x8f4]
call fcn.0041a360
push 0x40
lea ecx, [esp + 0x1c]
push 0
push ecx
mov dword [esp + 0x20], 0x44
call fcn.004595b0
add esp, 0xc
xor eax, eax
lea edx, [esp + 0x58]
push edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
lea eax, [esp + 0x18]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov ecx, esi
push ecx
mov dword [esp + 0x80], 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x41d9e6
push 0x4d2
push str..App.cpp
push str.FILE:__S__LINE:__d
call fcn.004015d0
mov edx, esi
push edx
push str.CreateProcess__s_failed__n
call fcn.004015d0
push 0x4d3
push str..App.cpp
push str.FILE:__S__LINE:__d
call fcn.004015d0
add esp, 0x20
call fcn.00401590
jmp 0x41d9e6
mov ecx, dword [0x490a74]
mov edx, dword [ecx + 0x10]
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push edx
push reloc.OLEAUT32.dll_SysReAllocString
call esi
test eax, eax
je 0x41d90b
mov ecx, dword [0x490a74]
mov edx, dword [ecx + 0x10]
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push edx
push SysReAllocString
call esi
test eax, eax
jne 0x41d9b6
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x23c
call fcn.0041da31
add esp, 4
test eax, eax
je 0x41d930
mov ecx, eax
call fcn.0041a390
jmp 0x41d932
xor eax, eax
mov dword [0x490cac], eax
test eax, eax
je 0x41d99a
mov ecx, dword [0x490a74]
mov edx, dword [ecx + 0x48]
push 0
push 0
push 0
push 0
push 0
push 0
push 0x10cf0000
push edx
push 0
mov ecx, eax
call fcn.0042bcd8
mov ecx, dword [0x490cac]
call fcn.0042b51a
mov ecx, dword [0x490cac]
push 0xd2
push 0x15e
call fcn.0042b7a3
cmp byte [0x490ca9], 0
push 1
sete al
movzx ecx, al
push ecx
mov ecx, dword [0x490cac]
call fcn.0042b4e1
cmp byte [0x490ca9], 0
jne 0x41d9aa
call fcn.0042ae24
jmp 0x41d9eb
push 0
call fcn.0041b500
add esp, 4
jmp 0x41d9f1
cmp byte [0x490ca9], 0
sete dl
movzx eax, dl
push eax
call fcn.0041acc0
add esp, 4
cmp byte [0x490ca9], 0
jne 0x41d9dc
call fcn.0042ae24
jmp 0x41d9e6
push 0
call fcn.0041b500
add esp, 4
call fcn.0041a9a0
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [esp + 0x74]
call fcn.004041e0
xor eax, eax
mov ecx, dword [esp + 0xd04]
pop edi
pop esi
xor ecx, esp
call fcn.00459157
add esp, 0xd00
ret 0x10