Function at 0x10001580
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x984
mov eax, dword [0x1006de68]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov byte [ebp - 0x414], 0
push 0x103
push 0
lea eax, [ebp - 0x413]
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov byte [ebp - 0x108], 0
push 0x103
push 0
lea ecx, [ebp - 0x107]
push ecx
call sub.MSVCR120.dll_memset
add esp, 0xc
mov byte [ebp - 0x310], 0
push 0x103
push 0
lea edx, [ebp - 0x30f]
push edx
call sub.MSVCR120.dll_memset
add esp, 0xc
mov byte [ebp - 0x20c], 0
push 0x103
push 0
lea eax, [ebp - 0x20b]
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov ecx, dword [0x1006dfcc]
push ecx
call fcn.10047540
add esp, 4
mov dword [ebp - 0x870], eax
cmp dword [ebp - 0x870], 0
jne 0x10001631
mov dword [ebp - 0x870], 0x1006dfb8
mov edx, dword [ebp - 0x870]
cmp dword [edx + 0xc], 0
je 0x1000164d
mov eax, dword [ebp - 0x870]
cmp dword [eax + 0x10], 0
jne 0x100016f7
lea ecx, [ebp - 0x108]
push ecx
lea edx, [ebp - 0x414]
push edx
push 0x104
call sym.CIMIO_NO_WRITE.dll_CIMIO_MGMT_GetASPENCOMMONKEYS
add esp, 0xc
call sym.CIMIO_NO_WRITE.dll_is64BitApp
test eax, eax
je 0x100016b5
lea eax, [ebp - 0x108]
push eax
push 0x1005d8b0
push 0x104
lea ecx, [ebp - 0x310]
push ecx
call dword [sym.imp.MSVCR120.dll_sprintf_s]
add esp, 0x10
lea edx, [ebp - 0x108]
push edx
push 0x1005d8c4
push 0x104
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.MSVCR120.dll_sprintf_s]
add esp, 0x10
jmp 0x100016f7
lea ecx, [ebp - 0x414]
push ecx
push str._shistconfigsys.dll
push 0x104
lea edx, [ebp - 0x310]
push edx
call dword [sym.imp.MSVCR120.dll_sprintf_s]
add esp, 0x10
lea eax, [ebp - 0x414]
push eax
push str._ssetcim.dll
push 0x104
lea ecx, [ebp - 0x20c]
push ecx
call dword [sym.imp.MSVCR120.dll_sprintf_s]
add esp, 0x10
lea edx, [ebp - 0x310]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x874], eax
mov eax, dword [ebp - 0x870]
mov ecx, dword [ebp - 0x874]
mov dword [eax + 0x10], ecx
cmp dword [ebp - 0x874], 0
je 0x10001751
lea edx, [ebp - 0x20c]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x878], eax
mov eax, dword [ebp - 0x870]
mov ecx, dword [ebp - 0x878]
mov dword [eax + 0xc], ecx
cmp dword [ebp - 0x878], 0
jne 0x100017f4
mov edx, dword [ebp - 0x870]
cmp dword [edx + 0x10], 0
jne 0x1000179f
call sym.CIMIO_NO_WRITE.dll_CIMIO_DIAG_LOGSTATE
test eax, eax
jne 0x1000179f
lea eax, [ebp - 0x8c4]
push eax
call sym.CIMIO_NO_WRITE.dll_CIMIO_USR_GetApplicationID
add esp, 4
mov ecx, 0x10
mov esi, eax
lea edi, [ebp - 0x82c]
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x76c]
push ecx
push str.Info:_cant_load_histconfigsys.dll_n
lea edx, [ebp - 0x80c]
push edx
call fcn.1002f2b0
add esp, 0xc
call sym.CIMIO_NO_WRITE.dll_CIMIO_DIAG_LOGSTATE
test eax, eax
jne 0x100017e1
lea eax, [ebp - 0x984]
push eax
call sym.CIMIO_NO_WRITE.dll_CIMIO_USR_GetApplicationID
add esp, 4
mov ecx, 0x10
mov esi, eax
lea edi, [ebp - 0x86c]
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x76c]
push ecx
push 0x1005d92c
lea edx, [ebp - 0x84c]
push edx
call fcn.1002f2b0
add esp, 0xc
mov eax, dword [ebp - 0x870]
mov eax, dword [eax + 8]
jmp 0x1000202b
mov dword [ebp - 0x87c], 0x105
push str.setcim.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [ebp - 0x880], eax
mov ecx, dword [ebp - 0x87c]
push ecx
lea edx, [ebp - 0x71c]
push edx
mov eax, dword [ebp - 0x880]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov dword [ebp - 0x884], eax
cmp dword [ebp - 0x884], 0
je 0x10001909
call sym.CIMIO_NO_WRITE.dll_CIMIO_DIAG_LOGSTATE
test eax, eax
jne 0x10001909
mov byte [ebp - 0x614], 0
push 0x1ff
push 0
lea ecx, [ebp - 0x613]
push ecx
call sub.MSVCR120.dll_memset
add esp, 0xc
lea edx, [ebp - 0x71c]
push edx
push str.Info:_Path_for_setcim.dll_is___s_.
lea eax, [ebp - 0x614]
push eax
call dword [sym.imp.MSVCR120.dll_sprintf]
add esp, 0xc
lea ecx, [ebp - 0x944]
push ecx
call sym.CIMIO_NO_WRITE.dll_CIMIO_USR_GetApplicationID
add esp, 4
mov ecx, 0x10
mov esi, eax
lea edi, [ebp - 0x7ac]
rep movsd dword es:[edi], dword [esi]
push 0x20
lea edx, [ebp - 0x78c]
push edx
lea eax, [ebp - 0x614]
push eax
call dword [sym.imp.MSVCR120.dll_strncat]
add esp, 0xc
push 0x1005d97c
lea ecx, [ebp - 0x614]
push ecx
call sub.MSVCR120.dll_strcat
add esp, 8
lea edx, [ebp - 0x904]
push edx
call sym.CIMIO_NO_WRITE.dll_CIMIO_USR_GetApplicationID
add esp, 4
mov ecx, 0x10
mov esi, eax
lea edi, [ebp - 0x7ec]
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x76c]
push eax
lea ecx, [ebp - 0x614]
push ecx
lea edx, [ebp - 0x7cc]
push edx
call fcn.1002f2b0
add esp, 0xc
push str.ERRMESS
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df20], eax
cmp dword [0x1006df20], 0
jne 0x1000193a
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.SHRT2DB
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df24], eax
cmp dword [0x1006df24], 0
jne 0x1000196b
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.REID2DB
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df28], eax
cmp dword [0x1006df28], 0
jne 0x1000199c
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.IDFT2DB
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df2c], eax
cmp dword [0x1006df2c], 0
jne 0x100019cd
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.CHBF2DB
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df30], eax
cmp dword [0x1006df30], 0
jne 0x100019fe
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.NXTFOLDER
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df34], eax
cmp dword [0x1006df34], 0
jne 0x10001a2f
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.FOLDEROUT
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df38], eax
cmp dword [0x1006df38], 0
jne 0x10001a60
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.FIELDINFO
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df3c], eax
cmp dword [0x1006df3c], 0
jne 0x10001a91
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.ROOTFOLDER
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df40], eax
cmp dword [0x1006df40], 0
jne 0x10001ac2
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.NXTREFER
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df44], eax
cmp dword [0x1006df44], 0
jne 0x10001af3
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.GETNAMDB
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df48], eax
cmp dword [0x1006df48], 0
jne 0x10001b24
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.VALIDUSA
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df4c], eax
cmp dword [0x1006df4c], 0
jne 0x10001b55
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.VALIDREC
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df50], eax
cmp dword [0x1006df50], 0
jne 0x10001b86
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.INISETC
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df54], eax
cmp dword [0x1006df54], 0
jne 0x10001bb7
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.DBMAPPED
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df58], eax
cmp dword [0x1006df58], 0
jne 0x10001be8
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.NAME2RECID
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df5c], eax
cmp dword [0x1006df5c], 0
jne 0x10001c19
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.MAKUSABL
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df60], eax
cmp dword [0x1006df60], 0
jne 0x10001c4a
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.WDBVALS
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df64], eax
cmp dword [0x1006df64], 0
jne 0x10001c7b
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.MOVESPFILL
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df68], eax
cmp dword [0x1006df68], 0
jne 0x10001cac
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.MAKUNUSA
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df6c], eax
cmp dword [0x1006df6c], 0
jne 0x10001cdd
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.DEFINID
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df70], eax
cmp dword [0x1006df70], 0
jne 0x10001d0e
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.CREATEREC
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df74], eax
cmp dword [0x1006df74], 0
jne 0x10001d3f
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.NXTFREE
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df78], eax
cmp dword [0x1006df78], 0
jne 0x10001d70
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.FOLDERIN
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df7c], eax
cmp dword [0x1006df7c], 0
jne 0x10001da1
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.RDBVALS
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df80], eax
cmp dword [0x1006df80], 0
jne 0x10001dd2
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.DSPECGET
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df84], eax
cmp dword [0x1006df84], 0
jne 0x10001e03
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.BLANKBUFF
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df88], eax
cmp dword [0x1006df88], 0
jne 0x10001e34
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.LONG2DB
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df8c], eax
cmp dword [0x1006df8c], 0
jne 0x10001e65
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.DB2CHBF
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df90], eax
cmp dword [0x1006df90], 0
jne 0x10001e96
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.DB2LONG
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df94], eax
cmp dword [0x1006df94], 0
jne 0x10001ec7
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.MWDBOCCS
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df98], eax
cmp dword [0x1006df98], 0
jne 0x10001ef8
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.MRDBOCCS
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006df9c], eax
cmp dword [0x1006df9c], 0
jne 0x10001f29
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.DB2SHRT
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006dfa0], eax
cmp dword [0x1006dfa0], 0
jne 0x10001f5a
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.NXTDFREC
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006dfa4], eax
cmp dword [0x1006dfa4], 0
jne 0x10001f8b
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.FLDSAME
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006dfa8], eax
cmp dword [0x1006dfa8], 0
jne 0x10001fb9
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.DELOCCS
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006dfac], eax
cmp dword [0x1006dfac], 0
jne 0x10001fe7
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
push str.DELETREC
mov eax, dword [ebp - 0x870]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1006dfb0], eax
cmp dword [0x1006dfb0], 0
jne 0x10002015
mov edx, dword [ebp - 0x870]
mov eax, dword [edx + 8]
jmp 0x1000202b
mov eax, dword [ebp - 0x870]
mov dword [eax + 8], 1
mov ecx, dword [ebp - 0x870]
mov eax, dword [ecx + 8]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10059cde
mov esp, ebp
pop ebp
ret