Function at 0x431c7c
Capabilities:
Create process on windows
Get common file path

Disassembly:
push 0x2ac
mov eax, 0x4950fd
call fcn.0046af26
mov ebx, ecx
xor ecx, ecx
xorps xmm0, xmm0
mov dword [ebp - 0x21c], ecx
mov dword [ebp - 0x240], ecx
mov word [ebp - 0x23c], cx
mov dword [ebp - 0x258], ecx
mov dword [ebp - 0x254], ecx
movups xmmword [ebp - 0x250], xmm0
push ecx
lea eax, [ebp - 0x21c]
mov dword [ebp - 4], ecx
push eax
push ecx
push ecx
call fcn.00430f92
mov ecx, dword [ebx + 0x6f0]
add esp, 0x10
mov esi, dword [sym.imp.DuiLib.dll_public:_bool___thiscall_DuiLib::COptionUI::IsSelected_void_const]
mov edi, eax
neg edi
sbb edi, edi
and edi, dword [ebp - 0x21c]
test ecx, ecx
je 0x431eda
mov eax, dword [ecx]
call dword [eax + 0xc4]
cmp eax, 1
jne 0x431eda
call fcn.004236c6
push eax
lea ecx, [ebp - 0x22c]
call fcn.0042341c
mov byte [ebp - 4], 1
call fcn.004236c6
push eax
lea ecx, [ebp - 0x228]
call fcn.0042341c
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 2
call fcn.004261a5
push eax
lea ecx, [ebp - 0x228]
mov byte [ebp - 4], 3
call fcn.00428135
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x234]
lea ecx, [ecx - 0x10]
call fcn.0042376a
lea ecx, [ebp - 0x21c]
test edi, edi
je 0x431d66
push str.VZipExtern64.dll
jmp 0x431d6b
push str.VZipExtern.dll
call fcn.004231e1
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x228]
mov eax, dword [ebp - 0x21c]
push dword [eax - 0xc]
push eax
call fcn.004289fd
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x21c]
lea ecx, [ecx - 0x10]
call fcn.0042376a
mov ecx, dword [ebx + 0x6f0]
call esi
mov edi, dword [ebp - 0x228]
test al, al
push edi
lea eax, [ebp - 0x22c]
je 0x431dbb
push str._s___s_
jmp 0x431dc0
push str._s__u___s_
push eax
call fcn.00428614
add esp, 0xc
call fcn.004311e1
test eax, eax
jne 0x431ea8
call fcn.00431258
test eax, eax
jne 0x431ec0
push 0x208
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.0046d670
add esp, 0xc
lea eax, [ebp - 0x218]
push 0
push 0x29
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
call fcn.004236c6
push eax
lea ecx, [ebp - 0x21c]
call fcn.0042341c
push str.regsvr32.exe
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x21c]
push str._s_s
push eax
call fcn.00428614
push 0x3c
pop esi
push esi
lea eax, [ebp - 0x294]
push 0
push eax
call fcn.0046d670
mov eax, dword [ebp - 0x22c]
add esp, 0x1c
and dword [ebp - 0x27c], 0
mov dword [ebp - 0x280], eax
lea eax, [ebp - 0x294]
mov dword [ebp - 0x294], esi
mov esi, dword [ebp - 0x21c]
push eax
mov dword [ebp - 0x288], str.runas
mov dword [ebp - 0x284], esi
mov dword [ebp - 0x278], 1
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
lea ecx, [esi - 0x10]
call fcn.0042376a
mov esi, dword [sym.imp.DuiLib.dll_public:_bool___thiscall_DuiLib::COptionUI::IsSelected_void_const]
jmp 0x431ec0
mov eax, dword [ebp - 0x22c]
xor ecx, ecx
push ecx
push ecx
push eax
push str.regsvr32.exe
push ecx
push ecx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [edi - 0x10]
call fcn.0042376a
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x22c]
lea ecx, [ecx - 0x10]
call fcn.0042376a
mov ecx, dword [ebx + 0x6f4]
test ecx, ecx
je 0x431f07
call esi
mov ecx, dword [ebx + 0x6f4]
mov byte [ebp - 0x23c], al
mov eax, dword [ecx]
call dword [eax + 0xc4]
dec eax
neg eax
sbb al, al
inc al
mov byte [ebp - 0x23b], al
lea ecx, [ebp - 0x240]
call fcn.00425bb0
lea ecx, [ebp - 0x258]
call fcn.004381b1
cmp dword [ebx + 0x6ec], 0
je 0x432134
lea ecx, [ebp - 0x2ac]
call fcn.00431c0b
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x234]
push dword [eax]
call fcn.004231e1
mov byte [ebp - 4], 8
push dword [ebp - 0x2ac]
call fcn.0046a358
xor eax, eax
pop ecx
mov dword [ebp - 0x22c], eax
cmp dword [ebp - 0x254], eax
jbe 0x432122
mov ecx, dword [ebp - 0x258]
push 0
push 0x4c65b8
push 0x4c6374
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebx + 0x6ec]
push 0
mov dword [ebp - 0x228], eax
push dword [eax]
call dword [sym.imp.DuiLib.dll_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CContainerUI::FindSubControl_wchar_t_const__]
push eax
call fcn.00490df2
mov edi, eax
add esp, 0x14
test edi, edi
je 0x432109
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0xc4]
test eax, eax
je 0x432109
lea ecx, [ebp - 0x278]
call fcn.00402a89
lea ecx, [ebp - 0x26c]
mov byte [ebp - 4], 9
call fcn.00402a89
mov byte [ebp - 4], 0xa
push dword [ebp - 0x228]
push ecx
lea ecx, [ebp - 0x278]
call fcn.0045c55a
mov eax, dword [ebp - 0x228]
lea ecx, [ebp - 0x278]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
add eax, 4
push eax
call fcn.00430dc0
mov ecx, edi
call esi
test al, al
je 0x4320d1
cmp dword [ebp - 0x25c], 2
je 0x4320d1
mov edi, dword [ebp - 0x228]
lea ecx, [ebp - 0x2b8]
push str._Archive
mov edx, edi
call fcn.00402a57
pop ecx
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x21c]
push dword [eax]
call fcn.004231e1
mov byte [ebp - 4], 0xd
push dword [ebp - 0x2b8]
call fcn.0046a358
mov eax, dword [edi + 0xc]
pop ecx
push dword [ebp - 0x234]
lea ecx, [ebp - 0x2a0]
mov esi, dword [eax]
call fcn.00402ad0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x240]
push dword [ebp - 0x21c]
call fcn.00402ad0
mov byte [ebp - 4], 0xf
lea eax, [esi + 4]
push dword [esi + 0x10]
mov edx, edi
push eax
lea eax, [ebp - 0x2a0]
push eax
lea eax, [ebp - 0x240]
push eax
call fcn.0045c7ee
push dword [ebp - 0x240]
call fcn.0046a358
push dword [ebp - 0x2a0]
call fcn.0046a358
mov ecx, dword [ebp - 0x21c]
add esp, 0x18
lea ecx, [ecx - 0x10]
call fcn.0042376a
mov esi, dword [sym.imp.DuiLib.dll_public:_bool___thiscall_DuiLib::COptionUI::IsSelected_void_const]
jmp 0x4320ed
mov ecx, edi
call esi
test al, al
jne 0x4320ed
cmp dword [ebp - 0x25c], 2
jne 0x4320ed
mov edx, dword [ebp - 0x228]
call fcn.0045c76e
mov byte [ebp - 4], 8
push dword [ebp - 0x26c]
call fcn.0046a358
push dword [ebp - 0x278]
call fcn.0046a358
pop ecx
pop ecx
mov eax, dword [ebp - 0x22c]
inc eax
mov dword [ebp - 0x22c], eax
cmp eax, dword [ebp - 0x254]
jb 0x431f6a
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x234]
lea ecx, [ecx - 0x10]
call fcn.0042376a
push 0
push 0
push 0
push 0x8000000
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
mov ecx, dword [ebx + 0x6f8]
test ecx, ecx
je 0x432153
call esi
jmp 0x432159
mov al, byte [ebp - 0x234]
mov ecx, dword [ebx + 0x6fc]
mov byte [ebp - 0x21d], al
test ecx, ecx
je 0x43216d
call esi
jmp 0x432173
mov al, byte [ebp - 0x233]
mov ecx, dword [ebx + 0x700]
mov byte [ebp - 0x21e], al
test ecx, ecx
je 0x432187
call esi
jmp 0x43218d
mov al, byte [ebp - 0x232]
mov ecx, dword [ebx + 0x704]
mov byte [ebp - 0x21f], al
test ecx, ecx
je 0x4321a1
call esi
jmp 0x4321a7
mov al, byte [ebp - 0x231]
mov ecx, dword [ebx + 0x708]
mov byte [ebp - 0x220], al
test ecx, ecx
je 0x4321bb
call esi
jmp 0x4321c1
mov al, byte [ebp - 0x230]
mov ecx, dword [ebx + 0x70c]
mov byte [ebp - 0x221], al
test ecx, ecx
je 0x4321d5
call esi
jmp 0x4321db
mov al, byte [ebp - 0x22f]
mov ecx, dword [ebx + 0x710]
mov byte [ebp - 0x222], al
test ecx, ecx
je 0x4321f1
call esi
mov bl, al
jmp 0x4321f7
mov bl, byte [ebp - 0x22e]
mov dl, byte [ebp - 0x21d]
mov ecx, str.ShowDots
call fcn.0045ceac
mov dl, byte [ebp - 0x21e]
mov ecx, str.ShowRealFileIcons
call fcn.0045ceac
mov dl, byte [ebp - 0x21f]
mov ecx, str.FullRow
call fcn.0045ceac
mov dl, byte [ebp - 0x220]
mov ecx, str.ShowGrid
call fcn.0045ceac
mov dl, byte [ebp - 0x221]
mov ecx, str.SingleClick
call fcn.0045ceac
mov dl, byte [ebp - 0x222]
mov ecx, str.AlternativeSelection
call fcn.0045ceac
mov dl, bl
mov ecx, str.ShowSystemMenu
call fcn.0045ceac
lea ecx, [ebp - 0x24c]
call fcn.004322bf
lea ecx, [ebp - 0x258]
call fcn.0043227f
call fcn.0046aed0
ret