Function at 0x408ea0
Capabilities:
Load windows common language runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40d206
mov eax, dword fs:[0]
push eax
sub esp, 0x4e8
mov eax, dword [0x411398]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x440], ecx
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x448], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x470], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x444], edi
mov dword [ebp - 0x460], eax
mov dword [ebp - 0x464], 0
test ecx, ecx
je 0x409894
xor eax, eax
cmp ax, word [ecx]
je 0x409894
test edi, edi
je 0x409894
cmp ax, word [edi]
je 0x409894
mov dword [ebp - 0x428], eax
mov dword [ebp - 4], eax
cmp edx, 2
jne 0x4090f8
mov eax, dword [0x404958]
mov ebx, dword [0x404960]
mov edi, dword [0x404964]
mov esi, dword [0x404968]
mov dword [ebp - 0x424], eax
mov eax, dword [0x40495c]
push 0x1f4
mov dword [ebp - 0x420], eax
lea eax, [ebp - 0x410]
push 0
push eax
mov dword [ebp - 0x41c], ebx
mov dword [ebp - 0x418], edi
mov dword [ebp - 0x414], esi
call sub.msvcrt.dll_memset
mov eax, dword [0x404958]
add esp, 0xc
mov dword [ebp - 0x21c], eax
mov eax, dword [0x40495c]
mov dword [ebp - 0x218], eax
lea eax, [ebp - 0x208]
push 0x1f4
push 0
push eax
mov dword [ebp - 0x214], ebx
mov dword [ebp - 0x210], edi
mov dword [ebp - 0x20c], esi
call sub.msvcrt.dll_memset
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, eax
call fcn.0040c0d3
mov ebx, eax
push ebx
push 0
push 0x410
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
test esi, esi
je 0x409000
push 0x104
lea eax, [ebp - 0x424]
push eax
push 0
push esi
call dword [sym.imp.KERNEL32.dll_K32GetModuleFileNameExW]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, ebx
call fcn.0040c0d3
mov edi, eax
push edi
push 0
push 0x410
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
test esi, esi
je 0x409039
push 0x104
lea eax, [ebp - 0x21c]
push eax
push 0
push esi
call dword [sym.imp.KERNEL32.dll_K32GetModuleFileNameExW]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.00408c54
cmp dword [section..data], 5
jbe 0x4090e7
sub esp, 8
call fcn.00408d3b
test al, al
je 0x4090e7
lea eax, [ebp - 0x494]
mov dword [ebp - 0x494], 0x2000000
mov dword [ebp - 0x434], eax
mov edx, 0x406929
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x490], 0
mov dword [ebp - 0x474], eax
lea eax, [ebp - 0x424]
mov dword [ebp - 0x47c], eax
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp - 0x474]
mov dword [ebp - 0x478], edi
push eax
lea eax, [ebp - 0x478]
mov dword [ebp - 0x480], ebx
push eax
lea eax, [ebp - 0x47c]
mov dword [ebp - 0x468], 2
push eax
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x468]
push eax
sub esp, 8
call fcn.00408af0
call fcn.00408c8e
mov edi, dword [ebp - 0x444]
mov ecx, dword [ebp - 0x440]
xor ebx, ebx
push ecx
mov dword [ebp - 0x434], ebx
call fcn.0040ab70
test al, al
jne 0x4091d2
push edi
call fcn.0040ab70
test al, al
jne 0x4091d2
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
lea eax, [ebp - 0x428]
push eax
push 0x404658
push 0x404698
push 4
push 0x4048f4
push edi
call dword [sym.imp.mscoree.dll_CorBindToRuntimeEx]
cmp eax, 0x80131700
je 0x40919a
mov eax, dword [ebp - 0x428]
test eax, eax
je 0x40919a
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 0x28]
mov ecx, esi
call dword [0x412228]
call esi
test eax, eax
jns 0x4091dd
mov ecx, dword [0x41172c]
push eax
push 5
push ebx
mov esi, dword [ecx]
push ecx
mov esi, dword [esi + 4]
mov ecx, esi
call dword [0x412228]
call esi
add esp, 0x10
lea ecx, [ebp - 0x428]
mov esi, 0xffff0000
call fcn.0040b25d
jmp 0x4097f2
mov eax, dword [0x41172c]
push dword [ebp - 0x440]
push edi
mov esi, dword [eax]
push 3
push 0
push eax
mov esi, dword [esi + 4]
mov ecx, esi
call dword [0x412228]
call esi
add esp, 0x14
lea ecx, [ebp - 0x428]
mov esi, 0xffff0000
call fcn.0040b25d
jmp 0x4097f2
mov ebx, 0xffff0000
mov dword [ebp - 0x434], ebx
cmp ebx, 0xffff0000
jne 0x4091fb
mov esi, dword [ebp - 0x434]
lea ecx, [ebp - 0x428]
call fcn.0040b25d
jmp 0x4097f2
cmp dword [ebp - 0x460], 0
je 0x409889
mov ebx, dword [ebp + 0x1c]
mov eax, ebx
mov edi, dword [ebp + 0x18]
sub eax, edi
dec eax
mov dword [ebp - 0x468], 0
mov dword [ebp - 0x46c], eax
lea eax, [ebp - 0x46c]
push eax
push 1
push 8
call dword [sym.imp.OLEAUT32.dll_SafeArrayDestroy]
mov esi, eax
mov dword [ebp - 0x434], esi
test esi, esi
je 0x409889
cmp dword [ebp - 0x46c], 0
mov dword [ebp - 0x440], 0
je 0x4092ab
inc edi
cmp edi, ebx
jge 0x4092ab
lea esp, [esp]
mov eax, dword [ebp - 0x460]
push dword [eax + edi*4]
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov ebx, eax
test ebx, ebx
je 0x409889
push ebx
lea eax, [ebp - 0x440]
push eax
push esi
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopy]
push ebx
mov esi, eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
inc dword [ebp - 0x440]
test esi, esi
js 0x409889
mov esi, dword [ebp - 0x434]
inc edi
cmp edi, dword [ebp + 0x1c]
jl 0x409260
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x430], 0
mov byte [ebp - 4], 2
lea edx, [ebp - 0x430]
mov eax, dword [ebp - 0x428]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x34]
mov ecx, esi
call dword [0x412228]
call esi
mov ecx, eax
test ecx, ecx
js 0x409856
mov eax, dword [ebp - 0x430]
test eax, eax
je 0x409856
mov esi, dword [eax]
lea ecx, [ebp - 0x42c]
push ecx
push 0x404678
push eax
mov esi, dword [esi]
mov ecx, esi
call dword [0x412228]
call esi
mov ecx, eax
test ecx, ecx
js 0x409856
cmp dword [ebp - 0x42c], 0
je 0x409856
mov dword [ebp - 0x438], 0
push 0xc
mov byte [ebp - 4], 3
call fcn.0040b2e0
mov edi, eax
add esp, 4
mov dword [ebp - 0x444], edi
mov byte [ebp - 4], 4
test edi, edi
je 0x40937d
mov esi, dword [ebp - 0x470]
push esi
mov dword [edi + 4], 0
mov dword [edi + 8], 1
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [edi], eax
test eax, eax
jne 0x40937f
test esi, esi
jne 0x40989e
jmp 0x40937f
xor edi, edi
mov byte [ebp - 4], 3
mov dword [ebp - 0x470], edi
test edi, edi
je 0x4098a3
push 0xc
mov byte [ebp - 4], 5
call fcn.0040b2e0
mov ebx, eax
add esp, 4
mov dword [ebp - 0x444], ebx
mov byte [ebp - 4], 6
test ebx, ebx
je 0x4093d4
push 0x403f20
mov dword [ebx + 4], 0
mov dword [ebx + 8], 1
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebx], eax
test eax, eax
je 0x4098a8
jmp 0x4093d6
xor ebx, ebx
mov byte [ebp - 4], 5
mov dword [ebp - 0x444], ebx
test ebx, ebx
je 0x4098ad
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x438]
mov eax, dword [ebp - 0x42c]
push ecx
push dword [ebx]
mov esi, dword [eax]
push dword [edi]
push eax
mov esi, dword [esi + 0x94]
mov ecx, esi
call dword [0x412228]
call esi
mov ecx, eax
test ecx, ecx
js 0x40981e
mov eax, dword [ebp - 0x438]
test eax, eax
je 0x40981e
xor ecx, ecx
mov dword [ebp - 0x45c], ecx
mov dword [ebp - 0x458], ecx
mov dword [ebp - 0x454], ecx
mov dword [ebp - 0x450], ecx
mov word [ebp - 0x45c], cx
mov byte [ebp - 4], 8
lea edx, [ebp - 0x45c]
mov ecx, dword [eax]
push edx
push eax
mov esi, dword [ecx + 0x38]
mov ecx, esi
call dword [0x412228]
call esi
test eax, eax
jns 0x4094d5
mov ecx, dword [0x411734]
push eax
push 7
push 0
mov esi, dword [ecx]
push ecx
mov esi, dword [esi + 4]
mov ecx, esi
call dword [0x412228]
call esi
add esp, 0x10
mov esi, 0xffff0000
lea ecx, [ebp - 0x45c]
call fcn.0040e0f6
mov ecx, ebx
call fcn.0040ec85
mov ecx, edi
call fcn.0040ec85
lea ecx, [ebp - 0x438]
call fcn.0040b25d
lea ecx, [ebp - 0x430]
call fcn.0040b25d
lea ecx, [ebp - 0x42c]
call fcn.0040b25d
lea ecx, [ebp - 0x428]
call fcn.0040b25d
jmp 0x4097f2
mov dword [ebp - 0x43c], 0
mov byte [ebp - 4], 9
lea eax, [ebp - 0x43c]
push dword [ebp - 0x454]
push eax
call dword [sym.imp.ATL.DLL_AtlComPtrAssign]
mov eax, dword [ebp - 0x43c]
lea ecx, [ebp - 0x48c]
push ecx
push 0x800
push 1
mov dword [ebp - 0x484], 0x403f6c
lea ecx, [ebp - 0x484]
mov esi, dword [eax]
push ecx
push 0x403de8
push eax
mov esi, dword [esi + 0x14]
mov ecx, esi
call dword [0x412228]
call esi
test eax, eax
jns 0x409567
mov ecx, dword [0x411734]
push eax
push 8
push 0
mov esi, dword [ecx]
push ecx
mov esi, dword [esi + 4]
mov ecx, esi
call dword [0x412228]
call esi
add esp, 0x10
lea ecx, [ebp - 0x43c]
mov esi, 0xffff0000
call fcn.0040b25d
jmp 0x40948b
mov eax, 0x2000
mov word [ebp - 0x4d4], ax
mov eax, dword [ebp - 0x434]
mov dword [ebp - 0x4cc], eax
mov eax, dword [ebp - 0x448]
test eax, eax
je 0x4095af
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebp - 0x464], eax
test eax, eax
jne 0x4095b1
lea ecx, [ebp - 0x43c]
mov esi, 0xffff0000
call fcn.0040b25d
jmp 0x40948b
xor eax, eax
mov ecx, 8
mov dword [ebp - 0x4bc], eax
mov word [ebp - 0x4c4], cx
lea eax, [ebp - 0x4d4]
lea ecx, [ebp - 0x488]
mov dword [ebp - 0x4a4], eax
push ecx
lea ecx, [ebp - 0x4f4]
mov dword [ebp - 0x4a0], 0
push ecx
lea ecx, [ebp - 0x4b4]
mov dword [ebp - 0x49c], 2
push ecx
mov eax, 0x17
mov dword [ebp - 0x498], 0
mov word [ebp - 0x4b4], ax
lea ecx, [ebp - 0x4a4]
mov eax, dword [ebp - 0x43c]
push ecx
push 1
push 0x800
mov dword [ebp - 0x4ac], 0
mov dword [ebp - 0x488], 0
mov esi, dword [eax]
push 0x403de8
push dword [ebp - 0x48c]
mov esi, dword [esi + 0x18]
mov ecx, esi
push eax
call dword [0x412228]
call esi
mov ecx, eax
mov eax, dword [ebp - 0x4ac]
mov dword [ebp - 0x434], eax
test ecx, ecx
jns 0x4096ad
mov eax, dword [0x411734]
mov esi, dword [eax]
mov esi, dword [esi + 4]
cmp ecx, 0x80020009
jne 0x40967f
push dword [ebp - 0x4ec]
push 0xa
jmp 0x409682
push ecx
push 9
push 0
push eax
mov ecx, esi
call dword [0x412228]
call esi
add esp, 0x10
lea ecx, [ebp - 0x43c]
call fcn.0040b25d
lea ecx, [ebp - 0x45c]
call fcn.0040e0f6
jmp 0x40983b
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x43c]
test eax, eax
je 0x4096cb
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x412228]
call esi
mov eax, 0xfff
cmp word [ebp - 0x45c], ax
jne 0x4096e5
mov eax, 8
mov word [ebp - 0x45c], ax
lea eax, [ebp - 0x45c]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
or esi, 0xffffffff
mov eax, esi
lock xadd dword [ebx + 8], eax
dec eax
jne 0x409734
mov eax, dword [ebx]
test eax, eax
je 0x409712
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [ebx], 0
mov eax, dword [ebx + 4]
test eax, eax
je 0x40972a
push eax
call dword [sym.imp.msvcrt.dll____V_YAXPAX_Z]
add esp, 4
mov dword [ebx + 4], 0
push ebx
call dword [sym.imp.msvcrt.dll___3_YAXPAX_Z]
add esp, 4
lock xadd dword [edi + 8], esi
dec esi
jne 0x409771
mov eax, dword [edi]
test eax, eax
je 0x40974f
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x409767
push eax
call dword [sym.imp.msvcrt.dll____V_YAXPAX_Z]
add esp, 4
mov dword [edi + 4], 0
push edi
call dword [sym.imp.msvcrt.dll___3_YAXPAX_Z]
add esp, 4
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x438]
test eax, eax
je 0x40978f
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x412228]
call esi
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x430]
test eax, eax
je 0x4097ad
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x412228]
call esi
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x42c]
test eax, eax
je 0x4097cb
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x412228]
call esi
mov dword [ebp - 4], 0xe
mov eax, dword [ebp - 0x428]
test eax, eax
je 0x4097ec
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x412228]
call esi
mov esi, dword [ebp - 0x434]
push dword [ebp - 0x464]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0040b7e0
mov esp, ebp
pop ebp
ret 0x1c
mov eax, dword [0x411734]
push ecx
push 7
push 0
mov esi, dword [eax]
push eax
mov esi, dword [esi + 4]
mov ecx, esi
call dword [0x412228]
call esi
add esp, 0x10
mov ecx, ebx
call fcn.0040ec85
mov ecx, edi
call fcn.0040ec85
lea ecx, [ebp - 0x438]
call fcn.0040b25d
jmp 0x409873
mov eax, dword [0x411734]
push ecx
push 6
push 0
mov esi, dword [eax]
push eax
mov esi, dword [esi + 4]
mov ecx, esi
call dword [0x412228]
call esi
add esp, 0x10
lea ecx, [ebp - 0x430]
call fcn.0040b25d
lea ecx, [ebp - 0x42c]
call fcn.0040b25d
lea ecx, [ebp - 0x428]
call fcn.0040b25d
mov esi, 0xffff0000
jmp 0x4097f2
call fcn.0040c679
call fcn.0040c679
call fcn.0040c679
call fcn.0040c679
int3