Function at 0x14005cfc4
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x2970
call fcn.1400baa60
sub rsp, rax
mov qword [rsp + 0xe0], 0xfffffffffffffffe
mov qword [rsp + 0x29c0], rbx
mov rax, qword [0x1400e0920]
xor rax, rsp
mov qword [rsp + 0x2960], rax
mov qword [rsp + 0x78], rdx
mov rsi, rcx
mov ecx, 0x269
call fcn.140061d94
mov r8, rax
mov r13d, 0x200
mov rdx, r13
lea rcx, [rsp + 0x360]
call fcn.1400287d0
lea rcx, [rsp + 0x360]
call fcn.140087994
xor edx, edx
mov rcx, rsi
call fcn.14000bbc0
mov bpl, al
mov bl, byte [rsi + 0x8f70]
xor edi, edi
cmp al, dil
je 0x14005d0ab
cmp bl, dil
jne 0x14005d0ab
cmp byte [rsi + 0x8f5f], dil
jne 0x14005d0ab
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.1400307bc
lea ecx, [r13 + 0x6b]
call fcn.140061d94
mov r8, rax
mov rdx, r13
lea rcx, [rsp + 0x360]
call fcn.1400287d0
lea rcx, [rsp + 0x360]
call fcn.140087994
cmp byte [rsi + 0x8f60], dil
sete dil
mov eax, edi
jmp 0x14005dae1
mov rdx, rsi
lea rcx, [rsp + 0x120]
call fcn.140063a48
nop
lea rdx, [0x1400c3400]
mov rcx, rsi
call fcn.140010354
cmp rax, rdi
je 0x14005d15c
xor edx, edx
lea rcx, [rsp + 0xe8]
call fcn.140058e7c
nop
mov r8, qword [rsi + 0x81b8]
mov rdx, qword [rsi + 0x81b0]
lea rcx, [rsp + 0xe8]
call fcn.140058c8c
mov r8d, 8
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0xe8]
call fcn.140058db0
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0xe8]
call fcn.140058d34
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0xe8]
call fcn.140058d7c
mov r12b, 1
mov rcx, qword [rsp + 0xe8]
cmp rcx, rdi
je 0x14005d453
call fcn.1400a8854
jmp 0x14005d453
xor r8d, r8d
mov rdx, qword [rsi + 0x8f68]
mov rcx, rsi
call fcn.1400307bc
mov edx, 0x78
mov rcx, rsi
call fcn.1400102dc
cmp rax, rdi
je 0x14005d1ae
movzx eax, word [rsi + 0x8284]
cmp word [rsi + 0x8f72], ax
jne 0x14005d1ae
movzx eax, word [rsi + 0x8296]
mov dword [rsp + 0x40], eax
mov eax, dword [rsi + 0x8298]
mov qword [rsp + 0x60], rax
mov r12b, dil
jmp 0x14005d453
cmp bpl, dil
je 0x14005d21b
cmp bl, dil
jne 0x14005d21b
cmp byte [rsi + 0x8f60], dil
je 0x14005d21b
mov ecx, 0x26b
call fcn.140061d94
mov r8, rax
mov rdx, r13
lea rcx, [rsp + 0x360]
call fcn.1400287d0
lea rcx, [rsp + 0x360]
call fcn.140087994
mov ecx, 0x274
call fcn.140061d94
mov rdx, rax
lea rcx, [rsi + 0x420]
call fcn.14009666c
mov edx, 0xa
lea rcx, [0x1400ec668]
call fcn.140028678
nop
jmp 0x14005dad2
mov r14, rdi
mov qword [rsi + 0x8f48], rdi
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.1400307bc
mov r8d, 0x2000
lea rdx, [rsp + 0x960]
mov rcx, rsi
call fcn.1400309f8
cmp eax, edi
je 0x14005d403
mov r12b, byte [rsp + 0x48]
mov r13d, edi
lea r15d, [rax - 0x32]
cmp r15d, edi
jle 0x14005d3c8
lea rbp, [rsp + 0x962]
cmp byte [rbp], 0x7a
jne 0x14005d2af
mov rax, qword [rbp + 0x20]
cmp rax, qword [str.Protect]
jne 0x14005d2af
movzx ebx, byte [rbp - 1]
mov eax, 0x100
imul bx, ax
movzx eax, byte [rbp - 2]
add bx, ax
not bx
mov r8d, 0x34
mov rdx, rbp
or ecx, 0xffffffff
call fcn.140020624
cmp bx, ax
je 0x14005d304
jmp 0x14005d2f0
cmp byte [rbp], 0x78
jne 0x14005d2f0
mov rax, qword [rbp + 0x10]
cmp rax, qword [str.Protect_]
jne 0x14005d2f0
movzx ecx, byte [rbp - 1]
shl ecx, 8
movzx eax, byte [rbp - 2]
add ecx, eax
not ecx
movzx ebx, cx
mov r8d, 0x18
mov rdx, rbp
or ecx, 0xffffffff
call fcn.140020624
movzx ecx, ax
cmp ebx, ecx
je 0x14005d383
inc r13d
inc rbp
cmp r13d, r15d
jge 0x14005d3c8
jmp 0x14005d26d
movzx ecx, byte [rbp + 0x2b]
shl ecx, 8
movzx eax, byte [rbp + 0x2a]
add ecx, eax
shl ecx, 8
movzx eax, byte [rbp + 0x29]
add ecx, eax
shl ecx, 8
movzx eax, byte [rbp + 0x28]
add ecx, eax
mov dword [rsp + 0x40], ecx
movzx edx, byte [rbp + 0x33]
shl edx, 8
movzx eax, byte [rbp + 0x32]
add edx, eax
shl edx, 8
movzx eax, byte [rbp + 0x31]
add edx, eax
shl edx, 8
movzx eax, byte [rbp + 0x30]
add edx, eax
movzx ecx, byte [rbp + 0x2f]
shl ecx, 8
movzx eax, byte [rbp + 0x2e]
add ecx, eax
shl ecx, 8
movzx eax, byte [rbp + 0x2d]
add ecx, eax
shl ecx, 8
movzx eax, byte [rbp + 0x2c]
add eax, ecx
shl rdx, 0x20
add rax, rdx
mov qword [rsp + 0x60], rax
movsxd rax, r13d
add rax, r14
mov qword [rsi + 0x8f48], rax
mov r12b, 1
jmp 0x14005d3c8
movzx ecx, byte [rbp + 0xb]
shl ecx, 8
movzx eax, byte [rbp + 0xa]
add ecx, eax
mov dword [rsp + 0x40], ecx
movzx ecx, byte [rbp + 0xf]
shl ecx, 8
movzx eax, byte [rbp + 0xe]
add ecx, eax
shl ecx, 8
movzx eax, byte [rbp + 0xd]
add ecx, eax
shl ecx, 8
movzx eax, byte [rbp + 0xc]
add eax, ecx
mov qword [rsp + 0x60], rax
movsxd rax, r13d
add rax, r14
mov qword [rsi + 0x8f48], rax
mov r12b, dil
add r14, 0x1fce
xor r8d, r8d
mov rdx, r14
mov rcx, rsi
call fcn.1400307bc
mov r8d, 0x2000
lea rdx, [rsp + 0x960]
mov rcx, rsi
call fcn.1400309f8
cmp eax, edi
jne 0x14005d255
mov r13d, 0x200
jmp 0x14005d408
mov r12b, byte [rsp + 0x48]
cmp qword [rsi + 0x8f48], rdi
jne 0x14005d453
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.1400307bc
mov ecx, 0x26b
call fcn.140061d94
mov r8, rax
mov rdx, r13
lea rcx, [rsp + 0x360]
call fcn.1400287d0
lea rcx, [rsp + 0x360]
call fcn.140087994
nop
mov edi, 1
jmp 0x14005dad2
mov ecx, 0x26a
call fcn.140061d94
mov r8, rax
mov rdx, r13
lea rcx, [rsp + 0x360]
call fcn.1400287d0
lea rcx, [rsp + 0x360]
call fcn.140087994
or dword [0x140116e30], 0xffffffff
mov rbx, qword [rsi + 0x8f48]
mov qword [rsp + 0x58], rbx
mov r15, rbx
mov qword [rsp + 0x150], rbx
mov ebp, edi
neg r12b
sbb ecx, ecx
and ecx, 0x1c
add ecx, 0x1a
cmp byte [rsi + 0x8f60], dil
je 0x14005d4be
mov eax, ecx
not eax
inc eax
and eax, 0xf
lea ecx, [rcx + rax + 8]
movsxd rcx, ecx
add rcx, rbx
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xb0], rdi
mov qword [rsp + 0xb8], rdi
mov qword [rsp + 0x30], rbx
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x20], eax
mov r9, rcx
lea r8, [rsp + 0xa8]
lea rdx, [rsp + 0x88]
mov rcx, rsi
call fcn.14005cb54
mov edx, dword [rsp + 0x40]
shl edx, 9
lea rcx, [rsp + 0xc0]
call fcn.140001700
nop
mov r8, qword [rsp + 0xc8]
xor edx, edx
mov rcx, qword [rsp + 0xc0]
call fcn.1400a9314
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.1400307bc
mov r14d, edi
cmp rbx, rdi
jle 0x14005d648
mov r12, qword [rsp + 0xa8]
mov r13, qword [rsp + 0x88]
call fcn.14006c088
mov r8, r15
sub r8, rbx
mov r9, r15
mov edx, 1
mov rcx, rsi
call fcn.14005cad8
mov r11d, r14d
cmp r11, qword [rsp + 0x90]
jae 0x14005d5df
mov rcx, rsi
call fcn.140030054
cmp rax, qword [r13]
jl 0x14005d5df
movsxd rdx, dword [r12]
mov r8d, 1
mov rcx, rsi
call fcn.1400307bc
movsxd r11, dword [r12]
sub rbx, r11
mov qword [rsp + 0x58], rbx
inc r14d
add r13, 8
add r12, 4
mov byte [rsp + 0x20], 1
lea r9, [rsp + 0x58]
mov ebx, 0x200
mov r8d, ebx
lea rdx, [rsp + 0x160]
mov rcx, rsi
call fcn.14005c9b4
mov ecx, ebp
shl ecx, 9
add rcx, qword [rsp + 0xc0]
lea rdx, [rsp + 0x160]
sub rdx, rcx
mov r8, rbx
mov al, byte [rdx + rcx]
xor byte [rcx], al
inc rcx
sub r8, 1
jne 0x14005d61c
inc ebp
cmp ebp, dword [rsp + 0x40]
sbb eax, eax
and ebp, eax
mov rbx, qword [rsp + 0x58]
cmp rbx, rdi
jg 0x14005d580
mov r13d, 0x200
mov r8d, 0x64
mov r9, r8
lea edx, [r8 - 0x63]
mov rcx, rsi
call fcn.14005cad8
mov r11, qword [rsp + 0x60]
mov rax, qword [rsp + 0x70]
lea rdx, [rax + r11*2]
xor r8d, r8d
mov rcx, rsi
call fcn.1400307bc
mov ebp, edi
cmp dword [rsp + 0x40], edi
jbe 0x14005d6c7
mov ebx, edi
mov r8, r13
lea rdx, [rsp + 0x160]
mov rcx, rsi
call fcn.1400309f8
mov r11d, ebx
add r11, qword [rsp + 0xc0]
lea rcx, [rsp + 0x160]
sub rcx, r11
mov rdx, r13
mov al, byte [rcx + r11]
xor byte [r11], al
inc r11
sub rdx, 1
jne 0x14005d6ac
inc ebp
add ebx, r13d
cmp ebp, dword [rsp + 0x40]
jb 0x14005d680
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.1400307bc
mov rbx, r15
mov qword [rsp + 0x58], rbx
mov r13d, edi
mov r12d, edi
mov dword [rsp + 0x50], edi
or ebp, 0xffffffff
mov dword [rsp + 0x44], ebp
mov r14d, edi
mov dword [rsp + 0x4c], edi
cmp r15, rdi
jle 0x14005da3c
mov r15, qword [rsp + 0xa8]
mov qword [rsp + 0xa0], r15
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
call fcn.14006c088
mov r11d, dword [rsp + 0x4c]
cmp r11, qword [rsp + 0x90]
jae 0x14005d77b
mov rcx, rsi
call fcn.140030054
mov rcx, qword [rsp + 0x80]
cmp rax, qword [rcx]
jl 0x14005d77b
movsxd rdx, dword [r15]
mov r8d, 1
mov rcx, rsi
call fcn.1400307bc
movsxd r11, dword [r15]
sub rbx, r11
mov qword [rsp + 0x58], rbx
inc dword [rsp + 0x4c]
add qword [rsp + 0x80], 8
add r15, 4
mov qword [rsp + 0xa0], r15
mov byte [rsp + 0x20], 1
lea r9, [rsp + 0x58]
mov ebx, 0x200
mov r8d, ebx
lea rdx, [rsp + 0x160]
mov rcx, rsi
call fcn.14005c9b4
mov eax, eax
mov qword [rsp + 0xd8], rax
mov r8, rax
lea rdx, [rsp + 0x160]
mov rcx, qword [rsp + 0x78]
call fcn.140030824
mov r8, rbx
lea rdx, [rsp + 0x160]
or ecx, 0xffffffff
call fcn.140020624
movzx ebx, ax
mov rdx, rsi
lea rcx, [rsp + 0x138]
call fcn.140063a48
nop
xor r8d, r8d
mov rdx, qword [rsp + 0x70]
mov rcx, rsi
call fcn.1400307bc
mov rcx, rsi
call fcn.140030b08
movzx r15d, al
mov rcx, rsi
call fcn.140030b08
movzx r11d, al
shl r11d, 8
add r15d, r11d
mov dword [rsp + 0x68], r15d
add qword [rsp + 0x70], 2
lea rcx, [rsp + 0x138]
call fcn.140063a80
cmp r15d, ebx
jne 0x14005d84a
mov r9b, 1
lea r8, [rsp + 0x44]
mov edx, r13d
mov ecx, ebp
call fcn.14005ca30
mov ebp, dword [rsp + 0x44]
jmp 0x14005da0e
lea rcx, [rsp + 0x760]
lea rdx, [rsp + 0x160]
mov ebx, 0x200
mov r8, rbx
call fcn.1400a8fe0
mov r12d, r14d
shl r12d, 9
add r12, qword [rsp + 0xc0]
lea rcx, [rsp + 0x160]
lea rax, [rsp + 0x160]
sub r12, rax
mov rdx, rbx
mov al, byte [r12 + rcx]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x14005d88c
mov r8, rbx
lea rdx, [rsp + 0x160]
or ecx, 0xffffffff
call fcn.140020624
movzx ecx, ax
cmp r15d, ecx
je 0x14005d9a6
mov ebx, 0x40
lea r15, [rsp + 0x1a0]
lea rcx, [rsp + 0x160]
lea rdx, [rsp + 0x760]
mov r8d, 0x200
call fcn.1400a8fe0
cmp ebx, edi
jle 0x14005d8ff
lea rcx, [rsp + 0x160]
mov edx, ebx
mov al, byte [rcx + r12]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x14005d8f0
mov r8d, 0x200
lea rdx, [rsp + 0x160]
or ecx, 0xffffffff
call fcn.140020624
movzx ecx, ax
cmp dword [rsp + 0x68], ecx
je 0x14005d9a6
lea rcx, [rsp + 0x160]
lea rdx, [rsp + 0x760]
mov r8d, 0x200
call fcn.1400a8fe0
mov r8d, 0x200
cmp ebx, r8d
jae 0x14005d95f
mov rcx, r15
mov edx, r8d
sub edx, ebx
mov al, byte [rcx + r12]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x14005d950
lea rdx, [rsp + 0x160]
or ecx, 0xffffffff
call fcn.140020624
movzx ecx, ax
cmp dword [rsp + 0x68], ecx
je 0x14005d9a6
add ebx, 0x40
add r15, 0x40
mov eax, 0x100
cmp ebx, eax
jl 0x14005d8c7
mov r12d, dword [rsp + 0x50]
inc r12d
mov dword [rsp + 0x50], r12d
cmp ebp, 0xffffffff
cmove ebp, r13d
mov dword [rsp + 0x44], ebp
jmp 0x14005da0e
mov r9b, 1
lea r8, [rsp + 0x44]
mov edx, r13d
mov ecx, ebp
call fcn.14005ca30
lea edx, [r13 + 1]
xor r9d, r9d
lea r8, [rsp + 0x44]
mov ecx, r13d
call fcn.14005ca30
mov rbp, qword [rsp + 0x78]
mov rcx, rbp
call fcn.140030054
mov rbx, qword [rsp + 0xd8]
sub rax, rbx
xor r8d, r8d
mov rdx, rax
mov rcx, rbp
call fcn.1400307bc
mov r8, rbx
lea rdx, [rsp + 0x160]
mov rcx, rbp
call fcn.140030824
mov ebp, dword [rsp + 0x44]
mov r12d, dword [rsp + 0x50]
inc r13d
inc r14d
cmp r14d, dword [rsp + 0x40]
sbb eax, eax
and r14d, eax
mov rbx, qword [rsp + 0x58]
cmp rbx, rdi
mov r15, qword [rsp + 0xa0]
jg 0x14005d71d
mov r15, qword [rsp + 0x150]
mov r9b, 1
lea r8, [rsp + 0x44]
mov edx, r13d
mov ecx, ebp
call fcn.14005ca30
xor r8d, r8d
mov rdx, r15
mov rcx, rsi
call fcn.1400307bc
movabs r8, 0x7fffffff7fffffff
mov rdx, qword [rsp + 0x78]
mov rcx, rsi
call fcn.140030b4c
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.1400307bc
neg r12d
sbb ebx, ebx
and ebx, 2
cmp qword [rsp + 0xc0], rdi
je 0x14005daa0
mov rcx, qword [rsp + 0xc0]
call fcn.1400a8854
nop
cmp qword [rsp + 0xa8], rdi
je 0x14005dab8
mov rcx, qword [rsp + 0xa8]
call fcn.1400a8854
nop
cmp qword [rsp + 0x88], rdi
je 0x14005dad0
mov rcx, qword [rsp + 0x88]
call fcn.1400a8854
nop
mov edi, ebx
lea rcx, [rsp + 0x120]
call fcn.140063a80
mov eax, edi
mov rcx, qword [rsp + 0x2960]
xor rcx, rsp
call fcn.1400a86e0
mov rbx, qword [rsp + 0x29c0]
add rsp, 0x2970
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret