Function at 0x140112980
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x1e8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x160], 0xfffffffffffffffe
mov r8, rdx
mov rdi, rcx
mov qword [rbp + 0x120], 0
mov qword [rbp + 0x128], 0xf
mov byte [rbp + 0x110], 0
lea rsi, [0x1403fe9c8]
mov qword [rbp + 0x108], rsi
lea rdx, [rbp + 0x108]
call fcn.140112530
cmp qword [0x140531678], 0
jne 0x140112a3c
mov ecx, 0xe8
call fcn.1403bba7c
lea rcx, [0x1403fe968]
mov qword [rax], rcx
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0xf
mov byte [rax + 0x18], 0
mov qword [rax + 0x10], rsi
mov word [rax + 8], 0
mov ecx, 0xfffff317
add ecx, dword [0x1404d66c0]
mov word [rax + 0xa], cx
xorps xmm0, xmm0
movups xmmword [rax + 0x38], xmm0
mov qword [0x140531678], rax
mov rdx, qword [0x140531678]
add rdx, 0x10
lea rcx, [rbp - 0x48]
call fcn.140239750
mov qword [rbp + 0x148], 0
mov qword [rbp + 0x150], 0xf
mov byte [rbp + 0x138], 0
lea rax, [0x140400808]
mov qword [rbp + 0x130], rax
lea rcx, [rbp - 0x48]
lea rdx, [rbp - 0x20]
call fcn.14023c350
lea rsi, [rbp + 0x110]
mov eax, dword [0x1405316dc]
mov ecx, 0x52d58374
add ecx, dword [0x1404d66bc]
cmp eax, ecx
jge 0x140112ab1
movsxd r13, dword [0x140401874]
xor eax, eax
test al, al
je 0x140112ab9
mov eax, dword [0x140401874]
jmp 0x140112aa4
mov eax, dword [0x14040187c]
mov dword [rbp + 0x15c], eax
lea rcx, [rbp + 0x130]
lea rdx, [rbp - 0x20]
call fcn.140239930
mov rax, qword [rbp]
cmp rax, 0x10
jb 0x140112b3c
mov rdx, qword [rbp - 0x18]
lea r9, [rax + 1]
movabs rcx, 0x8e78d24f5b963d19
add rcx, qword [0x1404d66b0]
cmp r9, rcx
jbe 0x140112b1c
mov rcx, qword [rdx - 8]
sub rdx, rcx
add rdx, 0xfffffffffffffff8
cmp rdx, 0x20
jae 0x14011334a
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x28], 0x613fe7f5
mov dword [rsp + 0x20], 0xf1bcd08c
mov ecx, 1
mov r8d, 1
call fcn.1401167f0
mov qword [rbp + 0xf8], rdi
mov r8, qword [rbp + 0x120]
cmp qword [rbp + 0x128], 0x10
mov rcx, rsi
jb 0x140112b5e
mov rcx, qword [rbp + 0x110]
test r8, r8
je 0x140113340
xorps xmm0, xmm0
movaps xmmword [rbp], xmm0
movaps xmmword [rbp + 0x30], xmm0
movaps xmmword [rbp + 0xd0], xmm0
movaps xmmword [rbp + 0xc0], xmm0
movaps xmmword [rbp + 0xb0], xmm0
movaps xmmword [rbp + 0xa0], xmm0
movaps xmmword [rbp + 0x90], xmm0
movaps xmmword [rbp + 0x80], xmm0
movaps xmmword [rbp + 0x70], xmm0
movaps xmmword [rbp + 0x60], xmm0
movaps xmmword [rbp + 0x50], xmm0
movaps xmmword [rbp + 0x40], xmm0
movaps xmmword [rbp + 0x20], xmm0
movaps xmmword [rbp + 0x10], xmm0
movaps xmmword [rbp - 0x10], xmm0
movaps xmmword [rbp - 0x20], xmm0
mov byte [rbp + 0xf], 1
mov byte [rbp + 0x3c], 1
movzx eax, byte [r8 + rcx - 1]
cmp byte [rbp + rax - 0x20], 0
je 0x140112bda
lea rax, [r8 + rcx]
dec rax
jmp 0x140112c1e
mov rax, r8
cmp rax, 1
je 0x140112c0e
nop word cs:[rax + rax]
movzx edx, byte [rcx + rax - 2]
add dl, byte [0x1405316e1]
movzx edx, dl
cmp byte [rbp + rdx - 0x20], 0
jne 0x140112c17
dec rax
cmp rax, 1
jne 0x140112bf0
mov rax, 0xffffffffffffffff
jmp 0x140112c21
add rax, rcx
add rax, 0xfffffffffffffffe
sub rax, rcx
mov qword [rbp + 0xe8], rax
mov qword [rbp + 0x100], r8
lea rax, [r8 - 1]
mov qword [rbp + 0xf0], rax
mov r14d, dword [0x1404d6040]
mov r15d, r14d
sub r15d, dword [0x1404d66bc]
add r15d, 0xad2a7cee
mov dword [0x1404d6040], r15d
xor r12d, r12d
test r14d, r15d
jne 0x140112c6e
cmp dword [rbp + 0x15c], 0
jg 0x140113235
mov r9, qword [rbp + 0xe8]
cmp r9, qword [rbp + 0xf0]
lea rbx, [rbp + 0x138]
jne 0x140112ccd
mov r8, qword [rbp + 0x100]
cmp r8, r9
jb 0x140113340
setne al
movzx edx, al
add rcx, r9
mov rax, qword [0x1404d66b0]
sub rax, rdx
movabs r10, 0x8e78d24f5b962d1a
add r8, r10
add r8, rax
mov qword [rbp + 0x120], r8
sub r8, r9
inc r8
add rdx, rcx
call fcn.1403e3a10
mov r8, qword [rbp + 0x148]
cmp qword [rbp + 0x150], 0x10
mov rcx, rbx
jb 0x140112ce8
mov rcx, qword [rbp + 0x138]
test r8, r8
je 0x140113345
xorps xmm0, xmm0
movaps xmmword [rbp], xmm0
movaps xmmword [rbp + 0x30], xmm0
movaps xmmword [rbp + 0xd0], xmm0
movaps xmmword [rbp + 0xc0], xmm0
movaps xmmword [rbp + 0xb0], xmm0
movaps xmmword [rbp + 0xa0], xmm0
movaps xmmword [rbp + 0x90], xmm0
movaps xmmword [rbp + 0x80], xmm0
movaps xmmword [rbp + 0x70], xmm0
movaps xmmword [rbp + 0x60], xmm0
movaps xmmword [rbp + 0x50], xmm0
movaps xmmword [rbp + 0x40], xmm0
movaps xmmword [rbp + 0x20], xmm0
movaps xmmword [rbp + 0x10], xmm0
movaps xmmword [rbp - 0x10], xmm0
movaps xmmword [rbp - 0x20], xmm0
mov byte [rbp + 0xf], 1
movabs rax, 0x8e78d24f5b962d19
add rax, qword [0x1404d66b0]
mov byte [rbp + 0x3c], 1
mov rdx, r8
xor rdx, rax
and rax, r8
lea rax, [rdx + rax*2]
movzx edx, byte [rcx + rax]
cmp byte [rbp + rdx - 0x20], 0
je 0x140112d83
add rax, rcx
jmp 0x140112d9e
dec rax
test rax, rax
je 0x140113229
movzx edx, byte [rcx + rax - 1]
cmp byte [rbp + rdx - 0x20], 0
je 0x140112d80
add rax, rcx
dec rax
sub rax, rcx
lea rdx, [r8 - 1]
cmp rax, rdx
jne 0x140112dd4
cmp r8, rax
jb 0x140113345
setne dl
movzx edx, dl
add rcx, rax
sub r8, rdx
mov qword [rbp + 0x148], r8
sub r8, rax
inc r8
add rdx, rcx
call fcn.1403e3a10
mov r8d, 0x52d58315
mov r9b, 1
nop dword [rax]
mov eax, dword [0x1405316d8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140112e16
mov ecx, dword [0x140401970]
mov edx, dword [0x1405316d8]
lea eax, [rdx - 1]
imul eax, edx
mov r10d, dword [0x1404d66bc]
add r10d, r8d
xor edx, edx
div r10d
test edx, edx
je 0x140112e23
mov eax, dword [0x140401970]
test r9b, r9b
je 0x140112de0
jmp 0x140112df1
xor eax, eax
mov edx, 0x52d58313
nop word [rax + rax]
test al, al
jne 0x140112e60
xor r8d, r8d
test r14d, r15d
setne r9b
mov r10d, dword [0x1405316d8]
lea r11d, [r10 + 1]
imul r11d, r10d
and r11d, 1
mov r10d, dword [0x1404d66bc]
add r10d, edx
cmp r11d, r10d
je 0x140112e6f
mov r8d, dword [0x1405316dc]
cmp r8d, 0x36
jge 0x140112e30
jmp 0x140112e34
mov r8b, r9b
sub r8d, dword [0x1404d66bc]
add r8d, 0xad2a7cec
sub ecx, r12d
and ecx, r8d
mov edx, ecx
shr edx, 0x10
or edx, ecx
movzx eax, dx
movzx ecx, byte [0x1404d66c0]
add cl, 0x1f
shr eax, cl
movzx ecx, byte [0x1405316e0]
mov r8d, ecx
xor r8b, dl
and cl, dl
add cl, cl
add cl, r8b
or al, cl
mov ecx, dword [0x1405316d8]
nop dword [rax + rax]
movzx ecx, byte [0x1405316e1]
mov edx, dword [0x1405316dc]
cmp edx, 0x56
jg 0x140112ec0
add cl, al
mov byte [0x1405316e1], cl
mov rax, qword [rbp + 0x148]
mov rcx, qword [rbp + 0x150]
mov rdx, rcx
sub rdx, rax
movabs rsi, 0x8e78d24f5b962d1c
mov r8, qword [0x1404d66b0]
add r8, rsi
cmp rdx, r8
mov rdi, qword [rbp + 0xf8]
lea r14, [rbp + 0x110]
jae 0x140112f53
mov dword [rsp + 0x20], 0xa53937b7
mov ecx, 1
mov edx, 1
mov r8d, 0x34f001f7
mov r9d, 0xf56a1720
call fcn.1401181e0
mov qword [rsp + 0x20], 2
mov edx, 2
mov rcx, rbx
mov r9, rax
call fcn.1400885a0
jmp 0x140112f79
lea rdx, [rax + 2]
mov qword [rbp + 0x148], rdx
mov rdx, rbx
cmp rcx, 0x10
jb 0x140112f6e
mov rdx, qword [rbp + 0x138]
mov word [rdx + rax], 0x2f5c
mov byte [rdx + rax + 2], 0
mov r8, qword [rbp + 0x120]
cmp qword [rbp + 0x128], 0x10
jb 0x140112f91
mov r14, qword [rbp + 0x110]
mov rcx, qword [rbp + 0x148]
mov rax, qword [rbp + 0x150]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x140112fbf
mov qword [rsp + 0x20], r8
mov rcx, rbx
mov rdx, r8
mov r9, r14
call fcn.1400885a0
jmp 0x140113010
mov rdx, rcx
xor rdx, r8
mov r9, rcx
and r9, r8
mov r10, qword [0x1404d66b0]
xor rsi, r10
movabs r11, 0xe78d24f5b962d1c
and r11, r10
lea rsi, [rsi + r11*2]
imul rsi, r9
add rsi, rdx
mov qword [rbp + 0x148], rsi
cmp rax, 0x10
jb 0x140113001
mov rbx, qword [rbp + 0x138]
add rcx, rbx
mov rdx, r14
call fcn.1403e3a10
mov byte [rbx + rsi], 0
lea rdx, [rbp + 0x130]
mov rcx, rdi
call fcn.140111ac0
mov rax, qword [rbp + 0x150]
movabs rsi, 0x8e78d24f5b962d29
mov rcx, qword [0x1404d66b0]
add rcx, rsi
cmp rax, rcx
jbe 0x140113101
mov rdx, qword [rbp + 0x138]
mov rcx, rax
xor rcx, 1
mov r8d, eax
and r8d, 1
lea r9, [rcx + r8*2]
cmp r9, 0x1000
jb 0x1401130c4
mov rcx, qword [rdx - 8]
mov r8, qword [0x1404d66b0]
sub rdx, rcx
movabs r9, 0x8e78d24f5b962d12
add r9, r8
add r9, rdx
movabs rdx, 0x8e78d24f5b962d3a
add rdx, r8
cmp r9, rdx
jae 0x14011334f
movabs rdx, 0x48b38f02dd073875
add rax, rdx
mov rdx, rax
xor rdx, 0x28
and eax, 0x28
lea rax, [rdx + rax*2]
movabs r9, 0xb74c70fd22f8c78b
add r9, rax
mov rdx, rcx
mov eax, dword [0x1404d66bc]
mov ecx, eax
xor ecx, 0x52d58314
mov r8d, eax
and r8d, 0x52d58314
lea ecx, [rcx + r8*2]
lea r8d, [rax + 0x52d58314]
lea r10d, [rax + 0x4492539f]
add eax, 0xb4156b08
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r10d
call fcn.1401167f0
mov rax, qword [rbp - 0x28]
cmp rax, 0x10
jb 0x14011316b
mov rdx, qword [rbp - 0x40]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x14011314b
mov rcx, qword [rdx - 8]
add rdx, qword [0x1404d66b0]
sub rdx, rcx
movabs r8, 0x8e78d24f5b962d12
add r8, rdx
cmp r8, 0x20
jae 0x140113354
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x28], 0x613fe7f5
mov dword [rsp + 0x20], 0xf1bcd08c
mov ecx, 1
mov r8d, 1
call fcn.1401167f0
mov rax, qword [rbp + 0x128]
add rsi, qword [0x1404d66b0]
cmp rax, rsi
jbe 0x140113214
mov rdx, qword [rbp + 0x110]
lea r9, [rax + 1]
movabs rcx, 0x8e78d24f5b963d19
add rcx, qword [0x1404d66b0]
cmp r9, rcx
jbe 0x1401131f4
mov rcx, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
movabs r8, 0xfe1132dcc940e35a
xor r8, rdx
movabs r9, 0x7e1132dcc940e35a
and r9, rdx
lea rdx, [r8 + r9*2]
sub rdx, rcx
sub rdx, qword [0x1404d66b0]
movabs r8, 0x7375fad3db28ef8c
add r8, rdx
cmp r8, 0x20
jae 0x140113359
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x28], 0x613fe7f5
mov dword [rsp + 0x20], 0xf1bcd08c
mov ecx, 1
mov r8d, 1
call fcn.1401167f0
nop
add rsp, 0x1e8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, 0xffffffffffffffff
jmp 0x140112da1
lea rax, [0x140401874]
add r13, rax
xor r11d, r11d
mov ebx, 0x52d58315
lea r10, [fcn.140112980]
lea eax, [r10 + r10]
add eax, 0x2e20
mov r8d, eax
not r8d
and r8d, eax
mov esi, 0x52d58314
xor r12d, r12d
jmp 0x140113284
xor r12d, eax
add r11d, 4
cmp r11d, dword [rbp + 0x15c]
jge 0x140112c6e
mov eax, dword [0x1405316dc]
cmp eax, 0x4e
jg 0x1401132b0
nop
mov edx, dword [0x1405316d8]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x1404d66bc]
add r9d, ebx
xor edx, edx
div r9d
test edx, edx
je 0x1401132d0
nop
mov eax, dword [0x1405316d8]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x1401132b0
jmp 0x140113290
movsxd rax, r11d
mov eax, dword [r13 + rax]
mov edx, dword [0x1404d66bc]
mov r9d, 0x52d58313
add edx, r9d
cmp r8d, edx
jne 0x140113320
nop dword [rax]
mov edi, dword [0x1405316d8]
mov r9d, dword [0x1404d66bc]
mov edx, edi
sub edx, r9d
add edx, 0xad2a7cec
imul edx, edi
and edx, 1
add r9d, 0x52d58313
cmp edx, r9d
je 0x140113270
nop
mov edx, dword [0x1404d66bc]
add edx, esi
lea r9d, [r10 + r10]
add r9d, 0xba0
xor r9d, edx
not r9d
test r9d, edx
jne 0x140113320
jmp 0x1401132f0
call fcn.1400f5a50
call fcn.1400f5a50
call fcn.14039c09c
call fcn.14039c09c
call fcn.14039c09c
call fcn.14039c09c
int3