Function at 0x4017d0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x4686a8]
sub esp, 0x24
push ebx
push esi
push edi
test eax, eax
je 0x40198c
mov ebx, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push 0
push 0
push 0x18b
push 0x64
push eax
call ebx
xor edi, edi
mov dword [ebp - 4], eax
test eax, eax
jle 0x40184b
push 0
push edi
push 0x199
push 0x64
push dword [0x4686a8]
call ebx
mov esi, eax
mov ecx, dword [esi]
call fcn.00431090
mov ecx, dword [esi + 4]
call fcn.00431090
mov ecx, dword [esi + 8]
call fcn.00431090
mov ecx, dword [esi + 0xc]
call fcn.00431090
mov ecx, dword [esi + 0x10]
call fcn.00431090
mov ecx, esi
call fcn.00431220
inc edi
cmp edi, dword [ebp - 4]
jl 0x401803
push 0
push 0
push 0x184
push 0x64
push dword [0x4686a8]
call ebx
push dword [0x4686a8]
mov word [ebp - 0x10], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
call dword [sym.imp.USER32.dll_GetDC]
push 0
push 0
push 0x31
push dword [0x4686a8]
mov dword [ebp - 0x24], eax
call dword [sym.imp.USER32.dll_SendMessageA]
push eax
push dword [ebp - 0x24]
call dword [sym.imp.GDI32.dll_SelectObject]
lea eax, [ebp - 4]
push eax
lea edx, [ebp - 0x24]
call fcn.00408c60
add esp, 4
mov edi, eax
lea eax, [ebp - 0xc]
push eax
push 2
push 0x4581e8
push dword [ebp - 0x24]
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
push dword [ebp - 0x24]
mov esi, dword [ebp - 0xc]
call dword [sym.imp.GDI32.dll_DeleteDC]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
add eax, esi
lea ecx, [edx + esi*2]
add ecx, dword [ebp - 0x1c]
mov dword [0x4686ac], ecx
cmp ecx, eax
jge 0x4018fb
mov dword [0x4686ac], eax
mov ecx, eax
mov eax, ecx
sub eax, esi
sub eax, edx
mov dword [0x4686b4], eax
lea eax, [ecx + esi]
add eax, dword [ebp - 0x14]
mov dword [0x4686c8], eax
test edi, edi
je 0x40192c
push 0x1e6
push str.C:Usersomahr_source_reposputty_caccodewindowspageant.c
push str.status__PAGEANT_ACTION_OK
call fcn.00438224
add esp, 0xc
cmp dword [ebp - 4], 0
je 0x401949
push 0x1e7
push str.C:Usersomahr_source_reposputty_caccodewindowspageant.c
push str._errmsg
call fcn.00438224
add esp, 0xc
push 0
push 0xffffffffffffffff
push 0x186
push 0x64
push dword [0x4686a8]
call ebx
movzx eax, byte [ebp - 0x10]
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
push eax
push 0x66
push dword [0x4686a8]
call edi
mov esi, dword [sym.imp.USER32.dll_EnableWindow]
push eax
call esi
movzx eax, byte [ebp - 0xf]
push eax
push 0x6a
push dword [0x4686a8]
call edi
push eax
call esi
or ecx, 0xffffffff
call fcn.00410800
test eax, eax
je 0x401aac
mov edx, 1
push 0
lea ecx, [edx + 1]
call fcn.00431190
add esp, 4
mov dword [ebp - 4], eax
xor ecx, ecx
xor edi, edi
xor ebx, ebx
mov word [eax], cx
call fcn.00408ed0
mov esi, eax
test esi, esi
je 0x401a8e
nop dword [eax]
push 5
push str.CAPI:
push esi
call fcn.00437655
add esp, 0xc
test eax, eax
je 0x401a0c
push 5
push str.PKCS:
push esi
call fcn.00437655
add esp, 0xc
test eax, eax
je 0x401a0c
push 5
push str.FIDO:
push esi
call fcn.00437655
add esp, 0xc
test eax, eax
jne 0x401a7c
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401a11
sub ecx, edx
push 1
lea edx, [ecx + 2]
mov ecx, dword [ebp - 4]
add edx, edi
call fcn.004311e0
mov edx, eax
add esp, 4
mov eax, edi
mov dword [ebp - 4], edx
sub eax, esi
mov ecx, esi
add edx, eax
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x401a40
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401a52
sub ecx, edx
lea eax, [ecx + edi]
mov ecx, dword [ebp - 4]
mov byte [eax + ecx + 1], 0
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x401a70
sub esi, ecx
inc edi
add edi, esi
inc ebx
mov ecx, ebx
call fcn.00408ed0
mov esi, eax
test esi, esi
jne 0x4019d0
lea eax, [edi + 1]
push eax
push dword [ebp - 4]
push 7
push str.SaveCertList
push str.SoftwareSimonTathamPuTTY
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegSetKeyValueA]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret