Function at 0x14000a940
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x158
vmovups xmmword [rsp + 0x130], xmm6
vmovups xmmword [rsp + 0x140], xmm7
mov rdi, rcx
mov rcx, r8
mov r14, rdx
mov rbx, r8
call sym.strlen
mov ecx, 7
mov edx, 4
mov rsi, rax
call sym.calloc
mov rcx, rax
test rsi, rsi
je 0x14000b0ad
mov r12, rbx
lea rbp, [rbx + rsi]
mov r11, rbx
lea r10, [0x1401b36df]
movzx r8d, byte [r11]
mov eax, 1
xor r9d, r9d
cmp r8b, 0x31
je 0x14000ab20
nop dword [rax + rax]
mov r9, rax
inc rax
movzx edx, byte [r10 + rax]
cmp dl, r8b
je 0x14000ab20
test dl, dl
jne 0x14000a9c0
call sym.free
lea rax, [rsi - 8]
cmp rax, 0x52
ja 0x14000adcf
lea r10, [rsi - 1]
xor eax, eax
cmp byte [rbx + r10], 0x31
mov r9, rax
lea rax, [rax + 1]
je 0x14000aa1a
nop
dec r10
cmp rsi, rax
je 0x14000adcf
cmp byte [rbx + r10], 0x31
mov r9, rax
lea rax, [rax + 1]
jne 0x14000aa00
cmp rax, rsi
jae 0x14000adcf
cmp r9, 5
jbe 0x14000adcf
test r10, r10
je 0x14000b243
mov edx, 1
xor eax, eax
xor ebp, ebp
xor r13d, r13d
mov ecx, edx
jmp 0x14000aaed
lea r8d, [r11 - 0x41]
cmp r8d, 0x19
ja 0x14000aa66
add r11d, 0x20
mov eax, 1
mov edx, r11d
mov r8d, ecx
mov byte [rsp + r13 + 0xd0], dl
shl ecx, 5
sar r11d, 5
shr r8d, 0x19
and ecx, 0x3fffffe0
inc r13
mov edx, r8d
mov r15d, r8d
shl edx, 0x1e
shl r15d, 0x1d
sar edx, 0x1f
sar r15d, 0x1f
and r15d, 0x1ea119fa
and edx, 0x26508e6d
xor edx, r15d
mov r15d, r8d
and r15d, 1
neg r15d
and r15d, 0x3b6a57b2
xor ecx, r15d
xor edx, ecx
mov ecx, r8d
shr r8d, 4
shl ecx, 0x1c
neg r8d
sar ecx, 0x1f
and r8d, 0x2a1462b3
and ecx, 0x3d4233dd
xor ecx, r8d
xor ecx, r11d
xor ecx, edx
cmp r13, r10
je 0x14000ae3d
movsx r11d, byte [rbx + r13]
lea r8d, [r11 - 0x21]
mov edx, r11d
cmp r8d, 0x5d
ja 0x14000adcf
lea r8d, [r11 - 0x61]
cmp r8d, 0x19
ja 0x14000aa50
mov ebp, 1
jmp 0x14000aa66
mov eax, dword [rcx + 0x18]
mov edx, dword [rcx + 0x14]
mov r13d, dword [rcx + 0xc]
imul rax, rax, 0x3a
imul rdx, rdx, 0x3a
imul r13, r13, 0x3a
add rax, r9
mov r9d, dword [rcx]
mov r8, rax
mov dword [rcx + 0x18], eax
mov eax, dword [rcx + 0x10]
shr r8, 0x20
add rdx, r8
mov r8, rdx
imul r9, r9, 0x3a
imul rax, rax, 0x3a
shr r8, 0x20
add rax, r8
mov r8, rax
vmovd xmm4, eax
mov eax, dword [rcx + 8]
shr r8, 0x20
vpinsrd xmm0, xmm4, edx, 1
add r13, r8
mov r8d, dword [rcx + 4]
vmovq qword [rcx + 0x10], xmm0
mov rdx, r13
imul rax, rax, 0x3a
shr rdx, 0x20
imul r8, r8, 0x3a
add rax, rdx
mov rdx, rax
vmovd xmm5, eax
shr rdx, 0x20
vpinsrd xmm1, xmm5, r13d, 1
add r8, rdx
mov rdx, r8
shr rdx, 0x20
add r9, rdx
vmovd xmm6, r9d
mov rax, r9
mov edx, r9d
vpinsrd xmm0, xmm6, r8d, 1
shr rax, 0x20
vpunpcklqdq xmm0, xmm0, xmm1
vmovdqu xmmword [rcx], xmm0
jne 0x14000a9d8
cmp r9d, 0xff
ja 0x14000a9d8
inc r11
cmp r11, rbp
jne 0x14000a9a5
mov r9d, dword [rcx + 4]
mov eax, dword [rcx + 8]
vmovd xmm1, edx
mov r8d, dword [rcx + 0xc]
mov r10d, dword [rcx + 0x10]
mov r11d, r9d
vmovd xmm0, eax
mov esi, r9d
mov r15d, r9d
shr r11d, 8
shr esi, 0x10
vmovd xmm3, r9d
mov r9d, dword [rcx + 0x14]
mov dword [rsp + 0x20], r11d
mov r11d, eax
vmovd xmm7, esi
vpinsrb xmm7, xmm7, byte [rsp + 0x20], 1
shr r11d, 0x18
mov r13d, r8d
vmovd xmm2, r8d
mov r12d, r10d
mov dword [rsp + 0x2c], r11d
mov r11d, eax
vpinsrb xmm3, xmm3, byte [rsp + 0x2c], 1
mov ebp, r10d
shr r11d, 0x10
mov edx, r9d
shr r15d, 0x18
shr r13d, 8
mov dword [rsp + 0x30], r11d
mov r11d, eax
mov eax, dword [rcx + 0x18]
shr edx, 0x18
shr r11d, 8
vmovd xmm6, dword [rsp + 0x30]
movzx edx, dl
shr r12d, 0x18
mov dword [rsp + 0x34], r11d
mov r11d, r8d
vpinsrb xmm6, xmm6, byte [rsp + 0x34], 1
shr ebp, 8
shr r11d, 0x18
vpinsrb xmm1, xmm1, r15d, 1
vpinsrb xmm2, xmm2, r12d, 1
mov dword [rsp + 0x38], r11d
mov r11d, r8d
mov esi, eax
mov byte [rsp + 0x88], al
shr r11d, 0x10
shr esi, 0x10
mov r8d, r9d
vpunpcklwd xmm1, xmm1, xmm7
mov dword [rsp + 0x3c], r11d
mov r11d, r10d
movzx esi, sil
vpinsrb xmm0, xmm0, byte [rsp + 0x38], 1
shr r11d, 0x10
shr r8d, 0x10
vmovd xmm5, dword [rsp + 0x3c]
vmovd xmm4, r11d
mov r11d, eax
and eax, 0xff00
movzx r8d, r8b
or rax, rsi
shr r11d, 0x18
vpinsrb xmm5, xmm5, r13d, 1
vpinsrb xmm4, xmm4, ebp, 1
movzx r11d, r11b
shl rax, 8
vpunpcklwd xmm3, xmm3, xmm6
vpunpcklwd xmm2, xmm2, xmm4
or rax, r11
movzx r11d, r9b
vpunpckldq xmm1, xmm1, xmm3
shl rax, 8
or rax, r11
mov rsi, rax
mov eax, r9d
vpunpcklwd xmm0, xmm0, xmm5
movzx eax, ah
vpunpckldq xmm0, xmm0, xmm2
mov r9, rax
mov rax, rsi
vpunpcklqdq xmm0, xmm1, xmm0
lea rsi, [rsp + 0x70]
shl rax, 8
vmovdqu xmmword [rsp + 0x70], xmm0
or rax, r9
shl rax, 8
or rax, r8
shl rax, 8
or rax, rdx
movzx edx, r10b
shl rax, 8
mov r10, rax
or r10, rdx
mov qword [rsp + 0x80], r10
call sym.free
lea rcx, [rsp + 0xd0]
mov r8d, 0x15
mov rdx, rsi
call sym.sha256d
mov eax, dword [rsp + 0xd0]
cmp dword [rsp + 0x85], eax
jne 0x14000adcf
movzx edx, byte [rsp + 0x70]
movzx ecx, byte [rbx]
xor eax, eax
test dl, dl
je 0x14000adc9
jmp 0x14000b068
inc rax
cmp byte [rsi + rax], 0
jne 0x14000ade0
cmp byte [rbx + rax], 0x31
je 0x14000adc0
xor eax, eax
jmp 0x14000adf1
cmp byte [rbx + rax], 0x31
je 0x14000adcf
cmp r14, 0x18
ja 0x14000ae17
mov eax, 0x19
vmovups xmm6, xmmword [rsp + 0x130]
vmovups xmm7, xmmword [rsp + 0x140]
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
vmovdqu xmm7, xmmword [rsp + 0x71]
mov eax, dword [rsp + 0x81]
mov word [rdi], 0xa976
mov byte [rdi + 2], 0x14
mov word [rdi + 0x17], 0xac88
mov dword [rdi + 0x13], eax
vmovdqu xmmword [rdi + 3], xmm7
jmp 0x14000adec
mov r8d, ecx
mov edx, ecx
mov byte [rsp + r10 + 0xd0], 0
shr r8d, 0x19
mov r11d, r8d
mov ecx, r8d
shl r11d, 0x1e
shl ecx, 0x1d
sar r11d, 0x1f
sar ecx, 0x1f
and ecx, 0x1ea119fa
and r11d, 0x26508e6d
xor r11d, ecx
mov ecx, edx
mov edx, r8d
and edx, 1
shl ecx, 5
neg edx
and ecx, 0x3fffffe0
and edx, 0x3b6a57b2
xor ecx, edx
mov edx, r11d
xor edx, ecx
mov ecx, r8d
shl ecx, 0x1c
sar ecx, 0x1f
and ecx, 0x3d4233dd
mov r11d, ecx
mov ecx, r8d
shr ecx, 4
neg ecx
and ecx, 0x2a1462b3
xor ecx, r11d
lea r11, [rbx + r10]
xor edx, ecx
mov ecx, edx
nop
mov edx, ecx
shl ecx, 5
inc r12
shr edx, 0x19
and ecx, 0x3fffffe0
mov r8d, edx
mov r13d, edx
and r8d, 1
shr r13d, 4
neg r8d
neg r13d
and r8d, 0x3b6a57b2
and r13d, 0x2a1462b3
xor ecx, r8d
movzx r8d, byte [r12 - 1]
and r8d, 0x1f
xor r8d, r13d
mov r13d, edx
xor r8d, ecx
mov ecx, edx
shl r13d, 0x1d
shl edx, 0x1c
shl ecx, 0x1e
sar r13d, 0x1f
sar edx, 0x1f
sar ecx, 0x1f
and r13d, 0x1ea119fa
and edx, 0x3d4233dd
and ecx, 0x26508e6d
xor ecx, r13d
xor ecx, edx
xor ecx, r8d
cmp r12, r11
jne 0x14000aec0
mov edx, ecx
lea rcx, [r10 + 1]
cmp rcx, rsi
jae 0x14000b0b9
mov r8, r9
add rcx, 6
lea r12, [rsi + 6]
lea r13, [0x1401b3660]
sub r8, rsi
mov qword [rsp + 0x20], r9
lea r15, [rsp + r8 + 0x70]
jmp 0x14000b03b
movsx r9, r8b
movzx r10d, byte [r13 + r9]
lea r9d, [r8 - 0x61]
cmp r9b, 0x19
ja 0x14000b051
mov ebp, 1
cmp r10b, 0xff
je 0x14000adcf
mov r8d, edx
shl edx, 5
shr r8d, 0x19
and edx, 0x3fffffe0
mov r9d, r8d
mov r11d, r8d
shl r9d, 0x1e
shl r11d, 0x1d
sar r9d, 0x1f
sar r11d, 0x1f
and r11d, 0x1ea119fa
and r9d, 0x26508e6d
xor r9d, r11d
mov r11d, r8d
and r11d, 1
neg r11d
and r11d, 0x3b6a57b2
xor edx, r11d
mov r11d, r9d
mov r9d, r8d
shl r8d, 0x1b
shl r9d, 0x1c
sar r8d, 0x1f
xor r11d, edx
sar r9d, 0x1f
and r8d, 0x2a1462b3
and r9d, 0x3d4233dd
mov edx, r9d
xor edx, r8d
movsx r8d, r10b
xor edx, r8d
xor edx, r11d
cmp rcx, rsi
jae 0x14000b033
mov byte [r15 + rcx - 6], r10b
inc rcx
cmp r12, rcx
je 0x14000b0b4
movzx r8d, byte [rbx + rcx - 6]
test r8b, r8b
jns 0x14000af80
xor eax, eax
jmp 0x14000adf1
sub r8d, 0x41
cmp r8b, 0x19
mov r8d, 1
cmovbe eax, r8d
jmp 0x14000af9d
cmp cl, 0x31
je 0x14000adcf
cmp dl, 5
je 0x14000b07f
cmp dl, 0xc4
jne 0x14000ade6
cmp r14, 0x16
jbe 0x14000b0a3
vmovdqu xmm7, xmmword [rsp + 0x71]
mov eax, dword [rsp + 0x81]
mov word [rdi], 0x14a9
mov byte [rdi + 0x16], 0x87
mov dword [rdi + 0x12], eax
vmovdqu xmmword [rdi + 2], xmm7
mov eax, 0x17
jmp 0x14000adf1
mov edx, dword [rax]
jmp 0x14000abea
mov r9, qword [rsp + 0x20]
and eax, ebp
jne 0x14000adcf
cmp edx, 1
jne 0x14000adcf
lea rdx, [r9 - 7]
cmp rdx, 0x40
ja 0x14000adcf
movzx r11d, byte [rsp + 0x70]
cmp r11b, 0x10
ja 0x14000adcf
test rdx, rdx
je 0x14000adcf
lea rbx, [rsp + r9 + 0x6a]
xor edx, edx
lea r10, [rsp + 0x71]
xor r8d, r8d
jmp 0x14000b113
mov rdx, r9
movzx ecx, byte [r10]
shl r8d, 5
inc r10
or r8d, ecx
lea ecx, [rax + 5]
cmp ecx, 7
jle 0x14000b220
sub eax, 3
lea r9, [rdx + 1]
shrx ecx, r8d, eax
mov byte [rsp + rdx + 0x40], cl
cmp r10, rbx
jne 0x14000b110
mov edx, 8
sub edx, eax
shlx r8d, r8d, edx
test r8b, r8b
jne 0x14000adcf
cmp eax, 4
jg 0x14000adcf
lea rax, [r9 - 2]
cmp rax, 0x26
ja 0x14000adcf
test r11b, r11b
jne 0x14000b22a
cmp r9, 0x14
je 0x14000b25e
cmp r9, 0x20
jne 0x14000adcf
mov edx, 0x20
mov eax, 0x22
cmp r14, 0x21
jbe 0x14000adcf
mov byte [rdi + 1], dl
mov byte [rdi], r11b
lea rdx, [rdi + 2]
lea rsi, [rsp + 0x40]
mov ecx, r9d
cmp r9d, 4
jae 0x14000b1f0
test r9d, r9d
je 0x14000adf1
movzx r8d, byte [rsp + 0x40]
mov byte [rdi + 2], r8b
test cl, 2
je 0x14000adf1
movzx r8d, word [rsi + rcx - 2]
mov word [rdx + rcx - 2], r8w
jmp 0x14000adf1
mov ecx, dword [rsp + 0x40]
add rdi, 6
mov dword [rdi - 4], ecx
mov ecx, r9d
and rdi, 0xfffffffffffffffc
mov r8d, dword [rsi + rcx - 4]
mov dword [rdx + rcx - 4], r8d
sub rdx, rdi
lea ecx, [r9 + rdx]
sub rsi, rdx
shr ecx, 2
rep movsd dword [rdi], dword [rsi]
jmp 0x14000adf1
mov r9, rdx
mov eax, ecx
jmp 0x14000b13d
lea rax, [r9 + 2]
cmp r14, rax
jb 0x14000adcf
add r11d, 0x50
mov edx, r9d
jmp 0x14000b19f
mov byte [rsp + 0xd0], 0
mov ecx, 1
mov edx, 0x20
xor ebp, ebp
xor eax, eax
jmp 0x14000af4e
cmp r14, 0x15
jbe 0x14000adcf
mov edx, 0x14
mov eax, 0x16
jmp 0x14000b19f