Function at 0x4581e0
Capabilities:
Check if file exists
Copy file
Create process on windows
Delete file
Move file
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4db2fb
mov eax, dword fs:[0]
push eax
sub esp, 0x888
mov eax, dword [0x50b0c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x894], esi
lea eax, [ebp - 0x860]
push eax
call fcn.0045a9a0
mov dword [ebp - 4], 0
call fcn.00485ff0
mov eax, dword [0x5208d0]
push 0x208
mov dword [ebp - 0x814], eax
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.004a8730
lea edi, [esi + 0x124]
add esp, 0xc
cmp dword [edi + 0x14], 7
mov eax, edi
jbe 0x45825e
mov eax, dword [edi]
push eax
lea eax, [ebp - 0x218]
push 0x4f1270
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
mov ecx, str.XDZipShellExt.dll
cmp dword [ebp - 0x814], 0
mov eax, str.XDZipShellExt64.dll
cmove eax, ecx
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x848]
call fcn.0042af70
mov byte [ebp - 4], 1
lea eax, [ebp - 0x860]
cmp dword [ebp - 0x84c], 7
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmova eax, dword [ebp - 0x860]
push eax
call esi
test eax, eax
je 0x4583a5
lea eax, [ebp - 0x860]
push eax
lea ecx, [ebp - 0x830]
call fcn.0045b8c0
push 5
push str..temp
lea ecx, [ebp - 0x830]
mov byte [ebp - 4], 2
call fcn.0045bc80
cmp dword [ebp - 0x81c], 7
lea eax, [ebp - 0x830]
cmova eax, dword [ebp - 0x830]
push eax
call esi
test eax, eax
je 0x45832f
cmp dword [ebp - 0x81c], 7
lea eax, [ebp - 0x830]
cmova eax, dword [ebp - 0x830]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [ebp - 0x84c], 7
lea ecx, [ebp - 0x860]
lea eax, [ebp - 0x830]
cmova ecx, dword [ebp - 0x860]
cmp dword [ebp - 0x81c], 7
cmova eax, dword [ebp - 0x830]
push eax
push ecx
call fcn.004bd30a
mov byte [ebp - 4], 1
add esp, 8
mov ecx, dword [ebp - 0x81c]
cmp ecx, 7
jbe 0x4583a5
mov edx, dword [ebp - 0x830]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x45839b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x459428
push ecx
push edx
call fcn.004a6653
add esp, 8
cmp dword [ebp - 0x84c], 7
lea ecx, [ebp - 0x860]
push 0
cmova ecx, dword [ebp - 0x860]
lea eax, [ebp - 0x848]
cmp dword [ebp - 0x834], 7
push ecx
cmova eax, dword [ebp - 0x848]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
cmp dword [ebp + 8], 0
je 0x45870c
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x45942d
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x818], eax
mov byte [ebp - 4], 3
lea eax, [ebp - 0x860]
cmp dword [ebp - 0x84c], 7
cmova eax, dword [ebp - 0x860]
push eax
lea eax, [ebp - 0x818]
push 0x4f2598
push eax
call fcn.004248c0
mov esi, dword [ebp - 0x818]
lea ecx, [ebp - 0x814]
add esp, 8
mov dword [ebp - 0x814], 0
mov edx, str.regsvr32__s
push esi
call fcn.00460b30
add esp, 8
mov byte [ebp - 4], 4
call fcn.00485ff0
cmp dword [0x5208cc], 0x40000
jne 0x4586cd
push str.XDZipExtInstaller.msix
mov edx, edi
lea ecx, [ebp - 0x830]
call fcn.00460440
lea ecx, [ebp - 0x848]
mov dword [ebp - 0x888], eax
add esp, 4
cmp ecx, eax
je 0x45851a
mov ecx, dword [ebp - 0x834]
cmp ecx, 7
jbe 0x4584d9
mov edx, dword [ebp - 0x848]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4584c9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x459437
push ecx
push edx
call fcn.004a6653
mov eax, dword [ebp - 0x888]
add esp, 8
mov dword [ebp - 0x838], 0
xor ecx, ecx
mov dword [ebp - 0x834], 7
mov word [ebp - 0x848], cx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x848], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x838], xmm0
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], 7
mov word [eax], cx
mov ecx, dword [ebp - 0x81c]
cmp ecx, 7
jbe 0x45855a
mov edx, dword [ebp - 0x830]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x458550
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x459437
push ecx
push edx
call fcn.004a6653
add esp, 8
cmp dword [edi + 0x14], 7
jbe 0x458562
mov edi, dword [edi]
push edi
lea ecx, [ebp - 0x878]
call fcn.0042af70
push 0x208
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 5
push 0
push eax
call fcn.004a8730
cmp dword [ebp - 0x864], 7
lea eax, [ebp - 0x878]
cmova eax, dword [ebp - 0x878]
push eax
lea eax, [ebp - 0x218]
push 0x4f1270
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
lea eax, [ebp - 0x218]
push str.PackageApp.exe
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x830]
call fcn.0042af70
lea ecx, [ebp - 0x878]
call fcn.0042b090
movups xmm1, xmmword [ebp - 0x830]
lea ecx, [ebp - 0x878]
movq xmm0, qword [ebp - 0x820]
movq qword [ebp - 0x868], xmm0
cmp dword [ebp - 0x864], 7
movd eax, xmm1
movups xmmword [ebp - 0x878], xmm1
cmova ecx, eax
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x458689
push 0x800
lea eax, [ebp - 0x810]
push 0
push eax
call fcn.004a8730
cmp dword [ebp - 0x834], 7
lea eax, [ebp - 0x848]
cmova eax, dword [ebp - 0x848]
push eax
push str.install___s_
lea eax, [ebp - 0x810]
push 0x400
push eax
call fcn.0045c110
add esp, 0x1c
lea ecx, [ebp - 0x810]
cmp dword [ebp - 0x864], 7
lea eax, [ebp - 0x878]
cmova eax, dword [ebp - 0x878]
push 1
push 0
push ecx
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x864]
cmp ecx, 7
jbe 0x4586cd
mov edx, dword [ebp - 0x878]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4586c3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45943c
push ecx
push edx
call fcn.004a6653
add esp, 8
mov byte [ebp - 4], 3
or edi, 0xffffffff
mov edx, dword [ebp - 0x814]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4586f1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x45870c
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
xorps xmm0, xmm0
mov dword [ebp - 0x87c], 0
movq qword [ebp - 0x884], xmm0
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x45942d
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x828], eax
push str.Directory_shellexContextMenuHandlers
lea ecx, [ebp - 0x828]
mov byte [ebp - 4], 6
call fcn.004099b0
test al, al
jne 0x45876a
push 0x25
push str.Directory_shellexContextMenuHandlers
lea ecx, [ebp - 0x828]
call fcn.00409c60
mov byte [ebp - 4], 7
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x45942d
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x824], eax
push str.Folder_shellexContextMenuHandlers
lea ecx, [ebp - 0x824]
mov byte [ebp - 4], 8
call fcn.004099b0
test al, al
jne 0x4587b7
push 0x22
push str.Folder_shellexContextMenuHandlers
lea ecx, [ebp - 0x824]
call fcn.00409c60
mov byte [ebp - 4], 9
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x45942d
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x820], eax
push str._shellexContextMenuHandlers
lea ecx, [ebp - 0x820]
mov byte [ebp - 4], 0xa
call fcn.004099b0
test al, al
jne 0x458804
push 0x1d
push str._shellexContextMenuHandlers
lea ecx, [ebp - 0x820]
call fcn.00409c60
mov byte [ebp - 4], 0xb
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x45942d
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x81c], eax
push str.lnkfile_shellexContextMenuHandlers
lea ecx, [ebp - 0x81c]
mov byte [ebp - 4], 0xc
call fcn.004099b0
test al, al
jne 0x458851
push 0x23
push str.lnkfile_shellexContextMenuHandlers
lea ecx, [ebp - 0x81c]
call fcn.00409c60
lea ecx, [ebp - 0x828]
mov byte [ebp - 4], 0xd
push ecx
lea eax, [ebp - 0x818]
push eax
push ecx
lea ecx, [ebp - 0x884]
call fcn.0045b640
push fcn.004084a0
push 4
push 4
lea eax, [ebp - 0x828]
mov byte [ebp - 4], 0xf
push eax
call fcn.004a650e
mov eax, dword [ebp - 0x884]
mov ecx, dword [ebp - 0x880]
mov dword [ebp - 0x818], eax
mov dword [ebp - 0x888], ecx
cmp eax, ecx
je 0x458973
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.00409760
add eax, 0x10
add esp, 4
mov dword [ebp - 0x814], eax
push 9
push 0x4f2710
lea ecx, [ebp - 0x814]
mov byte [ebp - 4], 0x10
call fcn.0043eff0
mov esi, dword [ebp - 0x814]
mov edi, SysReAllocString
test esi, esi
je 0x458916
push 0
lea eax, [ebp - 0x814]
mov dword [ebp - 0x814], 0
push eax
push 0
push 0xf003f
push 0
push 0
push 0
push esi
push edi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x45893c
mov edi, dword [ebp - 0x814]
push 0x4e
push str.FB49CED7_2410_4936_B9CB_7B15401768D9
push 1
push 0
push 0x4ed664
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
cmp edi, 0x80000000
je 0x45893c
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 4], 0xf
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x458958
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x818]
add eax, 4
mov dword [ebp - 0x818], eax
cmp eax, dword [ebp - 0x888]
jne 0x4588a8
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x459441
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x818], eax
push 0xf
lea eax, [ebp - 0x818]
mov byte [ebp - 4], 0x11
push str.fromShell:_d
push eax
call fcn.004248c0
add esp, 8
mov esi, esp
mov dword [ebp - 0x888], esp
mov dword [ebp - 0x814], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x45942d
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push str.Skinimg.ico
mov ecx, esi
mov byte [ebp - 4], 0x12
call fcn.004099b0
test al, al
jne 0x4589f7
push 0xc
push str.Skinimg.ico
mov ecx, esi
call fcn.00409c60
push ecx
mov byte [ebp - 4], 0x13
mov esi, esp
mov dword [ebp - 0x88c], esi
mov eax, dword [ebp - 0x818]
add eax, 0xfffffff0
mov dword [ebp - 0x814], esp
push eax
call fcn.00409760
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x14
mov esi, esp
mov dword [ebp - 0x88c], esp
mov dword [ebp - 0x890], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x45944b
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push 0x4f27b0
mov ecx, esi
mov byte [ebp - 4], 0x15
call fcn.004099b0
test al, al
jne 0x458a6d
push 4
push 0x4f27b0
mov ecx, esi
call fcn.00409c60
push ecx
mov byte [ebp - 4], 0x16
mov esi, esp
mov dword [ebp - 0x890], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x459455
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push 0x4f27bc
mov ecx, esi
mov byte [ebp - 4], 0x17
call fcn.004099b0
test al, al
jne 0x458ab7
push 0xd
push 0x4f27bc
mov ecx, esi
call fcn.00409c60
mov edi, dword [ebp - 0x894]
mov ecx, edi
mov byte [ebp - 4], 0x16
push 0x5206b4
mov byte [ebp - 4], 0x11
call fcn.00457cf0
push 0x10
lea eax, [ebp - 0x818]
push str.fromShell:_d
push eax
call fcn.004248c0
add esp, 8
mov esi, esp
mov dword [ebp - 0x890], esp
mov dword [ebp - 0x88c], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x45942d
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push str.Skin_video.ico
mov ecx, esi
mov byte [ebp - 4], 0x18
call fcn.004099b0
test al, al
jne 0x458b32
push 0xe
push str.Skin_video.ico
mov ecx, esi
call fcn.00409c60
push ecx
mov byte [ebp - 4], 0x19
mov esi, esp
mov dword [ebp - 0x888], esi
mov eax, dword [ebp - 0x818]
add eax, 0xfffffff0
mov dword [ebp - 0x88c], esp
push eax
call fcn.00409760
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x1a
mov esi, esp
mov dword [ebp - 0x888], esp
mov dword [ebp - 0x814], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x45945f
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push 0x4f27f8
mov ecx, esi
mov byte [ebp - 4], 0x1b
call fcn.004099b0
test al, al
jne 0x458ba8
push 4
push 0x4f27f8
mov ecx, esi
call fcn.00409c60
push ecx
mov byte [ebp - 4], 0x1c
mov esi, esp
mov dword [ebp - 0x814], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x459469
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push 0x4f2804
mov ecx, esi
mov byte [ebp - 4], 0x1d
call fcn.004099b0
test al, al
jne 0x458bf2
push 0xd
push 0x4f2804
mov ecx, esi
call fcn.00409c60
mov byte [ebp - 4], 0x1c
mov ecx, edi
push 0x5206c0
mov byte [ebp - 4], 0x11
call fcn.00457cf0
push 0xb
lea eax, [ebp - 0x818]
push str.fromShell:_d
push eax
call fcn.004248c0
add esp, 8
mov esi, esp
mov dword [ebp - 0x890], esp
mov dword [ebp - 0x88c], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x45942d
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push str.Skinpdf.ico
mov ecx, esi
mov byte [ebp - 4], 0x1e
call fcn.004099b0
test al, al
jne 0x458c67
push 0xc
push str.Skinpdf.ico
mov ecx, esi
call fcn.00409c60
push ecx
mov byte [ebp - 4], 0x1f
mov esi, esp
mov dword [ebp - 0x888], esi
mov eax, dword [ebp - 0x818]
add eax, 0xfffffff0
mov dword [ebp - 0x88c], esp
push eax
call fcn.00409760
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x20
mov esi, esp
mov dword [ebp - 0x888], esp
mov dword [ebp - 0x814], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x459473
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push 0x4f283c
mov ecx, esi
mov byte [ebp - 4], 0x21
call fcn.004099b0
test al, al
jne 0x458cdd
push 5
push 0x4f283c
mov ecx, esi
call fcn.00409c60
push ecx
mov byte [ebp - 4], 0x22
mov esi, esp
mov dword [ebp - 0x814], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x45947d
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push 0x4f2848
mov ecx, esi
mov byte [ebp - 4], 0x23
call fcn.004099b0
test al, al
jne 0x458d27
push 0xb
push 0x4f2848
mov ecx, esi
call fcn.00409c60
mov byte [ebp - 4], 0x22
mov ecx, edi
push 0x5206a8
mov byte [ebp - 4], 0x11
call fcn.00457cf0
push 0xc
lea eax, [ebp - 0x818]
push str.fromShell:_d
push eax
call fcn.004248c0
add esp, 8
mov esi, esp
mov dword [ebp - 0x890], esp
mov dword [ebp - 0x88c], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x45942d
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push str.Skinword.ico
mov ecx, esi
mov byte [ebp - 4], 0x24
call fcn.004099b0
test al, al
jne 0x458d9c
push 0xd
push str.Skinword.ico
mov ecx, esi
call fcn.00409c60
push ecx
mov byte [ebp - 4], 0x25
mov esi, esp
mov dword [ebp - 0x888], esi
mov eax, dword [ebp - 0x818]
add eax, 0xfffffff0
mov dword [ebp - 0x88c], esp
push eax
call fcn.00409760
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x26
mov esi, esp
mov dword [ebp - 0x888], esp
mov dword [ebp - 0x814], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x459487
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push str.Word
mov ecx, esi
mov byte [ebp - 4], 0x27
call fcn.004099b0
test al, al
jne 0x458e12
push 6
push str.Word
mov ecx, esi
call fcn.00409c60
push ecx
mov byte [ebp - 4], 0x28
mov esi, esp
mov dword [ebp - 0x814], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x459491
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push 0x4f288c
mov ecx, esi
mov byte [ebp - 4], 0x29
call fcn.004099b0
test al, al
jne 0x458e5c
push 0xc
push 0x4f288c
mov ecx, esi
call fcn.00409c60
mov byte [ebp - 4], 0x28
mov ecx, edi
push 0x520684
mov byte [ebp - 4], 0x11
call fcn.00457cf0
push 0xd
lea eax, [ebp - 0x818]
push str.fromShell:_d
push eax
call fcn.004248c0
add esp, 8
mov esi, esp
mov dword [ebp - 0x890], esp
mov dword [ebp - 0x88c], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x45942d
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push str.Skinppt.ico
mov ecx, esi
mov byte [ebp - 4], 0x2a
call fcn.004099b0
test al, al
jne 0x458ed1
push 0xc
push str.Skinppt.ico
mov ecx, esi
call fcn.00409c60
push ecx
mov byte [ebp - 4], 0x2b
mov esi, esp
mov dword [ebp - 0x888], esi
mov eax, dword [ebp - 0x818]
add eax, 0xfffffff0
mov dword [ebp - 0x88c], esp
push eax
call fcn.00409760
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x2c
mov esi, esp
mov dword [ebp - 0x888], esp
mov dword [ebp - 0x814], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x45949b
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push 0x4f28c4
mov ecx, esi
mov byte [ebp - 4], 0x2d
call fcn.004099b0
test al, al
jne 0x458f47
push 5
push 0x4f28c4
mov ecx, esi
call fcn.00409c60
push ecx
mov byte [ebp - 4], 0x2e
mov esi, esp
mov dword [ebp - 0x814], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x4594a5
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push 0x4f28d0
mov ecx, esi
mov byte [ebp - 4], 0x2f
call fcn.004099b0
test al, al
jne 0x458f91
push 0xb
push 0x4f28d0
mov ecx, esi
call fcn.00409c60
mov byte [ebp - 4], 0x2e
mov ecx, edi
push 0x520690
mov byte [ebp - 4], 0x11
call fcn.00457cf0
push 0xe
lea eax, [ebp - 0x818]
push str.fromShell:_d
push eax
call fcn.004248c0
add esp, 8
mov esi, esp
mov dword [ebp - 0x890], esp
mov dword [ebp - 0x88c], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x45942d
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push str.Skinexcel.ico
mov ecx, esi
mov byte [ebp - 4], 0x30
call fcn.004099b0
test al, al
jne 0x459006
push 0xe
push str.Skinexcel.ico
mov ecx, esi
call fcn.00409c60
push ecx
mov byte [ebp - 4], 0x31
mov esi, esp
mov dword [ebp - 0x888], esi
mov eax, dword [ebp - 0x818]
add eax, 0xfffffff0
mov dword [ebp - 0x88c], esp
push eax
call fcn.00409760
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x32
mov esi, esp
mov dword [ebp - 0x888], esp
mov dword [ebp - 0x814], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x4594af
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push str.Excel
mov ecx, esi
mov byte [ebp - 4], 0x33
call fcn.004099b0
test al, al
jne 0x45907c
push 7
push str.Excel
mov ecx, esi
call fcn.00409c60
push ecx
mov byte [ebp - 4], 0x34
mov esi, esp
mov dword [ebp - 0x814], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x4594b9
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push 0x4f2918
mov ecx, esi
mov byte [ebp - 4], 0x35
call fcn.004099b0
test al, al
jne 0x4590c6
push 0xd
push 0x4f2918
mov ecx, esi
call fcn.00409c60
mov byte [ebp - 4], 0x34
mov ecx, edi
push 0x52069c
mov byte [ebp - 4], 0x11
call fcn.00457cf0
push 2
lea eax, [ebp - 0x818]
push str.fromShell:_d
push eax
call fcn.004248c0
add esp, 8
mov esi, esp
mov dword [ebp - 0x890], esp
mov dword [ebp - 0x88c], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x45942d
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push str.logo.ico
mov ecx, esi
mov byte [ebp - 4], 0x36
call fcn.004099b0
test al, al
jne 0x45913b
push 8
push str.logo.ico
mov ecx, esi
call fcn.00409c60
push ecx
mov byte [ebp - 4], 0x37
mov esi, esp
mov dword [ebp - 0x888], esi
mov eax, dword [ebp - 0x818]
add eax, 0xfffffff0
mov dword [ebp - 0x88c], esp
push eax
call fcn.00409760
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x38
mov esi, esp
mov dword [ebp - 0x888], esp
mov dword [ebp - 0x814], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x4594c3
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push str.S0R.
mov ecx, esi
mov byte [ebp - 4], 0x39
call fcn.004099b0
test al, al
jne 0x4591b1
push 6
push str.S0R.
mov ecx, esi
call fcn.00409c60
push ecx
mov byte [ebp - 4], 0x3a
mov esi, esp
mov dword [ebp - 0x814], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x4594cd
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push 0x4f2958
mov ecx, esi
mov byte [ebp - 4], 0x3b
call fcn.004099b0
test al, al
jne 0x4591fb
push 8
push 0x4f2958
mov ecx, esi
call fcn.00409c60
mov byte [ebp - 4], 0x3a
mov ecx, edi
push 0x520678
mov byte [ebp - 4], 0x11
call fcn.00457cf0
push 3
lea eax, [ebp - 0x818]
push str.fromShell:_d
push eax
call fcn.004248c0
add esp, 8
mov esi, esp
mov dword [ebp - 0x890], esp
mov dword [ebp - 0x88c], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x45942d
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push str.logo.ico
mov ecx, esi
mov byte [ebp - 4], 0x3c
call fcn.004099b0
test al, al
jne 0x459270
push 8
push str.logo.ico
mov ecx, esi
call fcn.00409c60
push ecx
mov byte [ebp - 4], 0x3d
mov esi, esp
mov dword [ebp - 0x888], esi
mov edi, dword [ebp - 0x818]
add edi, 0xfffffff0
mov dword [ebp - 0x88c], esp
push edi
call fcn.00409760
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x3e
mov esi, esp
mov dword [ebp - 0x888], esp
mov dword [ebp - 0x814], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x4594d7
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push str.S0RS_MR
mov ecx, esi
mov byte [ebp - 4], 0x3f
call fcn.004099b0
test al, al
jne 0x4592e6
push 8
push str.S0RS_MR
mov ecx, esi
call fcn.00409c60
push ecx
mov byte [ebp - 4], 0x40
mov esi, esp
mov dword [ebp - 0x814], esi
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x4594e1
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
push 0x4f2980
mov ecx, esi
mov byte [ebp - 4], 0x41
call fcn.004099b0
test al, al
jne 0x459330
push 0xc
push 0x4f2980
mov ecx, esi
call fcn.00409c60
mov ecx, dword [ebp - 0x894]
mov byte [ebp - 4], 0x40
push 0x520678
mov byte [ebp - 4], 0x11
call fcn.00457cf0
mov byte [ebp - 4], 0xf
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x459361
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x884]
call fcn.0045ba10
mov ecx, dword [ebp - 0x834]
cmp ecx, 7
jbe 0x4593ac
mov edx, dword [ebp - 0x848]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4593a2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4594eb
push ecx
push edx
call fcn.004a6653
add esp, 8
mov ecx, dword [ebp - 0x84c]
xor eax, eax
mov dword [ebp - 0x838], 0
mov dword [ebp - 0x834], 7
mov word [ebp - 0x848], ax
cmp ecx, 7
jbe 0x459409
mov edx, dword [ebp - 0x860]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4593ff
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4594eb
push ecx
push edx
call fcn.004a6653
add esp, 8
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a69a0
mov esp, ebp
pop ebp
ret 4
call fcn.004abd0f
push 0x80004005
call fcn.00409e30
call fcn.004abd0f
call fcn.004abd0f
push 0x80004005
call fcn.00409e30
push 0x80004005
call fcn.00409e30
push 0x80004005
call fcn.00409e30
push 0x80004005
call fcn.00409e30
push 0x80004005
call fcn.00409e30
push 0x80004005
call fcn.00409e30
push 0x80004005
call fcn.00409e30
push 0x80004005
call fcn.00409e30
push 0x80004005
call fcn.00409e30
push 0x80004005
call fcn.00409e30
push 0x80004005
call fcn.00409e30
push 0x80004005
call fcn.00409e30
push 0x80004005
call fcn.00409e30
push 0x80004005
call fcn.00409e30
push 0x80004005
call fcn.00409e30
push 0x80004005
call fcn.00409e30
push 0x80004005
call fcn.00409e30
call fcn.004abd0f
int3