Function at 0x4288a4
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x2c8
mov rax, qword [0x007a1a88]
mov qword [rsp + 0x2b0], rax
movsxd r12, edx
mov rdi, rcx
mov qword [rsp + 8], rcx
mov dword [rsp + 4], r8d
xor r9d, r9d
mov r10d, 0xff
lea rsi, [0x00400000]
mov al, byte [r9 + rsi + 0x2298c0]
inc r9
xor al, byte [r9 + rsi + 0x2294bf]
add al, r8b
dec r10
mov byte [rsp + r9 + 0xaf], al
jne 0x4288e7
mov edx, r8d
mov r9d, 0x100
shr edx, 8
xor ecx, ecx
mov al, byte [rcx + rsi + 0x2295c0]
inc rcx
not al
xor al, byte [rcx + rsi + 0x2299bf]
add al, dl
dec r9
mov byte [rsp + rcx + 0x1af], al
jne 0x428918
mov r11d, r8d
lea rdx, [0x00629543]
shr r11d, 0x10
xor r10d, r10d
xor r9d, r9d
mov rbx, rdx
lea rax, [r10 + r9]
mov cl, byte [rax + rsi + 0x229ac0]
lea rax, [r10 + r9]
inc r9
xor cl, byte [rbx]
add rbx, 9
sub cl, r11b
cmp r9, 0x2d
mov byte [rsp + rax + 0x50], cl
jl 0x428950
lea rax, [0x00629549]
add rdx, 3
add r10, 0x2d
cmp rdx, rax
jl 0x42894a
shr r8d, 0x18
lea rdx, [0x0062957f]
xor r10d, r10d
xor r9d, r9d
mov r11, rdx
lea rax, [r10 + r9]
mov cl, byte [rax + rsi + 0x229b20]
lea rax, [r10 + r9]
inc r9
xor cl, byte [r11]
add r11, 3
sub cl, r8b
cmp r9, 0x1a
mov byte [rsp + rax + 0x10], cl
jl 0x42899d
lea rax, [0x0062958d]
add rdx, 7
add r10, 0x1a
cmp rdx, rax
jl 0x428997
mov al, byte [rsp + 7]
mov dl, byte [rsp + 6]
mov r8b, byte [rsp + 4]
mov byte [rsp + 2], al
mov al, byte [rsp + 5]
mov r11, rdi
lea r10, [rdi + 1]
lea r15, [r12 + rdi - 2]
mov rdi, qword [0x008d1198]
mov byte [rsp + 3], al
lea rbx, [rsp + 0x2a]
lea rsi, [rsp + 0x10]
xor ebp, ebp
mov byte [rsp + 1], dl
mov byte [rsp], r8b
xor r9b, r9b
xor r12b, r12b
xor r13b, r13b
xor r14b, r14b
cmp byte [r11], r9b
je 0x428ac9
movzx eax, byte [r11]
mov r8d, ebp
movzx r9d, byte [rsp + rax + 0x1b0]
movzx eax, byte [rbx]
and r8d, 7
add ax, r9w
movzx ecx, ax
movzx eax, byte [r8 + rdi]
xor rcx, rax
movabs rax, 0x8080808080808081
mul rcx
movzx eax, byte [rsi]
shr rdx, 7
imul rdx, rdx, 0xff
sub rcx, rdx
mov r14b, byte [rsp + rcx + 0xb0]
mov rcx, qword [0x008d11a0]
movzx ecx, word [rcx + r8*2]
add cx, ax
add cx, r9w
imul cx, cx, 0xb
cmp cx, 0xff
jb 0x428a9b
add cx, 0xff01
mov r8b, byte [rsp]
movzx ecx, cx
movabs rax, 0x8080808080808081
mul rcx
shr rdx, 7
imul rdx, rdx, 0xff
sub rcx, rdx
mov dl, byte [rsp + 1]
mov r9b, byte [rsp + rcx + 0xb0]
cmp byte [r10], 0
je 0x428b48
movzx eax, byte [r10]
movzx r8d, byte [rsp + rax + 0x1b0]
movzx eax, byte [rbx]
add ax, r8w
cmp ax, 0xff
jb 0x428aed
add ax, 0xff01
movzx ecx, ax
movabs r10, 0x8080808080808081
mov rax, r10
mul rcx
movzx eax, byte [rsi]
add ax, r8w
mov r8b, byte [rsp]
shr rdx, 7
imul ax, ax, 0x11
imul rdx, rdx, 0xff
sub rcx, rdx
mov r13b, byte [rsp + rcx + 0xb0]
movzx ecx, ax
mov rax, r10
mul rcx
shr rdx, 7
imul rdx, rdx, 0xff
sub rcx, rdx
mov dl, byte [rsp + 1]
mov r12b, byte [rsp + rcx + 0xb0]
inc rbx
lea rcx, [rsp + 0x2a]
mov rax, rbx
sub rax, rcx
lea rcx, [rsp + 0x2a]
cmp rax, 0x1a
cmovl rcx, rbx
inc rsi
mov rbx, rcx
lea rcx, [rsp + 0x10]
mov rax, rsi
sub rax, rcx
lea rcx, [rsp + 0x10]
cmp rax, 0x1a
cmovl rcx, rsi
xor byte [rsp + 2], r13b
xor byte [rsp + 3], r12b
xor dl, r14b
xor r8b, r9b
add r11, 2
cmp r11, r15
mov rsi, rcx
mov byte [rsp + 1], dl
mov byte [rsp], r8b
jae 0x428bb5
lea r10, [r11 + 1]
cmp r10, r15
jae 0x428bb5
inc ebp
jmp 0x428a17
mov rdi, qword [rsp + 8]
mov r13, qword [0x008d11a0]
lea r9, [rsp + 0x50]
lea r10, [rsp + 0x7d]
xor ebx, ebx
xor sil, sil
xor r11b, r11b
xor bpl, bpl
xor r12b, r12b
cmp byte [rdi], sil
je 0x428c70
movzx eax, byte [rdi]
movzx r8d, byte [rsp + rax + 0x1b0]
movzx eax, byte [r9]
add ax, r8w
cmp ax, 0xff
jb 0x428c00
add ax, 0xff01
movzx ecx, ax
movabs r14, 0x8080808080808081
mov rax, r14
mul rcx
shr rdx, 7
imul rdx, rdx, 0xff
sub rcx, rdx
mov r12b, byte [rsp + rcx + 0xb0]
movzx ecx, byte [r10]
add cx, r8w
cmp cx, 0xff
jb 0x428c3d
add cx, 0xff01
mov r8b, byte [rsp]
movzx eax, cx
shl ax, 2
add cx, ax
mov rax, r14
movzx ecx, cx
mul rcx
shr rdx, 7
imul rdx, rdx, 0xff
sub rcx, rdx
mov dl, byte [rsp + 1]
mov sil, byte [rsp + rcx + 0xb0]
jmp 0x428c7a
movabs r14, 0x8080808080808081
mov al, byte [rdi + 1]
test al, al
je 0x428d20
movzx eax, al
movzx r11d, byte [rsp + rax + 0x1b0]
movzx eax, byte [r9]
add ax, r11w
cmp ax, 0xff
jb 0x428ca3
add ax, 0xff01
movzx r8d, byte [r10]
movzx ecx, ax
mov rax, r14
add r8w, r11w
mul rcx
shr rdx, 7
imul rdx, rdx, 0xff
sub rcx, rdx
cmp r8w, 0xff
mov bpl, byte [rsp + rcx + 0xb0]
jb 0x428cd8
add r8w, 0xff01
mov rax, qword [0x008d1198]
mov ecx, ebx
and ecx, 7
movzx eax, byte [rcx + rax]
movzx edx, word [r13 + rcx*2]
add dx, ax
mov rax, r14
add dx, r8w
mov r8b, byte [rsp]
imul dx, dx, 0x13
movzx ecx, dx
mul rcx
shr rdx, 7
imul rdx, rdx, 0xff
sub rcx, rdx
mov dl, byte [rsp + 1]
mov r11b, byte [rsp + rcx + 0xb0]
inc r9
lea rcx, [rsp + 0x50]
mov rax, r9
sub rax, rcx
lea rcx, [rsp + 0x50]
cmp rax, 0x2d
cmovl rcx, r9
inc r10
mov r9, rcx
lea rcx, [rsp + 0x7d]
mov rax, r10
sub rax, rcx
lea rcx, [rsp + 0x7d]
cmp rax, 0x2d
cmovl rcx, r10
xor dl, r12b
xor r8b, sil
mov r10, rcx
mov cl, byte [rsp + 2]
add rdi, 2
xor cl, bpl
mov byte [rsp + 1], dl
mov byte [rsp + 6], dl
mov byte [rsp + 2], cl
mov byte [rsp + 7], cl
mov cl, byte [rsp + 3]
xor cl, r11b
cmp rdi, r15
mov byte [rsp], r8b
mov byte [rsp + 3], cl
mov byte [rsp + 5], cl
mov byte [rsp + 4], r8b
jae 0x428daa
lea rax, [rdi + 1]
cmp rax, r15
jae 0x428daa
inc ebx
jmp 0x428bcd
mov eax, dword [rsp + 4]
mov rcx, qword [rsp + 0x2b0]
call fcn.00577820
add rsp, 0x2c8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret