Function at 0x466bc0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb8
mov rax, qword [0x007a1a88]
mov qword [rsp + 0xa0], rax
mov rax, qword [rcx + 0xc3510]
mov edi, r8d
mov r8d, edx
mov r14, qword [rax + 0x28]
mov ebp, edx
mov rsi, rcx
xor r15d, r15d
lea rdx, [rsp + 0x50]
and r8d, 0x7fffffff
lea r9d, [r15 + 0x4c]
mov rcx, r14
mov dword [rsp + 0x3c], 0xffffffff
xor r12d, r12d
call fcn.004af808
test eax, eax
je 0x466e09
lea rdx, [0x006a1390]
lea rcx, [rsp + 0x50]
call fcn.00556440
lea r13d, [r15 + 1]
test eax, eax
je 0x466c55
lea rdx, [0x006a138c]
lea rcx, [rsp + 0x50]
call fcn.00556440
test eax, eax
jne 0x466c5c
mov dword [rsi + 0xcb6e4], r13d
lea rcx, [rsp + 0x50]
mov edx, 0x48
call fcn.00452314
cmp eax, dword [rsp + 0x98]
jne 0x466e09
mov ebx, dword [rsp + 0x74]
bt ebx, 0xd
jae 0x466c89
mov dword [rsi + 0xcb6b0], r13d
bt ebx, 0xf
jae 0x466c96
mov dword [rsi + 0xcb738], r13d
mov eax, dword [rsp + 0x64]
mov dword [rsi + 0xc3600], 0x800
cmp eax, 0x150
mov dword [rsi + 0xc35d0], eax
jne 0x466cb9
test edi, edi
je 0x466e09
cmp eax, 0x100
jbe 0x466cc9
and ebx, 0xfff
shl ebx, 0xe
lea rdx, [rsp + 0x50]
mov r8d, ebp
mov rcx, rsi
call fcn.00466820
test eax, eax
je 0x466e09
mov eax, ebx
mov r8d, ebp
mov rcx, rsi
cdq
mov dword [rsi + 0xc35ec], ebx
idiv dword [rsi + 0xc3600]
lea rdx, [rsp + 0x50]
mov dword [rsi + 0xc35f0], eax
call fcn.00463f68
test eax, eax
je 0x466e09
lea rdx, [rsp + 0x50]
mov r8d, ebp
mov rcx, rsi
call fcn.00465488
test eax, eax
je 0x466e09
lea rdx, [rsp + 0x50]
mov r8d, ebp
mov rcx, rsi
call fcn.004658c8
test eax, eax
je 0x466e09
cmp dword [rsi + 0xcb670], r12d
jne 0x466e09
lea rdx, [0x006a1388]
lea rcx, [rsp + 0x50]
call fcn.00556440
test eax, eax
je 0x466d8a
lea rdx, [0x006a1390]
lea rcx, [rsp + 0x50]
call fcn.00556440
test eax, eax
je 0x466d8a
lea rdx, [0x006a138c]
lea rcx, [rsp + 0x50]
call fcn.00556440
test eax, eax
jne 0x466e09
mov eax, dword [rsp + 0x60]
cmp eax, 0x4c
jb 0x466e09
cmp dword [rsp + 0x6c], r13d
jne 0x466e09
mov edx, dword [rsp + 0x7c]
mov ecx, ebp
lea r8, [rsp + 0x40]
btr ecx, 0x1f
mov dword [rsp + 0x38], ecx
lea edi, [rcx + rax]
mov ecx, dword [rsp + 0x78]
call fcn.004aa000
mov edx, dword [rsp + 0x84]
mov ecx, dword [rsp + 0x80]
lea r8, [rsi + 0xc3500]
call fcn.004aa000
mov r8, qword [rsp + 0x40]
movsxd rcx, dword [rsi + 0xc3600]
mov rax, r8
mov r10d, 0x100
cqo
idiv rcx
mov qword [rsi + 0xc35f8], rax
mov eax, dword [rsp + 0x64]
cmp eax, r10d
jne 0x466e49
cmp ebx, 0x10000
je 0x466ebf
mov r13, r12
mov rcx, r15
call fcn.004af6dc
mov rcx, r13
call fcn.004af6dc
mov rcx, r12
call fcn.004af6dc
mov eax, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0xa0]
call fcn.00577820
add rsp, 0xb8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp eax, 0x110
je 0x466e65
cmp eax, 0x150
je 0x466e65
mov dword [rsi + 0xcb674], r13d
mov dword [rsp + 0x3c], r12d
jmp 0x466e09
movzx eax, byte [rsp + 0x88]
movzx ecx, byte [rsp + 0x8d]
mov dword [rsi + 0xc35dc], eax
mov eax, ecx
and eax, 7
shr ecx, 3
mov dword [rsi + 0xcb67c], ecx
mov dword [rsi + 0xcb680], eax
je 0x466e9a
lea eax, [rcx + 0xa]
mov dword [rsi + 0xcb67c], eax
cmp dword [rsi + 0xcb67c], r12d
jne 0x466ebf
lea eax, [rbx - 1]
mov dword [rsi + 0xcb67c], r12d
test eax, eax
je 0x466ebf
xor ecx, ecx
inc ecx
shr eax, 1
jne 0x466eb3
mov dword [rsi + 0xcb67c], ecx
mov ecx, ebx
mov dword [rsi + 0xcb674], r12d
lea rax, [rcx + r8 - 1]
cqo
idiv rcx
mov r9, rax
mov dword [rsi + 0xc35e4], eax
mov rax, r8
cqo
idiv rcx
test rdx, rdx
cmovne ebx, edx
cmp dword [rsi + 0xc35d0], r10d
mov dword [rsi + 0xc35e8], ebx
jne 0x466f3c
lea ecx, [r9 + r9*2]
mov dword [rsi + 0xc3610], ecx
call fcn.004af6a4
test rax, rax
mov qword [rsi + 0xc3608], rax
je 0x466e09
mov r9d, dword [rsi + 0xc3610]
mov r8, rdi
mov rdx, rax
mov rcx, r14
call fcn.004af808
mov r13, r12
test eax, eax
je 0x466e0c
jmp 0x46736c
mov ecx, dword [rsi + 0xcb680]
add ecx, dword [rsi + 0xcb67c]
imul ecx, r9d
add ecx, 7
shr ecx, 3
bt dword [rsp + 0x74], 0xe
mov dword [rsi + 0xc3610], ecx
jae 0x466f66
add ecx, 0x10000
call fcn.004af6a4
cmp rax, r12
mov qword [rsi + 0xc3608], rax
je 0x466e09
bt dword [rsp + 0x68], 0x1f
mov edx, dword [rsp + 0x89]
mov ecx, dword [rsp + 0x74]
mov ebx, r13d
jae 0x466fbb
bt ecx, 0xe
mov rdi, qword [rsi + 0xc3500]
mov dword [rsi + 0xcb690], r13d
jae 0x466fb1
mov dword [rsi + 0xcb694], r13d
sub rdi, rdx
jmp 0x466fbb
movsxd rax, dword [rsi + 0xc3610]
sub rdi, rax
bt dword [rsp + 0x68], 0x1c
jae 0x466fc9
mov dword [rsi + 0xcb684], ebx
bt ecx, 0x11
jae 0x466fd5
mov dword [rsi + 0xcb68c], ebx
bt ecx, 0x1b
jae 0x466fe1
mov dword [rsi + 0xcb698], ebx
bt ecx, 0x13
jae 0x466fed
mov dword [rsi + 0xcb678], ebx
bt ecx, 0x14
jae 0x46701e
lea rcx, [rsi + 0xcb6a0]
lea rdx, [rsp + 0x8e]
mov r8d, 6
call fcn.00553680
mov edx, dword [rsp + 0x89]
mov ecx, dword [rsp + 0x74]
mov dword [rsi + 0xcb6ac], ebx
mov eax, ecx
xor r13d, r13d
shr eax, 0x17
and eax, 3
cmp dword [rsi + 0xcb6e4], r13d
mov dword [rsi + 0xcb6b4], eax
je 0x467040
xor eax, ebx
mov dword [rsi + 0xcb6b4], eax
bt ecx, 0xe
jae 0x467100
mov ecx, edx
call fcn.004af6ac
cmp rax, r13
mov r15, rax
je 0x466e09
mov r9d, dword [rsp + 0x89]
mov r8, rdi
mov rdx, rax
mov rcx, r14
call fcn.004af808
cmp eax, r13d
je 0x466e09
cmp dword [rsi + 0xcb6e4], r13d
mov r9d, dword [rsp + 0x89]
je 0x4670c0
cmp r9d, r13d
mov edx, r13d
jle 0x4670c0
movsxd rcx, edx
mov al, 0xf9
imul dl
add edx, ebx
add byte [rcx + r15], al
mov al, byte [rsp + 0x89]
not al
xor al, byte [rcx + r15]
mov byte [rcx + r15], al
mov r9d, dword [rsp + 0x89]
cmp edx, r9d
jl 0x467095
mov eax, dword [rsi + 0xc3610]
mov r8, qword [rsi + 0xc3608]
lea rcx, [rsi + 0xc3520]
add eax, 0x10000
mov rdx, r15
mov dword [rsi + 0xc354c], r13d
mov dword [rsp + 0x20], eax
call fcn.0045120c
mov r13, r12
cmp eax, dword [rsi + 0xc3610]
jne 0x466e0c
jmp 0x46736c
mov r9d, dword [rsi + 0xc3610]
mov rdx, qword [rsi + 0xc3608]
mov r8, rdi
mov rcx, r14
call fcn.004af808
cmp eax, r13d
je 0x466e09
cmp dword [rsi + 0xcb698], r13d
je 0x46719d
cmp dword [rsi + 0xcb6e4], r13d
je 0x46716b
mov ecx, dword [rsp + 0x98]
mov r9, qword [rsi + 0xc3608]
mov edx, r13d
mov r8d, ecx
shr r8d, 8
cmp dword [rsi + 0xc3610], r13d
jle 0x46719d
movsxd rax, edx
add edx, ebx
add byte [rax + r9], cl
add cl, r8b
cmp edx, dword [rsi + 0xc3610]
jl 0x467155
jmp 0x46719d
mov edx, dword [rsi + 0xc35f8]
mov al, byte [rsi + 0xc35f8]
mov r8, qword [rsi + 0xc3608]
sar rdx, 8
cmp dword [rsi + 0xc3610], r13d
mov ecx, r13d
jle 0x46719d
sub byte [r8], al
add ecx, ebx
add al, dl
cmp ecx, dword [rsi + 0xc3610]
jl 0x46718e
cmp dword [rsi + 0xcb678], r13d
je 0x467313
bt ebp, 0x1f
jae 0x467294
mov ebx, dword [rsp + 0x38]
mov ecx, ebx
call fcn.004af6ac
mov ecx, 0x20000
mov qword [rsp + 0x30], rax
call fcn.004af6ac
mov r12, rax
mov rax, qword [rsp + 0x30]
cmp rax, r13
je 0x4673ef
cmp r12, r13
je 0x4673ef
mov r9d, ebx
xor r8d, r8d
mov rdx, rax
mov rcx, r14
call fcn.004af808
cmp eax, r13d
mov r13, qword [rsp + 0x30]
je 0x466e0c
mov r8d, dword [r13 + 0x10]
lea rdx, [rsp + 0x38]
mov r9d, 3
mov rcx, r14
call fcn.004af808
test eax, eax
je 0x466e0c
movzx eax, byte [rsp + 0x3a]
mov r9b, byte [rsp + 0x38]
mov rdx, r13
mov edx, dword [r13 + 0x10]
shl eax, 8
and r9d, 0x7f
shl r9d, 0x10
mov r8, r12
or r9d, eax
movzx eax, byte [rsp + 0x39]
or r9d, eax
mov eax, dword [r13 + 0x28]
add eax, 0xffff
add r9d, 0xfffffffc
shr eax, 0x10
mov ecx, eax
add rax, r13
lea rax, [rax + rcx*2]
lea rcx, [rsi + 0xc3520]
add rdx, rax
call fcn.00451130
test eax, eax
jle 0x466e0c
mov r8d, dword [r12 + 0x8b34]
mov edx, ebx
mov rcx, r13
call fcn.004288a4
jmp 0x4672d3
mov ecx, ebp
call fcn.004af6ac
cmp rax, r13
mov r12, rax
je 0x4673f7
mov r9d, ebp
xor r8d, r8d
mov rdx, rax
mov rcx, r14
call fcn.004af808
cmp eax, r13d
je 0x4673f7
mov r8d, dword [r12 + 0x8b34]
mov edx, ebp
mov rcx, r12
call fcn.004288a4
xor r8d, r8d
test dword [rsi + 0xc3610], 0xfffffffc
mov dword [rsi + 0xcb6d8], eax
jle 0x46736c
mov eax, dword [rsi + 0xcb6d8]
mov rcx, qword [rsi + 0xc3608]
movsxd rdx, r8d
xor dword [rdx + rcx], eax
mov eax, dword [rsi + 0xc3610]
add r8d, 4
and eax, 0xfffffffc
cmp r8d, eax
jl 0x4672ec
jmp 0x46736c
cmp dword [rsi + 0xcb6e4], r13d
je 0x467364
cmp dword [rsi + 0xcb698], r13d
jne 0x467364
cmp dword [rsi + 0xc3610], r13d
mov r8d, r13d
jle 0x467369
mov rcx, qword [rsi + 0xc3608]
mov al, byte [rsp + 0x98]
movsxd rdx, r8d
sub byte [rdx + rcx], al
mov eax, dword [rsi + 0xc3610]
mov rcx, qword [rsi + 0xc3608]
sar eax, 2
inc r8d
xor byte [rdx + rcx], al
cmp r8d, dword [rsi + 0xc3610]
jl 0x467331
mov r13, r12
jmp 0x46736c
mov r13, r8
mov ecx, dword [rsi + 0xc35e4]
shl ecx, 3
call fcn.004af6a4
test rax, rax
mov r11, rax
mov qword [rsi + 0xc3618], rax
je 0x466e0c
lea rdx, [rsp + 0x50]
mov rcx, rsi
call fcn.00466b90
mov ebp, 1
mov rdx, rax
movsxd rax, dword [rsi + 0xc35d8]
add rdx, rax
mov qword [r11], rdx
cmp dword [rsi + 0xc35e4], ebp
jle 0x4673e2
mov rbx, qword [rsi + 0xc3618]
lea edx, [rbp - 1]
mov rcx, rsi
movsxd rdi, ebp
call fcn.00466af0
inc ebp
mov r11d, eax
add r11, qword [rbx + rdi*8 - 8]
mov qword [rbx + rdi*8], r11
cmp ebp, dword [rsi + 0xc35e4]
jl 0x4673b7
mov dword [rsp + 0x3c], 0
jmp 0x466e0c
mov r13, rax
jmp 0x466e0c
jmp 0x466e0c