Function at 0x1403ab3e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
movaps xmmword [rsp + 0xf0], xmm6
mov rdi, r9
mov r12, rdx
mov r14, rcx
mov r15, qword [rsp + 0x180]
mov esi, dword [rsp + 0x178]
movzx ebp, byte [rsp + 0x170]
mov rax, qword [0x1405c08a0]
xor rax, rsp
mov qword [rsp + 0xe8], rax
mov eax, dword [0x1405d3a34]
cmp eax, 0x53
nop word cs:[rax + rax]
mov eax, dword [0x1405d3a34]
mov ecx, 0xb62bd815
add ecx, dword [0x1405b48c0]
cmp eax, ecx
jge 0x1403ab440
test r12, r12
je 0x1403ab4b0
test r8, r8
sete al
cmp rdi, 8
setb cl
mov edx, eax
xor dl, cl
mov r10d, edx
xor r10b, 1
mov r9d, r10d
and r9b, al
mov r11d, r9d
xor r11b, 1
or cl, al
and r10b, r11b
or r10b, cl
xor r10b, 1
and r11b, dl
or r11b, r9b
or r11b, r10b
mov byte [rsp + 0x4e], r11b
test r11b, 1
mov qword [rsp + 0x80], r8
je 0x1403ab4ba
xor eax, eax
mov qword [rsp + 0x70], rax
jmp 0x1403ab4d0
mov edi, 0xffffffff
jmp 0x1403ab7f7
mov rcx, r8
xor edx, edx
mov r8, rdi
call fcn.14046ceb0
shr rdi, 3
mov qword [rsp + 0x70], rdi
mov eax, dword [0x1405b48c0]
mov ecx, eax
xor ecx, 0xb62bd7e2
and eax, 0x362bd7e2
lea eax, [rcx + rax*2]
mov dword [r12], eax
movsxd r8, dword [0x1404ae664]
mov rcx, r8
not rcx
lea r10, [0x1404ae664]
mov r9, r10
xor r9, rcx
and r9, r10
add r9, r9
xor r11d, r11d
mov edi, 0xb62bd7e4
nop word cs:[rax + rax]
mov eax, dword [0x1405d3a34]
cmp eax, 0x5d
jg 0x1403ab536
mov ebx, dword [0x1404ae680]
test r11b, r11b
je 0x1403ab55a
mov eax, dword [0x1404ae680]
mov edx, dword [0x1405d3a30]
lea eax, [rdx - 1]
imul eax, edx
mov ebx, dword [0x1405b48c0]
add ebx, edi
xor edx, edx
div ebx
test edx, edx
jne 0x1403ab520
jmp 0x1403ab52b
xor rcx, r8
and rcx, r10
xor rcx, r8
mov rax, rcx
xor rax, r9
and rcx, r9
lea rax, [rax + rcx*2]
mov qword [rsp + 0x98], rax
xor eax, eax
nop word [rax + rax]
mov ecx, dword [0x1405d3a30]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x1405b48c0]
mov r8d, ecx
xor r8d, 0x49d4281d
and r8d, ecx
xor ecx, 0xb62bd7e2
lea ecx, [rcx + r8*2]
cmp edx, ecx
jne 0x1403ab5b4
test al, al
je 0x1403ab5c1
mov ecx, dword [0x1405d3a34]
cmp ecx, 0x1b
jge 0x1403ab580
jmp 0x1403ab5b0
test r15, r15
je 0x1403ab5cd
mov qword [r15], 0
mov dword [rsp + 0x20], 0x7a253889
xor ecx, ecx
xor edx, edx
mov r8d, 0xa082d8d3
mov r9d, 0xdb0db6e7
call fcn.1403ae280
test rax, rax
je 0x1403ab656
mov r15, rax
mov qword [rsp + 0xe0], 0
test esi, esi
mov ecx, ebp
mov ebp, 0x48
cmovne ebp, esi
mov edx, ecx
movzx eax, byte [rsp + 0x4e]
and dl, al
xor al, cl
mov r8d, edx
xor r8b, 1
and r8b, al
xor al, 1
mov ecx, edx
xor cl, al
and cl, dl
and al, dl
or al, r8b
xor edx, edx
test cl, al
jne 0x1403ab6fb
xor cl, al
jne 0x1403ab6fb
lea rax, [fcn.1403ab3e0]
add eax, eax
add eax, 0xd60
mov ecx, eax
not ecx
test ecx, eax
jne 0x1403ab6b7
jmp 0x1403ab660
mov edi, 0xfffffffe
jmp 0x1403ab7f7
mov dword [rsp + 0x38], 0x963344fb
mov dword [rsp + 0x30], 0x20faa359
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov ecx, 1
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call fcn.1403ad730
mov rdx, rax
mov eax, dword [0x1405d3a30]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, 0xb62bd7e2
add eax, dword [0x1405b48c0]
cmp ecx, eax
je 0x1403ab6f2
mov dword [rsp + 0x38], 0x963344fb
mov dword [rsp + 0x30], 0x20faa359
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov ecx, 1
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call fcn.1403ad730
jmp 0x1403ab660
test rdx, rdx
je 0x1403ab7e3
mov qword [rsp + 0x78], rdx
mov dword [rsp + 0x54], ebx
xor eax, eax
test al, al
jne 0x1403ab766
mov edi, 0xb62bd7e2
mov eax, dword [0x1405b48c0]
add eax, edi
mov dword [rsp + 0xac], eax
mov rdx, qword [rsp + 0xe0]
lea rsi, [rsp + 0xe0]
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], 0
mov rcx, r14
mov r8d, ebp
xor r9d, r9d
mov rax, r15
call qword [case.0x14012b313.0]
mov ecx, dword [0x1405d3a30]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
add edi, dword [0x1405b48c0]
cmp edx, edi
je 0x1403ab7df
lea rdi, [0x1403ad280]
mov esi, 0xb62bd7e2
lea rbx, [rsp + 0xe0]
nop word [rax + rax]
mov ecx, 0x2d
call fcn.140424ac4
mov qword [0x1405d3a28], rax
mov rcx, rdi
call fcn.140444ec0
mov eax, dword [0x1405b48c0]
add eax, esi
mov dword [rsp + 0xac], eax
mov rdx, qword [rsp + 0xe0]
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], 0
mov rcx, r14
mov r8d, ebp
xor r9d, r9d
mov rax, r15
call qword [case.0x14012b313.0]
mov eax, dword [0x1405d3a34]
cmp eax, 0x45
jge 0x1403ab780
jmp 0x1403ab70a
test eax, eax
je 0x1403ab825
mov eax, 0xb62bd7e2
add eax, dword [0x1405b48c0]
mov dword [r12], eax
mov edi, 0xfffffffc
mov rcx, qword [rsp + 0xe8]
xor rcx, rsp
call fcn.1404448f0
mov eax, edi
movaps xmm6, xmmword [rsp + 0xf0]
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x88], r12
mov r10, 0xffffffffffffffff
cmp qword [rsp + 0x78], 0
setne al
sete cl
movzx r9d, byte [rsp + 0x4e]
mov r11d, r9d
xor r11b, 1
mov edx, r11d
and dl, cl
mov r8d, r9d
and r8b, al
or r8b, dl
xor r11b, al
and cl, r9b
or cl, r11b
xor cl, 1
or cl, r8b
and r11b, al
or r11b, dl
xor r11b, 1
mov eax, r11d
xor al, cl
or r11b, cl
xor r11b, 1
or r11b, al
mov byte [rsp + 0x4f], r11b
mov r8d, 1
xorps xmm6, xmm6
not r10
mov qword [rsp + 0x90], r10
mov r12d, 0xb62bd7e3
lea rbx, [fcn.1403ab3e0]
xor r9d, r9d
xor eax, eax
mov qword [rsp + 0x58], rax
jmp 0x1403ab8dd
mov r9, qword [rsp + 0xa0]
add r9d, r13d
add r9d, 0xb62bd7e3
mov r8d, edi
test eax, eax
jne 0x1403ac0c7
cmp byte [rsp + 0x170], 0
mov qword [rsp + 0xa0], r9
je 0x1403ab900
test byte [rsp + 0x4e], 1
je 0x1403ab910
mov edi, r8d
jmp 0x1403aba44
test byte [rsp + 0x4f], 1
je 0x1403ab950
mov edi, r8d
jmp 0x1403aba10
mov eax, r9d
mov edi, 2
cmp qword [rsp + 0x70], rax
jbe 0x1403aba44
mov rcx, qword [rsp + 0xe0]
mov rdx, qword [rsp + 0x80]
mov qword [rdx + rax*8], rcx
mov rax, qword [rsp + 0x180]
test rax, rax
je 0x1403ab8f6
add qword [rax], 8
mov edi, r8d
jmp 0x1403aba44
mov r9d, r9d
cmp qword [rsp + 0x70], r9
seta dl
movzx eax, byte [0x1405d0c80]
mov ecx, eax
and cl, dl
xor al, dl
mov edx, ecx
not dl
xor cl, al
xor al, 1
and al, dl
or al, cl
xor al, 1
test al, cl
jne 0x1403ab989
xor al, cl
mov edi, 2
test al, 1
je 0x1403aba10
mov qword [rsp + 0x60], r9
mov dword [rsp + 0x50], r8d
movaps xmmword [rsp + 0xd0], xmm6
movaps xmmword [rsp + 0xc0], xmm6
movaps xmmword [rsp + 0xb0], xmm6
mov dword [rsp + 0xac], 0
mov rcx, qword [rsp + 0xe0]
lea rax, [rsp + 0xac]
mov qword [rsp + 0x20], rax
xor edx, edx
lea r8, [rsp + 0xb0]
mov r9d, 0x30
mov rax, qword [rsp + 0x78]
call qword [case.0x14012b313.0]
test eax, eax
sete al
cmp dword [rsp + 0xac], 0
setne cl
and cl, al
mov byte [rsp + 0x68], cl
mov eax, dword [0x1405d3a34]
cmp eax, 0x3f
jge 0x1403abbb0
jmp 0x1403abb00
mov rdx, qword [rsp + 0x58]
test rdx, rdx
je 0x1403aba37
mov dword [rsp + 0x28], 0x7744055f
mov dword [rsp + 0x20], 0x64802c71
xor ecx, ecx
xor r8d, r8d
xor r9d, r9d
call fcn.1403ad700
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x58], rax
mov eax, dword [0x1405d3a30]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1403abaa0
nop word cs:[rax + rax]
mov r13d, dword [0x1405b48c0]
mov rdx, qword [rsp + 0xe0]
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], 0
mov rcx, r14
mov r8d, ebp
xor r9d, r9d
mov rax, r15
call qword [case.0x14012b313.0]
mov cl, 1
test cl, cl
jne 0x1403ab8c0
nop dword [rax + rax]
mov rdx, qword [rsp + 0xe0]
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], 0
mov rcx, r14
mov r8d, ebp
xor r9d, r9d
mov rax, r15
call qword [case.0x14012b313.0]
mov eax, dword [0x1405d3a30]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x1405b48c0]
mov edx, eax
xor edx, 0x49d4281d
and edx, eax
xor eax, 0xb62bd7e2
lea eax, [rax + rdx*2]
cmp ecx, eax
jne 0x1403abaa0
jmp 0x1403aba60
mov eax, dword [0x1405b4150]
mov ecx, dword [0x1405d3a34]
cmp ecx, 0x37
jge 0x1403abbb0
mov ecx, dword [0x1405d3a30]
nop dword [rax + rax]
mov ecx, dword [0x1405b48c0]
add ecx, r12d
lea edx, [rbx + rbx]
add edx, 0xa80
xor ecx, edx
not ecx
test ecx, edx
jne 0x1403abb20
lea ecx, [rax - 0x2173ac3]
lea edx, [rcx + 0x2173ac4]
mov dword [0x1405b4150], edx
mov r8d, 0xfde8c53b
sub r8d, ecx
mov r9d, eax
not r9d
and r8d, r9d
xor edx, eax
or edx, r8d
not edx
or edx, r8d
mov ecx, edx
not ecx
xor edx, eax
and ecx, r9d
or ecx, edx
xor ecx, 0xffffffff
mov r8d, 0
mov r9d, 0
jne 0x1403abb97
mov r8d, 0
mov r9d, 0
cmp dword [rsp + 0x54], 0
jg 0x1403abbc1
mov eax, dword [0x1405d3a34]
cmp eax, 0x18
jge 0x1403abe90
jmp 0x1403abda0
cmp dword [0x1405b48c0], 0x49d4281e
jne 0x1403abbb0
jmp 0x1403abb00
xor r11d, r11d
xor r8d, r8d
xor r9d, r9d
nop word [rax + rax]
mov edx, dword [0x1405d3a30]
mov eax, edx
not eax
lea eax, [rax + rdx*2]
imul eax, edx
mov edi, dword [0x1405b48c0]
lea r13d, [rdi - 0x49d4281c]
xor edx, edx
div r13d
add edi, 0xb62bd7e2
cmp edx, edi
mov r10d, 0xb62bd83f
jne 0x1403abc90
nop word cs:[rax + rax]
mov eax, dword [0x1405d3a34]
mov edx, dword [0x1405b48c0]
add edx, r10d
cmp eax, edx
jge 0x1403abc90
movsxd rdi, r11d
nop word cs:[rax + rax]
mov eax, dword [0x1405b48c0]
add eax, r12d
lea edx, [rbx + rbx]
add edx, 0x2180
xor edx, eax
not edx
test edx, eax
jne 0x1403abc80
mov edx, dword [0x1405d3a30]
lea eax, [rdx - 1]
imul eax, edx
mov r13d, dword [0x1405b48c0]
lea r10d, [r13 - 0x49d4281c]
xor edx, edx
div r10d
mov eax, r13d
xor eax, 0xb62bd7e2
and r13d, 0x362bd7e2
lea eax, [rax + r13*2]
cmp edx, eax
je 0x1403abca0
mov eax, dword [0x1405d3a34]
cmp eax, 0x57
jge 0x1403abc30
jmp 0x1403abc4a
mov eax, dword [0x1405d3a34]
cmp eax, 0x3a
jge 0x1403abc90
jmp 0x1403abc10
mov rdx, qword [rsp + 0x98]
mov rax, qword [rdx + rdi]
mov rdx, qword [rdx + rdi + 8]
mov r10, rax
xor r10, rax
mov rdi, rdx
xor rdi, rdx
not rdi
and r9, rdi
xor r9, rdx
not r10
and r8, r10
xor r8, rax
mov eax, dword [0x1405b48c0]
mov edx, eax
xor edx, 0xb62bd7e3
and eax, 0x362bd7e3
lea eax, [rdx + rax*2]
lea edx, [rbx + rbx]
add edx, 0x30e0
xor edx, eax
not edx
test edx, eax
jne 0x1403abd51
nop word cs:[rax + rax]
mov eax, dword [0x1405d3a30]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x1403abd51
mov eax, r11d
xor eax, 0x10
not r11d
and r11d, 0x7fffffef
or r11d, eax
not r11d
lea r11d, [rax + r11*2]
cmp r11d, dword [rsp + 0x54]
jl 0x1403abbd0
jmp 0x1403abb97
mov eax, dword [0x1405d3a30]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
je 0x1403abd00
mov eax, dword [0x1405d3a34]
cmp eax, 0x12
jg 0x1403abd80
nop dword [rax]
mov eax, dword [0x1405b48c0]
add eax, r12d
lea edx, [rbx + rbx]
add edx, 0x540
test edx, eax
je 0x1403abd40
nop word cs:[rax + rax]
mov eax, dword [0x1405d3a30]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x1403abd80
jmp 0x1403abd60
mov eax, dword [0x1405d3a34]
cmp eax, 0x44
jge 0x1403abe90
cmp byte [rsp + 0x68], 0
je 0x1403abea0
mov rax, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0x80]
mov r10, qword [rsp + 0x60]
mov qword [rdx + r10*8], rax
mov r11, qword [rsp + 0x180]
test r11, r11
je 0x1403abe30
mov rax, qword [0x1405d0990]
mov rdx, qword [r11]
xor rdx, rax
mov r10, rdx
not r10
and r10, rax
movabs rdi, 0xbf9f9a28fc06aaec
sub rdx, rdi
lea rax, [rdx + r10*2]
add rax, rdi
mov rdx, rax
xor rdx, 8
and eax, 8
movabs r10, 0x919e6612548149ac
sub rdx, r10
lea rax, [rdx + rax*2]
add rax, r10
mov qword [r11], rax
nop dword [rax + rax]
mov eax, dword [0x1405d3a30]
mov edx, dword [0x1405b48c0]
neg edx
add edx, eax
inc edx
imul edx, eax
test dl, 1
jne 0x1403abe6d
mov rdx, qword [0x1404ae678]
mov rax, qword [0x1404ae670]
mov r10d, dword [0x1405d3a30]
lea r11d, [r10 - 1]
imul r11d, r10d
test r11b, 1
je 0x1403abea9
mov rax, qword [0x1404ae678]
mov rax, qword [0x1404ae670]
mov eax, dword [0x1405d3a30]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x1403abe30
jmp 0x1403abe4a
mov eax, dword [0x1405d3a34]
cmp eax, 0x36
jge 0x1403abe90
jmp 0x1403abda0
mov edi, dword [rsp + 0x50]
jmp 0x1403aba10
xor edi, edi
test ecx, ecx
setne dil
mov r10, rdi
add r10, 0xffffffffffffffff
mov r11d, 0
adc r11, 0xffffffffffffffff
sub rax, r8
sbb rdx, r9
mov r8, rax
not r8
mov r9, rdx
not r9
mov rcx, rax
mov r13, qword [rsp + 0x90]
and rcx, r13
or rcx, r8
mov r8, rdx
and r8, r13
or r8, r9
neg rdi
mov r9d, 0
sbb r9, r9
xor rax, r10
and r10, r13
or r10, rdi
xor rdx, r11
and r11, r13
or r11, r9
mov r9, rcx
not r9
mov rdi, r8
not rdi
xor r8, r11
not r11
and r11, rdi
xor rcx, r10
not r10
and r10, r9
or r11, r8
or r10, rcx
not r11
or r11, rdx
not r10
or r10, rax
not r11
mov qword [rsp + 0x60], r11
not r10
mov qword [rsp + 0x68], r10
xor eax, eax
test al, al
movabs r8, 0xeefc80d6a5608c2d
movabs r9, 0x71e9b49737ee3584
movabs r10, 0x44f5a238c55eefa6
movabs r11, 0x3f5a3e0dd0d26978
movabs r13, 0x2000ad5bb231a0ac
jne 0x1403abfe0
nop word cs:[rax + rax]
mov rax, qword [rsp + 0x68]
or rax, qword [rsp + 0x60]
mov rcx, qword [0x1405d0990]
movabs rdx, 0x8cea018f17cf6db6
sub rcx, rdx
add rax, rdx
add rax, rcx
mov qword [0x1405d0990], rax
mov eax, dword [0x1405d3a30]
mov ecx, dword [0x1405b48c0]
add ecx, eax
dec ecx
imul ecx, eax
test cl, 1
je 0x1403ac09b
nop word [rax + rax]
mov rax, qword [0x1405b48c8]
add rax, r9
mov rdx, qword [0x1405d0990]
mov rcx, rdx
sub rcx, rax
imul rcx, rax
shl rdx, cl
mov rdi, r8
sub r8, rdx
sub r8, rdi
add r8, rcx
mov eax, r8d
sub eax, ecx
imul eax, ecx
sub eax, r8d
mov rdx, r8
mov ecx, eax
shl rdx, cl
sub r8, r10
sub r8, rdx
add r8, r10
imul r8, rdx
mov ecx, edx
shl r8, cl
lea ecx, [r8 + r11]
sub ecx, edx
movabs rax, 0xaace09fc34baf2ad
add ecx, eax
sub ecx, r11d
sub ecx, eax
imul ecx, edx
mov rax, r8
shl rax, cl
mov rcx, r8
not rcx
mov rdx, rax
xor rdx, rcx
xor rcx, r8
and rcx, rax
xor rcx, r8
mov r8, rdi
mov edi, 0xb62bd80d
and rdx, rax
sub rcx, r13
lea rax, [rcx + rdx*2]
add rax, r13
mov qword [0x1405d0990], rax
mov eax, dword [0x1405d3a34]
mov ecx, dword [0x1405b48c0]
add ecx, edi
cmp eax, ecx
jge 0x1403abfe0
jmp 0x1403abf90
mov dword [rsp + 0xac], 0
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xc0], xmm6
movaps xmmword [rsp + 0xd0], xmm6
mov edi, dword [rsp + 0x50]
jmp 0x1403aba10
cmp qword [rsp + 0x58], 0
sete cl
setne dl
movzx r8d, byte [rsp + 0x170]
mov eax, r8d
xor al, dl
and al, r8b
and dl, r8b
xor r8b, 1
and r8b, cl
or r8b, dl
mov ecx, eax
not cl
xor al, r8b
xor r8b, 1
and r8b, cl
or r8b, al
xor r8b, 1
test r8b, al
jne 0x1403ac13c
xor r8b, al
test r8b, 1
jne 0x1403ac13c
mov dword [rsp + 0x28], 0x7744055f
mov dword [rsp + 0x20], 0x64802c71
xor ecx, ecx
mov rdx, qword [rsp + 0x58]
xor r8d, r8d
mov rsi, r9
xor r9d, r9d
call fcn.1403ad700
mov r9, rsi
mov rax, qword [rsp + 0x88]
mov dword [rax], r9d
mov eax, 0xb62bd7e2
add eax, dword [0x1405b48c0]
cmp r9d, eax
je 0x1403ab7f2
jmp 0x1403ab7f7