Function at 0x4021d0
Capabilities:
Set registry value

Disassembly:
push 0xffffffffffffffff
push 0x40667c
mov eax, dword fs:[0]
push eax
sub esp, 0x538
mov eax, dword [0x40b424]
xor eax, esp
mov dword [esp + 0x534], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x40b424]
xor eax, esp
push eax
lea eax, [esp + 0x54c]
mov dword fs:[0], eax
push 0x208
xor ebx, ebx
lea ecx, [esp + 0x136]
xor eax, eax
push ebx
push ecx
mov word [esp + 0x13c], ax
call sub.MSVCR90.dll_memset
push 0x20a
lea edx, [esp + 0x34c]
push ebx
push edx
mov dword [esp + 0x34], ebx
call sub.MSVCR90.dll_memset
add esp, 0x18
push str.SoftwareMicrosoftWindowsCurrentVersionAuthenticationCredential_Providers_
push 0x104
lea eax, [esp + 0x344]
push eax
call fcn.004011c0
push str.0587CEF0_51FD_4d54_83C2_A1CB89D1BDAA
push 0x104
lea ecx, [esp + 0x344]
push ecx
call fcn.004011c0
mov ebp, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
push ebx
lea edx, [esp + 0x20]
push edx
push ebx
push 0xf013f
push ebx
push ebx
push ebx
lea eax, [esp + 0x358]
push eax
push 0x80000002
call ebp
push 0x1f8
push str..loginService.cpp
lea ecx, [esp + 0x28]
mov esi, eax
call fcn.00405530
push esi
push 0x407988
lea ecx, [esp + 0x344]
push ecx
add eax, 4
push str.RegisterCredential:_t_t_t
push eax
mov dword [esp + 0x568], ebx
call fcn.004014d0
add esp, 8
push eax
call fcn.004054d0
add esp, 8
push eax
call fcn.004014d0
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___long_int_]
lea ecx, [esp + 0x20]
mov dword [esp + 0x554], 0xffffffff
call fcn.00405740
mov edi, dword [esp + 0x1c]
cmp edi, ebx
je 0x4026d2
cmp esi, ebx
jne 0x4026d2
lea eax, [esp + 0x130]
mov ebx, str.WbxProvider
mov ecx, eax
mov edx, 0x105
sub ebx, ecx
jmp 0x402330
lea ecx, [edx + 0x7ffffef9]
test ecx, ecx
je 0x402350
movzx ecx, word [ebx + eax]
test cx, cx
je 0x402350
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x402330
jmp 0x402354
test edx, edx
jne 0x402357
sub eax, 2
xor edx, edx
mov word [eax], dx
mov ecx, 0x104
lea eax, [esp + 0x130]
jmp 0x402370
cmp word [eax], 0
je 0x402460
add eax, 2
sub ecx, 1
jne 0x402370
xor eax, eax
add eax, eax
push eax
lea ecx, [esp + 0x134]
push ecx
push 1
push 0
push 0
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
call edi
mov edx, dword [esp + 0x1c]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x20a
lea eax, [esp + 0x340]
push 0
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
push str.CLSID_
push 0x104
lea ecx, [esp + 0x344]
push ecx
call fcn.004011c0
push str.0587CEF0_51FD_4d54_83C2_A1CB89D1BDAA
push 0x104
lea edx, [esp + 0x344]
push edx
call fcn.004011c0
push 0
lea eax, [esp + 0x18]
push eax
push 0
push 0xf013f
push 0
push 0
push 0
lea ecx, [esp + 0x358]
push ecx
push 0x80000000
mov dword [esp + 0x38], 0
call ebp
mov esi, dword [esp + 0x14]
test esi, esi
je 0x402686
test eax, eax
jne 0x402686
mov edx, 0x105
lea eax, [esp + 0x130]
lea esp, [esp]
lea ecx, [edx + 0x7ffffef9]
test ecx, ecx
je 0x402474
movzx ecx, word [ebx + eax]
test cx, cx
je 0x402474
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x402440
jmp 0x402478
test ecx, ecx
je 0x402382
mov eax, 0x104
sub eax, ecx
jmp 0x402384
test edx, edx
jne 0x40247b
sub eax, 2
xor edx, edx
mov word [eax], dx
mov ecx, 0x104
lea eax, [esp + 0x130]
lea esp, [esp]
cmp word [eax], 0
je 0x402543
add eax, 2
sub ecx, 1
jne 0x402490
xor eax, eax
add eax, eax
push eax
lea ecx, [esp + 0x134]
push ecx
push 1
push 0
push 0
push esi
call edi
push str.InprocServer32
push 0x104
lea edx, [esp + 0x344]
push edx
mov dword [esp + 0x24], 0
call fcn.004011c0
push 0
lea eax, [esp + 0x1c]
push eax
push 0
push 0xf013f
push 0
push 0
push 0
lea ecx, [esp + 0x358]
push ecx
push 0x80000000
call ebp
mov edi, dword [esp + 0x18]
test edi, edi
je 0x40264a
test eax, eax
jne 0x40264a
lea eax, [esp + 0x130]
mov esi, str.wbxcp.dll
mov ecx, eax
mov edx, 0x105
sub esi, ecx
lea ecx, [edx + 0x7ffffef9]
test ecx, ecx
je 0x402557
movzx ecx, word [esi + eax]
test cx, cx
je 0x402557
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x402523
jmp 0x40255b
test ecx, ecx
je 0x4024a2
mov eax, 0x104
sub eax, ecx
jmp 0x4024a4
test edx, edx
jne 0x40255e
sub eax, 2
xor edx, edx
mov word [eax], dx
mov ecx, 0x104
lea eax, [esp + 0x130]
nop
cmp word [eax], 0
je 0x4025d0
add eax, 2
sub ecx, 1
jne 0x402570
xor eax, eax
add eax, eax
push eax
lea ecx, [esp + 0x134]
push ecx
push 1
push 0
push 0
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
call edi
lea eax, [esp + 0x130]
mov edx, str.Apartment
mov ecx, eax
mov esi, 0x105
sub edx, ecx
nop
lea ecx, [esi + 0x7ffffef9]
test ecx, ecx
je 0x4025dd
movzx ecx, word [edx + eax]
test cx, cx
je 0x4025dd
mov word [eax], cx
add eax, 2
sub esi, 1
jne 0x4025b0
jmp 0x4025e1
test ecx, ecx
je 0x40257e
mov eax, 0x104
sub eax, ecx
jmp 0x402580
test esi, esi
jne 0x4025e4
sub eax, 2
xor edx, edx
mov word [eax], dx
mov ecx, 0x104
lea eax, [esp + 0x130]
cmp word [eax], dx
je 0x40263d
add eax, 2
sub ecx, 1
jne 0x4025f5
xor eax, eax
mov edx, dword [esp + 0x18]
add eax, eax
push eax
lea ecx, [esp + 0x134]
push ecx
push 1
push 0
push str.ThreadingModel
push edx
call edi
mov eax, dword [esp + 0x18]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push eax
call esi
mov ecx, dword [esp + 0x14]
push ecx
call esi
mov eax, 1
jmp 0x402728
test ecx, ecx
je 0x402602
mov eax, 0x104
sub eax, ecx
jmp 0x402604
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x22e
push str..loginService.cpp
lea ecx, [esp + 0x28]
call fcn.00405530
mov esi, eax
mov dword [esp + 0x554], 2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.RegisterCredential_RegCreateKey_HKEY_CLASSES_ROOT_InprocServer32_failed__error:
jmp 0x4026fe
push 0x235
push str..loginService.cpp
lea ecx, [esp + 0xb0]
call fcn.00405530
mov esi, eax
mov dword [esp + 0x554], 3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.RegisterCredential_RegCreateKey_HKEY_CLASSES_ROOT_failed__error:
add esi, 4
push esi
call fcn.004054d0
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int_]
lea ecx, [esp + 0xa8]
jmp 0x402716
push 0x202
push str..loginService.cpp
lea ecx, [esp + 0x28]
call fcn.00405530
mov esi, eax
mov dword [esp + 0x554], 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.RegisterCredential_RegCreateKey_HKEY_LOCAL_MACHINE_failed__error:
add esi, 4
push esi
call fcn.004054d0
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int_]
lea ecx, [esp + 0x20]
mov dword [esp + 0x554], 0xffffffff
call fcn.00405740
xor eax, eax
mov ecx, dword [esp + 0x54c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x534]
xor ecx, esp
call fcn.00405af7
add esp, 0x544
ret