Function at 0x14003c8e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r14, r9
mov rdi, r8
mov esi, edx
mov rbx, rcx
mov rax, qword [0x140127050]
xor rax, rsp
mov qword [rsp + 0x40], rax
call fcn.1400432f0
mov r13, rax
lea rcx, [rax + 0x18]
lea rdx, str._s__d:
mov r8, rdi
mov r9d, esi
call fcn.1400426e0
mov rcx, rbx
mov rdx, r13
call fcn.140078740
lea r8, str.SoftwareSimonTathamPuTTYSshHostKeys
xor ecx, ecx
mov rdx, 0xffffffff80000001
xor r9d, r9d
call fcn.140045b90
test rax, rax
je 0x14003c986
mov r12, rax
mov rdx, qword [r13]
mov rcx, rax
call fcn.140045e70
test rax, rax
je 0x14003c995
mov rsi, rax
mov rcx, r12
call sub.ADVAPI32.dll_RegCloseKey
mov rcx, rsi
mov rdx, r14
call fcn.1400cd570
xor edi, edi
test eax, eax
setne dil
add edi, edi
jmp 0x14003c9b7
mov rcx, r13
call fcn.1400433f0
mov edi, 1
jmp 0x14003c9c7
lea rdx, [0x14010b901]
mov rcx, rdi
call fcn.1400cd570
test eax, eax
je 0x14003c9e7
mov rcx, r12
call sub.ADVAPI32.dll_RegCloseKey
mov edi, 1
xor esi, esi
mov rcx, rsi
call fcn.140042cc0
mov rcx, r13
call fcn.1400433f0
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1400b8300
mov eax, edi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, qword [r13]
lea rdx, [0x14010f85f]
mov rcx, rsi
call fcn.1400cd5e0
lea rdx, [rsi + rax]
add rdx, 1
mov rcx, r12
call fcn.140045e70
mov rdi, rax
test rax, rax
je 0x14003cb86
call fcn.1400432f0
mov rbx, rax
mov qword [rsp + 0x28], rax
add rbx, 0x18
lea r15, [0x140101a7b]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], 2
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.140042230
lea rdx, [0x140110c0c]
mov rcx, rdi
call fcn.1400cd5e0
mov edx, eax
nop word [rax + rax]
lea ecx, [rdx - 1]
movsxd rsi, ecx
xor rsi, 3
cmp byte [rdi + rsi], 0x30
jne 0x14003ca77
cmp edx, 1
mov edx, ecx
jg 0x14003ca60
lea esi, [rax + 3]
test eax, eax
cmovns esi, eax
sar esi, 2
lea eax, [rcx + 1]
test eax, eax
jle 0x14003cab1
nop dword [rax]
movsxd rbp, ecx
mov rax, rbp
xor rax, 3
movzx edx, byte [rdi + rax]
mov rcx, rbx
call fcn.1400422d0
lea ecx, [rbp - 1]
add ebp, 1
cmp ebp, 1
ja 0x14003ca90
movsxd rax, esi
lea rsi, [rdi + rax*4]
cmp byte [rdi + rax*4], 0
je 0x14003cacc
add rsi, 1
mov rcx, rbx
mov dl, 0x2c
call fcn.1400422d0
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], 2
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.140042230
lea rdx, [0x140110c0c]
mov rcx, rsi
call fcn.1400cd5e0
mov edx, eax
nop dword [rax + rax]
lea ecx, [rdx - 1]
movsxd rbp, ecx
xor rbp, 3
cmp byte [rsi + rbp], 0x30
jne 0x14003cb17
cmp edx, 1
mov edx, ecx
jg 0x14003cb00
lea ebp, [rax + 3]
test eax, eax
cmovns ebp, eax
sar ebp, 2
lea eax, [rcx + 1]
test eax, eax
jle 0x14003cb54
nop dword [rax]
movsxd r15, ecx
mov rax, r15
xor rax, 3
movzx edx, byte [rsi + rax]
mov rcx, rbx
call fcn.1400422d0
lea ecx, [r15 - 1]
add r15d, 1
cmp r15d, 1
ja 0x14003cb30
movsxd rax, ebp
cmp byte [rsi + rax*4], 0
je 0x14003cb67
mov rcx, rbx
mov dl, 0x2c
call fcn.1400422d0
mov rbx, qword [rsp + 0x28]
mov rsi, qword [rbx]
mov rcx, rsi
mov rdx, r14
call fcn.1400cd570
test eax, eax
je 0x14003cb8a
mov rcx, rbx
call fcn.1400433f0
xor esi, esi
jmp 0x14003cba4
mov rdx, qword [r13]
mov rcx, r12
mov r8, rsi
call fcn.140045f60
mov rcx, rbx
call fcn.140043430
mov rsi, rax
mov rcx, rdi
call fcn.140042cc0
mov rcx, r12
call sub.ADVAPI32.dll_RegCloseKey
test rsi, rsi
jne 0x14003c96f
jmp 0x14003c9b0