Function at 0x468c2c
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xe8
mov rax, qword [0x007a1a88]
mov qword [rsp + 0xd0], rax
mov r12, qword [rcx + 0xc3510]
mov esi, dword [rsp + 0x178]
xor ebp, ebp
cmp dword [rcx + 0xc35d4], ebp
mov r13d, r9d
mov r14d, r8d
mov r15d, edx
mov rbx, rcx
je 0x468cc2
mov rax, qword [r12 + 0x3d18]
mov dword [rsp + 0x48], esi
mov ebp, dword [rax + 4]
mov eax, dword [rsp + 0x170]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x168]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x160]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x158]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x150]
mov dword [rsp + 0x20], eax
call fcn.00467e70
test eax, eax
je 0x468d33
cmp dword [rbx + 0xcb6c4], 0
je 0x468d59
mov rdi, qword [rbx + 0xcb6d0]
cmp dword [rdi], 0
je 0x468ce0
mov ebp, dword [rdi + 0x20]
jmp 0x468ce3
mov ebp, dword [rdi + 0x10]
mov eax, dword [rsp + 0x170]
mov dword [rsp + 0x48], esi
mov r9d, r13d
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x168]
mov r8d, r14d
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x160]
mov edx, r15d
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x158]
mov rcx, rbx
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x150]
mov dword [rsp + 0x20], eax
call fcn.00465a88
test eax, eax
jne 0x468d5e
mov eax, 0xffffffff
mov rcx, qword [rsp + 0xd0]
call fcn.00577820
add rsp, 0xe8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rdi, qword [rsp + 0x78]
cmp dword [rbx + 0xc3568], 1
jne 0x468deb
mov eax, dword [rsp + 0x170]
mov dword [rsp + 0x48], esi
mov r9d, r13d
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x168]
mov r8d, r14d
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x160]
mov edx, r15d
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x158]
mov rcx, rbx
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x150]
mov dword [rsp + 0x20], eax
call fcn.00464c28
xor esi, esi
cmp eax, esi
jne 0x468dc4
xor eax, eax
jmp 0x468d38
cmp dword [rbx + 0xc356c], 1
je 0x468ded
mov rcx, qword [r12 + 0x30]
call fcn.004af6f0
xor edx, edx
mov rcx, rbx
call fcn.00464ddc
cmp eax, esi
je 0x468d33
jmp 0x468ded
xor esi, esi
xor edx, edx
lea rcx, [rsp + 0x80]
lea r8d, [rdx + 0x4c]
call fcn.00553530
movsxd rcx, dword [rbx + 0xc3600]
lea r8, [rsp + 0x78]
imul rcx, qword [rbx + 0xc35f8]
lea rdx, [rsp + 0x70]
call fcn.004a9ff4
cmp dword [rbx + 0xcb6e8], esi
lea rcx, [rsp + 0x80]
lea rdx, [0x006a138c]
jne 0x468e3c
lea rdx, [0x006a1388]
call fcn.00554a10
mov eax, dword [rsp + 0x70]
mov ecx, dword [rbx + 0xc35d0]
cmp ecx, 0x100
mov r8d, dword [rbx + 0xc3508]
mov dword [rsp + 0xa8], eax
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x94], ecx
mov dword [rsp + 0x9c], 1
mov dword [rsp + 0xac], eax
mov dword [rsp + 0x90], r8d
mov al, byte [r12 + 0x29c]
mov byte [rsp + 0xb8], al
mov eax, dword [rbx + 0xc35ec]
jne 0x468eb8
mov dword [rsp + 0xa4], eax
mov eax, dword [rbx + 0xc3610]
lea ecx, [r8 + rax]
mov dword [rsp + 0x98], ecx
jmp 0x468ff7
cdq
and edx, 0x3fff
add edx, eax
sar edx, 0xe
cmp dword [rbx + 0xcb738], esi
je 0x468ed0
bts edx, 0xf
mov r9d, dword [rbx + 0xcb6b8]
mov r10d, dword [rbx + 0xcb6bc]
lea ecx, [r10 + r9]
and ecx, 0x1000
or ecx, 0xe6250000
or edx, ecx
cmp dword [0x007c6634], esi
jne 0x468f01
add r8d, dword [rbx + 0xc3610]
jmp 0x468f06
bts r8d, 0x1f
sub r9d, r10d
and r9d, 0x1000000
or r9d, 0x4c000000
or r8d, r9d
cmp dword [0x007c6638], 1
mov dword [rsp + 0x98], r8d
jne 0x468f3c
mov eax, dword [rbx + 0xcb688]
bts edx, 0xe
mov dword [rsp + 0xb9], eax
cmp dword [0x007c663c], esi
je 0x468f51
bts r8d, 0x1c
mov dword [rsp + 0x98], r8d
cmp dword [0x007c6648], esi
je 0x468f5d
bts edx, 0x11
cmp dword [0x007c6650], esi
je 0x468f69
bts edx, 0x1b
cmp dword [0x007c665c], esi
je 0x468f75
bts edx, 0x13
cmp dword [0x007c6640], esi
mov cl, byte [rbx + 0xcb680]
mov byte [rsp + 0xbd], cl
je 0x468f9e
mov al, byte [rbx + 0xcb67c]
sub al, 0xa
shl al, 3
or cl, al
mov byte [rsp + 0xbd], cl
cmp dword [rbx + 0xcb69c], esi
je 0x468fda
cmp dword [0x0074bf00], esi
je 0x468fda
bts edx, 0x14
lea rcx, [rsp + 0xbe]
mov r8d, 6
mov dword [rsp + 0xa4], edx
lea rdx, [rbx + 0xcb6a6]
call fcn.00553680
mov edx, dword [rsp + 0xa4]
cmp dword [rbx + 0xcb6e8], esi
mov eax, dword [0x007c664c]
je 0x468feb
xor eax, 1
shl eax, 0x17
or edx, eax
mov dword [rsp + 0xa4], edx
mov rcx, qword [rbx + 0xc3500]
lea r8, [rsp + 0xb4]
lea rdx, [rsp + 0xb0]
call fcn.004a9ff4
cmp dword [0x007c6660], esi
je 0x469056
cmp dword [rdi], esi
je 0x469028
mov rsi, qword [rdi + 0x18]
mov edi, dword [rdi + 0x20]
jmp 0x46902f
mov rsi, qword [rdi + 8]
mov edi, dword [rdi + 0x10]
mov edx, edi
mov rcx, rsi
call fcn.00452314
mov edx, edi
mov rcx, rsi
mov r8d, eax
call fcn.00465cc4
xor dword [rsp + 0xa8], eax
bts dword [rsp + 0xa4], 0xd
lea rcx, [rsp + 0x80]
mov edx, 0x48
call fcn.00452314
mov edi, dword [rsp + 0x178]
mov esi, dword [rsp + 0x170]
mov dword [rsp + 0x60], edi
mov dword [rsp + 0x58], esi
mov dword [rsp + 0xc8], eax
mov eax, dword [rsp + 0x160]
mov rcx, qword [r12 + 0x30]
movsxd r8, ebp
mov ebp, dword [rsp + 0x168]
lea rdx, [rsp + 0x80]
mov r9d, 0x4c
mov dword [rsp + 0x50], ebp
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x158]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x150]
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], r13d
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r15d
call fcn.004afd88
test eax, eax
je 0x468d33
cmp dword [rbx + 0xc3568], 1
jne 0x46913d
mov eax, dword [rsp + 0x160]
mov dword [rsp + 0x48], edi
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x38], ebp
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x158]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x150]
mov r9d, r13d
mov r8d, r14d
mov edx, r15d
mov rcx, rbx
mov dword [rsp + 0x20], eax
mov qword [rbx + 0xc35a0], 0x4c
call fcn.00464c28
test eax, eax
je 0x468d33
cmp dword [0x007c6634], 0
jne 0x4692e6
mov eax, dword [rbx + 0xc35d8]
add eax, dword [rbx + 0xc3508]
movsxd rdx, eax
mov qword [rbx + 0xc35a0], rdx
mov rcx, qword [r12 + 0x30]
call fcn.004af70c
xor r12d, r12d
cmp eax, r12d
je 0x468d33
cmp dword [0x007c6650], r12d
je 0x4691f4
cmp dword [rbx + 0xcb6e8], r12d
je 0x4691c2
mov r8d, dword [rsp + 0xc8]
mov cl, byte [rsp + 0xc8]
mov rax, qword [rbx + 0xc3608]
shr r8d, 8
cmp dword [rbx + 0xc3610], r12d
mov edx, r12d
jle 0x4691f4
sub byte [rax], cl
inc edx
add cl, r8b
inc rax
cmp edx, dword [rbx + 0xc3610]
jl 0x4691ae
jmp 0x4691f4
mov edx, dword [rbx + 0xc35f8]
mov al, byte [rbx + 0xc35f8]
mov r8, qword [rbx + 0xc3608]
sar rdx, 8
cmp dword [rbx + 0xc3610], r12d
mov ecx, r12d
jle 0x4691f4
add byte [r8], al
inc ecx
add al, dl
cmp ecx, dword [rbx + 0xc3610]
jl 0x4691e5
cmp dword [0x007c665c], r12d
je 0x469237
test dword [rbx + 0xc3610], 0xfffffffc
mov r8d, r12d
mov rdx, r12
jle 0x46928b
mov eax, dword [rbx + 0xcb6dc]
mov rcx, qword [rbx + 0xc3608]
add r8d, 4
xor dword [rcx + rdx], eax
mov eax, dword [rbx + 0xc3610]
add rdx, 4
and eax, 0xfffffffc
cmp r8d, eax
jl 0x46920f
jmp 0x46928b
cmp dword [rbx + 0xcb6e8], r12d
je 0x46928b
cmp dword [0x007c6650], r12d
jne 0x46928b
cmp dword [rbx + 0xc3610], r12d
mov r8d, r12d
mov rdx, r12
jle 0x46928b
mov eax, dword [rbx + 0xc3610]
mov rcx, qword [rbx + 0xc3608]
inc r8d
sar eax, 2
xor byte [rcx + rdx], al
mov rcx, qword [rbx + 0xc3608]
mov al, byte [rsp + 0xc8]
add byte [rcx + rdx], al
inc rdx
cmp r8d, dword [rbx + 0xc3610]
jl 0x469258
mov eax, dword [rsp + 0x160]
mov r8d, dword [rbx + 0xc3610]
mov rdx, qword [rbx + 0xc3608]
mov dword [rsp + 0x58], edi
mov dword [rsp + 0x50], esi
mov dword [rsp + 0x48], ebp
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x158]
mov r9d, r15d
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x150]
mov rcx, rbx
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], r14d
call fcn.0046866c
cmp eax, r12d
je 0x468d33
jmp 0x4692e9
xor r12d, r12d
mov eax, r12d
jmp 0x468d38