Function at 0x4213a0
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x425a3d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x154
movsx eax, word [0x42bcf2]
movsx ecx, byte [0x42bcda]
push ebx
push esi
push edi
push eax
push ecx
call fcn.0040e540
add esp, 8
cmp word [0x42bce6], 0
mov byte [0x42bcdb], al
je 0x4213fa
mov al, byte [0x42bcde]
mov word [0x42bce4], 1
test al, al
jne 0x421403
mov word [0x42bce4], 0
mov al, byte [0x42bba0]
mov word [0x42bce8], 0xffff
movsx edx, word [0x42bcee]
sub al, 0x1b
add edx, 0x34620001
and eax, 0xff
mov dword [0x42bd00], edx
add eax, 3
and al, 0xfc
call fcn.00424380
mov ecx, esp
mov edx, 0x42bba0
call fcn.00422bc0
mov esi, eax
mov al, byte [ebp + 0x13]
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 0x42148f
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 edx, dword [0x42bd08]
mov eax, dword [ebp - 0x48]
mov cl, byte [0x42bd14]
mov dword [ebp - 4], 0
neg edx
test eax, eax
mov byte [0x42bce0], cl
mov word [0x42bce2], dx
jne 0x4214bd
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]
movsx edx, word [0x42bcea]
push edx
push 0xfbdfffff
mov ebx, eax
call fcn.0040e480
mov byte [0x42bcd9], al
push 0x8a25ffff
movsx eax, word [0x42bcf2]
push eax
call fcn.0040e500
movsx ecx, word [0x42bce6]
push 0xe393ffff
push ecx
mov dword [0x42bd0c], eax
call fcn.0040e620
mov edx, dword [0x42bd04]
mov word [0x42bce6], ax
push edx
push 0xfea3ffff
call fcn.0040e480
mov byte [0x42bcdc], al
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
add esp, 0x20
cmp dword [eax], ebx
jne 0x421c18
mov eax, dword [0x42bd10]
mov dword [0x42bd04], 0xcfffffff
mov dword [ebp - 0x3c], esi
lea ecx, [eax - 1]
mov word [0x42bcec], cx
mov ecx, dword [edi + 8]
cmp ecx, esi
je 0x4218c5
movsx edx, word [0x42bce8]
push edx
push eax
call fcn.0040e6b0
push 0x488bffff
push 0x5bf3ffff
mov word [0x42bce8], ax
mov byte [0x42bcde], 1
call fcn.0040e540
mov dword [0x42bd14], eax
mov edi, dword [edi + 4]
add esp, 0x10
cmp edi, esi
jne 0x4215a4
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 ecx, dword [ebp + 8]
lea eax, [ebp - 0x10]
push eax
push 0x20019
push esi
push edi
push ecx
call dword [0x42c16c]
test eax, eax
jne 0x421b8b
push 0x5895ffff
push 0x3eddffff
call fcn.0040e480
push 0x56f7ffff
push 0xe101ffff
mov dword [0x42bd18], eax
mov dword [ebp + 0xc], esi
call fcn.0040e670
movsx edx, byte [0x42bcde]
mov word [0x42bcf2], ax
push edx
movsx eax, byte [0x42bcdc]
push eax
call fcn.0040e670
push 0xd111ffff
push 0x2891ffff
mov byte [0x42bcdd], al
call fcn.0040e480
mov ebx, dword [ebp + 0x10]
mov dword [0x42bcfc], eax
add esp, 0x20
mov eax, dword [ebx + 4]
cmp eax, esi
jne 0x42162d
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 + 0xb]
push ecx
lea ecx, [ebp - 0x38]
push edx
mov edx, dword [ebp - 0x10]
push ecx
push esi
push eax
push edx
call dword [0x42c174]
mov edi, eax
push 0x561ffff
movsx eax, word [0x42bce4]
push eax
call fcn.0040e480
mov dl, byte [0x42bcfc]
or cl, 0xff
sub cl, dl
mov dl, byte [0x42bd00]
mov byte [0x42bcde], cl
mov cl, byte [0x42bcd9]
and dl, cl
push 0x4adffff
push 0x1cd3ffff
mov byte [0x42bcdf], al
mov byte [0x42bcdb], dl
call fcn.0040e4c0
add esp, 0x10
cmp edi, 0xea
mov word [0x42bce8], ax
jne 0x421878
movsx eax, word [0x42bcf0]
movsx ecx, byte [0x42bce0]
mov edx, dword [ebp + 0xc]
sub ecx, eax
inc edx
mov dword [0x42bcfc], ecx
push edx
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov edx, dword [0x42bd08]
mov ecx, dword [ebp + 0xc]
cmp edx, esi
mov edi, eax
setne al
mov byte [0x42bce0], al
mov byte [edi + ecx], 0
mov edx, dword [0x42bd0c]
push 0x1627ffff
push edx
mov dword [ebp + 0x10], edi
call fcn.0040e5d0
mov word [0x42bcf0], ax
add esp, 0xc
movsx eax, byte [0x42bcdd]
sub eax, 0x70760001
mov dword [0x42bd0c], eax
mov eax, dword [ebx + 4]
cmp eax, esi
jne 0x42171a
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 [0x42c174]
push 0x2a0bffff
push 0xbd9dffff
mov esi, eax
call fcn.0040e500
add esp, 8
mov byte [0x42bcde], al
test esi, esi
jne 0x421844
movsx ecx, word [0x42bce6]
push 0xbc23ffff
push ecx
mov dword [0x42bd04], 0x201ffff
call fcn.0040e540
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 + 0xc]
mov word [0x42bcf0], ax
mov eax, dword [edx]
mov edx, dword [ebx + 8]
sub eax, edx
add esp, 8
cmp eax, esi
ja 0x421792
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x4217d5
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 0x4217d5
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 + 0x14]
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 dl, byte [0x42bd04]
mov eax, dword [0x42bd08]
neg dl
push 0xa9d1ffff
push eax
mov byte [0x42bce0], dl
call fcn.0040e480
push 0xb8f1ffff
push 0x586dffff
mov dword [0x42bd14], eax
call fcn.0040e6b0
push 0xaf61ffff
push 0xad85ffff
mov byte [0x42bcdd], al
mov dword [ebp - 0x3c], 1
call fcn.0040e500
mov ecx, dword [0x42bd18]
push 0xdc7ffff
push ecx
mov word [0x42bcee], ax
call fcn.0040e480
mov edi, dword [ebp + 0x10]
add esp, 0x20
mov byte [0x42bcdd], al
mov edx, dword [0x42bd18]
push edi
imul edx, edx, 0x64e7ffff
mov dword [0x42bd14], edx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
movsx eax, word [0x42bcea]
push 0x6417ffff
push eax
call fcn.0040e5d0
add esp, 0xc
mov dword [0x42bd18], eax
xor esi, esi
mov dl, byte [0x42bcde]
xor ecx, ecx
test dl, dl
mov edx, dword [ebp - 0x10]
setne cl
push edx
mov word [0x42bcea], cx
call dword [0x42c15c]
push 0x143bffff
push 0x44f5ffff
call fcn.0040e5d0
mov cl, byte [0x42bce0]
mov word [0x42bcea], ax
mov al, byte [0x42bcdd]
add esp, 8
add al, cl
mov byte [0x42bcde], al
jmp 0x421b8b
push 0x72b9ffff
push 0xdfd3ffff
call fcn.0040e670
movsx edx, byte [0x42bcd8]
mov cx, word [0x42bcf0]
mov byte [0x42bcdd], al
mov eax, dword [0x42bd0c]
push edx
push eax
mov dword [ebp - 0x10], esi
mov word [0x42bcee], cx
mov byte [0x42bcdc], 0xff
call fcn.0040e480
movsx ecx, byte [0x42bcdd]
push ecx
push 0xf639ffff
mov dword [0x42bcfc], eax
call fcn.0040e580
movsx edx, word [0x42bcea]
push 0x3767ffff
push edx
mov byte [0x42bce0], al
call fcn.0040e580
mov dword [0x42bd0c], eax
mov eax, dword [ebp + 0x10]
add esp, 0x20
mov eax, dword [eax + 4]
cmp eax, esi
jne 0x421949
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 ebx, dword [ebp + 8]
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp + 0xf]
lea ecx, [ebp - 0x38]
push edx
push ecx
push esi
push eax
push ebx
call dword [0x42c174]
mov edx, dword [0x42bd04]
push 0x8fbdffff
push edx
mov edi, eax
call fcn.0040e540
mov dword [0x42bcf8], eax
add esp, 8
movsx ax, byte [0x42bcdd]
and ax, word [0x42bce6]
cmp edi, 0xea
mov dword [0x42bd10], 1
mov word [0x42bce2], ax
jne 0x421b8b
mov ecx, dword [0x42bd00]
mov edx, dword [0x42bd04]
cmp ecx, esi
push 0x169bffff
setne cl
push edx
mov byte [0x42bcda], cl
mov dword [0x42bd00], 0x3b05ffff
call fcn.0040e500
mov byte [0x42bcdf], 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
push 0x8e49ffff
push 0xb5ebffff
mov dword [ebp + 8], esi
mov byte [esi + ecx], 0
call fcn.0040e620
movsx edx, word [0x42bcf2]
push 0x9c89ffff
push edx
mov word [0x42bcea], ax
call fcn.0040e670
mov byte [0x42bcda], al
push 0xf8afffff
movsx eax, byte [0x42bcde]
push eax
call fcn.0040e6b0
mov cx, word [0x42bce6]
mov edx, dword [ebp + 0x10]
add esp, 0x24
dec cx
mov dword [0x42bd0c], eax
mov word [0x42bcec], cx
mov eax, dword [edx + 4]
test eax, eax
jne 0x421a53
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
push ebx
call dword [0x42c174]
mov ecx, dword [0x42bcfc]
mov bl, byte [0x42bcdb]
mov dx, cx
mov edi, 0x9459ffff
sub dx, word [0x42bcea]
mov word [0x42bcf2], dx
movsx edx, byte [0x42bcde]
sub edi, edx
test bl, bl
setne dl
test eax, eax
mov dword [0x42bcf8], edi
mov byte [0x42bcd9], dl
jne 0x421b2e
movsx ax, byte [0x42bcda]
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]
or eax, ecx
mov cl, byte [0x42bd04]
mov word [0x42bce2], ax
mov byte [0x42bcd9], cl
mov eax, dword [edx]
sub eax, dword [ebx + 8]
cmp eax, esi
ja 0x421ae1
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x421b24
mov eax, dword [ebx + 8]
push 0
add eax, esi
mov ecx, ebx
push eax
mov dword [ebp + 0x10], 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 0x421b24
mov edi, dword [ebx + 8]
mov edx, dword [ebx + 4]
mov ecx, esi
mov esi, dword [ebp + 8]
add edi, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x10]
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 + 8]
mov dword [ebp - 0x3c], 1
push 0xc283ffff
push 0xc3b3ffff
call fcn.0040e480
movsx edx, word [0x42bce2]
push edx
push 0x1167ffff
mov dword [0x42bcf8], eax
call fcn.0040e480
push 0xa9d3ffff
push 0x6e5ffff
mov dword [0x42bcfc], eax
call fcn.0040e5d0
mov byte [0x42bcdf], al
mov ax, word [0x42bd00]
add ax, word [0x42bcf2]
push esi
mov word [0x42bce6], ax
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 0x1c
xor esi, esi
mov ecx, dword [0x42bd00]
push 0x178dffff
dec ecx
push 0xc0d3ffff
mov word [0x42bcee], cx
call fcn.0040e480
mov ecx, dword [ebp - 0x48]
mov byte [0x42bcdc], al
mov eax, dword [ebp - 0x3c]
add esp, 8
cmp eax, esi
je 0x421be6
cmp ecx, esi
je 0x421bdf
mov al, byte [ecx - 1]
test al, al
je 0x421bd5
cmp al, 0xff
je 0x421bd5
dec al
mov byte [ecx - 1], al
xor eax, eax
jmp 0x422418
dec ecx
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
xor eax, eax
jmp 0x422418
cmp ecx, esi
je 0x421c0e
mov al, byte [ecx - 1]
test al, al
je 0x421c04
cmp al, 0xff
je 0x421c04
dec al
mov byte [ecx - 1], al
mov eax, 2
jmp 0x422418
dec ecx
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, 2
jmp 0x422418
mov edx, dword [0x42bcfc]
push edx
push 0x8999ffff
call fcn.0040e540
mov byte [0x42bcdd], al
mov al, byte [ebp + 0x13]
mov word [0x42bce2], 0xfffe
mov byte [ebp - 0x34], al
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], esi
push 0xaf6bffff
push 0x42d7ffff
mov byte [ebp - 4], 1
call fcn.0040e500
movsx ecx, word [0x42bcee]
movsx edx, byte [0x42bcdd]
push ecx
push edx
mov word [0x42bce6], ax
call fcn.0040e540
add esp, 0x18
cmp ebx, esi
mov byte [0x42bcdc], al
jbe 0x421d63
mov eax, dword [edi + 8]
lea esi, [ebx - 1]
cmp eax, esi
ja 0x421c94
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xran_void_]
mov eax, dword [edi + 4]
cmp byte [eax + esi], 0x5c
jne 0x421d61
push esi
lea ecx, [ebp - 0x60]
push 0
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 edx, 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 ecx, dword [edx]
push ecx
push 0
push eax
lea ecx, [ebp - 0x34]
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 0x421ce6
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x421d56
cmp al, 0xff
je 0x421d56
dec al
mov byte [ecx], al
xor esi, esi
mov al, byte [0x42bce0]
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 [0x42bcdf], al
mov eax, dword [ebp - 0x44]
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 0x421e43
mov eax, dword [ebp - 0x1c]
cmp eax, esi
je 0x421dbd
mov dl, byte [eax - 1]
test dl, dl
je 0x421d44
cmp dl, 0xff
je 0x421d44
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 0x421d52
mov byte [eax - 1], 0xff
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov edx, eax
jmp 0x421dc3
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
jmp 0x421ce6
xor esi, esi
push ebx
lea edx, [ebp - 0x60]
push esi
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], 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 0x421ce8
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x421daf
cmp al, 0xff
je 0x421daf
dec al
mov byte [ecx], al
jmp 0x421ce8
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
jmp 0x421ce8
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 0x421e43
test eax, eax
mov esi, 1
je 0x421e06
mov dl, byte [eax - 1]
test dl, dl
je 0x421e06
cmp dl, 0xff
je 0x421e06
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 0x421e11
mov esi, ecx
test esi, esi
jbe 0x421e41
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 0x421e41
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], edi
mov byte [eax + edi], 0
xor esi, esi
movsx ecx, word [0x42bcec]
push 0xef5ffff
push ecx
call fcn.0040e480
movsx edx, word [0x42bce2]
push 0x5717ffff
push edx
mov word [0x42bcea], ax
call fcn.0040e480
mov cl, byte [0x42bcd8]
mov dword [0x42bd0c], eax
movsx edx, byte [0x42bcdf]
xor eax, eax
test cl, cl
movsx ecx, word [0x42bce8]
setne al
push ecx
push edx
mov word [0x42bcf0], ax
call fcn.0040e580
movsx ecx, byte [0x42bcde]
mov byte [0x42bce0], al
mov eax, dword [0x42bd04]
push eax
push ecx
call fcn.0040e500
mov word [0x42bcf0], ax
mov eax, dword [ebp - 0x30]
add esp, 0x20
cmp eax, esi
jne 0x421ec7
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 - 0x24]
push edx
push 0x20019
push esi
push eax
mov eax, dword [ebp + 8]
push eax
call dword [0x42c16c]
movsx ecx, word [0x42bce8]
movsx edx, word [0x42bce2]
push ecx
push edx
mov edi, eax
call fcn.0040e6b0
add esp, 8
cmp edi, esi
mov word [0x42bcf2], ax
je 0x421f8b
mov ecx, dword [ebp - 0x1c]
cmp ecx, esi
je 0x421f27
mov al, byte [ecx - 1]
test al, al
je 0x421f1d
cmp al, 0xff
je 0x421f1d
dec al
mov byte [ecx - 1], al
jmp 0x421f27
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 0x421f53
mov al, byte [ecx - 1]
test al, al
je 0x421f49
cmp al, 0xff
je 0x421f49
dec al
mov byte [ecx - 1], al
jmp 0x421f53
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 0x421f84
mov al, byte [ecx - 1]
test al, al
je 0x421f7a
cmp al, 0xff
je 0x421f7a
dec al
mov byte [ecx - 1], al
mov eax, edi
jmp 0x422418
dec ecx
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, edi
jmp 0x422418
push 0x8b11ffff
push 0x70f5ffff
mov byte [0x42bce0], 0
call fcn.0040e4c0
push 0x121bffff
push 0x3bafffff
mov word [0x42bce6], ax
call fcn.0040e620
add esp, 0x10
xor edi, edi
mov edx, dword [ebp - 0x24]
lea ecx, [ebp - 0x50]
push edi
push edi
push edi
push edi
push edi
push edi
push edi
mov byte [0x42bcda], al
mov ax, word [0x42bcf2]
push ecx
push edi
push edi
neg ax
push edi
push edx
mov word [0x42bce4], ax
call dword [0x42c170]
push 0xd0cfffff
push 0x8ca9ffff
mov esi, eax
call fcn.0040e670
mov ecx, dword [0x42bd0c]
mov byte [0x42bcdc], al
xor eax, eax
cmp ecx, edi
mov ecx, dword [0x42bd18]
push 0xc8a7ffff
setne al
push ecx
mov dword [0x42bd08], eax
call fcn.0040e5d0
add esp, 0x10
cmp esi, edi
mov dword [0x42bcfc], eax
mov dword [0x42bd08], 0x81c5fffe
je 0x4220e7
mov edx, dword [0x42bd00]
push 0xb6cfffff
push edx
mov byte [0x42bcde], 1
call fcn.0040e480
push 0x1e0dffff
push 0x10a7ffff
mov byte [0x42bcdd], al
mov word [0x42bce8], 1
call fcn.0040e6b0
add esp, 0x10
mov byte [0x42bce0], al
mov eax, dword [ebp - 0x24]
push eax
call dword [0x42c15c]
movsx edx, word [0x42bcec]
mov ecx, dword [0x42bcf8]
push ecx
push edx
call fcn.0040e4c0
mov word [0x42bce8], ax
mov eax, dword [0x42bd04]
push eax
push 0xc1c7ffff
call fcn.0040e480
mov ecx, dword [0x42bd04]
mov word [0x42bce6], ax
push ecx
push 0xe205ffff
call fcn.0040e480
push 0x6cedffff
push 0x5281ffff
mov word [0x42bcee], ax
call fcn.0040e5d0
mov ecx, dword [ebp - 0x1c]
add esp, 0x20
mov byte [0x42bcda], al
jmp 0x42239e
movsx ecx, word [0x42bce2]
mov eax, dword [ebp - 0x50]
or ecx, 0x6949ffff
cmp eax, edi
mov word [0x42bcea], 1
mov dword [0x42bd0c], ecx
jbe 0x42232c
mov ebx, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
jmp 0x42211c
mov ecx, dword [0x42bd0c]
mov al, byte [0x42bcea]
push 0xe3ebffff
imul cl
push 0x8165ffff
mov byte [0x42bcdf], al
mov dword [ebp + 8], 0xff
mov byte [ebp - 0x160], 0
call fcn.0040e5d0
add esp, 8
mov ecx, dword [ebp - 0x24]
mov byte [0x42bcd9], al
lea edx, [ebp + 8]
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x160]
push edx
push eax
push edi
push ecx
call ebx
movsx edx, word [0x42bce6]
mov eax, dword [0x42bcfc]
push edx
push eax
call fcn.0040e620
push 0x7197ffff
push 0x5fdfffff
mov word [0x42bce8], ax
call fcn.0040e670
movsx ecx, byte [0x42bcde]
push 0x4e1dffff
push ecx
mov dword [0x42bcf8], eax
call fcn.0040e5d0
mov edx, dword [ebp + 8]
mov word [0x42bce2], ax
mov eax, dword [0x42bd08]
push 1
push eax
mov byte [ebp + edx - 0x160], 0
mov dword [0x42bd00], 0x324e0001
mov byte [0x42bcdb], 1
mov byte [0x42bcde], 1
call fcn.0040e4c0
add esp, 0x20
lea ecx, [ebp + 0xc]
mov dword [0x42bd0c], eax
mov eax, dword [ebp - 0x24]
push ecx
push 0x20019
lea edx, [ebp - 0x160]
push 0
push edx
push eax
call dword [0x42c16c]
movsx ecx, word [0x42bcee]
movsx edx, byte [0x42bcd8]
push ecx
push edx
mov esi, eax
call fcn.0040e540
mov ecx, dword [0x42bcfc]
mov byte [0x42bcdd], al
or eax, 0xffffffff
sub eax, ecx
movsx ecx, word [0x42bce8]
push ecx
push 0x64e1ffff
mov word [0x42bce4], ax
call fcn.0040e480
add esp, 0x10
mov word [0x42bcf0], ax
test esi, esi
jne 0x42232c
movsx edx, ax
push 0x292fffff
push edx
mov byte [0x42bcdd], 0xff
call fcn.0040e4c0
push 0x2d9ffff
push 0x2711ffff
mov word [0x42bce8], ax
call fcn.0040e6b0
mov cl, byte [0x42bcdf]
mov edx, dword [ebp + 0x10]
test cl, cl
mov ecx, dword [ebp + 0x14]
mov word [0x42bce4], ax
setne al
mov byte [0x42bcdf], al
push ecx
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x20]
push edx
push eax
push ecx
call fcn.004213a0
mov edx, dword [0x42bd18]
push 0xf3afffff
push edx
mov esi, eax
call fcn.0040e620
add esp, 0x28
mov word [0x42bcee], ax
mov eax, dword [ebp + 0xc]
push eax
call dword [0x42c15c]
mov ecx, dword [0x42bd04]
push ecx
push 0xfd53ffff
call fcn.0040e670
movsx edx, byte [0x42bcd9]
mov byte [0x42bcde], al
mov eax, dword [0x42bd10]
push edx
push eax
mov word [0x42bcee], 0
call fcn.0040e5d0
mov ecx, dword [0x42bd04]
push 0xa9f3ffff
push ecx
mov byte [0x42bcd8], al
call fcn.0040e670
add esp, 0x18
mov word [0x42bcf0], ax
test esi, esi
je 0x42232c
mov eax, dword [ebp - 0x50]
inc edi
cmp edi, eax
jb 0x422116
movsx edx, word [0x42bce4]
movsx eax, byte [0x42bcdb]
and edx, eax
push 0x487fffff
push 0x14e7ffff
mov dword [0x42bd08], edx
mov byte [0x42bce0], 0xff
call fcn.0040e480
mov ecx, dword [ebp - 0x24]
add esp, 8
mov byte [0x42bcdd], al
mov dword [0x42bd10], 0x2085ffff
push ecx
call dword [0x42c15c]
push 0xb76dffff
push 0xfdf1ffff
call fcn.0040e580
mov edx, dword [0x42bd10]
mov ecx, dword [ebp - 0x1c]
add esp, 8
dec edx
mov byte [0x42bcdd], al
mov word [0x42bce4], dx
xor edi, edi
cmp ecx, edi
je 0x4223be
mov al, byte [ecx - 1]
test al, al
je 0x4223b4
cmp al, 0xff
je 0x4223b4
dec al
mov byte [ecx - 1], al
jmp 0x4223be
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 0x4223ea
mov al, byte [ecx - 1]
test al, al
je 0x4223e0
cmp al, 0xff
je 0x4223e0
dec al
mov byte [ecx - 1], al
jmp 0x4223ea
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 0x422416
mov al, byte [ecx - 1]
test al, al
je 0x42240c
cmp al, 0xff
je 0x42240c
dec al
mov byte [ecx - 1], al
jmp 0x422416
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