Function at 0x14003d150
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 [0x14012b050]
xor rax, rsp
mov qword [rsp + 0x40], rax
call fcn.140043bc0
mov r13, rax
lea rcx, [rax + 0x18]
lea rdx, str._s__d:
mov r8, rdi
mov r9d, esi
call fcn.140042fb0
mov rcx, rbx
mov rdx, r13
call fcn.14007a5e0
mov qword [rsp + 0x20], 0
lea r9, str.SoftwareSimonTathamPuTTYSshHostKeys
xor ecx, ecx
xor edx, edx
mov r8, 0xffffffff80000001
call fcn.140046460
test rax, rax
je 0x14003d1fe
mov r12, rax
mov rdx, qword [r13]
mov rcx, rax
call fcn.140046750
test rax, rax
je 0x14003d20d
mov rsi, rax
mov rcx, r12
call fcn.1400465a0
mov rcx, rsi
mov rdx, r14
call fcn.1400cfc60
xor edi, edi
test eax, eax
setne dil
add edi, edi
jmp 0x14003d22f
mov rcx, r13
call fcn.140043cc0
mov edi, 1
jmp 0x14003d23f
lea rdx, [0x14010e9d1]
mov rcx, rdi
call fcn.1400cfc60
test eax, eax
je 0x14003d25f
mov rcx, r12
call fcn.1400465a0
mov edi, 1
xor esi, esi
mov rcx, rsi
call fcn.140043590
mov rcx, r13
call fcn.140043cc0
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1400ba9f0
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, [0x1401129bf]
mov rcx, rsi
call fcn.1400cfcd0
lea rdx, [rsi + rax]
add rdx, 1
mov rcx, r12
call fcn.140046750
mov rdi, rax
test rax, rax
je 0x14003d406
call fcn.140043bc0
mov rbx, rax
mov qword [rsp + 0x28], rax
add rbx, 0x18
lea r15, [0x1401049cb]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], 2
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.140042b00
lea rdx, [0x140113d83]
mov rcx, rdi
call fcn.1400cfcd0
mov edx, eax
nop word cs:[rax + rax]
nop dword [rax]
lea ecx, [rdx - 1]
movsxd rsi, ecx
xor rsi, 3
cmp byte [rdi + rsi], 0x30
jne 0x14003d2f7
cmp edx, 1
mov edx, ecx
jg 0x14003d2e0
lea esi, [rax + 3]
test eax, eax
cmovns esi, eax
sar esi, 2
lea eax, [rcx + 1]
test eax, eax
jle 0x14003d331
nop dword [rax]
movsxd rbp, ecx
mov rax, rbp
xor rax, 3
movzx edx, byte [rdi + rax]
mov rcx, rbx
call fcn.140042ba0
lea ecx, [rbp - 1]
add ebp, 1
cmp ebp, 1
ja 0x14003d310
movsxd rax, esi
lea rsi, [rdi + rax*4]
cmp byte [rdi + rax*4], 0
je 0x14003d34c
add rsi, 1
mov rcx, rbx
mov dl, 0x2c
call fcn.140042ba0
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], 2
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.140042b00
lea rdx, [0x140113d83]
mov rcx, rsi
call fcn.1400cfcd0
mov edx, eax
nop dword [rax + rax]
lea ecx, [rdx - 1]
movsxd rbp, ecx
xor rbp, 3
cmp byte [rsi + rbp], 0x30
jne 0x14003d397
cmp edx, 1
mov edx, ecx
jg 0x14003d380
lea ebp, [rax + 3]
test eax, eax
cmovns ebp, eax
sar ebp, 2
lea eax, [rcx + 1]
test eax, eax
jle 0x14003d3d4
nop dword [rax]
movsxd r15, ecx
mov rax, r15
xor rax, 3
movzx edx, byte [rsi + rax]
mov rcx, rbx
call fcn.140042ba0
lea ecx, [r15 - 1]
add r15d, 1
cmp r15d, 1
ja 0x14003d3b0
movsxd rax, ebp
cmp byte [rsi + rax*4], 0
je 0x14003d3e7
mov rcx, rbx
mov dl, 0x2c
call fcn.140042ba0
mov rbx, qword [rsp + 0x28]
mov rsi, qword [rbx]
mov rcx, rsi
mov rdx, r14
call fcn.1400cfc60
test eax, eax
je 0x14003d40a
mov rcx, rbx
call fcn.140043cc0
xor esi, esi
jmp 0x14003d424
mov rdx, qword [r13]
mov rcx, r12
mov r8, rsi
call fcn.140046840
mov rcx, rbx
call fcn.140043d00
mov rsi, rax
mov rcx, rdi
call fcn.140043590
mov rcx, r12
call fcn.1400465a0
test rsi, rsi
jne 0x14003d1e7
jmp 0x14003d228