Function at 0x14047d250
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
pcmpeqd xmm0, xmm0
movdqu xmmword [rsp + 0x64], xmm0
movdqu xmmword [rsp + 0x54], xmm0
mov dword [rsp + 0x74], 0xffffffff
mov dword [rsp + 0x50], 0x1fffffff
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x30], xmm0
movdqa xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x40], 0
mov r8d, 4
xor ebp, ebp
lea r15, [0x1406cb050]
lea r12, [0x1406cb550]
mov ebx, dword [rcx + r8*4]
xor edi, edi
test r8, r8
setne dil
lea r9d, [rdi + rdi]
add r9d, 0x1e
xor esi, esi
test bl, 1
je 0x14047d2f5
movsx rax, bp
mov r10d, dword [r15 + rax*4]
movsx rdi, word [r12 + rax*2]
or dword [rsp + rdi*4 + 0x20], r10d
mov edi, dword [r15 + rax*4 + 0x278]
movsx rax, word [r12 + rax*2 + 0x13c]
or dword [rsp + rax*4 + 0x20], edi
inc ebp
shr ebx, 1
inc esi
movsx eax, si
cmp r9d, eax
jg 0x14047d2c9
test r8, r8
lea r8, [r8 - 1]
jg 0x14047d2b2
pxor xmm0, xmm0
movdqa xmmword [rsp + 0xc0], xmm0
movdqa xmmword [rsp + 0xb0], xmm0
mov qword [rsp + 0xd0], 0
movdqa xmmword [rsp + 0x90], xmm0
movdqa xmmword [rsp + 0x80], xmm0
movabs rax, 0x100000000
mov qword [rsp + 0xa0], rax
movzx eax, byte [rsp + 0x44]
xor r11d, r11d
lea r8, [0x1406cb7d0]
movzx eax, al
movzx r9d, byte [rax + r8]
movsx r11d, r11w
mov r10d, 0x20
sub r10d, r9d
xor ebx, ebx
xor edi, edi
mov eax, dword [rsp + rbx*4 + 0x20]
mov esi, eax
mov ecx, r9d
shr esi, cl
movsx ebp, di
mov edi, eax
mov ecx, r10d
shl ebp, cl
or ebp, esi
mov dword [rsp + rbx*4 + 0x20], ebp
inc rbx
cmp rbx, 0xa
jne 0x14047d37a
add r11d, r9d
cmp r9b, 8
jne 0x14047d3af
mov eax, dword [rsp + 0x44]
test al, 1
je 0x14047d361
mov qword [rsp + 0x78], rdx
xor eax, eax
jmp 0x14047d3c0
inc eax
cmp ax, 8
ja 0x14047d3cc
movzx ecx, ax
cmp dword [rsp + rcx*4 + 0x20], 0
je 0x14047d3b8
jmp 0x14047d3d7
cmp dword [rsp + 0x44], 1
je 0x14047d6e4
mov r13w, 9
xor r10d, r10d
movsx rax, r10w
mov ecx, dword [rsp + rax*4 + 0x20]
test ecx, ecx
jne 0x14047d3f8
cmp dword [rsp + rax*4 + 0x50], 0
je 0x14047d7a8
xor ecx, ecx
cmp ecx, dword [rsp + rax*4 + 0x50]
jb 0x14047d57e
cmp r10w, 9
ja 0x14047d41e
movsx rax, r10w
mov ecx, dword [rsp + rax*4 + 0x50]
xor dword [rsp + rax*4 + 0x20], ecx
inc rax
cmp ax, 0xa
jb 0x14047d40d
cmp r13w, 9
ja 0x14047d440
movsx rax, r13w
mov ecx, dword [rsp + rax*4 + 0xb0]
xor dword [rsp + rax*4 + 0x80], ecx
inc rax
cmp ax, 0xa
jb 0x14047d429
movsx rax, r10w
mov qword [rsp + 0xe0], rax
movzx eax, byte [rsp + 0x44]
movzx eax, al
movzx r9d, byte [rax + r8]
cmp r13w, 9
jg 0x14047d4be
mov edx, 0x20
sub edx, r9d
mov bx, 9
xor edi, edi
movsx rsi, bx
mov r14d, dword [rsp + rsi*4 + 0xb0]
mov ebp, r14d
mov ecx, r9d
shl ebp, cl
movsx r8d, di
mov edi, r14d
mov ecx, edx
shr edi, cl
or r8d, ebp
mov dword [rsp + rsi*4 + 0xb0], r8d
lea ebx, [rbx - 1]
cmp bx, r13w
jge 0x14047d46e
test di, di
lea r8, [0x1406cb7d0]
je 0x14047d4be
movsx ecx, di
movsx rdx, bx
mov dword [rsp + rdx*4 + 0xb0], ecx
mov r13d, ebx
movsx r11d, r11w
cmp r10w, 9
ja 0x14047d4fe
mov edx, 0x20
sub edx, r9d
xor ebx, ebx
mov rdi, qword [rsp + 0xe0]
mov esi, dword [rsp + rdi*4 + 0x20]
mov ebp, esi
mov ecx, r9d
shr ebp, cl
movsx eax, bx
mov ebx, esi
mov ecx, edx
shl eax, cl
or eax, ebp
mov dword [rsp + rdi*4 + 0x20], eax
inc rdi
cmp di, 0xa
jb 0x14047d4db
add r11d, r9d
cmp r9b, 8
jne 0x14047d513
mov eax, dword [rsp + 0x44]
test al, 1
je 0x14047d451
mov eax, r10d
cmp r10w, 8
jbe 0x14047d524
xor ecx, ecx
mov eax, r10d
jmp 0x14047d53d
movsx rcx, ax
cmp dword [rsp + rcx*4 + 0x20], 0
je 0x14047d533
mov cl, 1
jmp 0x14047d53d
inc eax
cmp ax, 9
jb 0x14047d524
xor ecx, ecx
mov edx, dword [rsp + 0x44]
test cl, cl
jne 0x14047d3df
cmp edx, 1
jne 0x14047d3df
test ax, ax
jg 0x14047d6e4
movsx rax, r10w
mov ecx, dword [rsp + rax*4 + 0x50]
test ecx, ecx
jne 0x14047d574
cmp dword [rsp + rax*4 + 0x20], 0
je 0x14047d7b0
xor ecx, ecx
cmp ecx, dword [rsp + rax*4 + 0x20]
jb 0x14047d402
cmp r10w, 9
ja 0x14047d59a
movsx rax, r10w
mov ecx, dword [rsp + rax*4 + 0x20]
xor dword [rsp + rax*4 + 0x50], ecx
inc rax
cmp ax, 0xa
jb 0x14047d589
cmp r13w, 9
ja 0x14047d5bc
movsx rax, r13w
mov ecx, dword [rsp + rax*4 + 0x80]
xor dword [rsp + rax*4 + 0xb0], ecx
inc rax
cmp ax, 0xa
jb 0x14047d5a5
movsx r9, r10w
movzx eax, byte [rsp + 0x74]
movzx eax, al
movzx r14d, byte [rax + r8]
cmp r13w, 9
jg 0x14047d62e
mov r8d, 0x20
sub r8d, r14d
mov bx, 9
xor edi, edi
movsx rbp, bx
mov edx, dword [rsp + rbp*4 + 0x80]
mov esi, edx
mov ecx, r14d
shl esi, cl
movsx eax, di
mov edi, edx
mov ecx, r8d
shr edi, cl
or eax, esi
mov dword [rsp + rbp*4 + 0x80], eax
lea ebx, [rbx - 1]
cmp bx, r13w
jge 0x14047d5e3
test di, di
lea r8, [0x1406cb7d0]
je 0x14047d62e
movsx eax, di
movsx rcx, bx
mov dword [rsp + rcx*4 + 0x80], eax
mov r13d, ebx
movsx r11d, r11w
cmp r10w, 9
ja 0x14047d669
mov edx, 0x20
sub edx, r14d
xor ebx, ebx
mov rdi, r9
mov ebp, dword [rsp + rdi*4 + 0x50]
mov eax, ebp
mov ecx, r14d
shr eax, cl
movsx esi, bx
mov ebx, ebp
mov ecx, edx
shl esi, cl
or esi, eax
mov dword [rsp + rdi*4 + 0x50], esi
inc rdi
cmp di, 0xa
jb 0x14047d646
add r11d, r14d
cmp r14b, 8
jne 0x14047d67e
mov eax, dword [rsp + 0x74]
test al, 1
je 0x14047d5c5
mov eax, r10d
cmp r10w, 9
jb 0x14047d694
xor eax, eax
jmp 0x14047d6a1
inc eax
cmp ax, 8
ja 0x14047d688
movsx rcx, ax
cmp dword [rsp + rcx*4 + 0x50], 0
je 0x14047d68c
mov al, 1
test al, al
jne 0x14047d55b
cmp dword [rsp + 0x74], 1
jne 0x14047d55b
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0xa0], rax
movaps xmm0, xmmword [rsp + 0xb0]
movaps xmm1, xmmword [rsp + 0xc0]
movaps xmmword [rsp + 0x90], xmm1
movaps xmmword [rsp + 0x80], xmm0
movsx eax, r11w
cdqe
imul rcx, rax, 0x33af3e2f
mov rdx, rcx
shr rdx, 0x3f
sar rcx, 0x26
add ecx, edx
imul edx, ecx, 0x13d
sub edx, eax
add edx, 0x13d
lea rdi, [rsp + 0x80]
mov rcx, rdi
mov r8, rdi
call fcn.14047d100
test byte [rdi + 0x24], 1
je 0x14047d734
mov r14, qword [rsp + 0x78]
mov rcx, r14
call fcn.1404d1b50
jmp 0x14047d74a
pxor xmm0, xmm0
mov r14, qword [rsp + 0x78]
movdqu xmmword [r14], xmm0
mov dword [r14 + 0x10], 0
mov eax, 4
xor ecx, ecx
xor edx, edx
test rax, rax
sete dl
shl edx, 0x1e
dec edx
mov ebx, 1
xor edi, edi
movsx rbp, cx
movsx rsi, word [r12 + rbp*2]
mov ebp, dword [r15 + rbp*4]
and ebp, dword [rsp + rsi*4 + 0x80]
cmovne ebp, ebx
xor edi, ebp
lea ecx, [rcx + 1]
add ebx, ebx
test ebx, edx
jne 0x14047d765
xor dword [r14 + rax*4], edi
test rax, rax
lea rax, [rax - 1]
jg 0x14047d751
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
inc r10d
jmp 0x14047d3df
inc r10d
jmp 0x14047d55b