Function at 0x140101c80
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 0x140101d5b
dec r11d
cmp byte [r10 + 0x10ee9], 0
je 0x140101d35
mov eax, dword [r10 + 0x10eec]
imul rcx, rax, 0x2c
cmp dword [r10 + 0x10ef0], 4
mov eax, dword [rcx + rbx + 0x10ee4]
jae 0x140101d29
mov edx, 0xb
cmp eax, ebp
cmovl edx, r9d
jmp 0x140101d43
mov edx, 0xa
cmp eax, ebp
cmovl edx, ebp
jmp 0x140101d43
mov eax, r11d
imul rcx, rax, 0x2c
mov edx, dword [rcx + rbx + 0x10ee4]
cmp edx, 3
jg 0x140101d4c
xor edx, edx
jmp 0x140101d66
cmp edx, 9
jg 0x140101d56
sub edx, 3
jmp 0x140101d66
sub edx, 6
jmp 0x140101d66
imul rcx, r11, 0x2c
mov edx, dword [rcx + rbx + 0x10ee4]
lea eax, [r8 - 1]
cmp r11d, eax
jne 0x140101dc0
cmp dword [r10 + 0x10efc], 0
jne 0x140101d93
cmp edx, ebp
mov eax, 0xb
mov ecx, 9
cmovl eax, ecx
mov edx, eax
mov dword [rsp + 0x30], eax
jmp 0x140101ea8
cmp edx, 3
jg 0x140101da3
xor edx, edx
mov dword [rsp + 0x30], edx
jmp 0x140101ea8
cmp edx, 9
jg 0x140101db4
sub edx, 3
mov dword [rsp + 0x30], edx
jmp 0x140101ea8
sub edx, 6
mov dword [rsp + 0x30], edx
jmp 0x140101ea8
test dil, dil
je 0x140101dea
cmp byte [r10 + 0x10ee9], 0
je 0x140101dea
mov r11d, dword [r10 + 0x10eec]
mov ecx, dword [r10 + 0x10ef0]
mov eax, 0xb
cmp edx, ebp
cmovl eax, r9d
jmp 0x140101e0d
mov ecx, dword [r10 + 0x10efc]
cmp ecx, 4
jae 0x140101e03
mov eax, 0xb
cmp edx, ebp
cmovl eax, r9d
jmp 0x140101e0d
mov eax, 0xa
cmp edx, ebp
cmovl eax, ebp
mov edx, eax
mov dword [rsp + 0x30], eax
cmp ecx, 4
jae 0x140102074
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 0x140101e6a
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 0x140101e50
cmp r9d, 4
jae 0x140101ea4
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 0x140101e90
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.140101490
movzx ecx, word [rbx + r15*2 + 0x6b9c]
mov r11d, dword [rsp + 0xe8]
add eax, r14d
shr rcx, 4
lea r8, [0x14016cd20]
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 0x140101fab
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 0x140102060
cmp dword [rdx + 0x10ef8], r11d
jae 0x14010200b
cmp dword [rdx + 0x10efc], 0
je 0x140102060
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 0x140102060
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 0x1401020a7
mov eax, r13d
jmp 0x140102ba3
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 0x140101ea8
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 0x140102284
cmp bpl, sil
mov rsi, qword [rsp + 0xc8]
je 0x14010228c
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 0x140102124
nop word [rax + rax]
mov eax, ecx
mov r8, qword [rax + rdi]
sub r8, qword [rax + r9 - 1]
jne 0x140102116
add ecx, 8
cmp ecx, edx
jb 0x140102100
jmp 0x140102124
bsf rax, r8
shr eax, 3
add ecx, eax
cmp ecx, edx
cmovb edx, ecx
lea r8d, [rdx - 1]
cmp r8d, 2
jb 0x14010228c
mov eax, dword [rsp + 0x30]
cmp eax, 3
jg 0x14010213f
xor ecx, ecx
jmp 0x14010214a
lea ecx, [rax - 3]
cmp eax, 9
jle 0x14010214a
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, [0x14016cd20]
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 0x1401021ef
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 0x1401021e0
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 0x14010228c
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 0x14010228c
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 0x1401026bc
mov eax, 2
cmp r15d, eax
jbe 0x1401022d9
nop
mov ecx, eax
mov rdx, qword [rcx + rdi]
sub rdx, qword [rcx + rsi - 1]
jne 0x14010253e
add eax, 8
cmp eax, r15d
jb 0x1401022c0
mov r14d, r15d
lea edi, [r14 + r11]
cmp r13d, edi
jae 0x14010231f
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 0x140102310
mov r12d, dword [rsp + 0x30]
mov r9d, dword [rsp + 0x3c]
mov edx, ebp
mov r8d, r12d
mov rcx, rbx
call fcn.140101590
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 0x1401023a0
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 0x140102360
test ebp, ebp
jne 0x1401023b7
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 0x140102404
lea r8, [rsi - 1]
mov ecx, r9d
add rcx, rdi
sub r8, rdi
nop
movzx eax, byte [r8 + rcx]
cmp byte [rcx], al
jne 0x140102404
inc r9d
inc rcx
cmp r9d, edx
jb 0x1401023f0
or eax, 0xffffffff
sub eax, r14d
add r9d, eax
cmp r9d, 2
jb 0x1401026b7
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, [0x14016cd20]
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 0x1401024b0
mov rbx, qword [rsp + 0xc0]
mov eax, r12d
movsxd rcx, r11d
shl rcx, 4
lea rbp, [0x14016cd20]
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 0x140102556
xor r11d, r11d
jmp 0x140102566
bsf rcx, rdx
mov r14d, r15d
shr ecx, 3
add eax, ecx
cmp eax, r15d
cmovb r14d, eax
jmp 0x1401022dc
cmp r11d, 9
jg 0x140102562
sub r11d, 3
jmp 0x140102566
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 0x14010260f
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 0x140102600
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 0x1401026c4
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 0x1401026c4
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 0x1401022a0
mov edx, dword [rsp + 0x4c]
cmp edx, r15d
jbe 0x14010271a
xor ecx, ecx
mov edx, r15d
cmp r15d, dword [rbx + 0x2f4]
jbe 0x14010270c
nop
inc ecx
cmp r15d, dword [rbx + rcx*8 + 0x2f4]
ja 0x140102700
mov dword [rbx + rcx*8 + 0x2f4], r15d
inc ecx
mov dword [rsp + 0x50], ecx
mov r8d, dword [rsp + 0x34]
cmp edx, r8d
jb 0x140102b9c
mov rax, qword [rsp + 0x60]
mov ecx, dword [rsp + 0xe8]
lea r11, [0x14016cd20]
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 0x140102796
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 0x140102780
mov ecx, dword [rsp + 0xe8]
xor r15d, r15d
cmp r8d, dword [rbx + 0x2f4]
jbe 0x1401027af
inc r15d
cmp r8d, dword [rbx + r15*8 + 0x2f4]
ja 0x1401027a2
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 0x140102811
mov r9d, 3
mov r8, r12
cmp r12d, 0x80
jae 0x140102830
mov eax, r9d
shl rax, 7
add rax, r12
mov edx, dword [rbx + rax*4 + 0x10690]
jmp 0x140102860
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 0x1401028ac
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 0x140102b90
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 0x140102909
lea r8, [rdi - 1]
mov ecx, r9d
add rcx, r10
sub r8, r10
movzx eax, byte [r8 + rcx]
cmp byte [rcx], al
jne 0x140102909
inc r9d
inc rcx
cmp r9d, edx
jb 0x1401028f5
or eax, 0xffffffff
sub eax, r14d
add r9d, eax
cmp r9d, 2
jb 0x140102b81
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, [0x14016cd20]
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 0x1401029a1
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, [0x14016cd20]
shr rax, 4
movzx edx, byte [rax + rcx]
add edx, esi
add edx, ebp
cmp r11d, 3
jg 0x140102a2f
xor r11d, r11d
jmp 0x140102a3f
cmp r11d, 9
jg 0x140102a3b
sub r11d, 3
jmp 0x140102a3f
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, [0x14016cd20]
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 0x140102adf
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 0x140102ad0
imul rax, rdi, 0x110
lea rdx, [0x14016cd20]
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 0x140102b81
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 0x140102b9c
mov rdi, qword [rsp + 0x58]
mov eax, dword [rsp + 0x3c]
inc r13d
jmp 0x1401027f0
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