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

Disassembly:
push 0x2a8
mov eax, 0x4d3a99
call fcn.004a9c62
mov ebx, ecx
xor ecx, ecx
xorps xmm0, xmm0
mov dword [ebp - 0x220], ecx
mov dword [ebp - 0x23c], ecx
mov word [ebp - 0x238], cx
mov dword [ebp - 0x254], ecx
mov dword [ebp - 0x250], ecx
movups xmmword [ebp - 0x24c], xmm0
push ecx
lea eax, [ebp - 0x220]
mov dword [ebp - 4], ecx
push eax
push ecx
push ecx
call fcn.0042fb08
mov ecx, dword [ebx + 0x6f0]
add esp, 0x10
mov esi, eax
neg esi
sbb esi, esi
and esi, dword [ebp - 0x220]
test ecx, ecx
je 0x430af9
mov eax, dword [ecx]
call dword [eax + 0xc4]
cmp eax, 1
jne 0x430af9
call fcn.00423843
push eax
lea ecx, [ebp - 0x22c]
call fcn.00423599
mov byte [ebp - 4], 1
call fcn.00423843
push eax
lea ecx, [ebp - 0x230]
call fcn.00423599
lea ecx, [ebp - 0x220]
mov byte [ebp - 4], 2
call fcn.00426280
push eax
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 3
call fcn.00428291
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x220]
lea ecx, [ecx - 0x10]
call fcn.004238e7
lea ecx, [ebp - 0x220]
test esi, esi
je 0x430984
push str.Shell64.dll
jmp 0x430989
push str.Shell.dll
call fcn.0042335e
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x230]
mov eax, dword [ebp - 0x220]
push dword [eax - 0xc]
push eax
call fcn.00428a2f
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x220]
lea ecx, [ecx - 0x10]
call fcn.004238e7
mov ecx, dword [ebx + 0x6f0]
call fcn.00477359
mov edi, dword [ebp - 0x230]
test al, al
push edi
lea eax, [ebp - 0x22c]
je 0x4309dc
push str._s___s_
jmp 0x4309e1
push str._s__u___s_
push eax
call fcn.004287c5
add esp, 0xc
call fcn.0042fd57
cmp eax, 0x3000
jae 0x430ac7
call fcn.0042fe87
test eax, eax
je 0x430adf
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.004ab9a0
add esp, 0xc
lea eax, [ebp - 0x218]
push 0
push 0x29
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
call fcn.00423843
push eax
lea ecx, [ebp - 0x220]
call fcn.00423599
push str.regsvr32.exe
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x220]
push str._s_s
push eax
call fcn.004287c5
push 0x3c
pop esi
push esi
lea eax, [ebp - 0x290]
push 0
push eax
call fcn.004ab9a0
mov eax, dword [ebp - 0x22c]
add esp, 0x1c
and dword [ebp - 0x278], 0
mov dword [ebp - 0x27c], eax
lea eax, [ebp - 0x290]
mov dword [ebp - 0x290], esi
mov esi, dword [ebp - 0x220]
push eax
mov dword [ebp - 0x284], str.runas
mov dword [ebp - 0x280], esi
mov dword [ebp - 0x274], 1
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
lea ecx, [esi - 0x10]
call fcn.004238e7
jmp 0x430adf
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.004238e7
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x22c]
lea ecx, [ecx - 0x10]
call fcn.004238e7
mov ecx, dword [ebx + 0x6f4]
test ecx, ecx
je 0x430b29
call fcn.00477359
mov ecx, dword [ebx + 0x6f4]
mov byte [ebp - 0x238], al
mov eax, dword [ecx]
call dword [eax + 0xc4]
dec eax
neg eax
sbb al, al
inc al
mov byte [ebp - 0x237], al
lea ecx, [ebp - 0x23c]
call fcn.00425d2d
lea ecx, [ebp - 0x254]
call fcn.00437b11
cmp dword [ebx + 0x6ec], 0
je 0x430d47
lea ecx, [ebp - 0x2a8]
call fcn.0043082f
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x230]
push dword [eax]
call fcn.0042335e
mov byte [ebp - 4], 8
push dword [ebp - 0x2a8]
call fcn.004a8d17
xor edi, edi
pop ecx
cmp dword [ebp - 0x250], edi
jbe 0x430d35
mov eax, dword [ebp - 0x254]
mov ecx, dword [ebx + 0x6ec]
push 0
push 0x511f8c
mov eax, dword [eax + edi*4]
push 0x511c3c
push 0
mov dword [ebp - 0x22c], eax
push dword [eax]
call fcn.00478f18
push eax
call fcn.004acbc5
mov esi, eax
add esp, 0x14
test esi, esi
je 0x430d28
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0xc4]
test eax, eax
je 0x430d28
lea ecx, [ebp - 0x274]
call fcn.00402b1a
lea ecx, [ebp - 0x268]
mov byte [ebp - 4], 9
call fcn.00402b1a
mov byte [ebp - 4], 0xa
push dword [ebp - 0x22c]
push ecx
lea ecx, [ebp - 0x274]
call fcn.0045c838
mov eax, dword [ebp - 0x22c]
lea ecx, [ebp - 0x274]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
add eax, 4
push eax
call fcn.0042f93a
mov ecx, esi
call fcn.00477359
test al, al
je 0x430ced
cmp dword [ebp - 0x258], 2
je 0x430ced
mov esi, dword [ebp - 0x22c]
lea ecx, [ebp - 0x2b4]
push str._Archive
mov edx, esi
call fcn.00402ae8
pop ecx
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x220]
push dword [eax]
call fcn.0042335e
mov byte [ebp - 4], 0xd
push dword [ebp - 0x2b4]
call fcn.004a8d17
mov eax, dword [esi + 0xc]
pop ecx
push dword [ebp - 0x230]
lea ecx, [ebp - 0x29c]
mov esi, dword [eax]
call fcn.00402b61
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x23c]
push dword [ebp - 0x220]
call fcn.00402b61
mov byte [ebp - 4], 0xf
lea eax, [esi + 4]
push dword [esi + 0x10]
mov edx, dword [ebp - 0x22c]
push eax
lea eax, [ebp - 0x29c]
push eax
lea eax, [ebp - 0x23c]
push eax
call fcn.0045cacc
push dword [ebp - 0x23c]
call fcn.004a8d17
push dword [ebp - 0x29c]
call fcn.004a8d17
mov ecx, dword [ebp - 0x220]
add esp, 0x18
lea ecx, [ecx - 0x10]
call fcn.004238e7
jmp 0x430d0c
mov ecx, esi
call fcn.00477359
test al, al
jne 0x430d0c
cmp dword [ebp - 0x258], 2
jne 0x430d0c
mov edx, dword [ebp - 0x22c]
call fcn.0045ca4c
mov byte [ebp - 4], 8
push dword [ebp - 0x268]
call fcn.004a8d17
push dword [ebp - 0x274]
call fcn.004a8d17
pop ecx
pop ecx
inc edi
cmp edi, dword [ebp - 0x250]
jb 0x430b86
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x230]
lea ecx, [ecx - 0x10]
call fcn.004238e7
push 0
push 0
push 0
push 0x8000000
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
mov ecx, dword [ebx + 0x6f8]
test ecx, ecx
je 0x430d69
call fcn.00477359
jmp 0x430d6f
mov al, byte [ebp - 0x220]
mov ecx, dword [ebx + 0x6fc]
mov byte [ebp - 0x221], al
test ecx, ecx
je 0x430d86
call fcn.00477359
jmp 0x430d8c
mov al, byte [ebp - 0x21f]
mov ecx, dword [ebx + 0x700]
mov byte [ebp - 0x222], al
test ecx, ecx
je 0x430da3
call fcn.00477359
jmp 0x430da9
mov al, byte [ebp - 0x21e]
mov ecx, dword [ebx + 0x704]
mov byte [ebp - 0x223], al
test ecx, ecx
je 0x430dc0
call fcn.00477359
jmp 0x430dc6
mov al, byte [ebp - 0x21d]
mov ecx, dword [ebx + 0x708]
mov byte [ebp - 0x224], al
test ecx, ecx
je 0x430ddd
call fcn.00477359
jmp 0x430de3
mov al, byte [ebp - 0x21c]
mov ecx, dword [ebx + 0x70c]
mov byte [ebp - 0x225], al
test ecx, ecx
je 0x430dfa
call fcn.00477359
jmp 0x430e00
mov al, byte [ebp - 0x21b]
mov ecx, dword [ebx + 0x710]
mov byte [ebp - 0x226], al
test ecx, ecx
je 0x430e19
call fcn.00477359
mov bl, al
jmp 0x430e1f
mov bl, byte [ebp - 0x21a]
mov dl, byte [ebp - 0x221]
mov ecx, str.ShowDots
call fcn.0045d18a
mov dl, byte [ebp - 0x222]
mov ecx, str.ShowRealFileIcons
call fcn.0045d18a
mov dl, byte [ebp - 0x223]
mov ecx, str.FullRow
call fcn.0045d18a
mov dl, byte [ebp - 0x224]
mov ecx, str.ShowGrid
call fcn.0045d18a
mov dl, byte [ebp - 0x225]
mov ecx, str.SingleClick
call fcn.0045d18a
mov dl, byte [ebp - 0x226]
mov ecx, str.AlternativeSelection
call fcn.0045d18a
mov dl, bl
mov ecx, str.ShowSystemMenu
call fcn.0045d18a
lea ecx, [ebp - 0x248]
call fcn.00430ee7
lea ecx, [ebp - 0x254]
call fcn.00430ea7
call fcn.004a9c0c
ret