Function at 0x411960
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ac026
mov eax, dword fs:[0]
push eax
sub esp, 0x19c
push ebx
push esi
push edi
mov eax, dword [0x677e70]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x18], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x18c], 0
lea eax, [ebp - 0x18]
push eax
push 0x5b9f98
push 1
push 0
push 0x5b9fa8
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
test eax, eax
js 0x41283e
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x412838
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x38], 0
mov eax, 3
mov dword [ebp - 0x5c], 1
mov word [ebp - 0x64], ax
mov byte [ebp - 4], 6
mov ecx, 0x64fa72
movups xmm0, xmmword [ebp - 0x64]
movups xmmword [ebp - 0x54], xmm0
call fcn.00413fe0
mov edi, eax
mov dword [ebp - 0x40], edi
test edi, edi
jne 0x411a2c
push 0x8007000e
call fcn.00404b10
push str.CommandSet
mov byte [ebp - 4], 7
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [ebp - 0x44], esi
test esi, esi
jne 0x411a4e
push 0x8007000e
call fcn.00404b10
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 8
movups xmm0, xmmword [ebp - 0x54]
mov ecx, dword [ebx]
push eax
push edi
push esi
sub esp, 0x10
mov eax, esp
push ebx
movups xmmword [eax], xmm0
call dword [ecx + 0xe0]
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push esi
call ebx
push edi
call ebx
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 5
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
push eax
call edi
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
jne 0x411a9a
mov esi, 0x80004005
jmp 0x4127ef
mov eax, dword [ebp - 0x18]
lea esi, [ebp - 0x14]
push esi
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x54]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x411abc
mov dword [ebp - 0x14], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x411ad0
mov dword [ebp - 0x38], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x2c]
lea edx, [ebp - 0x38]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x411af1
mov dword [ebp - 0x34], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x411b05
mov dword [ebp - 0x14], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
push str.version
mov dword [ebp - 0x3c], eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [ebp - 0x40], esi
test esi, esi
jne 0x411b29
push 0x8007000e
call fcn.00404b10
mov ecx, dword [ebp - 0x3c]
lea edx, [ebp - 0x34]
push edx
mov byte [ebp - 4], 9
push esi
mov eax, dword [ecx]
push ecx
call dword [eax + 0xd4]
push esi
mov byte [ebp - 4], 5
call ebx
xor eax, eax
lea ecx, [ebp - 0x64]
push 0x651338
mov word [ebp - 0x64], ax
call fcn.00413f60
mov byte [ebp - 4], 0xa
sub esp, 0x10
mov eax, dword [ebp - 0x34]
mov ecx, esp
movups xmm0, xmmword [ebp - 0x64]
push eax
mov edx, dword [eax]
movups xmmword [ecx], xmm0
call dword [edx + 0x24]
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 5
push eax
call edi
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x14]
push edx
push dword [ebp - 0x34]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
xor edi, edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x10], edi
xor esi, esi
mov dword [ebp - 0x1c], esi
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x84]
add eax, 8
mov byte [ebp - 4], 0xd
push ecx
mov ecx, eax
mov dword [ebp - 0x3c], eax
call fcn.004139d0
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x198]
push eax
call fcn.004139b0
mov edx, dword [ebp - 0x7c]
cmp edx, dword [eax + 8]
setne al
test al, al
je 0x41277e
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x411bdf
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x24], eax
dec ecx
mov eax, edx
and edx, 3
shr eax, 2
and ecx, eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x24], eax
test edi, edi
je 0x411c13
mov dword [ebp - 0x30], 0
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x411c24
mov dword [ebp - 0x1c], 0
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, 3
mov dword [ebp - 0x90], 1
mov word [ebp - 0x98], ax
mov byte [ebp - 4], 0xe
mov ecx, 0x64fa72
movups xmm0, xmmword [ebp - 0x98]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
movups xmmword [ebp - 0x1a8], xmm0
call fcn.00413fe0
mov edi, eax
mov dword [ebp - 0x88], edi
test edi, edi
je 0x411a22
push str.Command
mov byte [ebp - 4], 0xf
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [ebp - 0x28], esi
test esi, esi
je 0x411a22
mov edx, dword [ebp - 0x20]
lea eax, [ebp - 0x30]
push eax
push edi
push esi
sub esp, 0x10
mov byte [ebp - 4], 0x10
movups xmm0, xmmword [ebp - 0x1a8]
mov ecx, dword [edx]
mov eax, esp
push edx
movups xmmword [eax], xmm0
call dword [ecx + 0xe0]
push esi
call ebx
push edi
call ebx
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0xd
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
push eax
call edi
mov eax, dword [ebp - 0x30]
lea edx, [ebp - 0x1c]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x411ce7
mov dword [ebp - 0x14], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x2c]
lea edx, [ebp - 0x14]
push edx
push dword [ebp - 0x30]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x54]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 4]
cmp eax, 1
jne 0x411f12
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x411d1a
mov dword [ebp - 0x10], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x411d2e
mov dword [ebp - 0x14], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
push str.type
mov dword [ebp - 0x20], eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [ebp - 0x28], esi
test esi, esi
je 0x411a22
mov ecx, dword [ebp - 0x20]
lea edx, [ebp - 0x10]
push edx
mov byte [ebp - 4], 0x11
push esi
mov eax, dword [ecx]
push ecx
call dword [eax + 0xd4]
push esi
mov byte [ebp - 4], 0xd
call ebx
xor eax, eax
lea ecx, [ebp - 0xa8]
push str.terminateProcess
mov word [ebp - 0xa8], ax
call fcn.00413f60
mov byte [ebp - 4], 0x12
sub esp, 0x10
mov eax, dword [ebp - 0x10]
mov ecx, esp
movups xmm0, xmmword [ebp - 0xa8]
push eax
mov edx, dword [eax]
movups xmmword [ecx], xmm0
call dword [edx + 0x24]
lea eax, [ebp - 0xa8]
mov byte [ebp - 4], 0xd
push eax
call edi
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x14]
push edx
push dword [ebp - 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x411dce
mov dword [ebp - 0x10], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x411de2
mov dword [ebp - 0x14], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
push str.quitWaitHandleName
mov dword [ebp - 0x20], eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [ebp - 0x28], esi
test esi, esi
je 0x411a22
mov ecx, dword [ebp - 0x20]
lea edx, [ebp - 0x10]
push edx
mov byte [ebp - 4], 0x13
push esi
mov eax, dword [ecx]
push ecx
call dword [eax + 0xd4]
push esi
mov byte [ebp - 4], 0xd
call ebx
xor eax, eax
lea ecx, [ebp - 0xb8]
mov word [ebp - 0xb8], ax
mov eax, dword [ebp - 0x24]
push dword [eax + 8]
call fcn.00413f60
mov byte [ebp - 4], 0x14
sub esp, 0x10
mov eax, dword [ebp - 0x10]
mov ecx, esp
movups xmm0, xmmword [ebp - 0xb8]
push eax
mov edx, dword [eax]
movups xmmword [ecx], xmm0
call dword [edx + 0x24]
lea eax, [ebp - 0xb8]
mov byte [ebp - 4], 0xd
push eax
call edi
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x14]
push edx
push dword [ebp - 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x411e83
mov dword [ebp - 0x10], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x411e97
mov dword [ebp - 0x14], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
push str.quitNotifyHandleName
mov dword [ebp - 0x20], eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [ebp - 0x28], esi
test esi, esi
je 0x411a22
mov ecx, dword [ebp - 0x20]
lea edx, [ebp - 0x10]
push edx
mov byte [ebp - 4], 0x15
push esi
mov eax, dword [ecx]
push ecx
call dword [eax + 0xd4]
push esi
mov byte [ebp - 4], 0xd
call ebx
xor eax, eax
lea ecx, [ebp - 0xc8]
mov word [ebp - 0xc8], ax
mov eax, dword [ebp - 0x24]
push dword [eax + 0xc]
call fcn.00413f60
mov byte [ebp - 4], 0x16
sub esp, 0x10
mov eax, dword [ebp - 0x10]
mov ecx, esp
movups xmm0, xmmword [ebp - 0xc8]
push eax
mov edx, dword [eax]
movups xmmword [ecx], xmm0
call dword [edx + 0x24]
lea eax, [ebp - 0xc8]
jmp 0x412730
cmp eax, 2
jne 0x412127
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x411f2f
mov dword [ebp - 0x10], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x411f43
mov dword [ebp - 0x14], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
push str.type
mov dword [ebp - 0x20], eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [ebp - 0x28], esi
test esi, esi
je 0x411a22
mov ecx, dword [ebp - 0x20]
lea edx, [ebp - 0x10]
push edx
mov byte [ebp - 4], 0x17
push esi
mov eax, dword [ecx]
push ecx
call dword [eax + 0xd4]
push esi
mov byte [ebp - 4], 0xd
call ebx
xor eax, eax
lea ecx, [ebp - 0xd8]
push str.runProcess
mov word [ebp - 0xd8], ax
call fcn.00413f60
mov byte [ebp - 4], 0x18
sub esp, 0x10
mov eax, dword [ebp - 0x10]
mov ecx, esp
movups xmm0, xmmword [ebp - 0xd8]
push eax
mov edx, dword [eax]
movups xmmword [ecx], xmm0
call dword [edx + 0x24]
lea eax, [ebp - 0xd8]
mov byte [ebp - 4], 0xd
push eax
call edi
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x14]
push edx
push dword [ebp - 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x411fe3
mov dword [ebp - 0x10], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x411ff7
mov dword [ebp - 0x14], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
push str.file
mov dword [ebp - 0x20], eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [ebp - 0x28], esi
test esi, esi
je 0x411a22
mov ecx, dword [ebp - 0x20]
lea edx, [ebp - 0x10]
push edx
mov byte [ebp - 4], 0x19
push esi
mov eax, dword [ecx]
push ecx
call dword [eax + 0xd4]
push esi
mov byte [ebp - 4], 0xd
call ebx
xor eax, eax
lea ecx, [ebp - 0xe8]
mov word [ebp - 0xe8], ax
mov eax, dword [ebp - 0x24]
push dword [eax + 8]
call fcn.00413f60
mov byte [ebp - 4], 0x1a
sub esp, 0x10
mov eax, dword [ebp - 0x10]
mov ecx, esp
movups xmm0, xmmword [ebp - 0xe8]
push eax
mov edx, dword [eax]
movups xmmword [ecx], xmm0
call dword [edx + 0x24]
lea eax, [ebp - 0xe8]
mov byte [ebp - 4], 0xd
push eax
call edi
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x14]
push edx
push dword [ebp - 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x412098
mov dword [ebp - 0x10], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x4120ac
mov dword [ebp - 0x14], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
push str.cmdline
mov dword [ebp - 0x20], eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [ebp - 0x28], esi
test esi, esi
je 0x411a22
mov ecx, dword [ebp - 0x20]
lea edx, [ebp - 0x10]
push edx
mov byte [ebp - 4], 0x1b
push esi
mov eax, dword [ecx]
push ecx
call dword [eax + 0xd4]
push esi
mov byte [ebp - 4], 0xd
call ebx
xor eax, eax
lea ecx, [ebp - 0xf8]
mov word [ebp - 0xf8], ax
mov eax, dword [ebp - 0x24]
push dword [eax + 0xc]
call fcn.00413f60
mov byte [ebp - 4], 0x1c
sub esp, 0x10
mov eax, dword [ebp - 0x10]
mov ecx, esp
movups xmm0, xmmword [ebp - 0xf8]
push eax
mov edx, dword [eax]
movups xmmword [ecx], xmm0
call dword [edx + 0x24]
lea eax, [ebp - 0xf8]
jmp 0x412730
cmp eax, 3
jne 0x41233c
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x412144
mov dword [ebp - 0x10], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x412158
mov dword [ebp - 0x14], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
push str.type
mov dword [ebp - 0x20], eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [ebp - 0x28], esi
test esi, esi
je 0x411a22
mov ecx, dword [ebp - 0x20]
lea edx, [ebp - 0x10]
push edx
mov byte [ebp - 4], 0x1d
push esi
mov eax, dword [ecx]
push ecx
call dword [eax + 0xd4]
push esi
mov byte [ebp - 4], 0xd
call ebx
xor eax, eax
lea ecx, [ebp - 0x108]
push str.copy
mov word [ebp - 0x108], ax
call fcn.00413f60
mov byte [ebp - 4], 0x1e
sub esp, 0x10
mov eax, dword [ebp - 0x10]
mov ecx, esp
movups xmm0, xmmword [ebp - 0x108]
push eax
mov edx, dword [eax]
movups xmmword [ecx], xmm0
call dword [edx + 0x24]
lea eax, [ebp - 0x108]
mov byte [ebp - 4], 0xd
push eax
call edi
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x14]
push edx
push dword [ebp - 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x4121f8
mov dword [ebp - 0x10], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x41220c
mov dword [ebp - 0x14], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
push 0x6513fc
mov dword [ebp - 0x20], eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [ebp - 0x28], esi
test esi, esi
je 0x411a22
mov ecx, dword [ebp - 0x20]
lea edx, [ebp - 0x10]
push edx
mov byte [ebp - 4], 0x1f
push esi
mov eax, dword [ecx]
push ecx
call dword [eax + 0xd4]
push esi
mov byte [ebp - 4], 0xd
call ebx
xor eax, eax
lea ecx, [ebp - 0x118]
mov word [ebp - 0x118], ax
mov eax, dword [ebp - 0x24]
push dword [eax + 8]
call fcn.00413f60
mov byte [ebp - 4], 0x20
sub esp, 0x10
mov eax, dword [ebp - 0x10]
mov ecx, esp
movups xmm0, xmmword [ebp - 0x118]
push eax
mov edx, dword [eax]
movups xmmword [ecx], xmm0
call dword [edx + 0x24]
lea eax, [ebp - 0x118]
mov byte [ebp - 4], 0xd
push eax
call edi
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x14]
push edx
push dword [ebp - 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x4122ad
mov dword [ebp - 0x10], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x4122c1
mov dword [ebp - 0x14], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
push str.dest
mov dword [ebp - 0x20], eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [ebp - 0x28], esi
test esi, esi
je 0x411a22
mov ecx, dword [ebp - 0x20]
lea edx, [ebp - 0x10]
push edx
mov byte [ebp - 4], 0x21
push esi
mov eax, dword [ecx]
push ecx
call dword [eax + 0xd4]
push esi
mov byte [ebp - 4], 0xd
call ebx
xor eax, eax
lea ecx, [ebp - 0x128]
mov word [ebp - 0x128], ax
mov eax, dword [ebp - 0x24]
push dword [eax + 0xc]
call fcn.00413f60
mov byte [ebp - 4], 0x22
sub esp, 0x10
mov eax, dword [ebp - 0x10]
mov ecx, esp
movups xmm0, xmmword [ebp - 0x128]
push eax
mov edx, dword [eax]
movups xmmword [ecx], xmm0
call dword [edx + 0x24]
lea eax, [ebp - 0x128]
jmp 0x412730
cmp eax, 4
jne 0x412480
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x412359
mov dword [ebp - 0x10], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x41236d
mov dword [ebp - 0x14], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [ebp - 0x18]
lea ecx, [ebp - 0x68]
push str.type
call fcn.00405480
lea edx, [ebp - 0x10]
mov byte [ebp - 4], 0x23
mov ecx, dword [esi]
push edx
push dword [eax]
push esi
call dword [ecx + 0xd4]
mov byte [ebp - 4], 0xd
push dword [ebp - 0x68]
call ebx
xor eax, eax
lea ecx, [ebp - 0x138]
push str.delete
mov word [ebp - 0x138], ax
call fcn.00413f60
mov byte [ebp - 4], 0x24
sub esp, 0x10
mov eax, dword [ebp - 0x10]
mov ecx, esp
movups xmm0, xmmword [ebp - 0x138]
push eax
mov edx, dword [eax]
movups xmmword [ecx], xmm0
call dword [edx + 0x24]
lea eax, [ebp - 0x138]
mov byte [ebp - 4], 0xd
push eax
call edi
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x14]
push edx
push dword [ebp - 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x4123ff
mov dword [ebp - 0x10], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x412413
mov dword [ebp - 0x14], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [ebp - 0x18]
lea ecx, [ebp - 0x6c]
push str.file
call fcn.00405480
lea edx, [ebp - 0x10]
mov byte [ebp - 4], 0x25
mov ecx, dword [esi]
push edx
push dword [eax]
push esi
call dword [ecx + 0xd4]
mov byte [ebp - 4], 0xd
push dword [ebp - 0x6c]
call ebx
xor eax, eax
lea ecx, [ebp - 0x148]
mov word [ebp - 0x148], ax
mov eax, dword [ebp - 0x24]
push dword [eax + 8]
call fcn.00413f60
mov byte [ebp - 4], 0x26
sub esp, 0x10
mov eax, dword [ebp - 0x10]
mov ecx, esp
movups xmm0, xmmword [ebp - 0x148]
push eax
mov edx, dword [eax]
movups xmmword [ecx], xmm0
call dword [edx + 0x24]
lea eax, [ebp - 0x148]
jmp 0x412730
cmp eax, 5
jne 0x412598
push ecx
lea ecx, [ebp - 0x10]
call fcn.004138c0
push ecx
lea ecx, [ebp - 0x14]
call fcn.004138c0
mov esi, dword [ebp - 0x18]
lea ecx, [ebp - 0x70]
push str.type
call fcn.00405480
lea edx, [ebp - 0x10]
mov byte [ebp - 4], 0x27
mov ecx, dword [esi]
push edx
push dword [eax]
push esi
call dword [ecx + 0xd4]
mov byte [ebp - 4], 0xd
push dword [ebp - 0x70]
call ebx
xor eax, eax
lea ecx, [ebp - 0x158]
push str.register
mov word [ebp - 0x158], ax
call fcn.00413f60
mov byte [ebp - 4], 0x28
sub esp, 0x10
mov eax, dword [ebp - 0x10]
mov ecx, esp
movups xmm0, xmmword [ebp - 0x158]
push eax
mov edx, dword [eax]
movups xmmword [ecx], xmm0
call dword [edx + 0x24]
lea eax, [ebp - 0x158]
mov byte [ebp - 4], 0xd
push eax
call edi
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x14]
push edx
push dword [ebp - 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
push ecx
lea ecx, [ebp - 0x10]
call fcn.004138c0
push ecx
lea ecx, [ebp - 0x14]
call fcn.004138c0
mov esi, dword [ebp - 0x18]
lea ecx, [ebp - 0x74]
push str.file
call fcn.00405480
lea edx, [ebp - 0x10]
mov byte [ebp - 4], 0x29
mov ecx, dword [esi]
push edx
push dword [eax]
push esi
call dword [ecx + 0xd4]
mov byte [ebp - 4], 0xd
push dword [ebp - 0x74]
call ebx
xor eax, eax
lea ecx, [ebp - 0x168]
mov word [ebp - 0x168], ax
mov eax, dword [ebp - 0x24]
push dword [eax + 8]
call fcn.00413f60
mov byte [ebp - 4], 0x2a
sub esp, 0x10
mov eax, dword [ebp - 0x10]
mov ecx, esp
movups xmm0, xmmword [ebp - 0x168]
mov edx, dword [eax]
push eax
movups xmmword [ecx], xmm0
call dword [edx + 0x24]
lea eax, [ebp - 0x168]
jmp 0x412730
cmp eax, 6
jne 0x412747
push ecx
lea ecx, [ebp - 0x10]
call fcn.004138c0
push ecx
lea ecx, [ebp - 0x14]
call fcn.004138c0
mov esi, dword [ebp - 0x18]
lea ecx, [ebp - 0x78]
push str.type
call fcn.00405480
lea edx, [ebp - 0x10]
mov byte [ebp - 4], 0x2b
mov ecx, dword [esi]
push edx
push dword [eax]
push esi
call dword [ecx + 0xd4]
mov byte [ebp - 4], 0xd
push dword [ebp - 0x78]
call ebx
xor eax, eax
lea ecx, [ebp - 0x178]
push str.call_dll
mov word [ebp - 0x178], ax
call fcn.00413f60
mov byte [ebp - 4], 0x2c
sub esp, 0x10
mov eax, dword [ebp - 0x10]
mov ecx, esp
movups xmm0, xmmword [ebp - 0x178]
push eax
mov edx, dword [eax]
movups xmmword [ecx], xmm0
call dword [edx + 0x24]
lea eax, [ebp - 0x178]
mov byte [ebp - 4], 0xd
push eax
call edi
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x14]
push edx
push dword [ebp - 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
push ecx
lea ecx, [ebp - 0x10]
call fcn.004138c0
push ecx
lea ecx, [ebp - 0x14]
call fcn.004138c0
mov esi, dword [ebp - 0x18]
lea ecx, [ebp - 0x44]
push str.file
call fcn.00405480
lea edx, [ebp - 0x10]
mov byte [ebp - 4], 0x2d
mov ecx, dword [esi]
push edx
push dword [eax]
push esi
call dword [ecx + 0xd4]
mov byte [ebp - 4], 0xd
push dword [ebp - 0x44]
call ebx
xor eax, eax
lea ecx, [ebp - 0x188]
mov word [ebp - 0x188], ax
mov eax, dword [ebp - 0x24]
push dword [eax + 8]
call fcn.00413f60
mov byte [ebp - 4], 0x2e
sub esp, 0x10
mov eax, dword [ebp - 0x10]
mov ecx, esp
movups xmm0, xmmword [ebp - 0x188]
mov edx, dword [eax]
push eax
movups xmmword [ecx], xmm0
call dword [edx + 0x24]
lea eax, [ebp - 0x188]
mov byte [ebp - 4], 0xd
push eax
call edi
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x14]
push edx
push dword [ebp - 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
push ecx
lea ecx, [ebp - 0x10]
call fcn.004138c0
push ecx
lea ecx, [ebp - 0x14]
call fcn.004138c0
mov esi, dword [ebp - 0x18]
lea ecx, [ebp - 0x40]
push str.IOName
call fcn.00405480
lea edx, [ebp - 0x10]
mov byte [ebp - 4], 0x2f
mov ecx, dword [esi]
push edx
push dword [eax]
push esi
call dword [ecx + 0xd4]
mov byte [ebp - 4], 0xd
push dword [ebp - 0x40]
call ebx
xor eax, eax
lea ecx, [ebp - 0x54]
mov word [ebp - 0x54], ax
mov eax, dword [ebp - 0x24]
push dword [eax + 0xc]
call fcn.00413f60
mov byte [ebp - 4], 0x30
sub esp, 0x10
mov eax, dword [ebp - 0x10]
mov ecx, esp
movups xmm0, xmmword [ebp - 0x54]
push eax
mov edx, dword [eax]
movups xmmword [ecx], xmm0
call dword [edx + 0x24]
lea eax, [ebp - 0x54]
push eax
mov byte [ebp - 4], 0xd
call edi
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x14]
push edx
push dword [ebp - 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
push ecx
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x84]
call fcn.004138e0
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x198]
push eax
call fcn.004139b0
mov edx, dword [ebp - 0x7c]
cmp edx, dword [eax + 8]
setne al
test al, al
je 0x412784
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x1c]
jmp 0x411bd3
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
push dword [ebp + 8]
xor eax, eax
lea ecx, [ebp - 0x54]
mov word [ebp - 0x54], ax
call fcn.00413f60
mov byte [ebp - 4], 0x31
sub esp, 0x10
mov eax, dword [ebp - 0x18]
mov ecx, esp
movups xmm0, xmmword [ebp - 0x54]
push eax
mov edx, dword [eax]
movups xmmword [ecx], xmm0
call dword [edx + 0x108]
lea eax, [ebp - 0x54]
push eax
call edi
mov byte [ebp - 4], 0xc
xor esi, esi
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4127ca
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x4127db
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4127ec
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x2c]
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x412803
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x2c]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x412817
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x2c]
mov byte [ebp - 4], 2
test ecx, ecx
je 0x412825
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x412843
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x412843
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov esi, 0x80004005
push 0
call ebx
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x41285b
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4