Function at 0x1400888d0
Capabilities:
Get common file path
Query environment variable
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdi
push rbp
lea rbp, [rsp - 0x180]
sub rsp, 0x280
mov rax, qword [0x14011e258]
xor rax, rsp
mov qword [rbp + 0x170], rax
mov edi, ecx
mov dword [rsp + 0x38], 0x105
mov rcx, 0xffffffff80000001
lea r8, [rsp + 0x40]
lea rdx, str.SoftwareSimonTathamPuTTY
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x14008897f
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x3c]
lea rax, [rbp + 0x60]
xor r8d, r8d
lea rdx, str.RandSeedFile
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov rcx, qword [rsp + 0x40]
mov ebx, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
jne 0x14008897f
cmp dword [rsp + 0x3c], 1
jne 0x14008897f
lea r8, [rsp + 0x30]
mov edx, edi
lea rcx, [rbp + 0x60]
call fcn.140089980
test al, al
jne 0x140088b26
cmp byte [0x140122128], 0
jne 0x1400889d0
lea rcx, str.shell32.dll
call fcn.140082e60
mov qword [0x140122130], rax
test rax, rax
je 0x1400889c0
lea rdx, str.SHGetFolderPathA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140122138], rax
mov byte [0x140122128], 1
jmp 0x1400889d7
mov qword [0x140122138], rax
mov byte [0x140122128], 1
jmp 0x1400889d7
mov rax, qword [0x140122138]
test rax, rax
je 0x140088a72
xor r9d, r9d
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x20], rcx
xor r8d, r8d
xor ecx, ecx
lea edx, [r9 + 0x1c]
call rax
test eax, eax
js 0x140088a27
xor r8d, r8d
lea rdx, str.PUTTY.RND
lea rcx, [rsp + 0x50]
call fcn.14006c590
mov rcx, rax
lea r8, [rsp + 0x30]
mov edx, edi
call fcn.140089a40
test al, al
jne 0x140088b26
xor r9d, r9d
lea rax, [rsp + 0x50]
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor ecx, ecx
lea edx, [r9 + 0x1a]
call qword [0x140122138]
test eax, eax
js 0x140088a72
xor r8d, r8d
lea rdx, str.PUTTY.RND
lea rcx, [rsp + 0x50]
call fcn.14006c590
mov rcx, rax
lea r8, [rsp + 0x30]
mov edx, edi
call fcn.140089a40
test al, al
jne 0x140088b26
mov r8d, 0x104
lea rdx, [rbp + 0x60]
lea rcx, str.HOMEDRIVE
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov r8d, 0x104
lea rdx, [rsp + 0x50]
lea rcx, str.HOMEPATH
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test ebx, ebx
jne 0x140088aac
mov byte [rbp + 0x60], bl
jmp 0x140088ab4
cmp ebx, 0x104
jae 0x140088ae8
dec eax
cmp eax, 0x102
ja 0x140088ae8
xor r9d, r9d
lea r8, str.PUTTY.RND
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x60]
call fcn.14006c590
mov rcx, rax
lea r8, [rsp + 0x30]
mov edx, edi
call fcn.140089a40
test al, al
jne 0x140088b26
mov edx, 0x104
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
cmp eax, 0x104
jae 0x140088b2d
xor r8d, r8d
lea rdx, str.PUTTY.RND
lea rcx, [rsp + 0x50]
call fcn.14006c590
mov rcx, rax
lea r8, [rsp + 0x30]
mov edx, edi
call fcn.140089a40
test al, al
je 0x140088b2d
mov rax, qword [rsp + 0x30]
jmp 0x140088b34
mov rax, 0xffffffffffffffff
mov rcx, qword [rbp + 0x170]
xor rcx, rsp
call fcn.14008ce70
lea r11, [rsp + 0x280]
mov rbx, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret