Function at 0x44fb2c
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0x28
xor edi, edi
mov ebp, 2
mov ebx, r8d
cmp dword [0x007c36ec], edi
lea eax, [rbp + 2]
mov rsi, rdx
mov dword [0x00890940], 1
mov dword [0x00890930], 8
mov dword [0x007c36f0], edi
mov dword [0x00890934], eax
mov dword [0x00890938], eax
mov dword [0x0089093c], eax
jne 0x44fb86
mov qword [0x008b09b0], rcx
jmp 0x44fbb9
mov qword [0x007c36d8], rcx
mov ecx, 0x10000
call fcn.004af6a4
cmp rax, rdi
mov qword [0x008b09b0], rax
jne 0x44fbad
mov eax, 0xffffffff
jmp 0x44fe0a
mov dword [0x007c36d0], edi
mov dword [0x007c36e8], ebx
mov ecx, ebx
mov qword [0x008b09a0], rsi
call fcn.0044f578
mov esi, dword [0x007c36e0]
mov r12, qword [0x008b09b0]
cmp esi, edi
mov ebx, dword [0x008d09c4]
je 0x44fdd8
lea r9, [0x008b09c0]
lea eax, [rbx + 2]
mov r13d, ebx
movzx edx, byte [rax + r12]
mov eax, dword [0x007c36e4]
shl eax, 5
xor edx, eax
mov eax, ebx
and edx, 0x7fff
and eax, 0x7fff
movzx ecx, word [r9 + rdx*2 + 0x10000]
mov dword [0x007c36e4], edx
cmp ecx, edi
mov word [r9 + rax*2], cx
mov word [r9 + rdx*2 + 0x10000], bx
je 0x44fc44
mov eax, ebx
sub eax, ecx
cmp eax, 0x7efa
ja 0x44fc44
call fcn.0044f648
mov ebp, eax
cmp eax, esi
cmova ebp, esi
cmp ebp, 3
jb 0x44fd0a
sub ebx, dword [0x008b09b8]
lea edx, [rbp - 3]
mov ecx, ebx
call fcn.00451b5c
mov esi, dword [0x007c36e0]
mov r12, qword [0x008b09b0]
mov ebx, dword [0x008d09c4]
sub esi, ebp
cmp ebp, dword [0x00890934]
mov dword [0x007c36e0], esi
mov r13d, eax
ja 0x44fce0
mov r9d, 0xffffffff
lea r10, [0x008b09c0]
add ebp, r9d
inc ebx
mov ecx, ebx
mov dword [0x008d09c4], ebx
lea eax, [rbx + 2]
and ecx, 0x7fff
movzx edx, byte [rax + r12]
mov eax, dword [0x007c36e4]
shl eax, 5
xor edx, eax
and edx, 0x7fff
add ebp, r9d
movzx eax, word [r10 + rdx*2 + 0x10000]
mov dword [0x007c36e4], edx
mov word [r10 + rcx*2], ax
mov word [r10 + rdx*2 + 0x10000], bx
jne 0x44fc93
jmp 0x44fd36
add ebx, ebp
mov ebp, edi
mov dword [0x008d09c4], ebx
movzx edx, byte [rbx + r12]
lea eax, [rbx + 1]
movzx eax, byte [rax + r12]
shl edx, 5
xor edx, eax
and edx, 0x7fff
mov dword [0x007c36e4], edx
jmp 0x44fd3e
movzx edx, byte [r13 + r12]
xor ecx, ecx
call fcn.00451b5c
mov esi, dword [0x007c36e0]
mov ebx, dword [0x008d09c4]
mov r12, qword [0x008b09b0]
add esi, 0xffffffff
mov r13d, eax
mov dword [0x007c36e0], esi
inc ebx
mov dword [0x008d09c4], ebx
cmp r13d, edi
je 0x44fd83
mov edx, dword [0x008d09c0]
mov rcx, rdi
lea r8d, [r13 - 1]
lea rax, [r12 + rdx]
sub ebx, edx
cmp edx, edi
cmovge rcx, rax
xor r9d, r9d
mov edx, ebx
call fcn.0045205c
mov ebx, dword [0x008d09c4]
mov r12, qword [0x008b09b0]
mov esi, dword [0x007c36e0]
mov ecx, ebx
mov dword [0x008d09c0], ebx
jmp 0x44fd89
mov ecx, dword [0x008d09c0]
cmp dword [0x007c36ec], edi
je 0x44fdc7
cmp esi, 0x106
jae 0x44fdc7
cmp dword [0x007c36d4], edi
jne 0x44fdb4
call fcn.0044f444
mov esi, dword [0x007c36e0]
cmp esi, 0x106
jb 0x44fd99
mov r12, qword [0x008b09b0]
mov ebx, dword [0x008d09c4]
mov ecx, dword [0x008d09c0]
cmp esi, edi
lea r9, [0x008b09c0]
jne 0x44fbe9
jmp 0x44fde3
mov r13d, dword [rsp + 0x78]
mov ecx, dword [0x008d09c0]
sub ebx, ecx
mov eax, ecx
lea r8d, [r13 - 1]
add rax, r12
cmp ecx, edi
mov r9d, 1
cmovge rdi, rax
mov edx, ebx
mov rcx, rdi
call fcn.0045205c
mov eax, dword [0x007c36f0]
add rsp, 0x28
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret