Function at 0x4210e0
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x425c3d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x154
movsx ecx, byte [0x42b749]
mov eax, dword [0x42b780]
push ebx
push esi
push edi
push eax
push ecx
call fcn.0040e380
mov edx, dword [0x42b784]
mov word [0x42b760], ax
push edx
push 0x734bffff
call fcn.0040e2c0
mov byte [0x42b749], al
mov al, byte [0x42b608]
sub al, 0x28
add esp, 0x10
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.004248b0
mov ecx, esp
mov edx, 0x42b608
call fcn.00422900
mov esi, eax
mov al, byte [ebp + 0xb]
push 0
lea ecx, [ebp - 0x4c]
mov byte [ebp - 0x4c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [ebp - 0x4c]
push ebx
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x4211a3
mov edi, dword [ebp - 0x48]
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x44], ebx
mov byte [eax + ebx], 0
mov eax, dword [ebp - 0x48]
mov dword [ebp - 4], 0
test eax, eax
mov dword [0x42b780], 0xbe640001
jne 0x4211c0
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
mov ecx, dword [ebp - 0x44]
mov edi, dword [ebp + 0xc]
xor esi, esi
push ecx
push esi
push eax
mov ecx, edi
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const___unsigned_int__unsigned_int_const]
mov dx, word [0x42b758]
mov ebx, eax
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
dec dx
mov word [0x42b762], dx
cmp dword [eax], ebx
jne 0x4218fb
push 0xde05ffff
push 0x5487ffff
mov dword [ebp - 0x3c], esi
call fcn.0040e400
mov word [0x42b754], ax
mov eax, dword [edi + 8]
add esp, 8
cmp eax, esi
je 0x4215c3
mov ecx, dword [0x42b774]
push ecx
push 0xa147ffff
call fcn.0040e450
movsx edx, word [0x42b756]
mov byte [0x42b74d], al
mov eax, dword [0x42b76c]
sub eax, edx
add esp, 8
mov dword [0x42b788], eax
mov edi, dword [edi + 4]
cmp edi, esi
jne 0x421251
mov edi, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
mov edx, dword [ebp + 8]
lea ecx, [ebp - 0x10]
push ecx
push 0x20019
push esi
push edi
push edx
call dword [0x42bcb4]
test eax, eax
jne 0x421866
movsx eax, byte [0x42b74a]
push 0xa7e5ffff
push eax
call fcn.0040e4a0
mov ecx, dword [0x42b774]
push 0x355bffff
add ecx, 0xafa60001
push 0x455fffff
mov byte [0x42b74b], al
mov dword [ebp + 0xc], esi
mov dword [0x42b768], ecx
call fcn.0040e400
mov ebx, dword [ebp + 0x10]
mov word [0x42b75c], ax
add esp, 0x10
mov eax, dword [ebx + 4]
cmp eax, esi
jne 0x4212c1
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
lea edx, [ebp + 0xc]
lea ecx, [ebp + 0xb]
push edx
lea edx, [ebp - 0x38]
push ecx
push edx
push esi
push eax
mov eax, dword [ebp - 0x10]
push eax
call dword [0x42bcbc]
push 0x73f1ffff
push 0xc955ffff
mov edi, eax
call fcn.0040e340
add esp, 8
cmp edi, 0xea
mov word [0x42b75c], ax
jne 0x421550
mov ecx, dword [ebp + 0xc]
cmp ax, si
setne al
shl al, 1
inc ecx
mov byte [0x42b74f], al
push ecx
mov dword [0x42b770], 0x116bffff
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov dx, word [0x42b770]
mov edi, eax
or dx, word [0x42b758]
mov eax, dword [ebp + 0xc]
add esp, 4
mov dword [ebp + 0x10], edi
mov word [0x42b762], dx
mov byte [edi + eax], 0
movsx ecx, word [0x42b760]
mov edx, dword [0x42b774]
mov eax, dword [0x42b780]
and edx, ecx
cmp eax, esi
mov dword [0x42b774], edx
je 0x421374
cmp word [0x42b762], si
mov word [0x42b75e], 1
jne 0x42137b
mov word [0x42b75e], si
mov edx, dword [0x42b76c]
push edx
push 0xccbdffff
call fcn.0040e2f0
mov word [0x42b75e], ax
mov eax, dword [ebx + 4]
add esp, 8
cmp eax, esi
jne 0x4213a1
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
lea ecx, [ebp + 0xc]
lea edx, [ebp - 0x38]
push ecx
push edi
push edx
push esi
push eax
mov eax, dword [ebp - 0x10]
push eax
call dword [0x42bcbc]
movsx ecx, byte [0x42b749]
push ecx
push 0xd53ffff
mov esi, eax
call fcn.0040e2c0
movsx edx, byte [0x42b749]
push edx
push 0xdf21ffff
mov byte [0x42b748], al
call fcn.0040e3c0
add esp, 0x10
mov word [0x42b756], ax
test esi, esi
jne 0x4214fb
mov eax, dword [0x42b768]
push 0xeebffff
push eax
call fcn.0040e2f0
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp + 0xc]
mov word [0x42b760], ax
mov edx, dword [ecx]
mov ecx, dword [ebx + 8]
sub edx, ecx
add esp, 8
cmp edx, esi
ja 0x421428
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x42146b
mov eax, dword [ebx + 8]
push 0
add eax, esi
mov ecx, ebx
push eax
mov dword [ebp + 0x14], eax
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x42146b
mov edi, dword [ebx + 8]
mov eax, dword [ebx + 4]
mov ecx, esi
mov esi, dword [ebp + 0x10]
add edi, eax
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp + 0x14]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 4]
mov dword [ebx + 8], eax
mov byte [eax + ecx], 0
movsx edx, word [0x42b754]
movsx cx, byte [0x42b748]
sub edx, 0xf380001
push 0x6159ffff
mov dword [0x42b784], edx
push 0xca1bffff
movsx dx, byte [0x42b749]
movsx eax, word [0x42b75c]
imul ecx, edx
or eax, 0x774dffff
mov word [0x42b752], cx
mov dword [0x42b774], eax
call fcn.0040e2f0
movsx ecx, word [0x42b752]
mov byte [0x42b74e], al
mov dword [ebp - 0x3c], 1
movsx eax, word [0x42b75c]
push eax
push ecx
call fcn.0040e2c0
movsx edx, word [0x42b75c]
push 0xabdfffff
push edx
mov byte [0x42b74e], al
call fcn.0040e2f0
mov edi, dword [ebp + 0x10]
add esp, 0x18
mov byte [0x42b74c], al
mov ax, word [0x42b768]
push edi
or ax, word [0x42b75a]
mov dword [0x42b76c], 0xd1e60001
mov word [0x42b762], ax
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
mov ecx, dword [0x42b774]
push ecx
push 0x4841ffff
call fcn.0040e4a0
mov edx, dword [0x42b770]
mov dword [0x42b784], eax
mov eax, dword [0x42b76c]
push edx
push eax
call fcn.0040e380
add esp, 0x14
mov dword [0x42b77c], eax
xor esi, esi
movsx edx, word [0x42b75a]
mov cl, byte [0x42b774]
mov bl, byte [0x42b74c]
mov eax, dword [ebp - 0x10]
sub cl, bl
or edx, 0x63bffff
push eax
mov byte [0x42b74c], cl
mov word [0x42b752], 0xffff
mov dword [0x42b778], 0x8003ffff
mov dword [0x42b774], edx
call dword [0x42bca4]
mov eax, dword [0x42b788]
mov edx, dword [0x42b774]
movsx ecx, ax
push ecx
push edx
mov word [0x42b756], ax
mov word [0x42b75e], si
call fcn.0040e3c0
add esp, 8
mov dword [0x42b76c], eax
jmp 0x421866
movsx ecx, word [0x42b75a]
mov eax, dword [0x42b774]
push eax
push ecx
call fcn.0040e2c0
movsx edx, byte [0x42b74b]
push 0x1483ffff
push edx
mov byte [0x42b749], al
call fcn.0040e450
mov byte [0x42b74e], al
push 0x1501ffff
movsx eax, byte [0x42b749]
push eax
mov dword [ebp - 0x10], esi
mov word [0x42b760], 0xffff
call fcn.0040e340
movsx ecx, word [0x42b762]
push 0x3db1ffff
push ecx
mov word [0x42b760], ax
call fcn.0040e290
mov edx, dword [0x42b780]
push 0x5959ffff
push edx
mov byte [0x42b74b], al
call fcn.0040e2c0
mov byte [0x42b748], al
mov eax, dword [0x42b774]
push 0xb867ffff
push eax
call fcn.0040e290
mov ebx, dword [ebp + 0x10]
mov dword [0x42b780], eax
add esp, 0x30
mov eax, dword [ebx + 4]
cmp eax, esi
jne 0x42166a
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
lea ecx, [ebp - 0x10]
lea edx, [ebp + 0xf]
push ecx
lea ecx, [ebp - 0x38]
push edx
mov edx, dword [ebp + 8]
push ecx
push esi
push eax
push edx
call dword [0x42bcbc]
push 0x3eabffff
push 0x3f15ffff
mov edi, eax
call fcn.0040e2f0
add esp, 8
cmp edi, 0xea
mov byte [0x42b74f], al
jne 0x421866
movsx eax, byte [0x42b74d]
push 0x3bebffff
push eax
call fcn.0040e400
movsx ecx, word [0x42b756]
mov edx, dword [0x42b778]
add ecx, 0x324a0001
push 0x81fffff
push edx
mov byte [0x42b748], al
mov dword [0x42b77c], ecx
call fcn.0040e290
mov byte [0x42b749], al
mov eax, dword [ebp - 0x10]
inc eax
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebp - 0x10]
mov esi, eax
mov dword [ebp + 0x10], esi
mov byte [esi + ecx], 0
mov edx, dword [0x42b788]
push edx
push 0xa85dffff
mov word [0x42b75a], 1
call fcn.0040e2f0
mov dword [0x42b770], eax
mov eax, dword [0x42b774]
add esp, 0x1c
dec eax
mov word [0x42b762], ax
mov eax, dword [ebx + 4]
test eax, eax
jne 0x421737
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
lea ecx, [ebp - 0x10]
lea edx, [ebp - 0x38]
push ecx
push esi
push edx
push 0
push eax
mov eax, dword [ebp + 8]
push eax
call dword [0x42bcbc]
movsx ecx, word [0x42b756]
push ecx
push 0xf7b5ffff
mov edi, eax
mov dword [0x42b774], 0x401ffff
call fcn.0040e380
add esp, 8
mov word [0x42b758], ax
test edi, edi
mov byte [0x42b74a], 0
jne 0x42180f
push 0xfe27ffff
push 0xc88bffff
call fcn.0040e290
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp - 0x10]
mov word [0x42b754], ax
mov dword [0x42b76c], 1
mov eax, dword [edx]
mov edx, dword [ebx + 8]
add esp, 8
sub eax, edx
cmp eax, esi
ja 0x4217c2
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x421805
mov eax, dword [ebx + 8]
push 0
add eax, esi
mov ecx, ebx
push eax
mov dword [ebp + 8], eax
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x421805
mov edi, dword [ebx + 8]
mov edx, dword [ebx + 4]
mov ecx, esi
mov esi, dword [ebp + 0x10]
add edi, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 8]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 4]
mov dword [ebx + 8], eax
mov byte [eax + ecx], 0
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x3c], 1
movsx edx, byte [0x42b74f]
movsx eax, word [0x42b75c]
push edx
push eax
call fcn.0040e400
movsx ecx, byte [0x42b749]
movsx edx, word [0x42b75a]
push ecx
push edx
mov byte [0x42b74d], al
call fcn.0040e3c0
movsx ecx, byte [0x42b74b]
mov byte [0x42b74e], al
mov eax, dword [0x42b788]
push eax
push ecx
call fcn.0040e450
push esi
mov byte [0x42b74e], al
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 0x1c
xor esi, esi
mov bl, byte [0x42b74b]
mov ax, word [0x42b75a]
xor edx, edx
mov ecx, dword [ebp - 0x48]
test bl, bl
setne dl
neg ax
mov word [0x42b752], ax
mov eax, dword [ebp - 0x3c]
cmp eax, esi
mov word [0x42b756], dx
mov dword [0x42b77c], 1
je 0x4218c9
cmp ecx, esi
je 0x4218c2
mov al, byte [ecx - 1]
test al, al
je 0x4218b8
cmp al, 0xff
je 0x4218b8
dec al
mov byte [ecx - 1], al
xor eax, eax
jmp 0x4221a1
dec ecx
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
xor eax, eax
jmp 0x4221a1
cmp ecx, esi
je 0x4218f1
mov al, byte [ecx - 1]
test al, al
je 0x4218e7
cmp al, 0xff
je 0x4218e7
dec al
mov byte [ecx - 1], al
mov eax, 2
jmp 0x4221a1
dec ecx
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, 2
jmp 0x4221a1
movsx ecx, word [0x42b760]
push ecx
push 0x275fffff
call fcn.0040e2f0
mov dl, byte [0x42b750]
mov word [0x42b758], ax
mov al, byte [0x42b74d]
add esp, 8
movsx ecx, word [0x42b75c]
or dl, al
sub ecx, 0x211a0001
movsx ax, dl
mov dl, byte [ebp + 0xb]
mov word [0x42b75a], ax
mov dword [0x42b770], ecx
mov byte [ebp - 0x34], dl
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], esi
mov al, byte [0x42b780]
mov byte [ebp - 4], 1
shl al, 1
cmp ebx, esi
mov byte [0x42b74a], al
jbe 0x421aa2
mov eax, dword [edi + 8]
lea esi, [ebx - 1]
cmp eax, esi
ja 0x421977
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xran_void_]
mov ecx, dword [edi + 4]
cmp byte [ecx + esi], 0x5c
jne 0x421aa0
push esi
lea edx, [ebp - 0x60]
push 0
push edx
mov ecx, edi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::substr_unsigned_int__unsigned_int_]
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov byte [ebp - 4], 2
mov edx, dword [ecx]
lea ecx, [ebp - 0x34]
push edx
push 0
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov eax, dword [ebp - 0x5c]
mov byte [ebp - 4], 1
test eax, eax
je 0x4219d1
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x421a92
cmp al, 0xff
je 0x421a92
dec al
mov byte [ecx], al
xor esi, esi
movsx eax, byte [0x42b749]
movsx edx, byte [0x42b74b]
mov ecx, dword [0x42b76c]
push 0x2ed7ffff
sub ecx, eax
push edx
mov dword [0x42b770], ecx
call fcn.0040e290
push 0xd4f3ffff
push 0x9a1ffff
mov word [0x42b756], ax
call fcn.0040e4a0
mov dword [0x42b784], eax
movsx eax, word [0x42b75e]
push eax
push 0x5943ffff
call fcn.0040e290
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov byte [0x42b748], al
mov eax, dword [ebp - 0x44]
add esp, 0x18
mov edx, dword [ecx]
add eax, ebx
push edx
lea ecx, [ebp - 0x20]
push eax
push ecx
mov ecx, edi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::substr_unsigned_int__unsigned_int_]
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 4
cmp ecx, esi
je 0x421b82
mov eax, dword [ebp - 0x1c]
cmp eax, esi
je 0x421afc
mov dl, byte [eax - 1]
test dl, dl
je 0x421a80
cmp dl, 0xff
je 0x421a80
push esi
push ecx
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp eax, esi
je 0x421a8e
mov byte [eax - 1], 0xff
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov edx, eax
jmp 0x421b02
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
jmp 0x4219d1
xor esi, esi
push ebx
lea eax, [ebp - 0x60]
push esi
push eax
mov ecx, edi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::substr_unsigned_int__unsigned_int_]
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov byte [ebp - 4], 3
mov edx, dword [ecx]
lea ecx, [ebp - 0x34]
push edx
push esi
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov eax, dword [ebp - 0x5c]
mov byte [ebp - 4], 1
cmp eax, esi
je 0x4219d3
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x421aee
cmp al, 0xff
je 0x421aee
dec al
mov byte [ecx], al
jmp 0x4219d3
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
jmp 0x4219d3
mov edx, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
cmp byte [edx], 0x5c
jne 0x421b82
test eax, eax
mov esi, 1
je 0x421b45
mov dl, byte [eax - 1]
test dl, dl
je 0x421b45
cmp dl, 0xff
je 0x421b45
push esi
lea ecx, [ebp - 0x20]
mov ebx, eax
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebx
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
jae 0x421b50
mov esi, ecx
test esi, esi
jbe 0x421b80
sub ecx, esi
lea edx, [eax + esi]
push ecx
push edx
push eax
call dword [sym.imp.MSVCRT.dll_memmove]
mov edi, dword [ebp - 0x18]
add esp, 0xc
sub edi, esi
lea ecx, [ebp - 0x20]
push 0
push edi
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x421b80
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], edi
mov byte [eax + edi], 0
xor esi, esi
movsx ecx, byte [0x42b74e]
movsx edx, word [0x42b756]
mov eax, dword [0x42b784]
or ecx, 0x39e1ffff
push edx
push eax
mov dword [0x42b788], ecx
call fcn.0040e2c0
mov byte [0x42b74d], al
movsx eax, byte [0x42b749]
push eax
push eax
call fcn.0040e3c0
movsx ecx, word [0x42b756]
push ecx
push 0x1803ffff
mov word [0x42b760], ax
call fcn.0040e3c0
movsx edx, word [0x42b758]
mov byte [0x42b74d], al
add edx, 0x763ffff
movsx ax, byte [0x42b74b]
mov dword [0x42b774], edx
mov edx, dword [0x42b778]
sub eax, edx
add esp, 0x18
mov word [0x42b760], ax
mov eax, dword [ebp - 0x30]
cmp eax, esi
jne 0x421c10
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
mov edx, dword [ebp + 8]
lea ecx, [ebp - 0x24]
push ecx
push 0x20019
push esi
push eax
push edx
call dword [0x42bcb4]
push 0x277dffff
push 0xe72dffff
mov edi, eax
call fcn.0040e4a0
add esp, 8
cmp edi, esi
mov word [0x42b75e], ax
je 0x421cce
mov ecx, dword [ebp - 0x1c]
cmp ecx, esi
je 0x421c6a
mov al, byte [ecx - 1]
test al, al
je 0x421c60
cmp al, 0xff
je 0x421c60
dec al
mov byte [ecx - 1], al
jmp 0x421c6a
dec ecx
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x1c], esi
cmp ecx, esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], esi
je 0x421c96
mov al, byte [ecx - 1]
test al, al
je 0x421c8c
cmp al, 0xff
je 0x421c8c
dec al
mov byte [ecx - 1], al
jmp 0x421c96
dec ecx
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x30], esi
cmp ecx, esi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], esi
je 0x421cc7
mov al, byte [ecx - 1]
test al, al
je 0x421cbd
cmp al, 0xff
je 0x421cbd
dec al
mov byte [ecx - 1], al
mov eax, edi
jmp 0x4221a1
dec ecx
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, edi
jmp 0x4221a1
movsx eax, byte [0x42b750]
movsx ecx, word [0x42b75c]
add eax, 0x3b900001
push 0xe8bfffff
push ecx
mov dword [0x42b774], eax
call fcn.0040e340
mov dl, byte [0x42b74d]
mov byte [0x42b74c], al
mov eax, dword [0x42b770]
add esp, 8
test dl, dl
lea ecx, [eax + eax*4]
setne dl
lea ecx, [eax + ecx*2]
mov byte [0x42b750], dl
xor edi, edi
lea edx, [ecx + ecx*4]
push edi
shl edx, 1
sub edx, eax
push edi
mov ecx, dword [ebp - 0x24]
push edi
shl edx, 0x11
push edi
sub edx, eax
push edi
push edi
lea eax, [ebp - 0x50]
push edi
push eax
push edi
push edi
push edi
push ecx
mov dword [0x42b77c], edx
call dword [0x42bcb8]
movsx edx, word [0x42b760]
mov esi, eax
push edx
movsx eax, byte [0x42b749]
push eax
call fcn.0040e380
movsx ecx, word [0x42b752]
push 0xf143ffff
push ecx
mov dword [0x42b780], eax
call fcn.0040e340
push 0x2d4bffff
push 0x3761ffff
mov word [0x42b758], ax
call fcn.0040e450
add esp, 0x18
cmp esi, edi
mov byte [0x42b74e], al
je 0x421e05
mov edx, dword [0x42b770]
push edx
push 0x6bd7ffff
call fcn.0040e4a0
add esp, 8
mov dword [0x42b76c], eax
mov eax, dword [ebp - 0x24]
push eax
call dword [0x42bca4]
mov ecx, dword [0x42b768]
push 0x5433ffff
push ecx
call fcn.0040e2c0
mov word [0x42b760], ax
push 0x3b61ffff
movsx eax, word [0x42b75e]
mov edx, eax
push 0x198dffff
shl edx, 5
sub edx, eax
shl edx, 1
sub edx, eax
neg edx
shl edx, 0x13
sub edx, eax
mov dword [0x42b76c], edx
call fcn.0040e380
add esp, 0x10
mov dword [0x42b780], eax
jmp 0x422124
mov ax, word [0x42b754]
cmp ax, di
je 0x421e20
cmp word [0x42b762], di
mov byte [0x42b74b], 1
jne 0x421e27
mov byte [0x42b74b], 0
mov ecx, dword [0x42b788]
movsx edx, ax
push ecx
push edx
call fcn.0040e380
push 0xbb51ffff
push 0x6109ffff
mov byte [0x42b748], al
call fcn.0040e400
mov word [0x42b756], ax
mov eax, dword [ebp - 0x50]
add esp, 0x10
cmp eax, edi
jbe 0x422099
mov ebx, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
mov al, byte [0x42b77c]
mov cl, byte [0x42b74e]
or al, cl
movsx ecx, byte [0x42b74c]
push ecx
push 0xefabffff
mov byte [0x42b749], al
call fcn.0040e3c0
mov edx, dword [0x42b780]
push 0xec9dffff
push edx
mov word [0x42b75e], ax
mov dword [ebp + 8], 0xff
mov byte [ebp - 0x160], 0
call fcn.0040e2f0
mov dword [0x42b77c], eax
mov al, byte [0x42b748]
add esp, 0x10
test al, al
je 0x421ed1
mov al, byte [0x42b74a]
mov word [0x42b75a], 1
test al, al
jne 0x421eda
mov word [0x42b75a], 0
mov edx, dword [ebp - 0x24]
push 0
push 0
push 0
lea eax, [ebp + 8]
push 0
lea ecx, [ebp - 0x160]
push eax
push ecx
push edi
push edx
call ebx
movsx eax, word [0x42b756]
push eax
push 0xc0abffff
call fcn.0040e380
movsx ecx, byte [0x42b749]
mov edx, dword [0x42b774]
push 0xaedffff
sub edx, ecx
push 0x5107ffff
mov word [0x42b75c], ax
mov dword [0x42b788], edx
call fcn.0040e340
movsx cx, byte [0x42b748]
movsx edx, word [0x42b75a]
mov byte [0x42b74f], al
mov eax, dword [ebp + 8]
push edx
push 0x9cbfffff
mov byte [ebp + eax - 0x160], 0
mov eax, dword [0x42b784]
add ecx, eax
mov word [0x42b752], cx
call fcn.0040e290
push 0x8343ffff
push 0xa567ffff
mov word [0x42b752], ax
call fcn.0040e380
mov dword [0x42b784], eax
add esp, 0x20
movsx eax, byte [0x42b750]
lea ecx, [ebp + 0xc]
sub eax, 0x11380001
push ecx
mov dword [0x42b780], eax
mov eax, dword [ebp - 0x24]
push 0x20019
lea edx, [ebp - 0x160]
push 0
push edx
push eax
call dword [0x42bcb4]
mov ecx, dword [0x42b770]
mov esi, eax
mov ax, word [0x42b754]
push ecx
neg ax
movsx edx, ax
push edx
mov word [0x42b756], ax
call fcn.0040e2f0
add esp, 8
mov word [0x42b75c], ax
test esi, esi
mov dword [0x42b788], 0xac000000
mov dword [0x42b770], 0x8fd80001
jne 0x422097
movsx eax, word [0x42b75a]
push 0x9703ffff
push eax
call fcn.0040e4a0
movsx ecx, byte [0x42b74d]
mov edx, dword [0x42b778]
push ecx
push edx
mov word [0x42b756], ax
call fcn.0040e340
mov ecx, dword [ebp + 0x10]
mov dword [0x42b76c], eax
mov eax, dword [ebp + 0x14]
lea edx, [ebp - 0x20]
push eax
mov eax, dword [ebp + 0xc]
push ecx
push edx
push eax
call fcn.004210e0
mov ecx, dword [0x42b770]
mov edx, dword [ebp + 0xc]
add esp, 0x20
inc ecx
mov esi, eax
mov word [0x42b75c], 1
push edx
mov word [0x42b756], cx
call dword [0x42bca4]
mov eax, dword [0x42b770]
mov cx, ax
sub cx, word [0x42b752]
mov word [0x42b75e], cx
mov cl, byte [0x42b750]
or al, cl
test esi, esi
mov byte [0x42b74d], al
je 0x422097
mov eax, dword [ebp - 0x50]
inc edi
cmp edi, eax
jb 0x421e65
xor edi, edi
movsx edx, byte [0x42b749]
movsx eax, word [0x42b760]
push edx
push eax
call fcn.0040e4a0
mov word [0x42b758], ax
mov al, byte [0x42b74f]
add esp, 8
test al, al
mov al, byte [0x42b74c]
je 0x4220d3
test al, al
mov dword [0x42b768], 1
jne 0x4220d9
mov dword [0x42b768], edi
movsx ecx, byte [0x42b749]
movsx edx, al
or ecx, 0x855bffff
push edx
push 0x483ffff
mov dword [0x42b778], ecx
call fcn.0040e290
add esp, 8
mov dword [0x42b774], eax
mov eax, dword [ebp - 0x24]
push eax
call dword [0x42bca4]
push 0xededffff
push 0x43d1ffff
call fcn.0040e340
add esp, 8
mov word [0x42b758], ax
mov ecx, dword [ebp - 0x1c]
cmp ecx, edi
je 0x422147
mov al, byte [ecx - 1]
test al, al
je 0x42213d
cmp al, 0xff
je 0x42213d
dec al
mov byte [ecx - 1], al
jmp 0x422147
dec ecx
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x1c], edi
cmp ecx, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], edi
je 0x422173
mov al, byte [ecx - 1]
test al, al
je 0x422169
cmp al, 0xff
je 0x422169
dec al
mov byte [ecx - 1], al
jmp 0x422173
dec ecx
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x30], edi
cmp ecx, edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], edi
je 0x42219f
mov al, byte [ecx - 1]
test al, al
je 0x422195
cmp al, 0xff
je 0x422195
dec al
mov byte [ecx - 1], al
jmp 0x42219f
dec ecx
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x16c]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret