Function at 0x490ea0
Capabilities:
Query or enumerate registry value

Disassembly:
push 0xffffffffffffffff
push 0x4aacd9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4a8
push ebx
push ebp
push esi
push edi
xor ebp, ebp
lea ecx, [esp + 0x2c]
mov dword [esp + 0x4c0], ebp
call sub.MFC42.DLL_CString::CString_1
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x1ac]
mov byte [esp + 0x4c0], 1
rep stosd dword es:[edi], eax
mov ecx, 0x41
lea edi, [esp + 0x2b0]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x4d0]
lea ecx, [esp + 0x2c]
push eax
call fcn.004a5764
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CString::MakeLower
mov eax, dword [esp + 0x4d4]
xor ebx, ebx
cmp eax, 1
mov dword [esp + 0x34], ebx
jne 0x491001
mov ecx, dword [esp + 0x4d8]
mov eax, dword [ecx - 8]
cdq
and edx, 3
add eax, edx
mov ebx, eax
sar ebx, 2
mov dword [esp + 0x34], ebx
je 0x491001
lea edx, [ebx*4 + 4]
push edx
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x60], eax
cmp eax, ebp
mov byte [esp + 0x4c0], 2
je 0x490f80
push sub.MFC42.DLL_CString::CString
push sub.MFC42.DLL_CString::CString_1
lea esi, [eax + 4]
push ebx
push 4
push esi
mov dword [eax], ebx
call fcn.004a5baf
jmp 0x490f82
xor esi, esi
lea ecx, [esp + 0x4d8]
mov byte [esp + 0x4c0], 1
mov dword [esp + 0x44], esi
call sub.MFC42.DLL_CString::MakeLower
cmp ebx, ebp
jle 0x491001
mov edi, ebx
lea eax, [esp + 0x4d8]
lea ecx, [esp + 0x20]
push eax
call fcn.004a57ee
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x4c0], 3
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x20]
add eax, 0xfffffffc
push eax
push 4
call sub.MFC42.DLL_CString::Delete
lea edx, [esp + 0x20]
mov ecx, esi
push edx
call fcn.004a5776
push 4
push ebp
lea ecx, [esp + 0x4e0]
call sub.MFC42.DLL_CString::Delete
lea ecx, [esp + 0x20]
mov byte [esp + 0x4c0], 1
call sub.MFC42.DLL_CString::CString
add esi, 4
dec edi
jne 0x490fa0
mov esi, 0x4e6ad4
push 0x4e5a9c
lea ecx, [esi - 4]
call fcn.004a5764
push 0x4e5a9c
mov ecx, esi
call fcn.004a5764
add esi, 8
cmp esi, 0x4e6b54
jl 0x491006
mov eax, dword [0x4e765c]
xor edi, edi
cmp eax, ebp
jle 0x49105f
mov esi, 0x4e6ef8
push 0xffffffffffffffff
push ebp
mov ecx, esi
call sub.MFC42.DLL_CStringArray::SetSize
push 0xffffffffffffffff
push 8
mov ecx, esi
call sub.MFC42.DLL_CStringArray::SetSize
mov eax, dword [0x4e765c]
mov dword [esi - 0xc], ebp
inc edi
add esi, 0x3c
cmp edi, eax
jl 0x49103a
mov edi, dword [sym.imp.MSVCRT.dll__mbscmp]
cmp eax, ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x38], ebp
jle 0x491612
mov esi, 0x4e6ee4
push ebp
push str.05e3
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
jne 0x4910a2
push ebp
push str.05E3
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x491127
push ebp
push str.0608
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x491127
push ebp
push str.01
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x491127
mov ebx, 1
push esi
push ebp
mov ecx, 0x4e6aa0
mov dword [esp + 0x30], ebx
call sub.MFC42.DLL_CStringArray::SetAtGrow
cmp dword [0x4e6ac0], ebx
jl 0x491118
lea eax, [esp + 0x30]
push ebp
push eax
mov ecx, 0x4e6ab8
call fcn.0048b080
mov eax, dword [eax]
push 0x4e5a9c
push eax
call edi
add esp, 8
lea ecx, [esp + 0x30]
test eax, eax
sete bl
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x491127
lea ecx, [esi + 0xc]
push ecx
jmp 0x49111c
lea edx, [esi + 0xc]
push edx
push ebp
mov ecx, 0x4e6ab8
call sub.MFC42.DLL_CStringArray::SetAtGrow
push ebp
push str.aabb
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
jne 0x49114f
push ebp
push str.AABB
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x4911d4
push ebp
push str.3388
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x4911d4
push ebp
push str.01
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x4911d4
mov ebx, 1
push esi
push ebp
mov ecx, 0x4e6aa0
mov dword [esp + 0x30], ebx
call sub.MFC42.DLL_CStringArray::SetAtGrow
cmp dword [0x4e6ac0], ebx
jl 0x4911c5
lea eax, [esp + 0x20]
push ebp
push eax
mov ecx, 0x4e6ab8
call fcn.0048b080
mov eax, dword [eax]
push 0x4e5a9c
push eax
call edi
add esp, 8
lea ecx, [esp + 0x20]
test eax, eax
sete bl
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x4911d4
lea ecx, [esi + 0xc]
push ecx
jmp 0x4911c9
lea edx, [esi + 0xc]
push edx
push ebp
mov ecx, 0x4e6ab8
call sub.MFC42.DLL_CStringArray::SetAtGrow
push ebp
push str.05e3
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
jne 0x4911fc
push ebp
push str.05E3
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x491284
push ebp
push str.0608
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x491284
push ebp
push str.02
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x491284
push esi
push 1
mov ecx, 0x4e6aa0
mov dword [esp + 0x30], 1
call sub.MFC42.DLL_CStringArray::SetAtGrow
cmp dword [0x4e6ac0], 2
jl 0x491274
lea eax, [esp + 0x24]
push 1
push eax
mov ecx, 0x4e6ab8
call fcn.0048b080
mov eax, dword [eax]
push 0x4e5a9c
push eax
call edi
add esp, 8
lea ecx, [esp + 0x24]
test eax, eax
sete bl
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x491284
lea ecx, [esi + 0xc]
push ecx
jmp 0x491278
lea edx, [esi + 0xc]
push edx
push 1
mov ecx, 0x4e6ab8
call sub.MFC42.DLL_CStringArray::SetAtGrow
push ebp
push str.aabb
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
jne 0x4912ac
push ebp
push str.AABB
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x491334
push ebp
push str.3388
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x491334
push ebp
push str.02
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x491334
push esi
push 1
mov ecx, 0x4e6aa0
mov dword [esp + 0x30], 1
call sub.MFC42.DLL_CStringArray::SetAtGrow
cmp dword [0x4e6ac0], 2
jl 0x491324
lea eax, [esp + 0x1c]
push 1
push eax
mov ecx, 0x4e6ab8
call fcn.0048b080
mov eax, dword [eax]
push 0x4e5a9c
push eax
call edi
add esp, 8
lea ecx, [esp + 0x1c]
test eax, eax
sete bl
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x491334
lea ecx, [esi + 0xc]
push ecx
jmp 0x491328
lea edx, [esi + 0xc]
push edx
push 1
mov ecx, 0x4e6ab8
call sub.MFC42.DLL_CStringArray::SetAtGrow
push ebp
push str.05e3
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
jne 0x49135c
push ebp
push str.05E3
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x4913e4
push ebp
push str.0608
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x4913e4
push ebp
push str.03
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x4913e4
push esi
push 2
mov ecx, 0x4e6aa0
mov dword [esp + 0x30], 1
call sub.MFC42.DLL_CStringArray::SetAtGrow
cmp dword [0x4e6ac0], 3
jl 0x4913d4
lea eax, [esp + 0x14]
push 2
push eax
mov ecx, 0x4e6ab8
call fcn.0048b080
mov eax, dword [eax]
push 0x4e5a9c
push eax
call edi
add esp, 8
lea ecx, [esp + 0x14]
test eax, eax
sete bl
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x4913e4
lea ecx, [esi + 0xc]
push ecx
jmp 0x4913d8
lea edx, [esi + 0xc]
push edx
push 2
mov ecx, 0x4e6ab8
call sub.MFC42.DLL_CStringArray::SetAtGrow
push ebp
push str.aabb
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
jne 0x49140c
push ebp
push str.AABB
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x491494
push ebp
push str.3388
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x491494
push ebp
push str.03
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x491494
push esi
push 2
mov ecx, 0x4e6aa0
mov dword [esp + 0x30], 1
call sub.MFC42.DLL_CStringArray::SetAtGrow
cmp dword [0x4e6ac0], 3
jl 0x491484
lea eax, [esp + 0x18]
push 2
push eax
mov ecx, 0x4e6ab8
call fcn.0048b080
mov eax, dword [eax]
push 0x4e5a9c
push eax
call edi
add esp, 8
lea ecx, [esp + 0x18]
test eax, eax
sete bl
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x491494
lea ecx, [esi + 0xc]
push ecx
jmp 0x491488
lea edx, [esi + 0xc]
push edx
push 2
mov ecx, 0x4e6ab8
call sub.MFC42.DLL_CStringArray::SetAtGrow
push ebp
push str.05e3
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
jne 0x4914bc
push ebp
push str.05E3
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x491544
push ebp
push str.0608
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x491544
push ebp
push str.04
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x491544
push esi
push 3
mov ecx, 0x4e6aa0
mov dword [esp + 0x30], 1
call sub.MFC42.DLL_CStringArray::SetAtGrow
cmp dword [0x4e6ac0], 4
jl 0x491534
lea eax, [esp + 0x10]
push 3
push eax
mov ecx, 0x4e6ab8
call fcn.0048b080
mov eax, dword [eax]
push 0x4e5a9c
push eax
call edi
add esp, 8
lea ecx, [esp + 0x10]
test eax, eax
sete bl
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x491544
lea ecx, [esi + 0xc]
push ecx
jmp 0x491538
lea edx, [esi + 0xc]
push edx
push 3
mov ecx, 0x4e6ab8
call sub.MFC42.DLL_CStringArray::SetAtGrow
push ebp
push str.aabb
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
jne 0x49156c
push ebp
push str.AABB
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x4915f4
push ebp
push str.3388
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x4915f4
push ebp
push str.04
mov ecx, esi
call sub.MFC42.DLL_CString::Find_2
cmp eax, 0xffffffff
je 0x4915f4
push esi
push 3
mov ecx, 0x4e6aa0
mov dword [esp + 0x30], 1
call sub.MFC42.DLL_CStringArray::SetAtGrow
cmp dword [0x4e6ac0], 4
jl 0x4915e4
lea eax, [esp + 0x50]
push 3
push eax
mov ecx, 0x4e6ab8
call fcn.0048b080
mov eax, dword [eax]
push 0x4e5a9c
push eax
call edi
add esp, 8
lea ecx, [esp + 0x50]
test eax, eax
sete bl
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x4915f4
lea ecx, [esi + 0xc]
push ecx
jmp 0x4915e8
lea edx, [esi + 0xc]
push edx
push 3
mov ecx, 0x4e6ab8
call sub.MFC42.DLL_CStringArray::SetAtGrow
mov eax, dword [esp + 0x38]
mov ecx, dword [0x4e765c]
inc eax
add esi, 0x3c
cmp eax, ecx
mov dword [esp + 0x38], eax
jl 0x49107a
mov ebx, dword [esp + 0x34]
lea eax, [esp + 0x2b0]
push str.SYSTEMCurrentControlSetServicesUSBSTOREnum
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x2b0]
push ecx
push 0x20019
push ebp
push edx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x491fe5
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x1ac]
push eax
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x4c]
push ecx
push edx
push ebp
push str.Count
push eax
mov dword [esp + 0x60], 4
mov dword [esp + 0x64], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x491fda
movsx eax, byte [esp + 0x1ac]
cmp eax, ebp
mov dword [esp + 0x60], eax
mov dword [esp + 0x38], ebp
jbe 0x491fda
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x3c]
push 0
push edx
push 0
lea eax, [esp + 0x88]
push 0xa
push eax
push ecx
mov dword [esp + 0x64], 1
call dword [sym.imp.MSVCRT.dll__itoa]
mov edx, dword [esp + 0x58]
add esp, 0xc
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x491fbf
mov eax, dword [esp + 0x4c]
push eax
call dword [sym.imp.MSVCRT.dll_malloc]
add esp, 4
lea ecx, [esp + 0x4c]
mov ebx, eax
lea edx, [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x3c]
push ebx
push edx
push 0
lea eax, [esp + 0x88]
push 0xa
push eax
push ecx
mov dword [esp + 0x84], ebx
call dword [sym.imp.MSVCRT.dll__itoa]
mov edx, dword [esp + 0x58]
add esp, 0xc
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push ebx
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x24]
mov byte [esp + 0x4c0], 4
call sub.MFC42.DLL_CString::MakeLower
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x24]
mov eax, dword [eax - 8]
push eax
call sub.MFC42.DLL_CString::GetBuffer
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push 0xffffffffffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::ReleaseBuffer
mov eax, dword [esp + 0x4d4]
xor ebp, ebp
test eax, eax
mov dword [esp + 0x30], ebp
je 0x4917c8
mov eax, dword [esp + 0x34]
xor esi, esi
test eax, eax
jle 0x4917c8
mov edi, dword [esp + 0x44]
mov eax, dword [edi]
push eax
push ebx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
jne 0x4917bf
mov eax, dword [esp + 0x34]
inc esi
add edi, 4
cmp esi, eax
jl 0x4917a0
jmp 0x4917c8
mov ebp, 1
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x4c8]
mov esi, dword [sym.imp.MSVCRT.dll_strstr]
push eax
push ebx
call esi
add esp, 8
test eax, eax
jne 0x491809
mov ecx, dword [esp + 0x4cc]
push ecx
push ebx
call esi
add esp, 8
test eax, eax
jne 0x491809
mov edx, dword [esp + 0x2c]
push edx
push ebx
call esi
add esp, 8
test eax, eax
jne 0x491809
test ebp, ebp
je 0x491fa4
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x4c0], 5
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x14]
mov byte [esp + 0x4c0], 6
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x20]
mov byte [esp + 0x4c0], 7
call sub.MFC42.DLL_CString::CString_1
xor eax, eax
mov ecx, 0x41
mov dword [esp + 0x58], eax
lea edi, [esp + 0x3b4]
rep stosd dword es:[edi], eax
mov ecx, 0x41
lea edi, [esp + 0xa8]
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.MSVCRT.dll_sprintf]
push ebx
lea ecx, [esp + 0x3b8]
push str.SYSTEMCurrentControlSetEnum_s
push ecx
mov byte [esp + 0x4cc], 8
mov dword [esp + 0x68], eax
mov dword [esp + 0x24], eax
call edi
add esp, 0xc
lea edx, [esp + 0x54]
lea eax, [esp + 0x3b4]
push edx
push 0x20019
push 0
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4918e2
lea ecx, [esp + 0x4c]
lea edx, [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0x58]
lea eax, [esp + 0x4c]
push edx
push eax
push 0
push str.ParentIdPrefix
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov edx, dword [esp + 0x54]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebp, dword [esp + 0x4c8]
lea eax, [esp + 0x80]
push ebp
push str.pid__s
push eax
call edi
mov ecx, dword [esp + 0x4d8]
lea edx, [esp + 0xa0]
push ecx
push str.pid__s
push edx
call edi
mov eax, dword [esp + 0x4ec]
add esp, 0x18
test eax, eax
je 0x4919e3
mov esi, dword [sym.imp.MSVCRT.dll_strstr]
lea eax, [esp + 0x80]
push eax
push ebx
call esi
add esp, 8
test eax, eax
jne 0x4919e9
lea ecx, [esp + 0x94]
push ecx
push ebx
call esi
add esp, 8
test eax, eax
jne 0x4919e9
mov edx, dword [esp + 0x2c]
push edx
push ebx
call esi
add esp, 8
test eax, eax
jne 0x4919e9
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0x30]
mov eax, dword [ebp + edi*4]
push eax
push ebx
call esi
add esp, 8
test eax, eax
je 0x49205e
push ebx
lea ecx, [esp + 0x14]
call fcn.004a5764
mov eax, dword [ebp + edi*4]
push 0
push eax
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_2
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x50]
mov ecx, dword [ecx - 8]
sub ecx, eax
add eax, 0xe
sub ecx, 0x10
push ecx
push eax
push edx
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::Mid
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x4c4], 0xa
call fcn.004a5776
lea ecx, [esp + 0x50]
mov byte [esp + 0x4c0], 8
call sub.MFC42.DLL_CString::CString
jmp 0x491aac
mov esi, dword [sym.imp.MSVCRT.dll_strstr]
lea eax, [esp + 0x80]
push eax
push ebx
call esi
add esp, 8
test eax, eax
je 0x491a0d
push 0x4df2e0
push ebp
lea ecx, [esp + 0x60]
push 0x4dfaa4
push ecx
jmp 0x491a47
lea edx, [esp + 0x94]
push edx
push ebx
call esi
add esp, 8
test eax, eax
push 0x4df2e0
je 0x491a38
mov eax, dword [esp + 0x4d0]
lea ecx, [esp + 0x5c]
push eax
push 0x4dfaa4
push ecx
jmp 0x491a47
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x5c]
push edx
push 0x4dfaa4
push eax
call edi
add esp, 0x10
lea ecx, [esp + 0x10]
push ebx
call fcn.004a5764
lea ecx, [esp + 0x58]
push 0
push ecx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_2
mov edx, dword [esp + 0x10]
mov ecx, dword [edx - 8]
sub ecx, eax
add eax, 5
sub ecx, 7
push ecx
push eax
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x18]
push eax
call sub.MFC42.DLL_CString::Mid
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x4c4], 9
call fcn.004a5776
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 8
call sub.MFC42.DLL_CString::CString
mov ebp, dword [esp + 0x44]
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov edi, dword [0x4e6ac0]
not ecx
dec ecx
mov dword [esp + 0x30], edi
test edi, edi
mov cl, byte [ecx + ebx - 1]
mov byte [esp + 0x43], cl
jle 0x491d11
xor esi, esi
test edi, edi
jle 0x491b12
mov ebp, dword [sym.imp.MSVCRT.dll__mbscmp]
lea edx, [esp + 0x70]
push esi
push edx
mov ecx, 0x4e6ab8
call fcn.0048b080
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax]
push ecx
push eax
call ebp
add esp, 8
lea ecx, [esp + 0x70]
test eax, eax
sete bl
call sub.MFC42.DLL_CString::CString
test bl, bl
jne 0x491b66
inc esi
cmp esi, edi
jl 0x491ade
cmp dword [esp + 0x28], 1
jne 0x491bf9
lea ecx, [esp + 0x20]
mov byte [esp + 0x4c0], 7
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x4c0], 6
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x4c0], 5
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov byte [esp + 0x4c0], 4
call sub.MFC42.DLL_CString::CString
jmp 0x491fae
xor ebp, ebp
mov dword [esp + 0x30], esi
test esi, esi
jle 0x491e05
cmp dword [esp + 0x28], 1
jne 0x491b84
mov eax, dword [esp + 0x18]
add eax, 4
jmp 0x491be7
mov eax, dword [0x4e765c]
xor edi, edi
test eax, eax
jle 0x491beb
mov esi, 0x4e6ef0
lea edx, [esp + 0x6c]
push ebp
push edx
mov ecx, 0x4e6ab8
call fcn.0048b080
mov eax, dword [eax]
mov ecx, dword [esi]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
lea ecx, [esp + 0x6c]
test eax, eax
sete bl
call sub.MFC42.DLL_CString::CString
test bl, bl
jne 0x491bd4
mov eax, dword [0x4e765c]
inc edi
add esi, 0x3c
cmp edi, eax
jl 0x491b94
jmp 0x491beb
lea edi, [edi + edi*2]
lea eax, [edi + edi*4]
mov ecx, dword [eax*4 + 0x4e6ee8]
mov eax, dword [esp + 0x18]
add eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
inc ebp
cmp ebp, eax
jl 0x491b74
jmp 0x491e05
mov eax, dword [esp + 0x30]
xor ebp, ebp
test eax, eax
jle 0x491c73
mov eax, dword [0x4e765c]
xor edi, edi
test eax, eax
jle 0x491c6a
mov esi, 0x4e6ef0
lea edx, [esp + 0x64]
push ebp
push edx
mov ecx, 0x4e6ab8
call fcn.0048b080
mov eax, dword [eax]
mov ecx, dword [esi]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
lea ecx, [esp + 0x64]
test eax, eax
sete bl
call sub.MFC42.DLL_CString::CString
test bl, bl
jne 0x491c53
mov eax, dword [0x4e765c]
inc edi
add esi, 0x3c
cmp edi, eax
jl 0x491c13
jmp 0x491c6a
lea edi, [edi + edi*2]
lea eax, [edi + edi*4]
mov ecx, dword [eax*4 + 0x4e6ee8]
mov eax, dword [esp + 0x18]
add eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
inc ebp
cmp ebp, eax
jl 0x491c03
push 0x4e5a9c
lea ecx, [esp + 0x18]
call fcn.004a5764
mov eax, dword [0x4e765c]
xor esi, esi
test eax, eax
jle 0x491cd0
mov ebx, dword [sym.imp.MSVCRT.dll__mbscmp]
mov edi, 0x4e6ef0
mov edx, dword [esp + 0x1c]
mov eax, dword [edi]
push edx
push eax
call ebx
add esp, 8
test eax, eax
je 0x491cb7
mov eax, dword [0x4e765c]
inc esi
add edi, 0x3c
cmp esi, eax
jl 0x491c97
jmp 0x491cd6
lea eax, [esi + esi*2]
lea eax, [eax + eax*4]
lea ecx, [eax*4 + 0x4e6ee4]
push ecx
lea ecx, [esp + 0x18]
call fcn.004a5776
jmp 0x491cd6
mov ebx, dword [sym.imp.MSVCRT.dll__mbscmp]
mov edx, dword [esp + 0x14]
push 0x4e5a9c
push edx
call ebx
add esp, 8
test eax, eax
je 0x492099
mov eax, dword [0x4e6ac0]
lea ecx, [esp + 0x1c]
push ecx
push eax
mov ecx, 0x4e6ab8
call sub.MFC42.DLL_CStringArray::SetAtGrow
mov eax, dword [0x4e6aa8]
lea edx, [esp + 0x14]
push edx
jmp 0x491dfa
cmp dword [esp + 0x28], 1
jne 0x491d61
lea ecx, [esp + 0x20]
mov byte [esp + 0x4c0], 7
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x4c0], 6
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x4c0], 5
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov byte [esp + 0x4c0], 4
call sub.MFC42.DLL_CString::CString
jmp 0x491fae
push 0x4e5a9c
lea ecx, [esp + 0x18]
call fcn.004a5764
mov eax, dword [0x4e765c]
xor esi, esi
test eax, eax
jle 0x491dbe
mov ebx, dword [sym.imp.MSVCRT.dll__mbscmp]
mov edi, 0x4e6ef0
mov ecx, dword [esp + 0x1c]
mov eax, dword [edi]
push ecx
push eax
call ebx
add esp, 8
test eax, eax
je 0x491da5
mov eax, dword [0x4e765c]
inc esi
add edi, 0x3c
cmp esi, eax
jl 0x491d85
jmp 0x491dc4
lea eax, [esi + esi*2]
lea ecx, [esp + 0x14]
lea edx, [eax + eax*4]
lea eax, [edx*4 + 0x4e6ee4]
push eax
call fcn.004a5776
jmp 0x491dc4
mov ebx, dword [sym.imp.MSVCRT.dll__mbscmp]
mov ecx, dword [esp + 0x14]
push 0x4e5a9c
push ecx
call ebx
add esp, 8
test eax, eax
je 0x4920cf
mov eax, dword [0x4e6ac0]
lea edx, [esp + 0x1c]
push edx
push eax
mov ecx, 0x4e6ab8
call sub.MFC42.DLL_CStringArray::SetAtGrow
mov eax, dword [0x4e6aa8]
lea ecx, [esp + 0x14]
push ecx
push eax
mov ecx, 0x4e6aa0
call sub.MFC42.DLL_CStringArray::SetAtGrow
movsx eax, byte [esp + 0x43]
add eax, 0xffffffcf
cmp eax, 7
ja case.default.0x491e16
jmp dword [eax*4 + 0x492194]
mov esi, dword [esp + 0x18]
lea edx, [esp + 0x10]
push edx
lea ecx, [esi*8 + 0x4e6ad4]
call fcn.004a5776
lea eax, [esp + 0xa8]
lea ecx, [esi*8 + 0x4e6ad0]
push eax
jmp 0x491f57
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi*8 + 0x4e6adc]
call fcn.004a5776
lea edx, [esp + 0xa8]
lea ecx, [esi*8 + 0x4e6ad8]
push edx
jmp 0x491f57
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x10]
push eax
lea ecx, [esi*8 + 0x4e6ae4]
call fcn.004a5776
lea ecx, [esp + 0xa8]
push ecx
lea ecx, [esi*8 + 0x4e6ae0]
jmp 0x491f57
mov esi, dword [esp + 0x18]
lea edx, [esp + 0x10]
push edx
lea ecx, [esi*8 + 0x4e6aec]
call fcn.004a5776
lea eax, [esp + 0xa8]
lea ecx, [esi*8 + 0x4e6ae8]
push eax
jmp 0x491f57
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi*8 + 0x4e6af4]
call fcn.004a5776
lea edx, [esp + 0xa8]
lea ecx, [esi*8 + 0x4e6af0]
push edx
jmp 0x491f57
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x10]
push eax
lea ecx, [esi*8 + 0x4e6afc]
call fcn.004a5776
lea ecx, [esp + 0xa8]
push ecx
lea ecx, [esi*8 + 0x4e6af8]
jmp 0x491f57
mov esi, dword [esp + 0x18]
lea edx, [esp + 0x10]
push edx
lea ecx, [esi*8 + 0x4e6b04]
call fcn.004a5776
lea eax, [esp + 0xa8]
lea ecx, [esi*8 + 0x4e6b00]
push eax
jmp 0x491f57
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esi*8 + 0x4e6b0c]
call fcn.004a5776
lea edx, [esp + 0xa8]
lea ecx, [esi*8 + 0x4e6b08]
push edx
call fcn.004a5764
lea ecx, [esp + 0x20]
mov byte [esp + 0x4c0], 7
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x4c0], 6
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x4c0], 5
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov byte [esp + 0x4c0], 4
call sub.MFC42.DLL_CString::CString
mov ebx, dword [esp + 0x68]
push ebx
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
lea ecx, [esp + 0x24]
mov byte [esp + 0x4c0], 1
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x60]
inc eax
cmp eax, ecx
mov dword [esp + 0x38], eax
jb 0x4916a1
mov ebx, dword [esp + 0x34]
xor ebp, ebp
mov ecx, dword [esp + 0x3c]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [esp + 0x4d4], 1
jne 0x492018
cmp ebx, ebp
je 0x492018
mov eax, dword [esp + 0x44]
cmp eax, ebp
je 0x492018
mov edx, dword [eax - 4]
lea esi, [eax - 4]
push sub.MFC42.DLL_CString::CString
push edx
push 4
push eax
call fcn.004a5c31
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x2c]
mov byte [esp + 0x4c0], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x4d8]
mov dword [esp + 0x4c0], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 1
mov ecx, dword [esp + 0x4b8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x4b4
ret
mov eax, dword [esp + 0x3c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [esp + 0x4d4], 1
jne 0x49210d
mov eax, dword [esp + 0x34]
test eax, eax
je 0x49210d
test ebp, ebp
je 0x49210d
mov ecx, dword [ebp - 4]
lea esi, [ebp - 4]
push sub.MFC42.DLL_CString::CString
push ecx
jmp 0x4920fc
mov edx, dword [esp + 0x3c]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [esp + 0x4d4], 1
jne 0x49210d
mov eax, dword [esp + 0x34]
test eax, eax
je 0x49210d
mov eax, dword [esp + 0x44]
test eax, eax
je 0x49210d
mov ecx, dword [eax - 4]
lea esi, [eax - 4]
push sub.MFC42.DLL_CString::CString
push ecx
push 4
push eax
jmp 0x4920ff
mov edx, dword [esp + 0x3c]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [esp + 0x4d4], 1
jne 0x49210d
mov eax, dword [esp + 0x34]
test eax, eax
je 0x49210d
test ebp, ebp
je 0x49210d
mov eax, dword [ebp - 4]
lea esi, [ebp - 4]
push sub.MFC42.DLL_CString::CString
push eax
push 4
push ebp
call fcn.004a5c31
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x20]
mov byte [esp + 0x4c0], 7
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x4c0], 6
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x4c0], 5
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov byte [esp + 0x4c0], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x4c0], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x2c]
mov byte [esp + 0x4c0], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x4d8]
mov dword [esp + 0x4c0], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor eax, eax
jmp 0x492045