Function at 0x4017d0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x4686e8]
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 [0x4686e8]
call ebx
mov esi, eax
mov ecx, dword [esi]
call fcn.004313b0
mov ecx, dword [esi + 4]
call fcn.004313b0
mov ecx, dword [esi + 8]
call fcn.004313b0
mov ecx, dword [esi + 0xc]
call fcn.004313b0
mov ecx, dword [esi + 0x10]
call fcn.004313b0
mov ecx, esi
call fcn.00431540
inc edi
cmp edi, dword [ebp - 4]
jl 0x401803
push 0
push 0
push 0x184
push 0x64
push dword [0x4686e8]
call ebx
push dword [0x4686e8]
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 [0x4686e8]
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.00408ca0
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 [0x4686ec], ecx
cmp ecx, eax
jge 0x4018fb
mov dword [0x4686ec], eax
mov ecx, eax
mov eax, ecx
sub eax, esi
sub eax, edx
mov dword [0x4686f4], eax
lea eax, [esi + ecx]
add eax, dword [ebp - 0x14]
mov dword [0x468708], eax
test edi, edi
je 0x40192c
push 0x1e6
push str.C:Usersomahr_source_reposputty_caccodewindowspageant.c
push str.status__PAGEANT_ACTION_OK
call fcn.004384d4
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.004384d4
add esp, 0xc
push 0
push 0xffffffffffffffff
push 0x186
push 0x64
push dword [0x4686e8]
call ebx
movzx eax, byte [ebp - 0x10]
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
push eax
push 0x66
push dword [0x4686e8]
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 [0x4686e8]
call edi
push eax
call esi
push 8
call fcn.00410880
add esp, 4
test eax, eax
je 0x401aa3
mov edx, 1
push 0
lea ecx, [edx + 1]
call fcn.004314b0
add esp, 4
mov dword [ebp - 4], eax
xor ecx, ecx
xor edi, edi
xor ebx, ebx
mov word [eax], cx
call fcn.00408f10
mov esi, eax
test esi, esi
je 0x401a85
nop dword [eax + eax]
push 5
push str.CAPI:
push esi
call fcn.00437903
add esp, 0xc
test eax, eax
je 0x401a0c
push 5
push str.PKCS:
push esi
call fcn.00437903
add esp, 0xc
test eax, eax
je 0x401a0c
push 5
push str.FIDO:
push esi
call fcn.00437903
add esp, 0xc
test eax, eax
jne 0x401a73
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.00431500
mov edx, edi
mov dword [ebp - 4], eax
sub edx, esi
add esp, 4
mov ecx, esi
add edx, eax
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x401a37
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401a50
sub ecx, edx
lea eax, [ecx + edi]
mov ecx, dword [ebp - 4]
mov byte [eax + ecx + 1], 0
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x401a67
sub esi, ecx
inc edi
add edi, esi
inc ebx
mov ecx, ebx
call fcn.00408f10
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