Function at 0x14005b610
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
mov eax, dword [rcx + 0xb84]
mov r12, r8
mov r8d, dword [rsp + 0xe8]
mov dword [rsp + 0x50], eax
mov eax, dword [rcx + 0xb88]
mov ebp, 7
imul r10, r8, 0x2c
add r10, rcx
mov r13d, r9d
mov r15, rdx
movzx edi, byte [r10 + 0x10ee8]
mov r11d, dword [r10 + 0x10ef8]
mov rbx, rcx
mov dword [rsp + 0x4c], eax
mov esi, r8d
lea r9d, [rbp + 1]
test dil, dil
je 0x14005b6eb
dec r11d
cmp byte [r10 + 0x10ee9], 0
je 0x14005b6c5
mov eax, dword [r10 + 0x10eec]
imul rcx, rax, 0x2c
cmp dword [r10 + 0x10ef0], 4
mov eax, dword [rcx + rbx + 0x10ee4]
jae 0x14005b6b9
mov edx, 0xb
cmp eax, ebp
cmovl edx, r9d
jmp 0x14005b6d3
mov edx, 0xa
cmp eax, ebp
cmovl edx, ebp
jmp 0x14005b6d3
mov eax, r11d
imul rcx, rax, 0x2c
mov edx, dword [rcx + rbx + 0x10ee4]
cmp edx, 3
jg 0x14005b6dc
xor edx, edx
jmp 0x14005b6f6
cmp edx, 9
jg 0x14005b6e6
sub edx, 3
jmp 0x14005b6f6
sub edx, 6
jmp 0x14005b6f6
imul rcx, r11, 0x2c
mov edx, dword [rcx + rbx + 0x10ee4]
lea eax, [r8 - 1]
cmp r11d, eax
jne 0x14005b750
cmp dword [r10 + 0x10efc], 0
jne 0x14005b723
cmp edx, ebp
mov eax, 0xb
mov ecx, 9
cmovl eax, ecx
mov edx, eax
mov dword [rsp + 0x30], eax
jmp 0x14005b838
cmp edx, 3
jg 0x14005b733
xor edx, edx
mov dword [rsp + 0x30], edx
jmp 0x14005b838
cmp edx, 9
jg 0x14005b744
sub edx, 3
mov dword [rsp + 0x30], edx
jmp 0x14005b838
sub edx, 6
mov dword [rsp + 0x30], edx
jmp 0x14005b838
test dil, dil
je 0x14005b77a
cmp byte [r10 + 0x10ee9], 0
je 0x14005b77a
mov r11d, dword [r10 + 0x10eec]
mov ecx, dword [r10 + 0x10ef0]
mov eax, 0xb
cmp edx, ebp
cmovl eax, r9d
jmp 0x14005b79d
mov ecx, dword [r10 + 0x10efc]
cmp ecx, 4
jae 0x14005b793
mov eax, 0xb
cmp edx, ebp
cmovl eax, r9d
jmp 0x14005b79d
mov eax, 0xa
cmp edx, ebp
cmovl eax, ebp
mov edx, eax
mov dword [rsp + 0x30], eax
cmp ecx, 4
jae 0x14005ba04
imul rax, r11, 0xb
mov edx, ecx
mov r9d, 1
add rax, rdx
mov eax, dword [rbx + rax*4 + 0x10f00]
mov dword [r15], eax
cmp ecx, r9d
jb 0x14005b7fa
imul r8, r11, 0x2c
lea rcx, [r15 + 4]
lea r9d, [rdx + 1]
sub r8, r15
add r8, rbx
nop dword [rax]
mov eax, dword [r8 + rcx + 0x10efc]
lea rcx, [rcx + 4]
mov dword [rcx - 4], eax
dec rdx
jne 0x14005b7e0
cmp r9d, 4
jae 0x14005b834
imul r8, r11, 0x2c
mov eax, r9d
mov edx, 4
lea rcx, [r15 + rax*4]
sub r8, r15
add r8, rbx
sub edx, r9d
nop dword [rax]
nop word [rax + rax]
mov eax, dword [r8 + rcx + 0x10f00]
lea rcx, [rcx + 4]
mov dword [rcx - 4], eax
dec rdx
jne 0x14005b820
mov edx, dword [rsp + 0x30]
mov dword [r10 + 0x10ee4], edx
mov eax, dword [r15]
imul rcx, rsi, 0xb
mov dword [rbx + rcx*4 + 0x10f00], eax
mov eax, dword [r15 + 4]
movsxd rdi, edx
mov dword [rbx + rcx*4 + 0x10f04], eax
mov eax, dword [r15 + 8]
mov dword [rbx + rcx*4 + 0x10f08], eax
lea rax, [rsi + 0x629]
imul rcx, rax, 0x2c
mov eax, dword [r15 + 0xc]
mov dword [rcx + rbx], eax
mov eax, dword [r15]
movzx esi, byte [r12]
movzx r8d, byte [r12 - 1]
mov r14d, dword [r10 + 0x10ef4]
mov rcx, r12
sub rcx, rax
mov eax, dword [rsp + 0xe0]
mov r15, rdi
and eax, dword [rbx + 0xb90]
movzx ebp, byte [rcx - 1]
shl r15, 4
mov ecx, eax
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x3c], eax
add r15, rcx
cmp edx, 7
mov edx, dword [rsp + 0xe0]
mov qword [rsp + 0x58], rcx
setge r9b
mov rcx, rbx
mov dword [rsp + 0x20], ebp
call fcn.14005ae20
movzx ecx, word [rbx + r15*2 + 0x6b9c]
mov r11d, dword [rsp + 0xe8]
add eax, r14d
shr rcx, 4
lea r8, [0x1400c2570]
xor r9b, r9b
movzx r12d, byte [rcx + r8]
add r12d, eax
lea eax, [r11 + 1]
mov dword [rsp + 0x54], eax
imul rdx, rax, 0x2c
add rdx, rbx
cmp r12d, dword [rdx + 0x10ef4]
jae 0x14005b93b
mov dword [rdx + 0x10ef4], r12d
mov dword [rdx + 0x10ef8], r11d
mov byte [rdx + 0x10ee8], r9b
mov r9b, 1
mov dword [rdx + 0x10efc], 0xffffffff
movzx eax, word [rbx + r15*2 + 0x6b9c]
xor rax, 0x7f0
shr rax, 4
movzx ecx, byte [rax + r8]
lea rax, [rbx + 0x6d1c]
lea rax, [rax + rdi*2]
add ecx, r14d
mov qword [rsp + 0x60], rax
movzx eax, word [rax]
mov dword [rsp + 0x40], ecx
xor rax, 0x7f0
shr rax, 4
movzx r10d, byte [rax + r8]
add r10d, ecx
mov dword [rsp + 0x44], r10d
cmp bpl, sil
jne 0x14005b9f0
cmp dword [rdx + 0x10ef8], r11d
jae 0x14005b99b
cmp dword [rdx + 0x10efc], 0
je 0x14005b9f0
movzx eax, word [rbx + r15*2 + 0x6d7c]
shr rax, 4
movzx ecx, byte [rax + r8]
movzx eax, word [rbx + rdi*2 + 0x6d34]
shr rax, 4
movzx r8d, byte [rax + r8]
lea eax, [r10 + rcx]
add r8d, eax
cmp r8d, dword [rdx + 0x10ef4]
ja 0x14005b9f0
mov dword [rdx + 0x10ef4], r8d
mov dword [rdx + 0x10ef8], r11d
mov r9b, 1
mov dword [rdx + 0x10efc], 0
mov byte [rdx + 0x10ee8], 0
mov ecx, dword [rsp + 0xf8]
cmp ecx, 2
jae 0x14005ba37
mov eax, r13d
jmp 0x14005c533
lea eax, [rcx - 4]
mov dword [r15], eax
mov eax, r11d
imul rcx, rax, 0xb
mov eax, dword [rbx + rcx*4 + 0x10f00]
mov dword [r15 + 4], eax
mov eax, dword [rbx + rcx*4 + 0x10f04]
mov dword [r15 + 8], eax
mov eax, dword [rbx + rcx*4 + 0x10f08]
mov dword [r15 + 0xc], eax
jmp 0x14005b838
mov r14d, dword [rsp + 0xf0]
mov rdi, qword [rsp + 0xd0]
cmp ecx, r14d
mov r15d, r14d
cmovb r15d, ecx
mov dword [rsp + 0x38], r15d
test r9b, r9b
jne 0x14005bc14
cmp bpl, sil
mov rsi, qword [rsp + 0xc8]
je 0x14005bc1c
mov eax, dword [rsi]
lea edx, [r14 + 1]
mov r9, rdi
sub r9, rax
cmp ecx, edx
cmovb edx, ecx
mov ecx, 1
cmp edx, ecx
jbe 0x14005bab4
nop word [rax + rax]
mov eax, ecx
mov r8, qword [rax + rdi]
sub r8, qword [rax + r9 - 1]
jne 0x14005baa6
add ecx, 8
cmp ecx, edx
jb 0x14005ba90
jmp 0x14005bab4
bsf rax, r8
shr eax, 3
add ecx, eax
cmp ecx, edx
cmovb edx, ecx
lea r8d, [rdx - 1]
cmp r8d, 2
jb 0x14005bc1c
mov eax, dword [rsp + 0x30]
cmp eax, 3
jg 0x14005bacf
xor ecx, ecx
jmp 0x14005bada
lea ecx, [rax - 3]
cmp eax, 9
jle 0x14005bada
lea ecx, [rax - 6]
mov edi, dword [rsp + 0xe0]
mov r9d, dword [rsp + 0xe8]
movsxd r10, ecx
movzx eax, word [rbx + r10*2 + 0x6d1c]
inc edi
lea rbp, [0x1400c2570]
and edi, dword [rbx + 0xb90]
xor rax, 0x7f0
inc r9d
shr rax, 4
mov rsi, r10
add r9d, r8d
movzx ecx, byte [rax + rbp]
shl rsi, 4
add rsi, rdi
movzx eax, word [rbx + rsi*2 + 0x6b9c]
xor rax, 0x7f0
shr rax, 4
movzx r11d, byte [rax + rbp]
lea eax, [r12 + rcx]
add r11d, eax
cmp r13d, r9d
jae 0x14005bb7f
imul rcx, r13, 0x2c
lea rdx, [rbx + 0x10ef4]
mov eax, r9d
sub eax, r13d
add rdx, rcx
add r13d, eax
mov ecx, eax
mov dword [rsp + 0xd8], r13d
nop word [rax + rax]
lea rdx, [rdx + 0x2c]
mov dword [rdx], 0x40000000
dec rcx
jne 0x14005bb70
imul rax, rdi, 0x110
mov rdi, qword [rsp + 0xd0]
lea ecx, [r8 - 2]
add rcx, rax
movzx eax, word [rbx + rsi*2 + 0x6d7c]
mov rsi, qword [rsp + 0xc8]
mov ecx, dword [rbx + rcx*4 + 0xbe4c]
xor rax, 0x7f0
shr rax, 4
movzx eax, byte [rax + rbp]
add ecx, eax
movzx eax, word [rbx + r10*2 + 0x6d34]
shr rax, 4
movzx edx, byte [rax + rbp]
lea eax, [r11 + rcx]
mov r11d, dword [rsp + 0xe8]
add edx, eax
mov eax, r9d
imul rcx, rax, 0x2c
cmp edx, dword [rcx + rbx + 0x10ef4]
jae 0x14005bc1c
mov eax, dword [rsp + 0x54]
mov dword [rcx + rbx + 0x10ef4], edx
mov dword [rcx + rbx + 0x10efc], 0
mov dword [rcx + rbx + 0x10ef8], eax
mov word [rcx + rbx + 0x10ee8], 1
jmp 0x14005bc1c
mov rsi, qword [rsp + 0xc8]
xor ebp, ebp
mov dword [rsp + 0x34], 2
mov dword [rsp + 0x48], ebp
nop word [rax + rax]
mov eax, dword [rsi]
mov rsi, rdi
sub rsi, rax
movzx eax, word [rsi - 1]
cmp word [rdi], ax
jne 0x14005c04c
mov eax, 2
cmp r15d, eax
jbe 0x14005bc69
nop
mov ecx, eax
mov rdx, qword [rcx + rdi]
sub rdx, qword [rcx + rsi - 1]
jne 0x14005bece
add eax, 8
cmp eax, r15d
jb 0x14005bc50
mov r14d, r15d
lea edi, [r14 + r11]
cmp r13d, edi
jae 0x14005bcaf
mov eax, r13d
imul rdx, rax, 0x2c
mov eax, edi
sub eax, r13d
mov ecx, eax
add rdx, 0x10ef4
add rdx, rbx
add r13d, eax
mov dword [rsp + 0xd8], r13d
nop dword [rax + rax]
lea rdx, [rdx + 0x2c]
mov dword [rdx], 0x40000000
dec rcx
jne 0x14005bca0
mov r12d, dword [rsp + 0x30]
mov r9d, dword [rsp + 0x3c]
mov edx, ebp
mov r8d, r12d
mov rcx, rbx
call fcn.14005af20
mov r11d, dword [rsp + 0xe8]
imul r10, qword [rsp + 0x58], 0x110
mov r15d, eax
mov r8d, r11d
add r15d, dword [rsp + 0x44]
neg r8d
nop word [rax + rax]
lea edx, [r8 - 2]
mov eax, edi
add edx, edi
add rdx, r10
imul rcx, rax, 0x2c
mov edx, dword [rbx + rdx*4 + 0xbe4c]
add edx, r15d
cmp edx, dword [rcx + rbx + 0x10ef4]
jae 0x14005bd30
mov dword [rcx + rbx + 0x10ef4], edx
mov dword [rcx + rbx + 0x10ef8], r11d
mov dword [rcx + rbx + 0x10efc], ebp
mov byte [rcx + rbx + 0x10ee8], 0
dec edi
lea eax, [r8 + rdi]
cmp eax, 2
jae 0x14005bcf0
test ebp, ebp
jne 0x14005bd47
lea eax, [r14 + 1]
mov dword [rsp + 0x34], eax
mov edx, dword [rsp + 0xf0]
mov rdi, qword [rsp + 0xd0]
lea r9d, [r14 + 1]
add edx, r9d
cmp dword [rsp + 0xf8], edx
cmovb edx, dword [rsp + 0xf8]
cmp r9d, edx
jae 0x14005bd94
lea r8, [rsi - 1]
mov ecx, r9d
add rcx, rdi
sub r8, rdi
nop
movzx eax, byte [r8 + rcx]
cmp byte [rcx], al
jne 0x14005bd94
inc r9d
inc rcx
cmp r9d, edx
jb 0x14005bd80
or eax, 0xffffffff
sub eax, r14d
add r9d, eax
cmp r9d, 2
jb 0x14005c047
mov r8d, dword [rsp + 0xe0]
cmp r12d, 7
mov ebp, 8
mov eax, r14d
lea ecx, [r14 - 2]
mov r11d, 0xb
cmovl r11d, ebp
add rcx, r10
movzx r10d, byte [rax + rdi]
movzx edi, byte [rax + rsi - 1]
mov r13d, dword [rbx + rcx*4 + 0xbe4c]
mov rax, qword [rsp + 0xd0]
add r8d, r14d
lea ecx, [r14 - 1]
xor esi, esi
movzx edx, byte [rcx + rax]
mov eax, dword [rbx + 0xb98]
mov ecx, ebp
sub cl, byte [rbx + 0xb94]
and eax, r8d
mov r12d, r8d
and r12d, dword [rbx + 0xb90]
shr edx, cl
mov ecx, dword [rbx + 0xb94]
shl eax, cl
mov r8d, 0x100
add edx, eax
lea rbp, [rdx + rdx*2]
shl rbp, 9
add rbp, rbx
add r10d, r8d
lea rbx, [0x1400c2570]
nop word [rax + rax]
mov ecx, r10d
add edi, edi
mov eax, r8d
shr ecx, 8
and eax, edi
add eax, r8d
add ecx, eax
movzx edx, word [rbp + rcx*2 + 0xb9c]
mov ecx, r10d
add r10d, r10d
shr ecx, 7
shr rdx, 4
and ecx, 1
neg ecx
shr rcx, 4
and ecx, 0x7f
xor rdx, rcx
movzx eax, byte [rdx + rbx]
add esi, eax
mov eax, edi
xor eax, r10d
not eax
and r8d, eax
cmp r10d, 0x10000
jb 0x14005be40
mov rbx, qword [rsp + 0xc0]
mov eax, r12d
movsxd rcx, r11d
shl rcx, 4
lea rbp, [0x1400c2570]
add rcx, rax
movzx eax, word [rbx + rcx*2 + 0x6b9c]
shr rax, 4
movzx edx, byte [rax + rbp]
add edx, esi
add edx, r13d
add edx, r15d
cmp r11d, 3
jg 0x14005bee6
xor r11d, r11d
jmp 0x14005bef6
bsf rcx, rdx
mov r14d, r15d
shr ecx, 3
add eax, ecx
cmp eax, r15d
cmovb r14d, eax
jmp 0x14005bc6c
cmp r11d, 9
jg 0x14005bef2
sub r11d, 3
jmp 0x14005bef6
sub r11d, 6
mov r12d, dword [rsp + 0xe0]
mov r8d, dword [rsp + 0xe8]
mov r13d, dword [rsp + 0xd8]
movsxd r10, r11d
lea edi, [r12 + 1]
inc r8d
movzx eax, word [rbx + r10*2 + 0x6d1c]
add edi, r14d
mov rsi, r10
and edi, dword [rbx + 0xb90]
xor rax, 0x7f0
shl rsi, 4
shr rax, 4
add rsi, rdi
movzx ecx, byte [rax + rbp]
movzx eax, word [rbx + rsi*2 + 0x6b9c]
xor rax, 0x7f0
shr rax, 4
movzx r11d, byte [rax + rbp]
lea eax, [rdx + rcx]
add r11d, eax
lea eax, [r9 + r14]
add r8d, eax
cmp r13d, r8d
jae 0x14005bf9f
imul rcx, r13, 0x2c
lea rdx, [rbx + 0x10ef4]
mov eax, r8d
sub eax, r13d
add rdx, rcx
add r13d, eax
mov ecx, eax
mov dword [rsp + 0xd8], r13d
nop dword [rax]
lea rdx, [rdx + 0x2c]
mov dword [rdx], 0x40000000
dec rcx
jne 0x14005bf90
mov r15d, dword [rsp + 0x38]
imul rax, rdi, 0x110
mov rdi, qword [rsp + 0xd0]
lea ecx, [r9 - 2]
add rcx, rax
movzx eax, word [rbx + rsi*2 + 0x6d7c]
mov ecx, dword [rbx + rcx*4 + 0xbe4c]
xor rax, 0x7f0
shr rax, 4
movzx eax, byte [rax + rbp]
add ecx, eax
movzx eax, word [rbx + r10*2 + 0x6d34]
shr rax, 4
movzx edx, byte [rax + rbp]
mov ebp, dword [rsp + 0x48]
lea eax, [r11 + rcx]
mov r11d, dword [rsp + 0xe8]
add edx, eax
mov eax, r8d
imul rcx, rax, 0x2c
cmp edx, dword [rcx + rbx + 0x10ef4]
jae 0x14005c054
mov eax, dword [rsp + 0x54]
mov dword [rcx + rbx + 0x10ef4], edx
mov dword [rcx + rbx + 0x10efc], 0
add eax, r14d
mov word [rcx + rbx + 0x10ee8], 0x101
mov dword [rcx + rbx + 0x10eec], r11d
mov dword [rcx + rbx + 0x10ef8], eax
mov dword [rcx + rbx + 0x10ef0], ebp
jmp 0x14005c054
mov r15d, dword [rsp + 0x38]
mov r12d, dword [rsp + 0xe0]
mov rsi, qword [rsp + 0xc8]
inc ebp
add rsi, 4
mov dword [rsp + 0x48], ebp
mov qword [rsp + 0xc8], rsi
cmp ebp, 4
jb 0x14005bc30
mov edx, dword [rsp + 0x4c]
cmp edx, r15d
jbe 0x14005c0aa
xor ecx, ecx
mov edx, r15d
cmp r15d, dword [rbx + 0x2f4]
jbe 0x14005c09c
nop
inc ecx
cmp r15d, dword [rbx + rcx*8 + 0x2f4]
ja 0x14005c090
mov dword [rbx + rcx*8 + 0x2f4], r15d
inc ecx
mov dword [rsp + 0x50], ecx
mov r8d, dword [rsp + 0x34]
cmp edx, r8d
jb 0x14005c52c
mov rax, qword [rsp + 0x60]
mov ecx, dword [rsp + 0xe8]
lea r11, [0x1400c2570]
movzx eax, word [rax]
add edx, ecx
shr rax, 4
movzx r11d, byte [rax + r11]
add r11d, dword [rsp + 0x40]
mov dword [rsp + 0xc8], r11d
cmp r13d, edx
jae 0x14005c126
mov eax, r13d
sub edx, r13d
mov ecx, edx
imul rax, rax, 0x2c
add rax, 0x10ef4
add rax, rbx
add r13d, edx
mov dword [rsp + 0xd8], r13d
nop dword [rax + rax]
lea rax, [rax + 0x2c]
mov dword [rax], 0x40000000
dec rcx
jne 0x14005c110
mov ecx, dword [rsp + 0xe8]
xor r15d, r15d
cmp r8d, dword [rbx + 0x2f4]
jbe 0x14005c13f
inc r15d
cmp r8d, dword [rbx + r15*8 + 0x2f4]
ja 0x14005c132
imul rdi, qword [rsp + 0x58], 0x110
mov esi, dword [rsp + 0xf0]
sub r12d, ecx
sub esi, ecx
mov eax, 1
lea r13d, [r8 + rcx]
sub eax, ecx
inc esi
mov qword [rsp + 0x58], rdi
mov dword [rsp + 0x40], eax
mov eax, ecx
mov dword [rsp + 0x34], esi
neg eax
mov dword [rsp + 0xe0], r12d
mov dword [rsp + 0x3c], eax
nop
mov r12d, dword [rbx + r15*8 + 0x2f8]
lea r14d, [rax + r13]
mov dword [rsp + 0x4c], r12d
lea r9d, [r14 - 2]
cmp r14d, 6
jb 0x14005c1a1
mov r9d, 3
mov r8, r12
cmp r12d, 0x80
jae 0x14005c1c0
mov eax, r9d
shl rax, 7
add rax, r12
mov edx, dword [rbx + rax*4 + 0x10690]
jmp 0x14005c1f0
bsr edx, r12d
mov eax, r12d
lea ecx, [rdx - 1]
shr eax, cl
and eax, 1
lea ecx, [rax + rdx*2]
mov eax, r9d
shl rax, 6
add rcx, rax
mov rax, r12
mov edx, dword [rbx + rcx*4 + 0x10290]
and eax, 0xf
add edx, dword [rbx + rax*4 + 0x10e98]
lea ecx, [r14 - 2]
mov eax, r13d
add rcx, rdi
mov ebp, dword [rbx + rcx*4 + 0x7604]
imul rcx, rax, 0x2c
add ebp, edx
add ebp, r11d
cmp ebp, dword [rcx + rbx + 0x10ef4]
jae 0x14005c23c
mov eax, dword [rsp + 0xe8]
mov dword [rcx + rbx + 0x10ef4], ebp
mov byte [rcx + rbx + 0x10ee8], 0
mov dword [rcx + rbx + 0x10ef8], eax
lea eax, [r12 + 4]
mov dword [rcx + rbx + 0x10efc], eax
cmp r14d, dword [rbx + r15*8 + 0x2f4]
jne 0x14005c520
mov r10, qword [rsp + 0xd0]
mov r9d, dword [rsp + 0x40]
lea edx, [rsi + r13]
add r9d, r13d
mov rdi, r10
sub rdi, r8
cmp dword [rsp + 0xf8], edx
cmovb edx, dword [rsp + 0xf8]
cmp r9d, edx
jae 0x14005c299
lea r8, [rdi - 1]
mov ecx, r9d
add rcx, r10
sub r8, r10
movzx eax, byte [r8 + rcx]
cmp byte [rcx], al
jne 0x14005c299
inc r9d
inc rcx
cmp r9d, edx
jb 0x14005c285
or eax, 0xffffffff
sub eax, r14d
add r9d, eax
cmp r9d, 2
jb 0x14005c511
cmp dword [rsp + 0x30], 7
mov r8d, dword [rsp + 0xe0]
movzx r10d, byte [r14 + r10]
movzx edi, byte [r14 + rdi - 1]
mov eax, 7
lea ecx, [r14 - 1]
mov r11d, 0xa
lea r12, [0x1400c2570]
cmovl r11d, eax
mov eax, dword [rbx + 0xb90]
add r8d, r13d
and eax, r8d
add rbx, 0xb9c
xor esi, esi
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0xd0]
movzx edx, byte [rcx + rax]
mov eax, dword [rbx - 4]
mov ecx, 8
sub cl, byte [rbx - 8]
and eax, r8d
mov r8d, 0x100
shr edx, cl
mov ecx, dword [rbx - 8]
shl eax, cl
add edx, eax
lea rax, [rdx + rdx*2]
shl rax, 9
add rax, rbx
add r10d, r8d
mov rbx, rax
mov ecx, r10d
add edi, edi
mov eax, r8d
shr ecx, 8
and eax, edi
add eax, r8d
add ecx, eax
movzx edx, word [rbx + rcx*2]
mov ecx, r10d
add r10d, r10d
shr ecx, 7
shr rdx, 4
and ecx, 1
neg ecx
shr rcx, 4
and ecx, 0x7f
xor rdx, rcx
movzx eax, byte [rdx + r12]
add esi, eax
mov eax, edi
xor eax, r10d
not eax
and r8d, eax
cmp r10d, 0x10000
jb 0x14005c331
mov r8d, dword [rsp + 0x44]
mov rbx, qword [rsp + 0xc0]
mov r12d, dword [rsp + 0x4c]
movsxd rcx, r11d
shl rcx, 4
add rcx, r8
movzx eax, word [rbx + rcx*2 + 0x6b9c]
lea rcx, [0x1400c2570]
shr rax, 4
movzx edx, byte [rax + rcx]
add edx, esi
add edx, ebp
cmp r11d, 3
jg 0x14005c3bf
xor r11d, r11d
jmp 0x14005c3cf
cmp r11d, 9
jg 0x14005c3cb
sub r11d, 3
jmp 0x14005c3cf
sub r11d, 6
mov ebp, dword [rsp + 0xd8]
movsxd r10, r11d
lea edi, [r8 + 1]
and edi, dword [rbx + 0xb90]
movzx eax, word [rbx + r10*2 + 0x6d1c]
mov rsi, r10
xor rax, 0x7f0
shl rsi, 4
lea r11, [0x1400c2570]
shr rax, 4
add rsi, rdi
movzx ecx, byte [rax + rcx]
movzx eax, word [rbx + rsi*2 + 0x6b9c]
xor rax, 0x7f0
shr rax, 4
movzx r11d, byte [rax + r11]
lea eax, [rdx + rcx]
add r11d, eax
lea eax, [r14 + r9]
mov r14d, dword [rsp + 0xe8]
lea r8d, [r14 + 1]
add r8d, eax
cmp ebp, r8d
jae 0x14005c46f
imul rcx, rbp, 0x2c
lea rdx, [rbx + 0x10ef4]
mov eax, r8d
sub eax, ebp
add rdx, rcx
add ebp, eax
mov ecx, eax
mov dword [rsp + 0xd8], ebp
nop
lea rdx, [rdx + 0x2c]
mov dword [rdx], 0x40000000
dec rcx
jne 0x14005c460
imul rax, rdi, 0x110
lea rdx, [0x1400c2570]
lea ecx, [r9 - 2]
add rcx, rax
movzx eax, word [rbx + rsi*2 + 0x6d7c]
mov esi, dword [rsp + 0x34]
mov ecx, dword [rbx + rcx*4 + 0xbe4c]
xor rax, 0x7f0
shr rax, 4
movzx eax, byte [rax + rdx]
add ecx, eax
movzx eax, word [rbx + r10*2 + 0x6d34]
shr rax, 4
movzx edx, byte [rax + rdx]
lea eax, [r11 + rcx]
mov r11d, dword [rsp + 0xc8]
add edx, eax
mov eax, r8d
imul rcx, rax, 0x2c
cmp edx, dword [rcx + rbx + 0x10ef4]
jae 0x14005c511
lea eax, [r13 + 1]
mov dword [rcx + rbx + 0x10ef4], edx
mov dword [rcx + rbx + 0x10efc], 0
mov dword [rcx + rbx + 0x10ef8], eax
lea eax, [r12 + 4]
mov word [rcx + rbx + 0x10ee8], 0x101
mov dword [rcx + rbx + 0x10ef0], eax
mov dword [rcx + rbx + 0x10eec], r14d
inc r15d
cmp r15d, dword [rsp + 0x50]
je 0x14005c52c
mov rdi, qword [rsp + 0x58]
mov eax, dword [rsp + 0x3c]
inc r13d
jmp 0x14005c180
mov eax, dword [rsp + 0xd8]
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret