Function at 0x140116f30
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 0x14011700b
dec r11d
cmp byte [r10 + 0x10ee9], 0
je 0x140116fe5
mov eax, dword [r10 + 0x10eec]
imul rcx, rax, 0x2c
cmp dword [r10 + 0x10ef0], 4
mov eax, dword [rcx + rbx + 0x10ee4]
jae 0x140116fd9
mov edx, 0xb
cmp eax, ebp
cmovl edx, r9d
jmp 0x140116ff3
mov edx, 0xa
cmp eax, ebp
cmovl edx, ebp
jmp 0x140116ff3
mov eax, r11d
imul rcx, rax, 0x2c
mov edx, dword [rcx + rbx + 0x10ee4]
cmp edx, 3
jg 0x140116ffc
xor edx, edx
jmp 0x140117016
cmp edx, 9
jg 0x140117006
sub edx, 3
jmp 0x140117016
sub edx, 6
jmp 0x140117016
imul rcx, r11, 0x2c
mov edx, dword [rcx + rbx + 0x10ee4]
lea eax, [r8 - 1]
cmp r11d, eax
jne 0x140117070
cmp dword [r10 + 0x10efc], 0
jne 0x140117043
cmp edx, ebp
mov eax, 0xb
mov ecx, 9
cmovl eax, ecx
mov edx, eax
mov dword [rsp + 0x30], eax
jmp 0x140117158
cmp edx, 3
jg 0x140117053
xor edx, edx
mov dword [rsp + 0x30], edx
jmp 0x140117158
cmp edx, 9
jg 0x140117064
sub edx, 3
mov dword [rsp + 0x30], edx
jmp 0x140117158
sub edx, 6
mov dword [rsp + 0x30], edx
jmp 0x140117158
test dil, dil
je 0x14011709a
cmp byte [r10 + 0x10ee9], 0
je 0x14011709a
mov r11d, dword [r10 + 0x10eec]
mov ecx, dword [r10 + 0x10ef0]
mov eax, 0xb
cmp edx, ebp
cmovl eax, r9d
jmp 0x1401170bd
mov ecx, dword [r10 + 0x10efc]
cmp ecx, 4
jae 0x1401170b3
mov eax, 0xb
cmp edx, ebp
cmovl eax, r9d
jmp 0x1401170bd
mov eax, 0xa
cmp edx, ebp
cmovl eax, ebp
mov edx, eax
mov dword [rsp + 0x30], eax
cmp ecx, 4
jae 0x140117324
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 0x14011711a
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 0x140117100
cmp r9d, 4
jae 0x140117154
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 0x140117140
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.140116740
movzx ecx, word [rbx + r15*2 + 0x6b9c]
mov r11d, dword [rsp + 0xe8]
add eax, r14d
shr rcx, 4
lea r8, [0x14018b0a0]
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 0x14011725b
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 0x140117310
cmp dword [rdx + 0x10ef8], r11d
jae 0x1401172bb
cmp dword [rdx + 0x10efc], 0
je 0x140117310
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 0x140117310
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 0x140117357
mov eax, r13d
jmp 0x140117e53
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 0x140117158
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 0x140117534
cmp bpl, sil
mov rsi, qword [rsp + 0xc8]
je 0x14011753c
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 0x1401173d4
nop word [rax + rax]
mov eax, ecx
mov r8, qword [rax + rdi]
sub r8, qword [rax + r9 - 1]
jne 0x1401173c6
add ecx, 8
cmp ecx, edx
jb 0x1401173b0
jmp 0x1401173d4
bsf rax, r8
shr eax, 3
add ecx, eax
cmp ecx, edx
cmovb edx, ecx
lea r8d, [rdx - 1]
cmp r8d, 2
jb 0x14011753c
mov eax, dword [rsp + 0x30]
cmp eax, 3
jg 0x1401173ef
xor ecx, ecx
jmp 0x1401173fa
lea ecx, [rax - 3]
cmp eax, 9
jle 0x1401173fa
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, [0x14018b0a0]
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 0x14011749f
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 0x140117490
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 0x14011753c
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 0x14011753c
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 0x14011796c
mov eax, 2
cmp r15d, eax
jbe 0x140117589
nop
mov ecx, eax
mov rdx, qword [rcx + rdi]
sub rdx, qword [rcx + rsi - 1]
jne 0x1401177ee
add eax, 8
cmp eax, r15d
jb 0x140117570
mov r14d, r15d
lea edi, [r14 + r11]
cmp r13d, edi
jae 0x1401175cf
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 0x1401175c0
mov r12d, dword [rsp + 0x30]
mov r9d, dword [rsp + 0x3c]
mov edx, ebp
mov r8d, r12d
mov rcx, rbx
call fcn.140116840
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 0x140117650
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 0x140117610
test ebp, ebp
jne 0x140117667
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 0x1401176b4
lea r8, [rsi - 1]
mov ecx, r9d
add rcx, rdi
sub r8, rdi
nop
movzx eax, byte [r8 + rcx]
cmp byte [rcx], al
jne 0x1401176b4
inc r9d
inc rcx
cmp r9d, edx
jb 0x1401176a0
or eax, 0xffffffff
sub eax, r14d
add r9d, eax
cmp r9d, 2
jb 0x140117967
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, [0x14018b0a0]
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 0x140117760
mov rbx, qword [rsp + 0xc0]
mov eax, r12d
movsxd rcx, r11d
shl rcx, 4
lea rbp, [0x14018b0a0]
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 0x140117806
xor r11d, r11d
jmp 0x140117816
bsf rcx, rdx
mov r14d, r15d
shr ecx, 3
add eax, ecx
cmp eax, r15d
cmovb r14d, eax
jmp 0x14011758c
cmp r11d, 9
jg 0x140117812
sub r11d, 3
jmp 0x140117816
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 0x1401178bf
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 0x1401178b0
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 0x140117974
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 0x140117974
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 0x140117550
mov edx, dword [rsp + 0x4c]
cmp edx, r15d
jbe 0x1401179ca
xor ecx, ecx
mov edx, r15d
cmp r15d, dword [rbx + 0x2f4]
jbe 0x1401179bc
nop
inc ecx
cmp r15d, dword [rbx + rcx*8 + 0x2f4]
ja 0x1401179b0
mov dword [rbx + rcx*8 + 0x2f4], r15d
inc ecx
mov dword [rsp + 0x50], ecx
mov r8d, dword [rsp + 0x34]
cmp edx, r8d
jb 0x140117e4c
mov rax, qword [rsp + 0x60]
mov ecx, dword [rsp + 0xe8]
lea r11, [0x14018b0a0]
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 0x140117a46
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 0x140117a30
mov ecx, dword [rsp + 0xe8]
xor r15d, r15d
cmp r8d, dword [rbx + 0x2f4]
jbe 0x140117a5f
inc r15d
cmp r8d, dword [rbx + r15*8 + 0x2f4]
ja 0x140117a52
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 0x140117ac1
mov r9d, 3
mov r8, r12
cmp r12d, 0x80
jae 0x140117ae0
mov eax, r9d
shl rax, 7
add rax, r12
mov edx, dword [rbx + rax*4 + 0x10690]
jmp 0x140117b10
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 0x140117b5c
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 0x140117e40
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 0x140117bb9
lea r8, [rdi - 1]
mov ecx, r9d
add rcx, r10
sub r8, r10
movzx eax, byte [r8 + rcx]
cmp byte [rcx], al
jne 0x140117bb9
inc r9d
inc rcx
cmp r9d, edx
jb 0x140117ba5
or eax, 0xffffffff
sub eax, r14d
add r9d, eax
cmp r9d, 2
jb 0x140117e31
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, [0x14018b0a0]
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 0x140117c51
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, [0x14018b0a0]
shr rax, 4
movzx edx, byte [rax + rcx]
add edx, esi
add edx, ebp
cmp r11d, 3
jg 0x140117cdf
xor r11d, r11d
jmp 0x140117cef
cmp r11d, 9
jg 0x140117ceb
sub r11d, 3
jmp 0x140117cef
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, [0x14018b0a0]
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 0x140117d8f
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 0x140117d80
imul rax, rdi, 0x110
lea rdx, [0x14018b0a0]
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 0x140117e31
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 0x140117e4c
mov rdi, qword [rsp + 0x58]
mov eax, dword [rsp + 0x3c]
inc r13d
jmp 0x140117aa0
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