Function at 0x14038ce10
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xc8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x40], 0xfffffffffffffffe
mov byte [rbp + 0x3f], r9b
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x28], rdx
mov rsi, rcx
mov ecx, 0xffff4007
mov eax, dword [0x140547698]
add eax, ecx
cdqe
add rax, qword [0x1405476a8]
lea rcx, [rbp - 0x58]
call qword [case.0x140303ece.0]
call fcn.140383c40
lea r8, [0x14055f2c8]
lea rcx, [rbp - 0x18]
mov rdx, qword [rbp + 0x28]
mov r9, qword [rbp + 0x30]
call fcn.1403a7370
lea rcx, [rbp - 0x58]
lea rdx, [rbp - 0x18]
call fcn.140396ce0
mov rcx, qword [rbp]
mov rdx, qword [rbp + 8]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x14038cefd
mov rax, qword [rcx - 8]
mov r8, qword [0x140548438]
movabs r9, 0xd44d35bc6f2686f7
xor r9, r8
movabs r10, 0x544d35bc6f2686f7
and r10, r8
lea r8, [r9 + r10*2]
add r8, rcx
sub r8, rax
movabs rcx, 0x9b7eb30ebf13ea65
add rcx, r8
cmp rcx, 0x20
jae 0x14038cfac
add rdx, qword [0x140548438]
movabs rcx, 0x6fcbe8cb2e3a718b
add rdx, rcx
mov rcx, rax
lea rdi, [rbp]
mov eax, dword [0x14054769c]
mov r8d, dword [0x140548430]
add eax, r8d
add eax, 0x5a056f12
cdqe
add rax, qword [0x1405476b0]
call qword [case.0x140303ece.0]
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
mov rax, qword [rbp - 0x10]
mov rcx, qword [rax + 8]
mov qword [rcx], 0
mov rcx, qword [rax]
test rcx, rcx
je 0x14038cf77
mov edi, 0xffff4007
nop
mov rbx, qword [rcx]
mov eax, dword [0x14054769c]
add eax, edi
cdqe
add rax, qword [0x1405476b0]
mov edx, 0x20
call qword [case.0x140303ece.0]
mov rcx, rbx
test rbx, rbx
jne 0x14038cf50
mov eax, 0xffff4007
add eax, dword [0x14054769c]
mov rcx, qword [rbp - 0x10]
cdqe
add rax, qword [0x1405476b0]
mov edx, 0x20
call qword [case.0x140303ece.0]
call fcn.140385510
mov eax, dword [0x14055f49c]
cmp eax, 0x31
jl 0x14038cfb1
jmp 0x14038cfc6
call fcn.1403c4adc
mov r14, qword [0x140546b60]
movsxd rdi, dword [r14]
mov eax, dword [0x14055f49c]
cmp eax, 0x55
jl 0x14038d00c
lea rax, [fcn.14038ce10]
add eax, eax
add eax, 0x3c40
nop word cs:[rax + rax]
mov rcx, qword [0x140546b60]
mov ecx, dword [rcx]
mov ecx, dword [0x140548430]
mov edx, ecx
xor edx, 0xdd0e7717
and ecx, 0x5d0e7717
lea ecx, [rdx + rcx*2]
add ecx, 0x7cf7b7f5
test eax, ecx
jne 0x14038cfe0
jmp 0x14038cfb1
mov r15d, dword [0x14044f000]
lea rdx, [0x14055f310]
lea rcx, [rbp - 0x58]
mov r8, qword [rbp + 0x30]
call fcn.14038df10
call fcn.140385940
mov ebx, dword [0x140546b54]
mov eax, 0xe1f72103
sub eax, ebx
mov ecx, eax
not ecx
lea eax, [rcx + rax*2]
mov ecx, dword [0x140548430]
neg eax
lea r12d, [rcx + rax]
add r12d, 0x3bfd500e
mov dword [0x140546b54], r12d
xor r13d, r13d
test ebx, r12d
jne 0x14038d0a6
neg rdi
neg r14
mov rax, rdi
xor rax, r14
and r14, rdi
lea rax, [rax + r14*2]
neg rax
mov ecx, dword [0x14055f498]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x14038d090
mov cl, 1
test cl, cl
jne 0x14038d09d
nop
mov ecx, dword [0x14055f49c]
cmp ecx, 0x2d
jge 0x14038d090
jmp 0x14038d089
test r15d, r15d
jg 0x14038d7b9
lea r8, [0x14055f358]
lea rcx, [rbp - 0x18]
mov rdx, qword [rbp + 0x28]
mov r9, qword [rbp + 0x30]
call fcn.1403a80d0
lea rcx, [rbp - 0x58]
lea rdx, [rbp - 0x18]
call fcn.140396ce0
mov rcx, qword [rbp]
mov rdx, qword [rbp + 8]
sub rdx, rcx
movabs r8, 0x6fcbe8cb2e3a8163
mov rax, qword [0x140548438]
add rax, r8
cmp rdx, rax
jbe 0x14038d10b
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x14038d9b0
add rdx, 0x27
mov rcx, rax
mov eax, dword [0x14054769c]
sub eax, dword [0x140548430]
add eax, 0xa5f910fc
cdqe
add rax, qword [0x1405476b0]
call qword [case.0x140303ece.0]
xorps xmm0, xmm0
lea rax, [rbp]
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
mov rax, qword [rbp - 0x10]
mov rcx, qword [rax + 8]
mov qword [rcx], 0
mov rcx, qword [rax]
movabs r15, 0x6fcbe8cb2e3a7184
test rcx, rcx
je 0x14038d1a6
mov edi, 0xffff4007
nop word cs:[rax + rax]
mov r14, qword [rcx]
mov eax, dword [0x14054769c]
add eax, edi
cdqe
add rax, qword [0x1405476b0]
mov rdx, qword [0x140548438]
mov r8, rdx
xor r8, r15
and rdx, r15
lea rdx, [r8 + rdx*2]
call qword [case.0x140303ece.0]
mov rcx, r14
test r14, r14
jne 0x14038d170
mov eax, 0xffff4007
add eax, dword [0x14054769c]
mov rcx, qword [rbp - 0x10]
cdqe
add rax, qword [0x1405476b0]
mov edx, 0x20
call qword [case.0x140303ece.0]
and ebx, r12d
mov ecx, dword [0x14044eff4]
mov eax, 0x5a062f0a
add eax, dword [0x140548430]
cmp ebx, 1
mov edx, eax
sbb edx, 0xffffffff
sub ecx, r13d
mov r8d, edx
xor r8d, edx
not r8d
and r8d, ecx
xor r8d, edx
and ecx, edx
or ecx, r8d
not ecx
or ecx, r8d
mov edx, eax
xor edx, eax
not edx
and edx, ecx
xor edx, eax
add dword [0x14055f4a0], edx
call fcn.14038b080
lea r8, [0x14055f3a0]
lea rcx, [rbp - 0x18]
mov rdx, qword [rbp + 0x28]
mov r9, qword [rbp + 0x30]
call fcn.1403a89a0
lea rcx, [rbp - 0x58]
lea rdx, [rbp - 0x18]
call fcn.140396ce0
mov rcx, qword [rbp]
mov rax, rcx
sub rax, qword [rbp + 8]
mov rdx, rax
neg rdx
cmp rdx, 0x1000
jb 0x14038d2c2
mov r8, qword [rcx - 8]
mov rdx, qword [0x140548438]
add rcx, rdx
mov r9, r8
sub r9, rcx
movabs rcx, 0x656884bbf66be2e9
sub rcx, r9
movabs r10, 0x7a2f4cda6608ffd7
mov r11, rdx
xor r11, r10
and rdx, r10
lea rdx, [r11 + rdx*2]
xor rcx, rdx
movabs r10, 0x9a977b4409941d16
add r10, r9
not rdx
and rdx, r10
or rdx, rcx
not rdx
lea rcx, [rcx + rdx*2]
cmp rcx, 0x20
jae 0x14038d9b5
mov edx, 0x27
sub rdx, rax
mov rcx, r8
mov edi, 0xffff4007
mov eax, dword [0x14054769c]
add eax, edi
cdqe
add rax, qword [0x1405476b0]
call qword [case.0x140303ece.0]
xorps xmm0, xmm0
lea rax, [rbp]
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
mov rax, qword [rbp - 0x10]
mov rcx, qword [rax + 8]
mov qword [rcx], 0
mov rcx, qword [rax]
test rcx, rcx
je 0x14038d33c
nop word [rax + rax]
mov rbx, qword [rcx]
mov eax, dword [0x14054769c]
add eax, edi
cdqe
add rax, qword [0x1405476b0]
mov rdx, qword [0x140548438]
add rdx, r15
call qword [case.0x140303ece.0]
mov rcx, rbx
test rbx, rbx
jne 0x14038d310
add edi, dword [0x14054769c]
mov rcx, qword [rbp - 0x10]
movsxd rax, edi
add rax, qword [0x1405476b0]
mov edx, 0x20
call qword [case.0x140303ece.0]
call fcn.14038bde0
lea r8, [0x14055f3e8]
lea rcx, [rbp - 0x18]
mov rdx, qword [rbp + 0x28]
mov r9, qword [rbp + 0x30]
call fcn.1403a99e0
lea rcx, [rbp - 0x58]
lea rdx, [rbp - 0x18]
call fcn.140396ce0
mov rcx, qword [rbp]
mov rdx, qword [rbp + 8]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x14038d3d2
mov rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x14038d9ba
mov rcx, rdx
xor rcx, 0x27
not rdx
movabs r8, 0x7fffffffffffffd8
and r8, rdx
or r8, rcx
not r8
lea rdx, [rcx + r8*2]
mov rcx, rax
mov edi, 0xffff4007
mov eax, dword [0x14054769c]
add eax, edi
cdqe
add rax, qword [0x1405476b0]
call qword [case.0x140303ece.0]
xorps xmm0, xmm0
lea rax, [rbp]
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
mov rax, qword [rbp - 0x10]
mov rcx, qword [rax + 8]
mov qword [rcx], 0
mov rcx, qword [rax]
test rcx, rcx
je 0x14038d447
nop word [rax + rax]
mov rbx, qword [rcx]
mov eax, dword [0x14054769c]
add eax, edi
cdqe
add rax, qword [0x1405476b0]
mov edx, 0x20
call qword [case.0x140303ece.0]
mov rcx, rbx
test rbx, rbx
jne 0x14038d420
mov rcx, qword [rbp - 0x10]
mov eax, dword [0x14054769c]
mov edx, dword [0x140548430]
add eax, edx
add eax, 0x5a056f12
cdqe
add rax, qword [0x1405476b0]
add r15, qword [0x140548438]
mov rdx, r15
call qword [case.0x140303ece.0]
cmp byte [rbp + 0x3f], 0
jne 0x14038d496
call fcn.14038c2c0
lea rdx, [0x14055f430]
lea rcx, [rbp - 0x58]
mov r8, qword [rbp + 0x30]
call fcn.14038df10
mov dword [rsi], 0
mov rdi, qword [rbp - 0x50]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x14038d555
mov rax, rbx
jmp 0x14038d516
movzx ecx, byte [0x140548438]
add cl, 0x69
mov rdx, r8
shr rdx, cl
mov ecx, dword [rsi + rdx*4]
mov r9d, ecx
btc r9d, r8d
bts ecx, r8d
not ecx
or ecx, r9d
mov r8d, ecx
not r8d
mov r10d, r8d
xor r10d, r9d
mov r11d, ecx
and ecx, r9d
not r9d
and r11d, r9d
or r11d, r10d
not r11d
and r9d, r8d
or r9d, ecx
or r9d, r11d
mov dword [rsi + rdx*4], r9d
mov rax, qword [rax]
cmp rax, rdi
je 0x14038d555
mov ecx, dword [rax + 0x18]
mov edx, dword [0x14055f4a0]
mov r8d, ecx
not r8d
mov r9d, edx
and r9d, r8d
or r8d, edx
not r8d
or r8d, r9d
and edx, ecx
lea ecx, [r8 + rdx*2]
cmp ecx, 0xa
jb 0x14038d50e
mov r8, qword [rax + 0x10]
cmp r8, 0x15
jb 0x14038d4c0
mov rcx, rsi
call fcn.140396cb0
mov edx, dword [rsi]
mov eax, dword [0x140548430]
lea ecx, [rax + 0x5a062f0a]
mov r8d, edx
not r8d
mov r9d, 0xa5f9d0f5
sub r9d, eax
xor ecx, r8d
and r9d, edx
or ecx, r9d
not ecx
or ecx, r9d
and r8d, 0x80000
and edx, 0xfff7ffff
or edx, r8d
and ecx, 0xfff7ffff
or ecx, edx
not ecx
add eax, 0x5a062f0b
cmp ecx, eax
je 0x14038d89d
movzx ecx, byte [0x14055c122]
movzx eax, byte [0x140548434]
lea edx, [rax + 0x32]
mov r8d, ecx
xor r8b, dl
and cl, dl
add cl, cl
add cl, r8b
add cl, byte [rsi]
mov edx, eax
xor dl, 0x32
and al, 0x32
add al, al
add al, dl
sub cl, al
mov eax, dword [0x140547690]
mov r9d, dword [0x140548430]
add eax, r9d
add eax, 0x5a056f12
cdqe
add rax, qword [0x1405476b8]
movzx r14d, cl
lea ecx, [r9 + 0x5a062f0b]
lea r8d, [r9 - 0x5f307212]
add r9d, 0x145f364f
mov edx, ecx
call qword [case.0x140303ece.0]
movsx r15, byte [rax + r14]
mov eax, dword [0x140547690]
mov r9d, dword [0x140548430]
add eax, r9d
add eax, 0x5a056f12
cdqe
add rax, qword [0x1405476b8]
movzx r14d, byte [rsi + 1]
lea ecx, [r9 + 0x5a062f0b]
mov edx, r9d
xor edx, 0xa0cf8dee
mov r8d, r9d
and r8d, 0x20cf8dee
lea r8d, [rdx + r8*2]
add r9d, 0x145f364f
mov edx, ecx
call qword [case.0x140303ece.0]
movsx r14, byte [rax + r14]
add r14, r15
movzx r15d, byte [rsi + 2]
mov r12d, 0xffff4007
mov eax, dword [0x140547690]
add eax, r12d
cdqe
add rax, qword [0x1405476b8]
xor ecx, ecx
xor edx, edx
mov r8d, 0x46c95ee3
mov r9d, 0xba590744
call qword [case.0x140303ece.0]
movsx r15, byte [rax + r15]
add r12d, dword [0x140547690]
movzx r13d, byte [rsi + 3]
movsxd rax, r12d
add rax, qword [0x1405476b8]
xor ecx, ecx
xor edx, edx
mov r8d, 0x46c95ee3
mov r9d, 0xba590744
call qword [case.0x140303ece.0]
movsx rax, byte [rax + r13]
add rax, r15
add rax, r14
movabs rcx, 0x6fcbe8cb2e3a7165
add rcx, qword [0x140548438]
cmp rax, rcx
jbe 0x14038d6fe
and byte [rsi + 2], 0xf7
jmp 0x14038d89d
cmp rbx, rdi
je 0x14038d89d
mov eax, 1
movabs rcx, 0x6fcbe8cb2e3a7177
mov rdx, rbx
nop dword [rax]
mov r8d, eax
mov r9, qword [0x140548438]
mov r10, r9
xor r10, rcx
and r9, rcx
mov eax, dword [rdx + 0x18]
cmp eax, r8d
cmovbe eax, r8d
lea r9, [r10 + r9*2]
cmp qword [rdx + 0x10], r9
mov r9, qword [rdx]
cmove eax, r8d
mov rdx, r9
cmp r9, rdi
jne 0x14038d720
cmp rbx, rdi
je 0x14038d89d
movzx ecx, byte [0x140548430]
add cl, 0x10
mov edx, eax
shr edx, cl
mov ecx, dword [0x14055bce0]
mov r8d, ecx
xor r8d, edx
and edx, ecx
lea edx, [r8 + rdx*2]
mov r8d, 1
mov ecx, eax
shl r8d, cl
xor ecx, ecx
jmp 0x14038d79c
mov rbx, qword [rbx]
cmp rbx, rdi
je 0x14038d87f
cmp qword [rbx + 0x10], 0x13
je 0x14038d790
cmp dword [rbx + 0x18], eax
jne 0x14038d790
cmp eax, 0x15
jae 0x14038d9a8
or dword [rsi + rdx*4], r8d
mov cl, 1
jmp 0x14038d790
xor ecx, ecx
lea rdx, [fcn.14038ce10]
add edx, edx
add edx, 0x3560
xor r13d, r13d
jmp 0x14038d7eb
add ecx, ecx
and ecx, 8
mov r9d, r8d
xor r9d, ecx
and ecx, r8d
lea ecx, [r9 + rcx*2]
cmp ecx, r15d
jge 0x14038d0a6
movsxd r8, ecx
mov r8d, dword [rax + r8]
nop word cs:[rax + rax]
mov r9d, dword [0x14055f49c]
cmp r9d, 0x31
jg 0x14038d800
mov r9d, r13d
not r9d
and r9d, r8d
xor r8d, r13d
and r13d, r8d
or r13d, r9d
mov r8d, ecx
xor r8d, 4
mov r9d, dword [0x140548430]
mov r10d, r9d
xor r10d, 0x5a062f0c
and r9d, 0x5a062f0c
lea r9d, [r10 + r9*2]
test edx, r9d
jne 0x14038d870
nop word [rax + rax]
mov r9d, dword [0x14055f498]
lea r10d, [r9 + 1]
imul r10d, r9d
test r10b, 1
je 0x14038d7d0
nop dword [rax]
mov r9d, dword [0x14055f49c]
cmp r9d, 0xd
jge 0x14038d870
jmp 0x14038d850
mov eax, ecx
xor al, 1
not cl
and cl, 0xfe
or cl, al
not cl
movzx eax, byte [0x140548434]
add al, 0x56
cmp cl, al
jne 0x14038d6f5
mov rcx, qword [rbp - 0x40]
mov rax, qword [rbp - 0x38]
mov rdx, rcx
neg rdx
lea r8, [rcx - 1]
xor r8, rdx
and r8, rax
xor r8, rdx
and rdx, rax
lea rdx, [r8 + rdx*2]
movabs rax, 0x6fcbe8cb2e3a8163
add rax, qword [0x140548438]
cmp rdx, rax
jbe 0x14038d8f1
mov rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x14038d9bf
add rdx, 0x27
mov rcx, rax
lea rbx, [rbp - 0x40]
mov edi, 0xffff4007
mov eax, dword [0x14054769c]
add eax, edi
cdqe
add rax, qword [0x1405476b0]
call qword [case.0x140303ece.0]
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
mov rax, qword [rbp - 0x50]
mov rcx, qword [rax + 8]
mov qword [rcx], 0
mov rcx, qword [rax]
test rcx, rcx
je 0x14038d972
nop word cs:[rax + rax]
mov rbx, qword [rcx]
mov eax, dword [0x14054769c]
mov edx, dword [0x140548430]
add eax, edx
add eax, 0x5a056f12
cdqe
add rax, qword [0x1405476b0]
mov edx, 0x20
call qword [case.0x140303ece.0]
mov rcx, rbx
test rbx, rbx
jne 0x14038d940
add edi, dword [0x14054769c]
mov rcx, qword [rbp - 0x50]
movsxd rax, edi
add rax, qword [0x1405476b0]
mov edx, 0x20
call qword [case.0x140303ece.0]
mov rax, rsi
add rsp, 0xc8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rcx, rsi
call fcn.140396cb0
call fcn.1403c4adc
call fcn.1403c4adc
call fcn.1403c4adc
call fcn.1403c4adc
int3