Function at 0x1402ed470
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x558
mov rax, qword [0x1405650e0]
xor rax, rsp
mov qword [rsp + 0x550], rax
movabs r14, 0xab696863858eca50
mov rax, qword [0x140549a18]
add rax, r14
add rax, 0x21
cmp r9, rax
ja 0x1402ee1fa
mov r13, r9
mov r12, r8
mov r15, rdx
mov rsi, rcx
lea rdi, [r9*4]
lea rcx, [rsp + 0x4d0]
xor edx, edx
mov r8, rdi
call fcn.14041da70
mov dword [rsp + 0x4d0], 1
mov rcx, r15
xor edx, edx
mov r8, rdi
call fcn.14041da70
mov eax, 0x8195e5a5
add eax, dword [0x140549a10]
mov dword [r15], eax
lea rcx, [rsp + 0x450]
mov rdx, rsi
mov r8, rdi
call fcn.14041d3c0
lea rcx, [rsp + 0x3d0]
mov rdx, r12
mov r8, rdi
call fcn.14041d3c0
test r13d, r13d
je 0x1402ee09b
lea eax, [r13 - 1]
mov qword [rsp + 0x90], rax
lea rax, [rsp + rax*4]
add rax, 0x450
mov qword [rsp + 0x88], rax
lea rax, [r13*8]
mov qword [rsp + 0x140], rax
lea rax, [rsp + 0x20f]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x240]
mov qword [rsp + 0x48], rax
lea rbp, [rsp + 0x230]
mov qword [rsp + 0x40], rbp
lea rax, [rsp + 0x220]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x210]
mov qword [rsp + 0x30], rax
lea rsi, [rsp + 0x200]
mov qword [rsp + 0x28], rsi
lea rax, [rsp + 0x1f8]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x60], 0xc022cca3
mov dword [rsp + 0x58], 0x3d850456
lea r9, [rsp + 0x1f7]
mov rcx, r13
lea rbx, [rsp + 0x3d0]
mov rdx, rbx
lea rdi, [rsp + 0x450]
mov r8, rdi
call fcn.1402ee280
movzx eax, byte [rsp + 0x1f7]
mov byte [rsp + 0x77], al
mov rdx, qword [rsp + 0x1f8]
mov rax, qword [rsp + 0x200]
mov qword [rsp + 0x120], rax
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0x118], rax
mov rax, qword [rsp + 0x220]
mov qword [rsp + 0x110], rax
mov rax, qword [rsp + 0x230]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x240]
mov qword [rsp + 0x100], rax
movzx eax, byte [rsp + 0x20f]
mov byte [rsp + 0x76], al
mov eax, dword [0x140549a10]
lea ecx, [rax + 0x3e3946c6]
add eax, 0x1a7e7b18
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], ecx
lea rax, [rsp + 0x240]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbp
lea rax, [rsp + 0x220]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
lea r9, [rsp + 0x210]
mov rcx, rdi
mov qword [rsp + 0x80], rdx
mov r8, rbx
call fcn.1402ee720
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0xc8], rax
movzx eax, byte [rsp + 0x200]
mov byte [rsp + 0x75], al
mov rax, qword [rsp + 0x220]
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + 0x230]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x240]
mov qword [rsp + 0x98], rax
mov r10, r13
not r10
mov eax, r13d
and eax, 1
mov qword [rsp + 0x138], rax
mov rax, qword [0x140549a18]
lea rcx, [r14 + rax]
add rcx, 2
mov qword [rsp + 0x130], rcx
mov rcx, r13
xor rcx, 0xfffffffffffffffe
mov ebp, r10d
and ebp, 1
or rbp, rcx
not rbp
movabs rcx, 0x79fb04d2b5e8b11c
movabs rdx, 0xc44619a254b60604
lea r8d, [r14 + rdx]
add r8d, 3
mov r9d, r8d
xor r9d, eax
and r8d, eax
sub rax, rcx
add rax, r14
add rax, rcx
inc rax
mov qword [rsp + 0x128], rax
mov r11, r13
and r11, 0xfffffffffffffff8
lea ecx, [r9 + r8*2]
movabs rax, 0xf7adcc3f655de635
sub ecx, eax
sub ecx, edx
add ecx, eax
mov rax, r13
xor rax, 7
and r10, 0xfffffffffffffff8
or r10, rax
mov eax, dword [0x140549a10]
lea edx, [rax + 0x4e8cdd22]
mov r8d, eax
xor r8d, 0x52fdf4cd
and r8d, eax
xor eax, 0xad020b32
lea eax, [rax + r8*2]
lea r8, [r15 + r11*4]
mov qword [rsp + 0xe0], r8
mov qword [rsp + 0xe8], r11
mov r8, r11
shl r8, cl
lea rcx, [rsp + r8]
add rcx, 0x4d0
mov qword [rsp + 0xd8], rcx
not r10
mov qword [rsp + 0xf8], r10
lea rcx, [r15 + 0x10]
mov qword [rsp + 0xd0], rcx
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], edx
lea rax, [rsp + 0x240]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x220]
lea r9, [rsp + 0x230]
mov rcx, r15
lea rdx, [rsp + 0x4d0]
call fcn.1402ee330
mov rax, qword [rsp + 0x220]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x230]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x240]
mov qword [rsp + 0xb0], rax
mov rsi, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x90]
mov qword [rsp + 0x150], r15
mov qword [rsp + 0x148], r12
mov qword [rsp + 0x158], r13
mov qword [rsp + 0xf0], rbp
jmp 0x1402ed8de
lea ebx, [rdi - 1]
add rsi, 0xfffffffffffffffc
test edi, edi
setg dl
movzx ecx, byte [0x140575ed0]
mov r8d, 0x39ee60a1
mov r9d, 0xaee08564
call fcn.1402ee220
mov edi, ebx
test al, 1
je 0x1402ee09b
mov rcx, rsi
mov edx, 0xd8b84a73
mov r8d, 0x551c35ab
call fcn.140126fb0
test al, 1
jne 0x1402ed8b0
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x350]
lea rsi, [rsp + 0x3d0]
mov rdx, rsi
lea rdi, [rsp + 0x450]
mov r8, rdi
mov r9, r13
call fcn.1402e8b60
mov rbx, r13
test byte [rsp + 0x77], 1
lea r15, [rsp + 0x240]
lea rdx, [rsp + 0x230]
jne 0x1402edb30
movaps xmm0, xmmword [rsp + 0x3d0]
mov rax, qword [rsp + 0x108]
movaps xmm1, xmmword [rax]
movaps xmm2, xmmword [rsp + 0x450]
mov rcx, qword [rsp + 0x100]
movaps xmm3, xmmword [rcx]
movaps xmmword [rsp + 0x3d0], xmm2
movaps xmmword [rax], xmm3
movaps xmmword [rsp + 0x450], xmm0
movaps xmmword [rcx], xmm1
test byte [rsp + 0x76], 1
jne 0x1402edb00
movaps xmm0, xmmword [rsp + 0x3f0]
movaps xmm1, xmmword [rsp + 0x400]
movaps xmm2, xmmword [rsp + 0x470]
movaps xmm3, xmmword [rsp + 0x480]
movaps xmmword [rsp + 0x3f0], xmm2
movaps xmmword [rsp + 0x400], xmm3
movaps xmmword [rsp + 0x470], xmm0
movaps xmmword [rsp + 0x480], xmm1
cmp qword [rsp + 0x80], 0x10
je 0x1402edb00
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], rdx
lea rax, [rsp + 0x220]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x210]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x48], 0x331f46fd
mov dword [rsp + 0x40], 0x469d14d9
lea rcx, [rsp + 0x410]
lea rdi, [rsp + 0x420]
mov rdx, rdi
lea rsi, [rsp + 0x490]
mov r8, rsi
mov rbx, qword [rsp + 0xc8]
mov r9, rbx
call fcn.1402ee3a0
movaps xmm0, xmmword [rsp + 0x210]
movaps xmm1, xmmword [rsp + 0x220]
movaps xmm2, xmmword [rsp + 0x230]
movaps xmm3, xmmword [rsp + 0x240]
movaps xmmword [rsp + 0x410], xmm2
movaps xmmword [rsp + 0x1d0], xmm0
movaps xmmword [rsp + 0x1e0], xmm3
movaps xmmword [rsp + 0x1c0], xmm1
movzx eax, byte [rsp + 0x75]
mov byte [rsp + 0x30], al
mov qword [rsp + 0x28], rbx
lea rax, [rsp + 0x1c0]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x40], 0x7d7846cb
mov dword [rsp + 0x38], 0xf1524ba0
lea rcx, [rsp + 0x1e0]
mov rdx, rdi
lea r8, [rsp + 0x1d0]
mov r9, rsi
call fcn.1402ee230
test al, 1
jne 0x1402edb00
mov rax, qword [rsp + 0xa8]
movaps xmm0, xmmword [rax]
mov rdx, qword [rsp + 0x98]
movaps xmm1, xmmword [rdx]
mov rcx, qword [rsp + 0xa0]
movaps xmm2, xmmword [rcx]
movaps xmm3, xmmword [rsp + 0x4c0]
movaps xmmword [rax], xmm2
movaps xmmword [rdx], xmm3
movaps xmmword [rcx], xmm0
movaps xmmword [rsp + 0x4c0], xmm1
nop
mov rsi, qword [rsp + 0x120]
mov rdi, qword [rsp + 0x118]
mov rbx, qword [rsp + 0x110]
cmp qword [rsp + 0x80], r13
je 0x1402edb6b
nop word cs:[rax + rax]
mov rcx, rsi
mov rdx, r15
mov r8d, 0xeb1a3536
mov r9d, 0x5eeef349
call fcn.1400aa9c0
mov eax, dword [rsp + 0x240]
mov ecx, dword [rdi]
mov dword [rsi], ecx
mov dword [rdi], eax
mov rax, qword [0x140549a18]
add rax, r14
add rsi, 4
add rdi, 4
add rbx, rax
jne 0x1402edb30
lea rcx, [rsp + 0x250]
xor edx, edx
mov r8, qword [rsp + 0x140]
call fcn.14041da70
xor esi, esi
lea rdi, [rsp + 0x4d0]
jmp 0x1402edba0
inc rsi
add rdi, 4
cmp rsi, r13
je 0x1402edd80
mov ecx, dword [rdi]
mov ebx, ecx
mov edx, 0xc73e90e6
mov r8d, 0xc73e90e6
call fcn.1400aa6a0
test al, 1
jne 0x1402edb90
mov qword [rsp + 0x160], rdi
mov qword [rsp + 0x168], rsi
lea r15, [rsp + rsi*4]
add r15, 0x250
movzx eax, bx
mov dword [rsp + 0x78], eax
shr ebx, 0x10
mov dword [rsp + 0x7c], ebx
xor edi, edi
mov rbx, r13
xor esi, esi
lea r14, [rsp + 0x350]
mov eax, dword [r14]
mov ecx, dword [0x140549a10]
lea ebp, [rcx - 0x7e691a5c]
and ebp, eax
mov edx, ecx
not edx
mov r8d, ecx
and r8d, 0x4a
mov r9d, edx
and r9d, 0xb5
or r9d, r8d
xor ecx, 0x35
and edx, 0x4a
or edx, ecx
not edx
lea ecx, [r9 + rdx*2]
shr eax, cl
mov r8d, ebp
mov edx, dword [rsp + 0x78]
imul r8d, edx
mov r13d, eax
mov ecx, dword [rsp + 0x7c]
imul r13d, ecx
imul ebp, ecx
imul eax, edx
add ebp, eax
cmp ebp, eax
setb dl
lea r12, [rsp + 0x240]
mov qword [rsp + 0x40], r12
lea rax, [rsp + 0x210]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x230]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x220]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ebp
mov dword [rsp + 0x50], 0xf1c053d0
mov dword [rsp + 0x48], 0xec1d6e0b
mov ecx, esi
mov r9d, edi
call fcn.1402ee350
mov eax, dword [rsp + 0x230]
movzx ecx, byte [rsp + 0x210]
mov edx, dword [rsp + 0x240]
add edx, r13d
add edx, ecx
add edx, dword [rsp + 0x220]
movzx ecx, byte [0x140549a10]
add cl, 0xb5
shl ebp, cl
add ebp, eax
xor edi, edi
cmp ebp, eax
setb dil
mov eax, dword [r15]
add eax, ebp
mov dword [r15], eax
cmp eax, ebp
adc edi, edx
xor esi, esi
cmp edi, r13d
setb sil
movabs rax, 0x5d27e4649de53a9b
add rbx, rax
movabs rcx, 0x4be862f88a72f419
sub rbx, rcx
sub rbx, rax
add rbx, rcx
mov rax, qword [0x140577a00]
add rbx, rax
dec rbx
add r14, 4
mov dword [rsp + 0x20], 0x81c79a93
mov rcx, r15
mov rdx, rbx
mov r8, r12
mov r9d, 0xf5d14c33
call fcn.1402ee4a0
mov r15, qword [rsp + 0x240]
test al, 1
je 0x1402edbf0
add dword [r15], edi
mov r13, qword [rsp + 0x158]
movabs r14, 0xab696863858eca50
mov rsi, qword [rsp + 0x168]
mov rdi, qword [rsp + 0x160]
jmp 0x1402edb90
xor edi, edi
mov r15, qword [rsp + 0x150]
mov rcx, r15
lea rsi, [rsp + 0x250]
cmp r13, qword [rsp + 0x130]
mov r12, qword [rsp + 0x148]
jne 0x1402edfe0
mov rax, qword [rsp + 0x128]
cmp qword [rsp + 0x138], rax
je 0x1402eddc1
add edi, dword [rsi]
sub dword [rcx], edi
mov rsi, r15
lea rdi, [rsp + 0x4d0]
mov rbx, r13
cmp r13, 8
jb 0x1402edf90
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movaps xmm2, xmmword [rsp + 0x4d0]
movaps xmm3, xmmword [rsp + 0x4e0]
mov rbp, qword [rsp + 0xe8]
cmp rbp, 8
movaps xmmword [rsp + 0x1a0], xmm3
movaps xmmword [rsp + 0x1b0], xmm2
movaps xmmword [rsp + 0x190], xmm0
movaps xmmword [rsp + 0x180], xmm1
lea rax, [rsp + 0x180]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x4e0]
mov qword [rsp + 0x38], rax
sete byte [rsp + 0x40]
lea rax, [rsp + 0x4d0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x190]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x48], 0x331f46fd
mov dword [rsp + 0x50], 0xe1ebf842
lea rcx, [rsp + 0x1b0]
mov rdx, r15
lea r8, [rsp + 0x1a0]
mov r9, qword [rsp + 0xd0]
call fcn.1402ee540
test al, 1
jne 0x1402edf70
movups xmm0, xmmword [r15 + 0x20]
movups xmm1, xmmword [r15 + 0x30]
movaps xmm2, xmmword [rsp + 0x4f0]
movaps xmm3, xmmword [rsp + 0x500]
movups xmmword [r15 + 0x20], xmm2
movups xmmword [r15 + 0x30], xmm3
movaps xmmword [rsp + 0x4f0], xmm0
movaps xmmword [rsp + 0x500], xmm1
cmp rbp, 0x10
je 0x1402edf70
mov rax, qword [rsp + 0xc0]
movups xmm0, xmmword [rax]
mov rdx, qword [rsp + 0xb0]
movups xmm1, xmmword [rdx]
mov rcx, qword [rsp + 0xb8]
movaps xmm2, xmmword [rcx]
movaps xmm3, xmmword [rsp + 0x520]
movups xmmword [rax], xmm2
movups xmmword [rdx], xmm3
movaps xmmword [rcx], xmm0
movaps xmmword [rsp + 0x520], xmm1
cmp rbp, 0x18
je 0x1402edf70
movups xmm0, xmmword [r15 + 0x60]
movups xmm1, xmmword [r15 + 0x70]
movaps xmm2, xmmword [rsp + 0x530]
movaps xmm3, xmmword [rsp + 0x540]
movups xmmword [r15 + 0x60], xmm2
movups xmmword [r15 + 0x70], xmm3
movaps xmmword [rsp + 0x530], xmm0
movaps xmmword [rsp + 0x170], xmm1
lea rcx, [rsp + 0x170]
lea rdx, [rsp + 0x540]
mov r8d, 0xf1c053d0
mov r9d, 0x99f40ad
call fcn.1402ee6e0
nop word cs:[rax + rax]
mov rsi, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0xd8]
mov rbx, qword [rsp + 0xf8]
cmp rbp, r13
je 0x1402edfbe
nop dword [rax]
mov ebp, dword [rsi]
mov ecx, dword [rdi]
mov rdx, rsi
mov r8d, 0x24d6b55a
mov r9d, 0xaa588c35
call fcn.140126af0
add rbx, qword [0x140575a60]
mov dword [rdi], ebp
add rsi, 4
add rdi, 4
dec rbx
jne 0x1402edf90
mov rsi, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x90]
test r13d, r13d
jne 0x1402ed8de
jmp 0x1402ee09b
xor edi, edi
lea rsi, [rsp + 0x258]
mov rcx, r15
xor ebx, ebx
mov rbp, qword [rsp + 0xf0]
add edi, dword [rsi - 8]
jb 0x1402ee006
nop dword [rax]
xor eax, eax
cmp dword [rcx], edi
jae 0x1402ee00b
mov eax, 1
sub dword [rcx], edi
mov edx, dword [rsi - 4]
mov r8d, edx
xor r8d, eax
and eax, edx
lea eax, [r8 + rax*2]
cmp eax, edx
jb 0x1402ee027
xor edi, edi
cmp dword [rcx + 4], eax
jae 0x1402ee02c
mov edi, 1
sub dword [rcx + 4], eax
lea rdx, [rsp + 0x240]
mov r8d, 0x7d7846cb
mov r9d, 0xdc5b2b80
call fcn.1400abd80
mov rcx, qword [rsp + 0x240]
mov rax, rbx
not rax
mov edx, eax
and edx, 2
mov r8, rbx
and r8, 0xfffffffffffffffd
or r8, rdx
xor rbx, 2
movabs rdx, 0x7ffffffffffffffd
and rax, rdx
or rax, rbx
not rax
lea rbx, [r8 + rax*2]
cmp rbx, rbp
je 0x1402eddab
add rsi, 8
add edi, dword [rsi - 8]
jae 0x1402ee000
jmp 0x1402ee006
cmp dword [r15 + r13*4 - 4], 0
setns al
test r13, r13
sete cl
test cl, al
jne 0x1402ee1fa
xor cl, al
jne 0x1402ee1fa
lea rdi, [rsp + 0x240]
mov rcx, r13
mov rdx, rdi
mov r8d, 0x81c79a93
mov r9d, 0xb57680fe
call fcn.1402ee610
mov rbx, qword [rsp + 0x240]
xor edx, edx
test al, 1
jne 0x1402ee1dc
and r13, 0xfffffffffffffffe
xor edx, edx
lea rsi, [rsp + 0x230]
xor r14d, r14d
nop dword [rax]
mov dword [rsp + 0x28], 0x324602c
mov dword [rsp + 0x20], 0x59e9de98
mov rcx, r12
mov r8, rsi
mov r9, rdi
call fcn.1402ee6d0
mov edx, dword [rsp + 0x230]
mov ecx, dword [rsp + 0x240]
mov qword [rsp + 0x20], rdi
mov dword [rsp + 0x30], 0x7687209a
mov dword [rsp + 0x28], 0x9d1e88f3
mov r8, r15
mov r9, rsi
call fcn.1402ee260
movzx edx, byte [rsp + 0x240]
movzx ecx, byte [rsp + 0x230]
mov dword [rsp + 0x20], 0x2e561beb
mov r8, rdi
mov r9d, 0xb3dc7fab
call fcn.1402ee320
mov eax, dword [r12 + 4]
mov ecx, dword [rsp + 0x240]
add ecx, eax
cmp ecx, eax
setb al
mov edx, dword [r15 + 4]
mov r8d, edx
xor r8d, 0xb4cad2a2
and edx, 0x34cad2a2
lea edx, [r8 + rdx*2]
add edx, ecx
add edx, 0x4b352d5e
mov dword [r15 + 4], edx
cmp edx, ecx
setb cl
or cl, al
movzx edx, cl
mov rax, r14
xor rax, 2
and r14d, 2
lea r14, [rax + r14*2]
cmp r14, r13
je 0x1402ee1d4
add r12, 8
add r15, 8
jmp 0x1402ee100
add r15, 8
add r12, 8
test rbx, rbx
je 0x1402ee1fa
mov dword [rsp + 0x20], 0x6fee96ba
mov rcx, r12
mov r8, r15
mov r9d, 0xf7fd10f4
call fcn.1402ee600
mov rcx, qword [rsp + 0x550]
xor rcx, rsp
call fcn.1403f5480
nop
add rsp, 0x558
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret