Function at 0x180052980
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0xe0
lea rbp, [rsp + 0x40]
mov qword [rbp + 0xd0], rbx
mov qword [rbp + 0xd8], rsi
mov qword [rbp + 0xe0], rdi
mov rax, qword [0x18009da48]
xor rax, rbp
mov qword [rbp + 0x90], rax
mov eax, r8d
mov qword [rbp + 0x48], rcx
mov rbx, qword [rbp + 0x48]
mov r8, rcx
imul ecx, eax, 0xc9e
mov esi, eax
mov qword [rbp + 0x80], r9
mov dword [rbp + 0x70], eax
mov qword [rbp + 0x40], rdx
mov dword [rbp + 0x20], eax
mov dword [rbp + 0x74], ecx
cmp eax, ecx
ja 0x180052e15
mov r14, qword [rbp + 0x48]
xor edi, edi
mov r12, qword [rbp + 0xf0]
mov r15, qword [rbp + 0x30]
mov r13, qword [rbp + 0x100]
mov rcx, qword [rbp + 0xf8]
lea r10, [0x18009c0f0]
cmp esi, 0x9d2e
ja 0x180052d01
je 0x180052cde
cmp esi, 0xb5
ja 0x180052bee
je 0x180052bdd
mov eax, esi
sub eax, 0x41
je 0x180052b11
sub eax, 0x11
je 0x180052ab5
sub eax, 0x24
je 0x180052a98
cmp eax, 0xf
jne 0x1800531c4
mov qword [rsp + 0x30], rdx
lea rax, [0x180082640]
mov qword [rbp + 0x48], rax
lea r9, [rbp + 0x50]
lea rax, [rbp]
mov qword [rbp + 0x50], rdi
mov qword [rsp + 0x28], rax
mov r8, r12
lea rax, [rbp + 0x48]
mov byte [rbp], 0
mov edx, 0xa0
mov qword [rsp + 0x20], rax
xor ecx, ecx
call fcn.180007840
jmp 0x180052e18
cmp qword [r13], 0
je 0x1800531ed
test rcx, rcx
je 0x1800531ed
mov qword [rbp + 0x78], rcx
jmp 0x1800531c4
test r12, r12
jne 0x180052ac2
mov rbx, rdi
jmp 0x1800531c4
mov qword [rsp + 0x28], rdi
mov r9d, 0x7d
xor r8d, r8d
mov qword [rsp + 0x20], r12
xor edx, edx
xor ecx, ecx
call fcn.18004ce80
mov rdx, qword [rbp + 0x40]
test al, al
je 0x180052b01
mov rcx, qword [r12 + 8]
imul rcx, qword [rdx]
movzx eax, byte [r12 + 1]
add rcx, rax
lea rbx, [rcx + r12]
jmp 0x1800531c4
mov rcx, qword [rdx]
add rcx, 4
lea rbx, [rcx + r12]
jmp 0x1800531c4
mov rdx, qword [rdx]
mov ecx, 1
mov dword [rbp + 0x18], edi
mov r8d, edi
lea rax, [rdx - 1]
cmp rdx, rcx
jbe 0x1800531c4
cmp rax, 8
jb 0x180052bb0
and eax, 7
mov r8, rdx
sub r8, rax
xorps xmm2, xmm2
lea rax, [r12 + 0x14]
xorps xmm3, xmm3
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add rcx, 8
movdqu xmm1, xmmword [rax - 0x14]
lea rax, [rax + 0x20]
pxor xmm1, xmm0
por xmm1, xmm2
movdqa xmm2, xmm1
movdqu xmm1, xmmword [rax - 0x24]
movdqu xmm0, xmmword [rax - 0x20]
pxor xmm1, xmm0
por xmm1, xmm3
movdqa xmm3, xmm1
cmp rcx, r8
jb 0x180052b50
por xmm2, xmm1
movdqa xmm0, xmm2
psrldq xmm0, 8
por xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 4
por xmm2, xmm0
movd r8d, xmm2
mov dword [rbp + 0x18], r8d
cmp rcx, rdx
jae 0x1800531c4
nop dword [rax]
mov eax, dword [r12 + rcx*4 - 4]
xor eax, dword [r12 + rcx*4]
inc rcx
or r8d, eax
cmp rcx, rdx
jb 0x180052bc0
mov dword [rbp + 0x18], r8d
jmp 0x1800531c4
test r12, r12
jne 0x1800531c4
mov rax, rdi
jmp 0x180052e18
cmp esi, 0x2b6b
je 0x180052c86
cmp esi, 0x36c6
je 0x180052e15
cmp esi, 0x4ed2
je 0x180052c27
cmp esi, 0x78e7
jne 0x1800531c4
cmp byte [r12 + 2], 6
jne 0x180052be6
jmp 0x1800531c4
movzx eax, byte [rdx]
lea rcx, [rbp]
mov r8, qword [rbp + 0x78]
mov edx, 0xda
mov byte [rbp + 0x10], al
mov rax, qword [r9]
lea r9, [rbp + 0x10]
mov qword [rbp + 0x58], rax
mov rax, qword [r13]
mov qword [rbp + 0x28], rax
lea rax, [rbp + 0x28]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 8]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x58]
mov qword [rsp + 0x20], rax
mov byte [rbp], 0
mov byte [rbp + 8], 0x28
call fcn.180007840
mov rcx, qword [rbp + 0x78]
movzx eax, byte [r12]
mov byte [rcx + 2], al
jmp 0x1800531c4
mov eax, dword [rbp + 0x18]
test eax, eax
je 0x1800531c4
xor r9d, r9d
mov dword [rbp + 0x20], eax
lea r8, [rbp + 0x20]
xor edx, edx
mov ecx, 0xc2
call fcn.1800638a0
mov rdx, qword [rbp + 0x40]
lea r8, [rbp + 0x50]
mov dword [rbp + 0x58], eax
mov r9, r12
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x28], eax
lea rax, [rbp + 0x58]
mov rcx, qword [rdx]
mov edx, 0x5a
mov qword [rbp + 0x50], rcx
lea rcx, [rbp + 0x28]
mov qword [rsp + 0x20], rax
call fcn.18007e870
jmp 0x1800531c4
movsxd rax, dword [r12]
cmp eax, 7
lea rax, [r10 + rax*8]
jle 0x180052cee
mov rax, r8
mov rcx, qword [rbp + 0x78]
mov rax, qword [rax]
mov rbx, rcx
mov qword [rcx + 0x20], rax
jmp 0x1800531c4
cmp esi, 0x259af
ja 0x180052de9
je 0x180052d82
cmp esi, 0xeb8a
je 0x180052e15
cmp esi, 0xf119
je 0x180052d59
cmp esi, 0x1694b
je 0x180052d46
cmp esi, 0x1e17d
jne 0x1800531c4
mov r14, rdi
mov qword [rbp + 0x30], rdi
mov r15, rdi
jmp 0x1800531c4
cmp qword [rbp + 0x88], 0
je 0x180052be6
jmp 0x1800531c4
mov qword [rsp + 0x28], rdi
mov r9d, 0xb8
xor r8d, r8d
mov qword [rsp + 0x20], rdi
xor edx, edx
mov rcx, r12
call fcn.180015530
mov qword [rbp + 0x88], rax
jmp 0x1800531c4
mov rax, qword [rbp + 0x88]
lea r8, [rbp + 0x50]
xor r9d, r9d
mov qword [rbp + 0x50], rax
mov edx, 0xcc
xor ecx, ecx
call fcn.180054560
lea eax, [rax*2 + 2]
lea rax, [rax + 3]
lea rcx, [rax + rax*2]
shl rcx, 2
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x180052dc6
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.180083ea0
sub rsp, rax
lea rcx, [rsp + 0x40]
mov qword [rbp + 0x38], rcx
test rcx, rcx
je 0x180052be6
jmp 0x1800531c4
cmp esi, 0x2d1e1
je 0x1800531b2
cmp esi, 0x34a13
je 0x1800531a9
cmp esi, 0x3c245
je 0x180052e4d
cmp esi, 0x43a77
jne 0x1800531c4
mov rax, rbx
mov rcx, qword [rbp + 0x90]
xor rcx, rbp
call fcn.180083f10
mov rbx, qword [rbp + 0xd0]
mov rsi, qword [rbp + 0xd8]
mov rdi, qword [rbp + 0xe0]
lea rsp, [rbp + 0xa0]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
test r14, r14
js 0x1800531a4
nop word [rax + rax]
mov rcx, qword [rbp + 0x38]
lea rax, [r14 + r14*2]
lea rsi, [rcx + rax*4]
mov ecx, dword [rcx + rax*4 + 8]
test ecx, ecx
je 0x180052fd1
sub ecx, 1
je 0x180052e94
sub ecx, 1
je 0x180053183
cmp ecx, 1
jne 0x18005318d
jmp 0x180053183
mov eax, dword [rsi + 4]
lea rcx, [rbp + 0x28]
mov r8, r12
mov dword [rbp + 0x28], eax
mov edx, 0xbd
call fcn.180058860
mov rcx, qword [rbp + 0x40]
xor r9d, r9d
mov r8, rax
mov qword [rsp + 0x28], rdi
xor edx, edx
mov dword [rsp + 0x20], 0x11c
mov r13, rax
call fcn.180026f00
mov rcx, qword [rbp + 0xf8]
xor r9d, r9d
mov r8, r13
mov qword [rsp + 0x28], rdi
xor edx, edx
mov dword [rsp + 0x20], 0x11c
mov ebx, eax
call fcn.180026f00
mov r15d, eax
test ebx, ebx
js 0x180052f48
test eax, eax
jg 0x180052f48
mov rax, qword [rbp + 0x100]
cmp qword [rax], 0
je 0x180052f44
lea rcx, [r13 + 0x20]
mov edx, 0x92
call fcn.18006c420
lea rcx, [r13 + 8]
mov edx, 0x92
mov rbx, rax
call fcn.18006c420
mov r8, qword [rbp + 0x80]
mov rcx, rax
mov rax, qword [rbp + 0x100]
mov rdx, rbx
call qword [rax]
test al, al
je 0x1800531f9
inc qword [rbp + 0x30]
cmp dword [r13 + 4], 0x7fffffff
je 0x180053183
test r15d, r15d
jns 0x180053183
mov ebx, 0xbe
mov eax, ebx
sub eax, 0xbe
je 0x180052fa6
sub eax, 1
je 0x180052f8a
sub eax, 1
je 0x180052f81
cmp eax, 1
jne 0x180052fc2
mov dword [rsi + 8], edi
jmp 0x180052fc2
mov eax, dword [r13 + 4]
mov dword [rsi + 4], eax
jmp 0x180052fc2
mov eax, dword [rsi - 8]
lea rcx, [rbp + 0x60]
mov r8, r12
mov dword [rbp + 0x60], eax
mov edx, 0xbd
call fcn.180058860
mov r13, rax
jmp 0x180052fc2
mov rcx, qword [rbp + 0x38]
inc r14
mov dword [rsi + 8], 2
lea rax, [r14 + r14*2]
lea rsi, [rcx + rax*4]
mov eax, dword [rcx + rax*4 - 8]
mov dword [rsi], eax
inc ebx
cmp ebx, 0xc2
jb 0x180052f64
jmp 0x18005318d
mov eax, dword [rsi + 4]
lea rcx, [rbp + 0x28]
mov r13, qword [rbp + 0xf0]
mov edx, 0xbd
mov r8, r13
mov dword [rbp + 0x28], eax
call fcn.180058860
mov rcx, qword [rbp + 0x40]
xor r9d, r9d
mov r8, rax
mov qword [rsp + 0x28], rdi
xor edx, edx
mov dword [rsp + 0x20], 0x11c
mov r15, rax
call fcn.180026f00
mov rcx, qword [rbp + 0xf8]
xor r9d, r9d
mov r8, r15
mov qword [rsp + 0x28], rdi
xor edx, edx
mov dword [rsp + 0x20], 0x11c
mov ebx, eax
call fcn.180026f00
mov ecx, dword [r15]
mov r12d, eax
and ecx, 0xfffffffe
cmp ecx, 0xfffffffe
je 0x1800530ae
test ebx, ebx
jle 0x1800530b0
mov ebx, 0xee
add rsi, 0xfffffffffffffff8
nop
cmp ebx, 0xee
je 0x18005308d
cmp ebx, 0x198
je 0x180053072
cmp ebx, 0x242
jne 0x18005309b
mov eax, dword [r15]
shr eax, 1
mov dword [rsi + 0xc], eax
jmp 0x18005309b
mov eax, dword [rsi]
lea rcx, [rbp + 0x68]
mov r8, r13
mov dword [rbp + 0x68], eax
mov edx, 0xbd
call fcn.180058860
mov r15, rax
jmp 0x18005309b
inc r14
mov dword [rsi + 0x10], 1
add rsi, 0xc
add ebx, 0xaa
cmp ebx, 0x2ec
jb 0x180053050
jmp 0x180053167
test ebx, ebx
js 0x180053105
test r12d, r12d
jg 0x180053105
mov rax, qword [rbp + 0x100]
cmp qword [rax], 0
je 0x180053101
lea rcx, [r15 + 0x20]
mov edx, 0x92
call fcn.18006c420
lea rcx, [r15 + 8]
mov edx, 0x92
mov rbx, rax
call fcn.18006c420
mov r8, qword [rbp + 0x80]
mov rcx, rax
mov rax, qword [rbp + 0x100]
mov rdx, rbx
call qword [rax]
test al, al
je 0x1800531f9
inc qword [rbp + 0x30]
cmp dword [r15 + 4], 0x7fffffff
je 0x180053180
test r12d, r12d
jns 0x180053180
mov rdi, qword [rbp + 0x38]
mov ebx, 0x5b
nop dword [rax]
mov eax, ebx
sub eax, 0x5a
je 0x180053135
cmp eax, 1
jne 0x18005315e
mov dword [rsi + 8], 2
jmp 0x18005315e
inc r14
lea rcx, [rbp + 0x28]
mov r8, r13
mov edx, 0xbd
lea rax, [r14 + r14*2]
lea rsi, [rdi + rax*4]
mov eax, dword [rdi + rax*4 - 8]
mov dword [rbp + 0x28], eax
call fcn.180058860
mov ecx, dword [rax + 4]
mov dword [rsi + 4], ecx
dec ebx
cmp ebx, 0x59
ja 0x180053120
xor edi, edi
mov rcx, qword [rbp + 0x38]
lea rax, [r14 + r14*2]
lea rcx, [rcx + rax*4]
mov r12, r13
mov dword [rcx + 8], edi
mov eax, dword [rcx - 8]
mov dword [rcx], eax
jmp 0x18005318d
mov r12, r13
mov dword [rsi + 8], 3
dec r14
test r14, r14
jns 0x180052e60
mov esi, dword [rbp + 0x20]
mov r15, qword [rbp + 0x30]
mov r13, qword [rbp + 0x100]
mov rbx, r15
jmp 0x1800531c4
mov rax, qword [rbp + 0x38]
mov dword [rax + 8], edi
jmp 0x1800531c4
mov rcx, qword [rbp + 0x38]
mov dword [rcx], 0x7fffffff
mov eax, dword [r12 + 0x20]
mov dword [rcx + 4], eax
imul eax, dword [rbp + 0x70], 0xaa
add esi, eax
mov dword [rbp + 0x20], esi
cmp esi, dword [rbp + 0x74]
ja 0x180052e15
mov rdx, qword [rbp + 0x40]
mov r9, qword [rbp + 0x80]
mov r8, qword [rbp + 0x48]
jmp 0x180052a06
mov rax, qword [0x18009c020]
jmp 0x180052e18
mov rax, qword [rbp + 0x30]
jmp 0x180052e18