Function at 0x457d60
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
mov rax, qword [rcx + 0x3d358]
xor r14d, r14d
mov rbx, rcx
cmp rax, r14
je 0x457da4
mov qword [rcx + 0x80], rax
mov rcx, qword [rcx + 0x30]
call qword [rbx]
mov qword [rbx + 0x3d358], r14
cmp dword [rbx + 0x3d344], r14d
je 0x457db8
mov eax, dword [rbx + 0x3d34c]
jmp 0x458409
mov rcx, rbx
call fcn.00457940
cmp eax, r14d
jne 0x458409
cmp qword [rbx + 0x3d338], r14
mov edi, dword [rbx + 0x3d338]
lea rsi, [0x00400000]
mov r15d, edi
mov dword [rsp + 0x30], edi
jne 0x457e91
mov rcx, qword [rbx + 0x30]
call qword [rbx + 0x10]
mov rcx, rbx
cmp eax, r14d
je 0x458402
lea rdx, [rsp + 0x90]
call fcn.00455cc0
mov eax, dword [rbx + 0x32f80]
lea rcx, [rbx + 0x3d2e8]
shl rax, 5
xor r8d, r8d
lea rdx, [rax + rbx + 0x33be8]
call fcn.0045583c
mov r11d, dword [rbx + 0x32f80]
mov edx, dword [rbx + 0x32f6c]
mov eax, dword [rsi + r11*4 + 0x2909d0]
mov rcx, qword [rbx + 0x30]
neg edx
mov dword [rbx + 0x32f80], eax
call qword [rbx + 8]
mov r12, qword [rbx + 0x33be0]
movzx esi, al
bts esi, 8
mov r8d, esi
mov eax, esi
lea rcx, [rbx + 0x3d2e8]
shr rax, 8
shr r8d, 7
lea rdx, [r12 + rax*2]
and r8d, 1
call fcn.0045583c
add esi, esi
cmp esi, 0x10000
jb 0x457e5d
add dword [rbx + 0x32f6c], 0xffffffff
inc edi
mov rcx, qword [rbx + 0x30]
call qword [rbx + 0x10]
cmp eax, r14d
je 0x4583f3
cmp dword [rbx + 0x3d2e0], r14d
mov rcx, rbx
je 0x457ebc
lea rdx, [rsp + 0x90]
call fcn.004574f0
jmp 0x457ecb
lea r8, [rsp + 0x90]
mov edx, edi
call fcn.00455f34
mov esi, dword [rsp + 0x90]
mov r12d, edi
mov r14d, eax
and r12d, dword [rbx + 0x33bdc]
cmp eax, 1
jne 0x45801f
cmp esi, 0xffffffff
jne 0x45801f
mov ecx, dword [rbx + 0x32f80]
mov eax, r12d
xor r8d, r8d
shl rcx, 4
add rcx, rax
lea rdx, [rbx + rcx*2 + 0x33be8]
lea rcx, [rbx + 0x3d2e8]
call fcn.0045583c
mov rcx, qword [rbx + 0x30]
call qword [rbx + 0x18]
mov ecx, dword [rbx + 0x32f6c]
mov r8d, dword [rbx + 0x33bcc]
mov edx, dword [rbx + 0x33bd8]
mov r11, rax
mov rax, qword [rbx + 0x33be0]
sub r11, rcx
lea ecx, [r14 + 7]
and edx, edi
movzx r9d, byte [r11 - 1]
mov r10b, byte [r11]
sub cl, r8b
shr r9d, cl
mov ecx, r8d
movzx esi, r10b
shl edx, cl
add r9d, edx
lea ecx, [r9 + r9*2]
shl ecx, 8
cmp dword [rbx + 0x32f80], 7
lea r15, [rax + rcx*2]
jae 0x457fa4
bts esi, 8
mov r8d, esi
mov eax, esi
lea rcx, [rbx + 0x3d2e8]
shr rax, 8
shr r8d, 7
lea rdx, [r15 + rax*2]
and r8d, 1
call fcn.0045583c
add esi, esi
cmp esi, 0x10000
jb 0x457f77
jmp 0x457ffb
mov eax, dword [rbx + 0x32f70]
mov r12d, 0x100
sub r11, rax
bts esi, 8
movzx ebp, byte [r11 - 1]
mov ecx, esi
mov eax, r12d
mov r8d, esi
shr ecx, 8
shr r8d, 7
add ebp, ebp
and eax, ebp
and r8d, 1
add eax, r12d
add ecx, eax
lea rdx, [r15 + rcx*2]
lea rcx, [rbx + 0x3d2e8]
call fcn.0045583c
add esi, esi
mov eax, esi
xor eax, ebp
not eax
and r12d, eax
cmp esi, 0x10000
jb 0x457fbc
mov eax, dword [rbx + 0x32f80]
mov r15d, dword [rsp + 0x30]
lea rcx, [0x00400000]
mov eax, dword [rcx + rax*4 + 0x2909d0]
mov dword [rbx + 0x32f80], eax
jmp 0x45834e
mov eax, dword [rbx + 0x32f80]
mov r13d, r12d
lea rcx, [rbx + 0x3d2e8]
shl rax, 4
mov r8d, 1
add rax, r13
lea rdx, [rbx + rax*2 + 0x33be8]
call fcn.0045583c
cmp esi, 4
mov eax, dword [rbx + 0x32f80]
lea rdx, [rbx + rax*2 + 0x33d68]
lea rcx, [rbx + 0x3d2e8]
jae 0x4581ca
mov r8d, 1
call fcn.0045583c
test esi, esi
mov eax, dword [rbx + 0x32f80]
lea rdx, [rbx + rax*2 + 0x33d80]
lea rcx, [rbx + 0x3d2e8]
jne 0x4580c4
xor r8d, r8d
call fcn.0045583c
mov eax, dword [rbx + 0x32f80]
xor r8d, r8d
cmp r14d, 1
lea rcx, [rbx + 0x3d2e8]
setne r8b
shl rax, 4
add rax, r13
lea rdx, [rbx + rax*2 + 0x33dc8]
call fcn.0045583c
jmp 0x458154
mov r13d, dword [rbx + rsi*4 + 0x32f70]
mov r8d, 1
call fcn.0045583c
cmp esi, 1
mov eax, dword [rbx + 0x32f80]
lea rdx, [rbx + rax*2 + 0x33d98]
lea rcx, [rbx + 0x3d2e8]
jne 0x4580fb
xor r8d, r8d
call fcn.0045583c
jmp 0x458141
mov r8d, 1
call fcn.0045583c
mov eax, dword [rbx + 0x32f80]
lea r8d, [rsi - 2]
lea rdx, [rbx + rax*2 + 0x33db0]
lea rcx, [rbx + 0x3d2e8]
call fcn.0045583c
cmp esi, 3
jne 0x458135
mov eax, dword [rbx + 0x32f78]
mov dword [rbx + 0x32f7c], eax
mov eax, dword [rbx + 0x32f74]
mov dword [rbx + 0x32f78], eax
mov eax, dword [rbx + 0x32f70]
mov dword [rbx + 0x32f70], r13d
mov dword [rbx + 0x32f74], eax
cmp r14d, 1
jne 0x458179
mov eax, dword [rbx + 0x32f80]
lea rcx, [0x00400000]
mov eax, dword [rcx + rax*4 + 0x290a60]
mov dword [rbx + 0x32f80], eax
jmp 0x45834e
xor r10d, r10d
lea rax, [rbx + 0x324d4]
lea r8d, [r14 - 2]
cmp dword [rbx + 0x3d2e0], r10d
mov qword [rsp + 0x28], rax
lea rcx, [rbx + 0x38a94]
sete r10b
lea rdx, [rbx + 0x3d2e8]
mov r9d, r12d
mov dword [rsp + 0x20], r10d
call fcn.00455c00
mov r11d, dword [rbx + 0x32f80]
lea rax, [0x00400000]
mov eax, dword [rax + r11*4 + 0x290a30]
jmp 0x45816e
xor r8d, r8d
call fcn.0045583c
mov r11d, dword [rbx + 0x32f80]
xor edx, edx
cmp dword [rbx + 0x3d2e0], edx
lea rax, [0x00400000]
lea r13d, [r14 - 2]
mov eax, dword [rax + r11*4 + 0x290a00]
sete dl
lea rcx, [rbx + 0x3424c]
mov dword [rbx + 0x32f80], eax
lea rax, [rbx + 0x324d4]
mov r9d, r12d
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edx
lea rdx, [rbx + 0x3d2e8]
mov r8d, r13d
call fcn.00455c00
add esi, 0xfffffffc
cmp esi, 0x80
mov dword [rsp + 0x90], esi
jae 0x458243
movzx r12d, byte [rsi + rbx + 0x304d4]
jmp 0x458266
mov ecx, 0x7ffff
mov eax, esi
sub ecx, esi
shr ecx, 0x1f
neg ecx
and ecx, 0xc
add ecx, 6
shr rax, cl
movzx eax, byte [rax + rbx + 0x304d4]
lea r12d, [rax + rcx*2]
mov eax, 3
cmp r14d, 5
lea rcx, [rbx + 0x3d2e8]
cmovb eax, r13d
mov r9d, r12d
mov r8d, 6
shl rax, 7
lea rdx, [rax + rbx + 0x33f48]
call fcn.00455960
cmp r12d, 4
jb 0x45831e
mov r8d, r12d
mov eax, r12d
mov r13d, esi
and eax, 1
shr r8d, 1
dec r8d
or eax, 2
mov ecx, r8d
shl eax, cl
sub r13d, eax
cmp r12d, 0xe
jae 0x4582e2
mov ecx, eax
mov eax, r12d
mov r9d, r13d
sub rcx, rax
lea rdx, [rbx + rcx*2 + 0x34146]
lea rcx, [rbx + 0x3d2e8]
call fcn.004559b4
jmp 0x45831e
mov edx, r13d
lea rcx, [rbx + 0x3d2e8]
add r8d, 0xfffffffc
shr edx, 4
call fcn.004557ec
and r13d, 0xf
lea rdx, [rbx + 0x3422c]
lea rcx, [rbx + 0x3d2e8]
mov r9d, r13d
mov r8d, 4
call fcn.004559b4
inc dword [rbx + 0x33bc4]
mov eax, dword [rbx + 0x32f78]
inc dword [rbx + 0x3d340]
mov dword [rbx + 0x32f7c], eax
mov eax, dword [rbx + 0x32f74]
mov dword [rbx + 0x32f78], eax
mov eax, dword [rbx + 0x32f70]
mov dword [rbx + 0x32f70], esi
mov dword [rbx + 0x32f74], eax
sub dword [rbx + 0x32f6c], r14d
add edi, r14d
xor r14d, r14d
cmp dword [rbx + 0x32f6c], r14d
jne 0x457ea1
cmp dword [rbx + 0x3d2e0], r14d
jne 0x458396
cmp dword [rbx + 0x3d340], 0x80
jb 0x458385
mov rcx, rbx
call fcn.00457a54
cmp dword [rbx + 0x33bc4], 0x10
jb 0x458396
mov rcx, rbx
call fcn.004579e4
mov rcx, qword [rbx + 0x30]
call qword [rbx + 0x10]
cmp eax, r14d
je 0x4583f3
mov eax, edi
sub eax, r15d
cmp dword [rsp + 0x98], r14d
je 0x45841a
add eax, 0x112c
cmp eax, dword [rsp + 0xa8]
jae 0x4583f3
mov rax, qword [rbx + 0x3d2f8]
mov rcx, qword [rbx + 0x3d320]
sub rcx, qword [rbx + 0x3d310]
add rcx, qword [rbx + 0x3d300]
lea rcx, [rcx + rax + 0x2000]
mov eax, dword [rsp + 0xa0]
cmp rcx, rax
jb 0x457ea1
mov eax, edi
mov rcx, rbx
sub eax, r15d
add qword [rbx + 0x3d338], rax
mov edx, edi
call fcn.00457984
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp eax, 0x8000
jb 0x457ea1
sub edi, r15d
mov rcx, rbx
mov eax, edi
add qword [rbx + 0x3d338], rax
call fcn.00457940
jmp 0x458409