Function at 0x5889b40d
Capabilities:
Check os version
Contain obfuscated stackstrings
Encode data using base64
Get common file path
Get file version info
Parse pe header
Persist via run registry key
Query environment variable
Query or enumerate registry value

Disassembly:
mov eax, 0x5889faaf
call fcn.5889ec10
sub esp, 0xb30
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
xor ebx, ebx
cmp eax, ebx
push edi
mov edi, dword [ebp + 0x10]
mov dword [esi], ebx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], ecx
mov dword [edi], ebx
jne 0x5889bbad
lea ecx, [ebp - 0x78]
call sub.MFC42u.DLL_CStdioFile::CStdioFile
fldz
lea ecx, [ebp - 0x24]
fstp qword [ebp - 0xa4]
mov dword [ebp - 4], ebx
mov dword [ebp - 0x9c], ebx
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 1
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp + 8]
mov byte [ebp - 4], 2
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 3
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 4
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 5
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 6
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 7
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 8
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 9
call sub.MFC42u.DLL_CString::CString_1
mov eax, dword [ebp + 0x14]
cmp eax, ebx
mov byte [ebp - 4], 0xa
je 0x5889b569
cmp dword [eax], ebx
je 0x5889b569
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 9
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 8
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 7
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 6
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 5
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 4
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 3
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp + 8]
mov byte [ebp - 4], 2
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 1
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], bl
call sub.MFC42u.DLL_CString::CString
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x78]
call fcn.5889e96a
jmp 0x5889d806
push 4
call sub.MFC42u.DLL_operatornew
push 0xb0
mov dword [edi], eax
call sub.MFC42u.DLL_operatornew
pop ecx
pop ecx
mov dword [ebp + 0x14], eax
cmp eax, ebx
mov byte [ebp - 4], 0xb
je 0x5889b594
mov ecx, eax
call fcn.5889ab3b
mov esi, eax
jmp 0x5889b596
xor esi, esi
mov eax, dword [edi]
mov dword [eax], esi
mov eax, dword [ebp + 0xc]
push 0x3ea
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0xa
mov dword [ebp + 0x14], esi
mov dword [eax], 1
call sub.MFC42u.DLL_CString::LoadStringW
lea eax, [ebp - 0x24]
push eax
mov ecx, esi
call sub.MFC42u.DLL_COleVariant::operator_2
mov ecx, dword [ebp - 0x14]
lea eax, [esi + 0x10]
push eax
push 0x58892fa8
push 0x588938a0
mov edi, 0x80000002
push edi
call fcn.5889a46e
mov ecx, dword [ebp - 0x14]
lea eax, [esi + 0x20]
push eax
push 0x58892f9c
push 0x588938a0
push edi
call fcn.5889a46e
push 0x588938a0
lea ecx, [ebp - 0x30]
call fcn.5889e436
push 0x58893898
lea ecx, [ebp + 0xc]
call fcn.5889e3fa
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0xc
call sub.MFC42u.DLL_CString::operator_2
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0xa
call sub.MFC42u.DLL_CString::CString
push 0x5889387c
lea ecx, [ebp - 0x30]
call sub.MFC42u.DLL_CString::operator_1
mov ecx, dword [ebp - 0x14]
lea eax, [esi + 0x30]
push eax
push 0x58892f88
push dword [ebp - 0x30]
push edi
call fcn.5889a46e
mov ecx, dword [ebp - 0x14]
lea eax, [esi + 0x40]
push eax
push 0x58893b70
push 0x588937f8
push edi
mov dword [ebp - 0x28], eax
call fcn.5889a46e
push dword [esi + 0x48]
lea ecx, [ebp + 8]
call fcn.5889e436
mov eax, dword [ebp + 8]
cmp dword [eax - 8], ebx
je 0x5889b6d7
push 0x5c
lea ecx, [ebp + 8]
call sub.MFC42u.DLL_CString::ReverseFind
cmp eax, 0xffffffff
je 0x5889b6af
push eax
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp + 8]
call sub.MFC42u.DLL_CString::Left
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0xd
call sub.MFC42u.DLL_CString::operator
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0xa
call sub.MFC42u.DLL_CString::CString
push dword [ebp + 8]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp + 0xc]
push eax
call fcn.5889a5a8
mov ecx, dword [ebp - 0x28]
push eax
mov byte [ebp - 4], 0xe
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0xa
call sub.MFC42u.DLL_CString::CString
mov eax, 0x104
push eax
push eax
lea ecx, [ebp - 0x1c]
call sub.MFC42u.DLL_CString::GetBuffer
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x5889b932
push 0xffffffffffffffff
lea ecx, [ebp - 0x1c]
call sub.MFC42u.DLL_CString::ReleaseBuffer
push 0x5c
lea ecx, [ebp - 0x1c]
call fcn.5889e3be
push 0x588937dc
lea ecx, [ebp + 0xc]
call fcn.5889e3fa
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xf
call sub.MFC42u.DLL_CString::operator_2
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0xa
call sub.MFC42u.DLL_CString::CString
push ebx
push ebx
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x78]
call sub.MFC42u.DLL_CStdioFile::Open
test eax, eax
je 0x5889b932
mov byte [ebp - 4], 0x10
lea eax, [ebp + 0x10]
push eax
lea ecx, [ebp - 0x78]
call sub.MFC42u.DLL_CStdioFile::ReadString
cmp eax, ebx
je 0x5889b91e
push 0x588937d4
lea ecx, [ebp - 0x28]
call fcn.5889e3fa
push 5
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x11
call sub.MFC42u.DLL_CString::Left
lea ecx, [ebp - 0x28]
push ecx
push eax
call fcn.5889a364
lea ecx, [ebp - 0x2c]
mov byte [ebp + 0xf], al
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x10
call sub.MFC42u.DLL_CString::CString
cmp byte [ebp + 0xf], bl
je 0x5889b74b
mov eax, dword [ebp + 0x10]
mov eax, dword [eax - 8]
add eax, 0xfffffffb
push eax
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp + 0x10]
call sub.MFC42u.DLL_CString::Right
push eax
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x12
call sub.MFC42u.DLL_CString::operator
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0x10
call sub.MFC42u.DLL_CString::CString
push 0x28
lea ecx, [ebp + 0x10]
call sub.MFC42u.DLL_CString::Find
cmp eax, 0xffffffff
mov dword [ebp + 0xc], eax
je 0x5889b85f
push 0x29
lea ecx, [ebp + 0x10]
call sub.MFC42u.DLL_CString::Find
cmp eax, 0xffffffff
je 0x5889b85f
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx - 8]
sub ecx, eax
dec ecx
push ecx
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp + 0x10]
call sub.MFC42u.DLL_CString::Right
mov esi, eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x13
call sub.MFC42u.DLL_CString::Left
push esi
push eax
lea eax, [ebp - 0x28]
push eax
mov byte [ebp - 4], 0x14
call sub.MFC42u.DLL_operator_2
push eax
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x15
call sub.MFC42u.DLL_CString::operator
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x14
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x13
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x10
call sub.MFC42u.DLL_CString::CString
push 0x588937c8
lea ecx, [ebp + 0x10]
call sub.MFC42u.DLL_CString::Find_1
mov esi, eax
cmp esi, 0xffffffff
je 0x5889b8e1
mov eax, dword [ebp + 0x10]
mov eax, dword [eax - 8]
sub eax, esi
sub eax, 5
push eax
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp + 0x10]
call sub.MFC42u.DLL_CString::Right
mov dword [ebp + 0xc], eax
push esi
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x16
call sub.MFC42u.DLL_CString::Left
push dword [ebp + 0xc]
mov byte [ebp - 4], 0x17
push eax
lea eax, [ebp - 0x28]
push eax
call sub.MFC42u.DLL_operator_2
push eax
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x18
call sub.MFC42u.DLL_CString::operator
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x17
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x16
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x10
call sub.MFC42u.DLL_CString::CString
push 0x400
push ebx
push dword [ebp + 0x10]
lea ecx, [ebp - 0xa4]
call sub.MFC42u.DLL_COleDateTime::ParseDateTime
mov esi, dword [ebp + 0x14]
lea eax, [ebp - 0xa4]
push eax
lea ecx, [esi + 0x50]
call sub.MFC42u.DLL_COleVariant::operator_5
jmp 0x5889b921
mov esi, dword [ebp + 0x14]
lea ecx, [ebp - 0x78]
mov dword [ebp - 4], 0xa
call sub.MFC42u.DLL_CStdioFile::Close
jmp 0x5889b935
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x34]
push eax
push 0x58893b70
push 0x588937f8
push edi
call fcn.5889a54a
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x34]
call sub.VERSION.dll_GetFileVersionInfoSizeW
cmp eax, ebx
mov dword [ebp + 0xc], eax
je 0x5889b9f4
push eax
push 2
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
mov dword [ebp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push eax
push dword [ebp + 0xc]
mov dword [ebp - 0x28], eax
push dword [ebp - 0x4c]
push dword [ebp - 0x34]
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x5889b9e2
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x44]
push eax
push 0x5889320c
push dword [ebp - 0x28]
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x5889b9e2
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
mov dword [0x588a26ec], eax
mov eax, 0x104
push eax
push eax
lea ecx, [ebp - 0x40]
call sub.MFC42u.DLL_CString::GetBuffer
push eax
movzx eax, word [0x588a26ec]
push eax
call sub.KERNEL32.dll_VerLanguageNameW
push 0xffffffffffffffff
lea ecx, [ebp - 0x40]
call sub.MFC42u.DLL_CString::ReleaseBuffer
lea eax, [ebp - 0x40]
push eax
lea ecx, [esi + 0x60]
call sub.MFC42u.DLL_COleVariant::operator_2
push dword [ebp + 0x14]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push dword [ebp + 0x14]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, 0x104
push eax
push eax
lea ecx, [ebp - 0x18]
call sub.MFC42u.DLL_CString::GetBuffer
push eax
push 0x588937c0
push 0x588937b0
push 0x588937a0
call dword [sym.imp.KERNEL32.dll_GetProfileStringW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x18]
call sub.MFC42u.DLL_CString::ReleaseBuffer
mov eax, dword [ebp - 0x18]
cmp dword [eax - 8], ebx
je 0x5889ba61
push 0x5889379c
lea ecx, [ebp + 0x14]
call fcn.5889e3fa
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.5889549f
lea ecx, [ebp + 0x14]
mov byte [ebp + 0xf], al
call sub.MFC42u.DLL_CString::CString
cmp byte [ebp + 0xf], bl
je 0x5889ba61
lea eax, [ebp - 0x18]
push eax
lea ecx, [esi + 0x70]
call sub.MFC42u.DLL_COleVariant::operator_2
lea eax, [ebp - 0x210]
push eax
mov dword [ebp - 0x210], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x200], 2
mov ecx, dword [ebp - 0x14]
sete al
cmp al, bl
mov byte [ecx + 0xc4], al
je 0x5889ba9d
cmp dword [ebp - 0x20c], 5
jb 0x5889ba9d
xor eax, eax
inc eax
jmp 0x5889ba9f
xor eax, eax
mov ecx, dword [ebp - 0x14]
mov byte [ecx + 0xc5], al
call fcn.5889a9da
mov ecx, 0x80
cmp eax, ecx
jne 0x5889babb
push 0x28
pop eax
jmp 0x5889bac4
cmp eax, 0xa8
jne 0x5889bac4
mov eax, ecx
push eax
lea ecx, [esi + 0x80]
call sub.MFC42u.DLL_COleVariant::operator_1
push 0x58893780
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
cmp eax, ebx
mov dword [ebp + 0xc], eax
je 0x5889bb2d
push 0x58892fe8
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
je 0x5889bb24
push 2
call eax
mov ecx, dword [ebp - 0x14]
neg eax
sbb eax, eax
inc eax
push eax
lea eax, [ebp + 0x14]
push eax
call fcn.5889a380
push eax
lea ecx, [esi + 0x90]
mov byte [ebp - 4], 0x1a
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp + 0x14]
mov byte [ebp - 4], 0xa
call sub.MFC42u.DLL_CString::CString
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x20]
push eax
push 0x5889375c
push 0x588938a0
push edi
call fcn.5889a54a
mov ecx, dword [ebp - 0x20]
xor eax, eax
cmp dword [ecx - 8], ebx
mov ecx, dword [ebp - 0x14]
setne al
push ebx
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.5889a380
push eax
lea ecx, [esi + 0xa0]
mov byte [ebp - 4], 0x1b
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0xa
call sub.MFC42u.DLL_CString::CString
mov eax, dword [ebp - 0x20]
cmp dword [eax - 8], ebx
je 0x5889b4e1
push dword [esi + 0x18]
lea ecx, [ebp - 0x38]
call fcn.5889e436
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x38]
call sub.MFC42u.DLL_CString::operator_2
lea eax, [ebp - 0x38]
push eax
lea ecx, [esi + 0x10]
call sub.MFC42u.DLL_COleVariant::operator_2
jmp 0x5889b4e1
cmp eax, 1
jne 0x5889c1f9
lea ecx, [ebp - 0x78]
call sub.MFC42u.DLL_CPtrArray::CPtrArray
mov dword [ebp - 0x78], 0x58893308
lea ecx, [ebp - 0x8c]
mov dword [ebp - 4], 0x1c
call sub.MFC42u.DLL_CStringArray::CStringArray
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x1d
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x1e
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x1f
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x20
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x21
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x22
call sub.MFC42u.DLL_CString::CString_1
fldz
mov ecx, dword [ebp - 0x14]
fstp qword [ebp - 0x58]
lea eax, [ebp - 0x20]
push eax
mov esi, 0x58891a44
push esi
push 0x58891c10
push 0x80000002
mov byte [ebp - 4], 0x23
mov dword [ebp - 0x50], ebx
call fcn.5889a54a
push 0x5c
lea ecx, [ebp - 0x20]
call sub.MFC42u.DLL_CString::ReverseFind
inc eax
push eax
lea eax, [ebp + 0x14]
push eax
lea ecx, [ebp - 0x20]
call sub.MFC42u.DLL_CString::Left
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x24
call sub.MFC42u.DLL_CString::operator
lea ecx, [ebp + 0x14]
mov byte [ebp - 4], 0x23
call sub.MFC42u.DLL_CString::CString
push 0x5889374c
lea ecx, [ebp + 0x14]
call fcn.5889e3fa
lea eax, [ebp + 0x14]
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x25
call sub.MFC42u.DLL_CString::operator_2
lea ecx, [ebp + 0x14]
mov byte [ebp - 4], 0x23
call sub.MFC42u.DLL_CString::CString
mov eax, dword [ebp - 0x20]
cmp word [eax], 0x22
jne 0x5889bcd7
mov eax, dword [eax - 8]
dec eax
push eax
lea eax, [ebp + 0x14]
push eax
lea ecx, [ebp - 0x20]
call sub.MFC42u.DLL_CString::Right
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x26
call sub.MFC42u.DLL_CString::operator
lea ecx, [ebp + 0x14]
mov byte [ebp - 4], 0x23
call sub.MFC42u.DLL_CString::CString
mov eax, dword [ebp - 0x20]
push ebx
push 2
push ebx
push eax
call dword [sym.imp.SETUPAPI.dll_SetupOpenInfFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0x34], eax
je 0x5889c19d
push 0x58893740
push eax
call dword [sym.imp.SETUPAPI.dll_SetupGetLineCountW]
cmp eax, ebx
mov dword [ebp - 0x28], eax
jle 0x5889c11f
mov eax, 0x400
push eax
push eax
lea ecx, [ebp + 8]
call sub.MFC42u.DLL_CString::GetBuffer
push eax
push 0x58893734
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
push 0xffffffffffffffff
lea ecx, [ebp + 8]
call sub.MFC42u.DLL_CString::ReleaseBuffer
jmp 0x5889bd8d
push dword [ebp + 0x14]
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp + 8]
call sub.MFC42u.DLL_CString::Left
push eax
push dword [ebp - 0x84]
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0x27
call sub.MFC42u.DLL_CStringArray::SetAtGrow
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x23
call sub.MFC42u.DLL_CString::CString
mov eax, dword [ebp + 8]
mov eax, dword [eax - 8]
sub eax, dword [ebp + 0x14]
lea ecx, [ebp + 8]
dec eax
push eax
lea eax, [ebp - 0x4c]
push eax
call sub.MFC42u.DLL_CString::Right
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x28
call sub.MFC42u.DLL_CString::operator
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x23
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp + 8]
push 0x3b
call sub.MFC42u.DLL_CString::Find
cmp eax, 0xffffffff
mov dword [ebp + 0x14], eax
jne 0x5889bd2c
mov eax, dword [ebp + 8]
cmp dword [eax - 8], ebx
je 0x5889bdbc
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x84]
lea ecx, [ebp - 0x8c]
call sub.MFC42u.DLL_CStringArray::SetAtGrow
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x30]
push eax
push esi
push 0x588937f8
push 0x80000002
call fcn.5889a54a
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax - 8]
cmp ecx, ebx
je 0x5889be23
cmp word [eax + ecx*2 - 2], 0x3b
jne 0x5889be0e
mov eax, ecx
dec eax
push eax
lea eax, [ebp + 0x14]
push eax
lea ecx, [ebp - 0x30]
call sub.MFC42u.DLL_CString::Left
push eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x29
call sub.MFC42u.DLL_CString::operator
lea ecx, [ebp + 0x14]
mov byte [ebp - 4], 0x23
call sub.MFC42u.DLL_CString::CString
lea eax, [ebp - 0x30]
push eax
push dword [ebp - 0x84]
lea ecx, [ebp - 0x8c]
call sub.MFC42u.DLL_CStringArray::SetAtGrow
push 6
lea ecx, [ebp - 0x40]
call sub.MFC42u.DLL_CString::LoadStringW
cmp dword [ebp - 0x28], ebx
mov dword [ebp - 0x38], ebx
jbe 0x5889c0e8
mov esi, 0x100
lea eax, [ebp - 0xa8]
push eax
push dword [ebp - 0x38]
push 0x58893740
push dword [ebp - 0x34]
call dword [sym.imp.SETUPAPI.dll_SetupGetLineByIndexW]
push ebx
push esi
push esi
lea ecx, [ebp - 0x18]
call sub.MFC42u.DLL_CString::GetBuffer
push eax
push ebx
push ebx
push dword [ebp - 0x34]
lea eax, [ebp - 0xa8]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupGetLineTextW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x18]
call sub.MFC42u.DLL_CString::ReleaseBuffer
cmp dword [ebp - 0x84], ebx
mov byte [ebp + 0x17], bl
mov dword [ebp - 0x24], ebx
jle 0x5889c04a
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + ecx*4]
push eax
lea ecx, [ebp + 0x10]
call sub.MFC42u.DLL_CString::operator
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax - 8]
cmp word [eax + ecx*2 - 2], 0x5c
je 0x5889bebd
push 0x5c
lea ecx, [ebp + 0x10]
call fcn.5889e3be
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp + 0x10]
call sub.MFC42u.DLL_CString::operator_2
lea eax, [ebp - 0x318]
push eax
push dword [ebp + 0x10]
call sub.MFC42u.DLL_CFile::GetStatus
test eax, eax
je 0x5889c02f
cmp byte [ebp + 0x17], bl
jne 0x5889bee9
mov byte [ebp + 0x17], 1
push 0x60
call sub.MFC42u.DLL_operatornew
pop ecx
mov dword [ebp - 0x48], eax
cmp eax, ebx
mov byte [ebp - 4], 0x2a
je 0x5889bf08
mov ecx, eax
call fcn.5889ae1d
mov dword [ebp - 0x1c], eax
jmp 0x5889bf0b
mov dword [ebp - 0x1c], ebx
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x78]
push dword [ebp - 0x70]
mov byte [ebp - 4], 0x23
call sub.MFC42u.DLL_CPtrArray::SetAtGrow
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x18]
push eax
call sub.MFC42u.DLL_COleVariant::operator_2
push dword [ebp + 0x10]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x44]
push eax
call fcn.5889a79a
mov ecx, dword [ebp - 0x1c]
push eax
add ecx, 0x10
mov byte [ebp - 4], 0x2b
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x23
call sub.MFC42u.DLL_CString::CString
lea eax, [ebp - 0x318]
push eax
push dword [ebp + 0x10]
call sub.MFC42u.DLL_CFile::GetStatus
test eax, eax
je 0x5889bfa6
fild dword [ebp - 0x30c]
push ecx
mov ecx, dword [ebp - 0x1c]
add ecx, 0x20
fmul dword [0x58893730]
fstp dword [esp]
call sub.MFC42u.DLL_COleVariant::operator_4
mov eax, dword [ebp - 0x314]
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x58]
call sub.MFC42u.DLL_COleDateTime::operator_2
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x58]
push eax
add ecx, 0x30
call sub.MFC42u.DLL_COleVariant::operator_5
push dword [ebp + 0x10]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x2c]
push eax
call fcn.5889a887
mov ecx, dword [ebp - 0x1c]
push eax
add ecx, 0x50
mov byte [ebp - 4], 0x2c
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x23
call sub.MFC42u.DLL_CString::CString
mov eax, dword [ebp + 0x10]
mov eax, dword [eax - 8]
mov ecx, dword [ebp - 0x18]
sub eax, dword [ecx - 8]
lea ecx, [ebp + 0x10]
dec eax
push eax
lea eax, [ebp - 0x3c]
push eax
call sub.MFC42u.DLL_CString::Left
push eax
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x2d
call sub.MFC42u.DLL_CString::operator
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x23
call sub.MFC42u.DLL_CString::CString
push dword [ebp + 0x10]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x64]
push eax
call fcn.5889a5a8
mov ecx, dword [ebp - 0x1c]
push eax
add ecx, 0x40
mov byte [ebp - 4], 0x2e
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0x23
call sub.MFC42u.DLL_CString::CString
inc dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x84]
jl 0x5889be90
cmp byte [ebp + 0x17], bl
jne 0x5889c0d9
push 0x60
call sub.MFC42u.DLL_operatornew
pop ecx
mov dword [ebp + 0x14], eax
cmp eax, ebx
mov byte [ebp - 4], 0x2f
je 0x5889c069
mov ecx, eax
call fcn.5889ae1d
mov dword [ebp + 0x14], eax
jmp 0x5889c06c
mov dword [ebp + 0x14], ebx
push dword [ebp + 0x14]
lea ecx, [ebp - 0x78]
push dword [ebp - 0x70]
mov byte [ebp - 4], 0x23
call sub.MFC42u.DLL_CPtrArray::SetAtGrow
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x18]
push eax
call sub.MFC42u.DLL_COleVariant::operator_2
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x40]
push eax
add ecx, 0x10
call sub.MFC42u.DLL_COleVariant::operator_2
mov ecx, dword [ebp + 0x14]
push 0x58893b70
add ecx, 0x20
call sub.MFC42u.DLL_COleVariant::operator
mov ecx, dword [ebp + 0x14]
push 0x58893b70
add ecx, 0x30
call sub.MFC42u.DLL_COleVariant::operator
mov ecx, dword [ebp + 0x14]
push 0x58893b70
add ecx, 0x40
call sub.MFC42u.DLL_COleVariant::operator
mov ecx, dword [ebp + 0x14]
push 0x58893b70
add ecx, 0x50
call sub.MFC42u.DLL_COleVariant::operator
inc dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x28]
jb 0x5889be3e
push dword [ebp - 0x34]
mov esi, dword [ebp + 0xc]
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
mov eax, dword [ebp - 0x70]
mov dword [esi], eax
shl eax, 2
push eax
call sub.MFC42u.DLL_operatornew
mov dword [edi], eax
cmp dword [esi], ebx
pop ecx
jle 0x5889c19d
mov ecx, dword [ebp - 0x74]
mov ecx, dword [ecx + ebx*4]
mov eax, dword [edi]
mov dword [eax + ebx*4], ecx
inc ebx
cmp ebx, dword [esi]
jl 0x5889c10d
jmp 0x5889c19d
push 4
call sub.MFC42u.DLL_operatornew
push 0x60
mov dword [edi], eax
call sub.MFC42u.DLL_operatornew
pop ecx
pop ecx
mov dword [ebp + 0x14], eax
cmp eax, ebx
mov byte [ebp - 4], 0x30
je 0x5889c145
mov ecx, eax
call fcn.5889ae1d
mov ebx, eax
mov eax, dword [edi]
mov dword [eax], ebx
mov eax, dword [ebp + 0xc]
push 0xc
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x23
mov dword [eax], 1
call sub.MFC42u.DLL_CString::LoadStringW
lea eax, [ebp - 0x18]
push eax
mov ecx, ebx
call sub.MFC42u.DLL_COleVariant::operator_2
mov esi, 0x58893b70
push esi
lea ecx, [ebx + 0x10]
call sub.MFC42u.DLL_COleVariant::operator
push esi
lea ecx, [ebx + 0x20]
call sub.MFC42u.DLL_COleVariant::operator
push esi
lea ecx, [ebx + 0x30]
call sub.MFC42u.DLL_COleVariant::operator
push esi
lea ecx, [ebx + 0x40]
call sub.MFC42u.DLL_COleVariant::operator
push esi
lea ecx, [ebx + 0x50]
call sub.MFC42u.DLL_COleVariant::operator
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x22
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x21
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x20
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x1f
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x1e
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x1d
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0x1c
call fcn.5889e916
jmp 0x5889d4e9
cmp eax, 3
jne 0x5889c354
lea ecx, [ebp + 0x10]
call sub.MFC42u.DLL_CString::CString_1
mov eax, dword [ebp + 0x14]
cmp eax, ebx
mov dword [ebp - 4], 0x31
je 0x5889c220
cmp dword [eax], ebx
jne 0x5889c4f7
push 4
call sub.MFC42u.DLL_operatornew
push 0x30
mov dword [edi], eax
call sub.MFC42u.DLL_operatornew
pop ecx
pop ecx
mov dword [ebp + 0xc], eax
cmp eax, ebx
mov byte [ebp - 4], 0x32
je 0x5889c249
mov ecx, eax
call fcn.5889abec
mov dword [ebp + 0xc], eax
jmp 0x5889c24c
mov dword [ebp + 0xc], ebx
mov eax, dword [edi]
mov ecx, dword [ebp + 0xc]
mov dword [eax], ecx
xor eax, eax
lea ecx, [ebp - 0x24]
push ecx
inc eax
push eax
push ebx
mov dword [esi], eax
mov edi, 0x588936b8
push edi
mov esi, 0x80000001
push esi
mov byte [ebp - 4], 0x31
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x5889c2f4
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x64]
push eax
push ebx
push ebx
push 0x58893698
push dword [ebp - 0x24]
mov dword [ebp + 8], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, ebx
jne 0x5889c2d3
cmp dword [ebp - 0x64], ebx
je 0x5889c2d3
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x44]
push eax
push ebx
push ebx
push 0x5889367c
push dword [ebp - 0x24]
mov dword [ebp + 8], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, ebx
jne 0x5889c2cf
mov eax, dword [ebp - 0x44]
neg eax
sbb eax, eax
add eax, 8
jmp 0x5889c2d6
push 5
jmp 0x5889c2d5
push 9
pop eax
push eax
lea ecx, [ebp + 0x10]
call sub.MFC42u.DLL_CString::LoadStringW
mov ecx, dword [ebp + 0xc]
lea eax, [ebp + 0x10]
push eax
call sub.MFC42u.DLL_COleVariant::operator_2
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x14]
add eax, 0x10
push eax
push 0x58893660
push edi
push esi
call fcn.5889a46e
mov eax, dword [ebp + 0xc]
add eax, 0x10
cmp word [eax], bx
jne 0x5889c322
mov ecx, dword [ebp + 0xc]
push 1
add ecx, 0x10
call sub.MFC42u.DLL_COleVariant::operator_1
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x14]
add eax, 0x20
push eax
push 0x58893644
push edi
push esi
mov dword [ebp + 0xc], eax
call fcn.5889a46e
mov eax, dword [ebp + 0xc]
cmp word [eax], bx
jne 0x5889c4f7
push ebx
mov ecx, eax
call sub.MFC42u.DLL_COleVariant::operator_1
jmp 0x5889c4f7
cmp eax, 2
jne 0x5889c4ff
lea ecx, [ebp + 0x10]
call sub.MFC42u.DLL_CString::CString_1
mov eax, dword [ebp + 0x14]
cmp eax, ebx
mov dword [ebp - 4], 0x33
je 0x5889c37b
cmp dword [eax], ebx
jne 0x5889c4f7
push 4
call sub.MFC42u.DLL_operatornew
push 0x60
mov dword [edi], eax
call sub.MFC42u.DLL_operatornew
pop ecx
pop ecx
mov dword [ebp + 0x14], eax
cmp eax, ebx
mov byte [ebp - 4], 0x34
je 0x5889c3a3
mov ecx, eax
call fcn.5889ae1d
mov esi, eax
jmp 0x5889c3a5
xor esi, esi
mov eax, dword [edi]
mov ecx, dword [ebp - 0x14]
push esi
push 0x58892e4c
mov dword [eax], esi
mov eax, dword [ebp + 0xc]
push 0x588936b8
push 0x80000001
mov byte [ebp - 4], 0x33
mov dword [eax], 1
call fcn.5889a46e
push ebx
call fcn.5889a148
cmp eax, ebx
mov dword [ebp + 0x14], eax
je 0x5889c4f7
push 0x14
pop eax
push 4
pop edi
push 0x30
mov dword [ebp + 8], eax
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x58], edi
call sub.MFC42u.DLL_operatornew
mov dword [ebp - 0x50], eax
mov dword [eax], 1
mov eax, dword [ebp - 0x50]
mov dword [eax + 0xc], 2
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x18], 3
mov eax, dword [ebp - 0x50]
pop ecx
mov dword [eax + 0x24], edi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x60]
push eax
push 0x4b
push ebx
call dword [0x588a26e8]
cmp eax, ebx
je 0x5889c4e5
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x14]
push 2
and eax, 8
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.5889a380
push eax
lea ecx, [esi + 0x10]
mov byte [ebp - 4], 0x35
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0x33
call sub.MFC42u.DLL_CString::CString
mov eax, dword [ebp - 0x50]
push dword [eax + 0x28]
lea ecx, [ebp + 0x10]
call fcn.5889e436
lea eax, [ebp + 0x10]
push eax
lea ecx, [esi + 0x20]
call sub.MFC42u.DLL_COleVariant::operator_2
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x14]
push 2
and eax, 2
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.5889a380
push eax
lea ecx, [esi + 0x30]
mov byte [ebp - 4], 0x36
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0x33
call sub.MFC42u.DLL_CString::CString
mov eax, dword [ebp - 0x50]
push dword [eax + 0x10]
lea ecx, [ebp + 0x10]
call fcn.5889e436
lea eax, [ebp + 0x10]
push eax
lea ecx, [esi + 0x40]
call sub.MFC42u.DLL_COleVariant::operator_2
mov eax, dword [ebp - 0x50]
push dword [eax + 0x1c]
lea ecx, [ebp + 0x10]
call fcn.5889e436
lea eax, [ebp + 0x10]
push eax
lea ecx, [esi + 0x50]
call sub.MFC42u.DLL_COleVariant::operator_2
push dword [ebp - 0x50]
call sub.MFC42u.DLL_operatordelete
pop ecx
push dword [ebp + 0x14]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea ecx, [ebp + 0x10]
jmp 0x5889cf5b
cmp eax, 4
jne 0x5889ceed
lea ecx, [ebp + 0xc]
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp - 0x34]
mov dword [ebp - 4], 0x37
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x38
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x39
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x3a
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp + 0x14]
mov byte [ebp - 4], 0x3b
call sub.MFC42u.DLL_CString::CString_1
or dword [ebp - 0x3c], 0xffffffff
push 0xd
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x3c
mov dword [ebp - 0x38], ebx
call sub.MFC42u.DLL_CString::LoadStringW
push 3
call fcn.5889a148
cmp eax, ebx
mov dword [ebp - 0x48], eax
je 0x5889ceac
mov eax, 0x418
push eax
mov dword [ebp - 0x1c], eax
call dword [sym.imp.msvcrt.dll_malloc]
cmp eax, ebx
pop ecx
mov dword [ebp - 0x20], eax
je 0x5889cea3
lea ecx, [ebp - 0x38]
push ecx
lea ecx, [ebp - 0x1c]
push ecx
push eax
push ebx
push ebx
mov dword [eax], 0x418
call dword [0x588a26c4]
cmp eax, 0x25b
jne 0x5889c5db
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
call dword [sym.imp.msvcrt.dll_realloc]
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x20], eax
je 0x5889ce99
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x20]
push ebx
push ebx
call dword [0x588a26c4]
cmp eax, ebx
jne 0x5889ce99
mov eax, dword [ebp - 0x38]
cmp eax, ebx
jbe 0x5889ce99
mov dword [esi], eax
shl eax, 2
push eax
call sub.MFC42u.DLL_operatornew
pop ecx
mov ecx, dword [ebp - 0x14]
mov dword [edi], eax
lea eax, [ebp - 0x34]
push eax
push 0x58893624
push 0x58893608
push 0x80000001
call fcn.5889a54a
cmp dword [ebp - 0x38], ebx
mov dword [ebp - 0x24], ebx
jbe 0x5889ce99
mov eax, dword [ebp - 0x20]
add eax, 4
mov dword [ebp - 0x40], eax
push 0x1f0
call sub.MFC42u.DLL_operatornew
pop ecx
mov ecx, eax
mov dword [ebp - 0xb4], ecx
cmp ecx, ebx
mov byte [ebp - 4], 0x3d
je 0x5889c650
call fcn.5889ac2c
mov esi, eax
jmp 0x5889c652
xor esi, esi
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov edi, dword [ebp - 0x24]
push dword [ebp - 0x40]
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0x3c
mov dword [eax + edi*4], esi
call fcn.5889e436
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.5889a364
test al, al
je 0x5889c6a3
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x34]
call sub.MFC42u.DLL_CString::operator_2
lea eax, [ebp - 0x34]
push eax
mov ecx, esi
call sub.MFC42u.DLL_COleVariant::operator_2
push 0xffffffffffffffff
lea ecx, [esi + 0x10]
call sub.MFC42u.DLL_COleVariant::operator_3
mov dword [ebp - 0x3c], edi
jmp 0x5889c6b7
lea eax, [ebp + 0xc]
push eax
mov ecx, esi
call sub.MFC42u.DLL_COleVariant::operator_2
push ebx
lea ecx, [esi + 0x10]
call sub.MFC42u.DLL_COleVariant::operator_3
push ebx
call fcn.5889a148
cmp eax, ebx
mov dword [ebp - 0xb4], eax
je 0x5889c8a3
mov eax, dword [ebp + 0xc]
push 0x14
pop edi
mov dword [ebp - 0x64], edi
push dword [eax - 8]
lea ecx, [ebp + 0xc]
call sub.MFC42u.DLL_CString::GetBuffer
push 4
mov dword [ebp - 0x8c], edi
pop edi
push 0x30
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], edi
call sub.MFC42u.DLL_operatornew
mov dword [ebp - 0x7c], eax
mov dword [eax], 1
mov eax, dword [ebp - 0x7c]
mov dword [eax + 0xc], 2
mov eax, dword [ebp - 0x7c]
mov dword [eax + 0x18], 3
mov eax, dword [ebp - 0x7c]
pop ecx
mov dword [eax + 0x24], edi
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x8c]
push eax
push 0x4b
push ebx
call dword [0x588a26e8]
cmp eax, ebx
je 0x5889c884
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x14]
push 2
and eax, 8
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.5889a380
push eax
lea ecx, [esi + 0x30]
mov byte [ebp - 4], 0x3e
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
mov eax, dword [ebp - 0x7c]
push dword [eax + 0x28]
lea ecx, [ebp + 0x14]
call fcn.5889e436
lea eax, [ebp + 0x14]
push eax
lea ecx, [esi + 0x40]
call sub.MFC42u.DLL_COleVariant::operator_2
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x14]
push 2
and eax, 2
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.5889a380
push eax
lea ecx, [esi + 0x50]
mov byte [ebp - 4], 0x3f
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
mov eax, dword [ebp - 0x7c]
push dword [eax + 0x10]
lea ecx, [ebp + 0x14]
call fcn.5889e436
lea eax, [ebp + 0x14]
push eax
lea ecx, [esi + 0x60]
call sub.MFC42u.DLL_COleVariant::operator_2
mov eax, dword [ebp - 0x7c]
push dword [eax + 0x1c]
lea ecx, [ebp + 8]
call fcn.5889e436
jmp 0x5889c860
mov eax, dword [ebp + 8]
mov eax, dword [eax - 8]
sub eax, edi
dec eax
dec eax
push eax
lea eax, [ebp - 0xe0]
push eax
lea ecx, [ebp + 8]
call sub.MFC42u.DLL_CString::Right
mov dword [ebp - 0x28], eax
push edi
lea eax, [ebp - 0xd8]
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x40
call sub.MFC42u.DLL_CString::Left
push dword [ebp - 0x28]
mov byte [ebp - 4], 0x41
push eax
lea eax, [ebp - 0xd0]
push eax
call sub.MFC42u.DLL_operator_2
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x42
call sub.MFC42u.DLL_CString::operator
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0x41
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x40
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp + 8]
push 0x58892118
call sub.MFC42u.DLL_CString::Find_1
mov edi, eax
cmp edi, 0xffffffff
jne 0x5889c7e1
lea eax, [ebp + 8]
push eax
lea ecx, [esi + 0x70]
call sub.MFC42u.DLL_COleVariant::operator_2
push dword [ebp - 0x7c]
call sub.MFC42u.DLL_operatordelete
pop ecx
push 0xffffffffffffffff
lea ecx, [ebp + 0xc]
call sub.MFC42u.DLL_CString::ReleaseBuffer
push dword [ebp - 0xb4]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push 0x588935dc
lea ecx, [ebp - 0x18]
call fcn.5889e436
push 0x5c
lea ecx, [ebp - 0x18]
call fcn.5889e3be
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp - 0x18]
call sub.MFC42u.DLL_CString::operator_2
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x30]
push eax
push 0x588935c0
push dword [ebp - 0x18]
mov edi, 0x80000001
push edi
call fcn.5889a4fe
test eax, eax
jne 0x5889c91a
cmp dword [ebp - 0x30], ebx
mov ecx, dword [ebp - 0x14]
sete al
push ebx
push eax
lea eax, [ebp - 0xe8]
push eax
call fcn.5889a380
push eax
lea ecx, [esi + 0x80]
mov byte [ebp - 4], 0x43
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
mov ecx, dword [ebp - 0x14]
lea eax, [esi + 0x90]
push eax
push 0x58892d6c
push dword [ebp - 0x18]
push edi
call fcn.5889a46e
cmp word [esi + 0x90], bx
jne 0x5889c948
push 0xa
lea ecx, [esi + 0x90]
call sub.MFC42u.DLL_COleVariant::operator_1
mov ecx, dword [ebp - 0x14]
lea eax, [esi + 0xa0]
push eax
push 0x58892d54
push dword [ebp - 0x18]
push edi
call fcn.5889a46e
cmp word [esi + 0xa0], bx
jne 0x5889c976
push 5
lea ecx, [esi + 0xa0]
call sub.MFC42u.DLL_COleVariant::operator_1
mov ecx, dword [ebp - 0x14]
lea eax, [esi + 0xb0]
push eax
push 0x58892d2c
push dword [ebp - 0x18]
push edi
call fcn.5889a46e
cmp word [esi + 0xb0], bx
jne 0x5889c9a4
push 0x14
lea ecx, [esi + 0xb0]
call sub.MFC42u.DLL_COleVariant::operator_1
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x30]
push eax
push 0x58893594
push dword [ebp - 0x18]
mov dword [ebp - 0x30], ebx
push edi
call fcn.5889a4fe
mov ecx, dword [ebp - 0x14]
push 2
push dword [ebp - 0x30]
lea eax, [ebp - 0xb8]
push eax
call fcn.5889a380
push eax
lea ecx, [esi + 0xc0]
mov byte [ebp - 4], 0x44
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x30]
push eax
push 0x58893584
push 0x58893528
push 0x80000002
call fcn.5889a4fe
test eax, eax
jne 0x5889ca40
mov ecx, dword [ebp - 0x14]
push ebx
push dword [ebp - 0x30]
lea eax, [ebp - 0xbc]
push eax
call fcn.5889a380
push eax
lea ecx, [esi + 0x130]
mov byte [ebp - 4], 0x45
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
mov eax, 0x15f0
push eax
mov dword [ebp - 0x1c], eax
call dword [sym.imp.msvcrt.dll_malloc]
mov edi, eax
cmp edi, ebx
pop ecx
je 0x5889ce67
push ebx
push ebx
lea eax, [ebp - 0x1c]
push eax
push edi
mov dword [edi], 0x15f0
push dword [ebp + 0xc]
push ebx
call dword [0x588a26c8]
cmp eax, 0x25b
jne 0x5889ca9f
push dword [ebp - 0x1c]
push edi
call dword [sym.imp.msvcrt.dll_realloc]
mov edi, eax
cmp edi, ebx
pop ecx
pop ecx
je 0x5889ce5f
push ebx
push ebx
lea eax, [ebp - 0x1c]
push eax
push edi
push dword [ebp + 0xc]
push ebx
call dword [0x588a26c8]
cmp eax, ebx
jne 0x5889ce5f
lea eax, [edi + 0x786]
push eax
lea ecx, [esi + 0xd0]
call sub.MFC42u.DLL_COleVariant::operator
mov eax, dword [edi + 0x148]
dec eax
je 0x5889cad5
dec eax
je 0x5889cad1
dec eax
dec eax
je 0x5889cacd
push 5
jmp 0x5889cad7
push 0x10
jmp 0x5889cad7
push 0xf
jmp 0x5889cad7
push 0xe
pop eax
push eax
lea ecx, [ebp + 0x14]
call sub.MFC42u.DLL_CString::LoadStringW
lea eax, [ebp + 0x14]
push eax
lea ecx, [esi + 0xe0]
call sub.MFC42u.DLL_COleVariant::operator_2
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x14]
push ebx
and eax, 0x2000
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.5889a380
push eax
lea ecx, [esi + 0xf0]
mov byte [ebp - 4], 0x46
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x14]
push ebx
and eax, 0x200
push eax
lea eax, [ebp - 0xcc]
push eax
call fcn.5889a380
push eax
lea ecx, [esi + 0x100]
mov byte [ebp - 4], 0x47
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x14]
push ebx
and eax, 0x400
push eax
lea eax, [ebp - 0xd4]
push eax
call fcn.5889a380
push eax
lea ecx, [esi + 0x110]
mov byte [ebp - 4], 0x48
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x14]
push ebx
and eax, 0x1000
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.5889a380
push eax
lea ecx, [esi + 0x120]
mov byte [ebp - 4], 0x49
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x14]
push ebx
and eax, 8
push eax
lea eax, [ebp - 0xc0]
push eax
call fcn.5889a380
push eax
lea ecx, [esi + 0x1c0]
mov byte [ebp - 4], 0x4a
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x14]
push ebx
and eax, 0x10
push eax
lea eax, [ebp - 0xe4]
push eax
call fcn.5889a380
push eax
lea ecx, [esi + 0x1d0]
mov byte [ebp - 4], 0x4b
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp + 0xc]
call sub.MFC42u.DLL_CString::Empty
test byte [edi + 0x144], 4
je 0x5889cc63
push 0x11
lea ecx, [ebp + 0x14]
call sub.MFC42u.DLL_CString::LoadStringW
lea eax, [ebp + 0x14]
push eax
lea ecx, [ebp + 0xc]
call sub.MFC42u.DLL_CString::operator_2
test byte [edi + 0x144], 2
je 0x5889cc97
push 0x12
lea ecx, [ebp + 0x14]
call sub.MFC42u.DLL_CString::LoadStringW
mov eax, dword [ebp + 0xc]
cmp dword [eax - 8], ebx
je 0x5889cc8b
push 0x58893520
lea ecx, [ebp + 0xc]
call sub.MFC42u.DLL_CString::operator_1
lea eax, [ebp + 0x14]
push eax
lea ecx, [ebp + 0xc]
call sub.MFC42u.DLL_CString::operator_2
test byte [edi + 0x144], 1
je 0x5889cccb
push 0x13
lea ecx, [ebp + 0x14]
call sub.MFC42u.DLL_CString::LoadStringW
mov eax, dword [ebp + 0xc]
cmp dword [eax - 8], ebx
je 0x5889ccbf
push 0x58893520
lea ecx, [ebp + 0xc]
call sub.MFC42u.DLL_CString::operator_1
lea eax, [ebp + 0x14]
push eax
lea ecx, [ebp + 0xc]
call sub.MFC42u.DLL_CString::operator_2
lea eax, [ebp + 0xc]
push eax
lea ecx, [esi + 0x140]
call sub.MFC42u.DLL_COleVariant::operator_2
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x14]
shr eax, 1
not eax
push ebx
and eax, 1
push eax
lea eax, [ebp - 0xc8]
push eax
call fcn.5889a380
push eax
lea ecx, [esi + 0x150]
mov byte [ebp - 4], 0x4c
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
push dword [edi + 0x12c]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0xac]
push eax
call fcn.5889a3fd
push eax
lea ecx, [esi + 0x160]
mov byte [ebp - 4], 0x4d
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x14]
shr eax, 2
not eax
push ebx
and eax, 1
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.5889a380
push eax
lea ecx, [esi + 0x170]
mov byte [ebp - 4], 0x4e
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
push dword [edi + 0x130]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x90]
push eax
call fcn.5889a3fd
push eax
lea ecx, [esi + 0x180]
mov byte [ebp - 4], 0x4f
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
push dword [edi + 0x134]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x94]
push eax
call fcn.5889a3fd
push eax
lea ecx, [esi + 0x190]
mov byte [ebp - 4], 0x50
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
push dword [edi + 0x138]
lea eax, [ebp - 0x9c]
mov ecx, dword [ebp - 0x14]
push eax
call fcn.5889a3fd
push eax
lea ecx, [esi + 0x1a0]
mov byte [ebp - 4], 0x51
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
push dword [edi + 0x13c]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x50]
push eax
call fcn.5889a3fd
push eax
lea ecx, [esi + 0x1b0]
mov byte [ebp - 4], 0x52
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x3c
call sub.MFC42u.DLL_CString::CString
lea eax, [edi + 0x14c]
push eax
lea ecx, [esi + 0x1e0]
call sub.MFC42u.DLL_COleVariant::operator
push edi
call dword [sym.imp.msvcrt.dll_free]
pop ecx
inc dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
add dword [ebp - 0x40], 0x418
cmp eax, dword [ebp - 0x38]
jb 0x5889c62c
cmp dword [ebp - 0x3c], ebx
jle 0x5889ce99
mov esi, dword [ebp + 0x10]
mov eax, dword [esi]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [eax]
shl ecx, 2
mov edi, dword [eax + ecx]
mov dword [eax], edi
mov eax, dword [esi]
mov dword [ecx + eax], edx
push dword [ebp - 0x20]
call dword [sym.imp.msvcrt.dll_free]
pop ecx
push dword [ebp - 0x48]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea ecx, [ebp + 0x14]
mov byte [ebp - 4], 0x3b
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x3a
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x39
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x38
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x37
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp + 0xc]
jmp 0x5889cf5b
cmp eax, 5
jne 0x5889d1e6
lea ecx, [ebp - 0x24]
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp + 0x10]
mov dword [ebp - 4], 0x53
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x54
call sub.MFC42u.DLL_CString::CString_1
mov eax, dword [ebp + 0x14]
cmp eax, ebx
mov byte [ebp - 4], 0x55
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x9c], ebx
je 0x5889cf69
cmp dword [eax], ebx
je 0x5889cf69
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x54
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x53
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x24]
or dword [ebp - 4], 0xffffffff
call sub.MFC42u.DLL_CString::CString
jmp 0x5889d806
push 4
call sub.MFC42u.DLL_operatornew
push 0x60
mov dword [edi], eax
call sub.MFC42u.DLL_operatornew
pop ecx
pop ecx
mov dword [ebp + 0x14], eax
cmp eax, ebx
mov byte [ebp - 4], 0x56
je 0x5889cf91
mov ecx, eax
call fcn.5889ae1d
mov esi, eax
jmp 0x5889cf93
xor esi, esi
mov eax, dword [edi]
mov ecx, dword [ebp - 0x14]
mov dword [eax], esi
mov eax, dword [ebp + 0xc]
mov dword [eax], 1
lea eax, [ebp - 0x48]
push eax
push 0x5889350c
mov edi, 0x588936b8
push edi
push 0x80000001
mov byte [ebp - 4], 0x55
call fcn.5889a4fe
test eax, eax
jne 0x5889cfe5
mov eax, dword [ebp - 0x48]
sub eax, ebx
je 0x5889cfe1
dec eax
dec eax
je 0x5889cfdd
dec eax
je 0x5889cfd9
dec eax
je 0x5889cfe5
push 5
jmp 0x5889cfe7
push 0x16
jmp 0x5889cfe7
push 0x17
jmp 0x5889cfe7
push 0x19
jmp 0x5889cfe7
push 0x18
pop eax
push eax
lea ecx, [ebp - 0x24]
call sub.MFC42u.DLL_CString::LoadStringW
lea eax, [ebp - 0x24]
push eax
mov ecx, esi
call sub.MFC42u.DLL_COleVariant::operator_2
mov ecx, dword [ebp - 0x14]
lea eax, [esi + 0x10]
push eax
push 0x58891b8c
push 0x58893488
push 0x80000001
call fcn.5889a46e
push dword [esi + 0x18]
lea ecx, [ebp + 0x10]
call fcn.5889e436
push 0x58893478
lea ecx, [ebp + 0x14]
call fcn.5889e3fa
push 0xb
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x57
call sub.MFC42u.DLL_CString::Right
lea ecx, [ebp + 0x14]
push ecx
push eax
call fcn.5889549f
lea ecx, [ebp - 0x50]
mov byte [ebp + 0xf], al
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp + 0x14]
mov byte [ebp - 4], 0x55
call sub.MFC42u.DLL_CString::CString
cmp byte [ebp + 0xf], bl
je 0x5889d0ab
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax - 8]
mov ax, word [eax + ecx*2 - 2]
cmp ax, 0x5c
je 0x5889d082
push 0x5c
lea ecx, [ebp + 0x10]
call fcn.5889e3be
push 0x58893478
lea ecx, [ebp + 0xc]
call fcn.5889e3fa
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x58
call sub.MFC42u.DLL_CString::operator_2
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0x55
call sub.MFC42u.DLL_CString::CString
push edi
lea ecx, [ebp + 8]
call fcn.5889e436
push 0x5c
lea ecx, [ebp + 8]
call fcn.5889e3be
push 0x58891b8c
lea ecx, [ebp + 8]
call sub.MFC42u.DLL_CString::operator_1
push 0x5c
lea ecx, [ebp + 8]
call fcn.5889e3be
push 0x58891b64
lea ecx, [ebp + 8]
call sub.MFC42u.DLL_CString::operator_1
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x2c]
push eax
push 0x58893460
push dword [ebp + 8]
push 0x80000001
call fcn.5889a4fe
test eax, eax
jne 0x5889cf40
push ebx
call fcn.5889a148
mov edi, eax
cmp edi, ebx
je 0x5889cf40
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0xb0]
push eax
push ebx
push dword [ebp + 0x10]
call dword [0x588a26e4]
test eax, eax
je 0x5889d1da
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x9c]
shrd eax, ecx, 0x14
shr ecx, 0x14
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x54], eax
push ecx
fild qword [ebp - 0x54]
lea ecx, [esi + 0x20]
fstp dword [esp]
call sub.MFC42u.DLL_COleVariant::operator_4
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xac]
shrd eax, ecx, 0x14
shr ecx, 0x14
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x54], eax
push ecx
fild qword [ebp - 0x54]
lea ecx, [esi + 0x30]
fstp dword [esp]
call sub.MFC42u.DLL_COleVariant::operator_4
mov eax, dword [ebp - 0x2c]
shr eax, 0xa
test eax, eax
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
jge 0x5889d199
fadd dword [0x5889345c]
push ecx
lea ecx, [esi + 0x40]
fstp dword [esp]
call sub.MFC42u.DLL_COleVariant::operator_4
push dword [ebp + 0x10]
mov ecx, dword [ebp - 0x14]
call fcn.5889a691
mov ecx, dword [ebp - 0x2c]
shl ecx, 0xa
sub ecx, eax
test ecx, ecx
mov dword [ebp + 0xc], ecx
fild dword [ebp + 0xc]
jge 0x5889d1c8
fadd dword [0x5889345c]
fmul dword [0x58893458]
push ecx
lea ecx, [esi + 0x50]
fstp dword [esp]
call sub.MFC42u.DLL_COleVariant::operator_4
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x5889cf40
cmp eax, 6
jne 0x5889d3de
lea ecx, [ebp - 0x78]
call sub.MFC42u.DLL_CPtrArray::CPtrArray
mov dword [ebp - 0x78], 0x58893320
lea ecx, [ebp - 0x9c]
mov dword [ebp - 4], 0x59
call sub.MFC42u.DLL_CString::CString_1
push 2
mov byte [ebp - 4], 0x5a
call fcn.5889a148
cmp eax, ebx
mov dword [ebp - 0x50], eax
je 0x5889d3ca
push ebx
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 0x3c]
push eax
call dword [0x588a26dc]
jmp 0x5889d38b
push 0x30
call sub.MFC42u.DLL_operatornew
pop ecx
mov dword [ebp + 0xc], eax
cmp eax, ebx
mov byte [ebp - 4], 0x5b
je 0x5889d259
mov ecx, eax
call fcn.5889abec
mov dword [ebp + 0x14], eax
jmp 0x5889d25c
mov dword [ebp + 0x14], ebx
push dword [ebp + 0x14]
lea ecx, [ebp - 0x78]
push dword [ebp - 0x70]
mov byte [ebp - 4], 0x5a
call sub.MFC42u.DLL_CPtrArray::SetAtGrow
push 0xc8
lea eax, [ebp - 0x1c4]
push eax
push ebx
push 1
push dword [ebp + 0x10]
call dword [0x588a26d4]
lea eax, [ebp - 0x1c4]
push eax
lea ecx, [ebp - 0x28]
call fcn.5889e3fa
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x28]
push eax
mov byte [ebp - 4], 0x5c
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x5a
call sub.MFC42u.DLL_CString::CString
push ebx
push ebx
lea eax, [ebp - 0x48]
push eax
push 0xb
push dword [ebp + 0x10]
call dword [0x588a26d4]
mov eax, dword [ebp - 0x48]
dec eax
je 0x5889d2f5
dec eax
je 0x5889d2ec
dec eax
je 0x5889d2e3
dec eax
je 0x5889d2da
mov dword [ebp + 0xc], 5
jmp 0x5889d2fc
mov dword [ebp + 0xc], 0x22
jmp 0x5889d2fc
mov dword [ebp + 0xc], 0x21
jmp 0x5889d2fc
mov dword [ebp + 0xc], 0x20
jmp 0x5889d2fc
mov dword [ebp + 0xc], 0x1f
lea ecx, [ebp + 8]
call sub.MFC42u.DLL_CString::CString_1
push dword [ebp + 0xc]
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x5d
call sub.MFC42u.DLL_CString::LoadStringW
mov ecx, dword [ebp + 0x14]
lea eax, [ebp + 8]
push eax
add ecx, 0x10
call sub.MFC42u.DLL_COleVariant::operator_2
push 0x824
lea eax, [ebp - 0xb3c]
push eax
push ebx
push 8
push dword [ebp + 0x10]
call dword [0x588a26d4]
lea eax, [ebp - 0xb3c]
push eax
lea ecx, [ebp - 0x2c]
call fcn.5889e3fa
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x2c]
push eax
add ecx, 0x20
mov byte [ebp - 4], 0x5e
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x5d
call sub.MFC42u.DLL_CString::CString
push dword [ebp + 0x10]
call dword [0x588a26cc]
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x5a
call sub.MFC42u.DLL_CString::CString
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 0x3c]
push eax
call dword [0x588a26d8]
test eax, eax
je 0x5889d23a
push dword [ebp - 0x3c]
call dword [0x588a26d0]
mov eax, dword [ebp - 0x70]
mov dword [esi], eax
shl eax, 2
push eax
call sub.MFC42u.DLL_operatornew
mov dword [edi], eax
cmp dword [esi], ebx
pop ecx
jle 0x5889d3c1
mov ecx, dword [ebp - 0x74]
mov ecx, dword [ecx + ebx*4]
mov eax, dword [edi]
mov dword [eax + ebx*4], ecx
inc ebx
cmp ebx, dword [esi]
jl 0x5889d3b1
push dword [ebp - 0x50]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 0x59
call sub.MFC42u.DLL_CString::CString
jmp 0x5889d4e9
cmp eax, 7
jne 0x5889d47a
push 4
call sub.MFC42u.DLL_operatornew
push 0x10
mov dword [edi], eax
call sub.MFC42u.DLL_operatornew
pop ecx
pop ecx
mov dword [ebp + 0xc], eax
cmp eax, ebx
mov dword [ebp - 4], 0x5f
je 0x5889d415
push eax
call sub.MFC42u.DLL_AfxVariantInit
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0xc], eax
jmp 0x5889d418
mov dword [ebp + 0xc], ebx
mov eax, dword [edi]
mov ecx, dword [ebp + 0xc]
or dword [ebp - 4], 0xffffffff
mov dword [eax], ecx
xor eax, eax
inc eax
push eax
mov dword [esi], eax
call fcn.5889a148
mov esi, eax
cmp esi, ebx
je 0x5889d806
push 2
call dword [0x588a26e0]
mov ecx, dword [ebp - 0x14]
neg eax
sbb eax, eax
inc eax
push eax
lea eax, [ebp + 0x14]
push eax
call fcn.5889a380
mov ecx, dword [ebp + 0xc]
push eax
mov dword [ebp - 4], 0x60
call sub.MFC42u.DLL_COleVariant::operator_2
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call sub.MFC42u.DLL_CString::CString
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x5889d806
cmp eax, 8
jne 0x5889d4f1
lea ecx, [ebp - 0x78]
call sub.MFC42u.DLL_CPtrArray::CPtrArray
mov dword [ebp - 0x78], 0x58893338
push 4
mov dword [ebp - 4], 0x61
call fcn.5889a148
cmp eax, ebx
mov dword [ebp + 0xc], eax
je 0x5889d4e9
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x78]
push eax
call fcn.5889b28b
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x78]
push eax
call fcn.5889b2f6
mov eax, dword [ebp - 0x70]
mov dword [esi], eax
shl eax, 2
push eax
call sub.MFC42u.DLL_operatornew
mov dword [edi], eax
cmp dword [esi], ebx
pop ecx
jle 0x5889d4e0
mov ecx, dword [ebp - 0x74]
mov ecx, dword [ecx + ebx*4]
mov eax, dword [edi]
mov dword [eax + ebx*4], ecx
inc ebx
cmp ebx, dword [esi]
jl 0x5889d4d0
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea ecx, [ebp - 0x78]
jmp 0x5889d7fd
cmp eax, 9
jne 0x5889d627
lea ecx, [ebp - 0x3c]
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [ebp + 0x14]
mov dword [ebp - 4], 0x62
call sub.MFC42u.DLL_CString::CString_1
lea eax, [ebp - 0x2c]
push eax
push 0x20019
push ebx
push 0x58893388
push 0x80000001
mov byte [ebp - 4], 0x63
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x5889d613
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp + 8]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push dword [ebp - 0x2c]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x5889d60a
mov eax, dword [ebp + 8]
mov dword [esi], eax
shl eax, 2
push eax
call sub.MFC42u.DLL_operatornew
cmp dword [ebp + 8], ebx
pop ecx
mov dword [edi], eax
mov dword [ebp + 0xc], ebx
jbe 0x5889d60a
mov esi, 0x100
push 0x10
call sub.MFC42u.DLL_operatornew
pop ecx
mov dword [ebp + 0x10], eax
cmp eax, ebx
mov byte [ebp - 4], 0x64
je 0x5889d599
push eax
call sub.MFC42u.DLL_AfxVariantInit
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0x10], eax
jmp 0x5889d59c
mov dword [ebp + 0x10], ebx
mov eax, dword [edi]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov dword [eax + edx*4], ecx
lea eax, [ebp - 0x48]
push eax
push esi
lea ecx, [ebp + 0x14]
mov byte [ebp - 4], 0x63
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x48], esi
call sub.MFC42u.DLL_CString::GetBuffer
push eax
push ebx
push ebx
lea eax, [ebp - 0x50]
push eax
push esi
lea ecx, [ebp - 0x3c]
call sub.MFC42u.DLL_CString::GetBuffer
push eax
push dword [ebp + 0xc]
push dword [ebp - 0x2c]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x3c]
call sub.MFC42u.DLL_CString::ReleaseBuffer
push 0xffffffffffffffff
lea ecx, [ebp + 0x14]
call sub.MFC42u.DLL_CString::ReleaseBuffer
mov ecx, dword [ebp + 0x10]
lea eax, [ebp + 0x14]
push eax
call sub.MFC42u.DLL_COleVariant::operator_2
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp + 8]
jb 0x5889d578
push dword [ebp - 0x2c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp + 0x14]
mov byte [ebp - 4], 0x62
call sub.MFC42u.DLL_CString::CString
lea ecx, [ebp - 0x3c]
jmp 0x5889cf5b
cmp eax, 0xa
jne 0x5889d806
lea ecx, [ebp - 0xfc]
mov dword [ebp - 0x14], ebx
call sub.MFC42u.DLL_CPtrArray::CPtrArray
mov dword [ebp - 0xfc], 0x58893350
lea eax, [ebp - 0x14]
push eax
push 0x58893ba4
push 1
push ebx
mov dword [ebp - 4], 0x65
push 0x58893b94
mov byte [ebp - 4], 0x66
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
jl 0x5889d7e3
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
push ebx
lea edx, [ebp - 0x94]
push edx
lea edx, [ebp - 0x90]
push edx
push eax
call dword [ecx + 0x2c]
cmp eax, ebx
jl 0x5889d7a7
mov dword [ebp + 0x14], ebx
mov eax, dword [ebp + 0x14]
cmp eax, dword [ebp - 0x94]
jae 0x5889d7a7
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
lea edx, [ebp - 0x98]
push edx
push dword [ebp + 0x14]
push dword [ebp - 0x90]
push eax
call dword [ecx + 0x30]
cmp eax, ebx
jl 0x5889d7a7
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
lea edx, [ebp - 0x8cc]
push edx
push dword [ebp - 0x98]
push eax
call dword [ecx + 0xc]
cmp eax, ebx
jl 0x5889d7a7
push 0x20
call sub.MFC42u.DLL_operatornew
pop ecx
mov ecx, eax
mov dword [ebp + 0xc], ecx
cmp ecx, ebx
mov byte [ebp - 4], 0x67
je 0x5889d702
call fcn.5889ae84
mov dword [ebp + 0xc], eax
jmp 0x5889d705
mov dword [ebp + 0xc], ebx
push dword [ebp + 0xc]
lea ecx, [ebp - 0xfc]
push dword [ebp - 0xf4]
mov byte [ebp - 4], 0x66
call sub.MFC42u.DLL_CPtrArray::SetAtGrow
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x8c8]
push eax
call sub.MFC42u.DLL_COleVariant::operator
lea ecx, [ebp - 0x28]
call sub.MFC42u.DLL_CString::CString_1
mov eax, dword [ebp - 0x320]
cmp eax, ebx
mov byte [ebp - 4], 0x68
je 0x5889d778
cmp eax, 0x10000
je 0x5889d774
cmp eax, 0x10500
je 0x5889d770
cmp eax, 0x11000
je 0x5889d76c
xor ecx, ecx
cmp eax, 0x12000
sete cl
dec ecx
and ecx, 0xffffffe8
add ecx, 0x1d
mov eax, ecx
jmp 0x5889d77b
push 0x1c
jmp 0x5889d77a
push 0x1b
jmp 0x5889d77a
push 0x1a
jmp 0x5889d77a
push 0x1e
pop eax
push eax
lea ecx, [ebp - 0x28]
call sub.MFC42u.DLL_CString::LoadStringW
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x28]
push eax
add ecx, 0x10
call sub.MFC42u.DLL_COleVariant::operator_2
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x66
call sub.MFC42u.DLL_CString::CString
inc dword [ebp + 0x14]
jmp 0x5889d695
mov eax, dword [ebp - 0xf4]
mov dword [esi], eax
shl eax, 2
push eax
call sub.MFC42u.DLL_operatornew
pop ecx
mov dword [edi], eax
mov dword [ebp + 0xc], ebx
mov eax, dword [ebp + 0xc]
cmp eax, dword [esi]
jge 0x5889d7e3
mov edx, dword [ebp - 0xf8]
mov ecx, dword [edi]
shl eax, 2
mov edx, dword [edx + eax]
inc dword [ebp + 0xc]
mov dword [eax + ecx], edx
jmp 0x5889d7be
mov eax, dword [ebp - 0x14]
cmp eax, ebx
mov dword [ebp - 4], 0x65
je 0x5889d7f7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0xfc]
or dword [ebp - 4], 0xffffffff
call fcn.5889e7fc
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0x10