Function at 0x140013890
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1c8
mov r15, rdx
mov rbp, rcx
mov ecx, 0x8000
add ecx, dword [rbp + 0x368]
sar ecx, 0x10
movsxd rax, dword [rbp + 0x364]
mov r14d, ecx
neg r14d
mov edx, ecx
cmovns edx, r14d
test rax, rax
cmove r14d, ecx
cmp byte [0x1401ab780], 0
setne cl
cmp edx, 0x801
setb r12b
and r12b, cl
mov qword [rsp + 0x28], rbp
je 0x1400139b6
mov rcx, qword [rbp + 0x358]
mov edx, dword [rcx + 0x10]
mov ecx, dword [rcx + 0x14]
lea esi, [rdx + rcx]
add esi, 0x3f
add edx, ecx
cmovns esi, edx
mov rcx, qword [rbp + 0x350]
sar esi, 6
lea edi, [rsi + 0x3e9]
mov ebx, dword [rcx + rax*4 + 0x15c]
lea r8, [rsp + 0x180]
mov rcx, rbp
mov dl, 1
call fcn.140027e50
imul edx, dword [rsp + 0x180], 0x196
lea ecx, [rbx + 0x1a8]
mov r8d, r14d
sub r8d, eax
mov r9d, r8d
neg r9d
cmovs r9d, r8d
imul r9d, ecx
lea ecx, [r9 + rdx]
add ecx, 0x3ff
mov r8d, r9d
add r8d, edx
cmovns ecx, r8d
sar ecx, 0xa
test r15, r15
je 0x140013978
mov dword [r15], ecx
add ecx, 0x110
imul ecx, ebx
lea edx, [rcx + 0xff]
test ecx, ecx
cmovns edx, ecx
sar edx, 8
add esi, 0xfd
imul esi, edx
imul edi, eax
mov ecx, esi
add ecx, edi
lea eax, [rsi + rdi + 0x3ff]
cmovns eax, ecx
sar eax, 0xa
mov rbp, qword [rsp + 0x28]
jmp 0x140016ad9
mov rcx, rbp
call fcn.14001f4b0
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1400139d5
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 8]
jmp 0x140016ad9
mov byte [rsp + 0x9f], r12b
mov esi, dword [rbp + 0x368]
mov qword [rsp + 0x1c0], rax
add esi, dword [rax + 0x20]
mov rcx, rbp
call fcn.14002dd90
mov rbx, rax
mov eax, dword [rax + 8]
sub eax, dword [rbx + 0xc]
mov edi, esi
add edi, eax
lea edx, [rax + rsi]
add edx, 0x8000
mov ecx, edx
sar ecx, 0x10
movsx eax, di
add eax, ecx
mov r9d, eax
neg r9d
cmovs r9d, eax
mov rax, qword [rbp + 0x350]
mov r8, qword [rbp + 0x358]
mov r13d, dword [r8 + 0x10]
mov r11d, dword [r8 + 0x14]
mov r10d, r13d
add r10d, r11d
lea esi, [r13 + r11 + 0x1f]
cmovns esi, r10d
sar esi, 5
mov eax, dword [rax + 0x158]
mov r10d, eax
neg r10d
cmovs r10d, eax
lea eax, [r10 + r10*4]
shr eax, 2
add eax, esi
add eax, 0xe26
cmp r9d, eax
mov r12, rbp
mov qword [rsp + 0xa8], rbx
mov dword [rsp + 0x18c], r14d
mov dword [rsp + 0xc0], edi
jle 0x140013aa2
mov r10, qword [r12 + 0x148]
mov rbp, qword [r12 + 0x108]
mov r9, qword [r12 + 0x140]
jmp 0x1400166d8
mov qword [rsp + 0x170], r15
mov r10, qword [r12 + 0x140]
mov rax, qword [r12 + 0x130]
mov rcx, rax
mov qword [rsp + 0x40], rax
and rcx, r10
tzcnt rdi, rcx
mov rdx, qword [r12 + 0x100]
mov rcx, qword [r12 + 0x108]
mov r9, rcx
and r9, r10
mov r11, r9
mov r14, rdx
shr r14, 8
or r14, 0xffff00
and r14, r9
shl r9, 7
shl r11, 9
and r11, r9
movabs r13, 0x7e7e7e7e7e7e7e00
and r13, r11
mov rsi, qword [r12 + 0x128]
mov r9, rsi
or r9, rax
and r10, r9
mov rax, qword [rbx + 0x20]
mov qword [rsp + 0x108], rax
mov rbp, qword [rbx + 0x28]
or r10, qword [r8 + 0x40]
or r14, rbp
or r14, r10
mov qword [rsp + 0x150], r14
lea r10, [0x1400d6f00]
mov r11, qword [r10 + rdi*8 + 0xc00]
mov r14, r10
mov r10, rax
mov qword [rsp + 0x118], r11
and r10, r11
mov qword [rsp + 0xd8], r10
mov ebx, edi
and ebx, 0xfffffff8
cmp edi, 8
mov r10d, 8
cmovb ebx, r10d
cmp edi, 0x38
mov r11d, 0x30
cmovae ebx, r11d
and edi, 7
cmp edi, 1
mov r15d, edi
adc r15d, 0
cmp edi, 7
mov edi, 6
cmove r15d, edi
or r15d, ebx
mov rax, qword [r14 + r15*8 + 0xc00]
bts rax, r15
shl rdx, 8
movabs r15, 0xffff0000000000
or r15, rdx
mov rbx, qword [r12 + 0x148]
and rcx, rbx
and r15, rcx
mov rdx, rcx
shr rcx, 9
shr rdx, 7
and rdx, rcx
movabs r14, 0x7e7e7e7e7e7e7e
and r14, rdx
and r9, rbx
or r9, qword [r8 + 0x48]
mov r8, qword [rsp + 0x108]
or r15, r8
or r15, r9
mov qword [rsp + 0x48], r13
andn rcx, r13, rax
mov qword [rsp + 0xb0], rcx
and rax, rbp
popcnt rcx, rax
mov qword [rsp + 0xa0], rcx
mov rax, qword [rsp + 0x40]
and rax, rbx
tzcnt rax, rax
lea r9, [0x1400d6f00]
mov rdx, qword [r9 + rax*8 + 0xc00]
mov rcx, rdx
or rcx, rbp
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x130], rdx
mov rcx, rdx
mov qword [rsp + 0x128], rbp
and rcx, rbp
or rcx, r14
mov qword [rsp + 0xb8], rcx
mov ecx, eax
and ecx, 0xfffffff8
cmp eax, 8
cmovb ecx, r10d
cmp eax, 0x38
cmovae ecx, r11d
and eax, 7
cmp eax, 1
mov edx, eax
adc edx, 0
cmp eax, 7
cmove edx, edi
or edx, ecx
mov rbp, qword [r9 + rdx*8 + 0xc00]
bts rbp, rdx
not r15
mov qword [rsp + 0x168], r15
mov rax, rbp
mov rcx, r8
and rax, r8
popcnt rax, rax
mov qword [rsp + 0x58], rax
xor eax, eax
mov qword [rsp + 0x90], rax
xor eax, eax
and rbx, rsi
je 0x140013e79
mov qword [rsp + 0x148], rax
lea rsi, [0x1400d8b00]
lea r13, [0x1400d8300]
lea rdi, [0x14008d6d0]
lea r15, [rsp + 0x180]
mov dword [rsp + 0x88], 0
xor eax, eax
mov qword [rsp + 0xe0], rax
mov dword [rsp + 0xc4], 0
xor eax, eax
mov qword [rsp + 0x178], rax
jmp 0x140013da4
blsr rbx, rbx
or qword [rsp + 0xb8], rcx
or qword [rsp + 0x148], rax
or qword [rsp + 0x40], rax
and rax, qword [rsp + 0x168]
popcnt rax, rax
mov ecx, dword [rsp + 0x88]
add ecx, dword [rdi + rax*4 + 0x180]
mov dword [rsp + 0x88], ecx
mov rdx, qword [r12 + 0x118]
or rdx, qword [r12 + 0x120]
and rdx, qword [r12 + 0x140]
mov rcx, r12
mov r9, r15
call fcn.140030e90
mov rdx, qword [rsp + 0x178]
lea ecx, [rdx - 0x130039]
test rax, rax
cmovne edx, ecx
mov qword [rsp + 0x178], rdx
test rbx, rbx
je 0x140013e6f
tzcnt r8, rbx
mov rax, qword [r12 + 0x100]
mov rcx, r8
shl rcx, 5
mov rdx, qword [rcx + rsi + 0x10]
pext r9, rax, qword [rcx + rsi]
mov r9d, r9d
mov r10, qword [rcx + r13 + 0x10]
pext rax, rax, qword [rcx + r13]
mov eax, eax
mov rax, qword [r10 + rax*8]
or rax, qword [rdx + r9*8]
mov rcx, qword [r12 + 0x358]
mov rcx, qword [rcx + 0x48]
bt rcx, r8
jae 0x140013e18
mov rcx, qword [r12 + 0x130]
and rcx, qword [r12 + 0x148]
tzcnt rdx, rcx
cmovb rdx, rcx
shl rdx, 9
lea rcx, [0x1400c6f00]
add rdx, rcx
and rax, qword [rdx + r8*8]
mov rcx, rax
and rcx, qword [rsp + 0x40]
test qword [rsp + 0xb0], rax
je 0x140013d20
mov rdx, qword [rsp + 0xa0]
inc edx
mov qword [rsp + 0xa0], rdx
mov rdx, qword [rsp + 0xe0]
add edx, 0xe
mov qword [rsp + 0xe0], rdx
mov rdx, rax
and rdx, qword [rsp + 0x118]
popcnt rdx, rdx
add dword [rsp + 0xc4], edx
jmp 0x140013d20
mov rsi, qword [r12 + 0x128]
jmp 0x140013eab
mov qword [rsp + 0x148], rax
mov dword [rsp + 0x88], 0
xor eax, eax
mov qword [rsp + 0xe0], rax
mov dword [rsp + 0xc4], 0
xor eax, eax
mov qword [rsp + 0x178], rax
mov rax, qword [rsp + 0x48]
not qword [rsp + 0x150]
mov rbx, qword [rsp + 0x108]
or rbx, qword [rsp + 0x118]
or qword [rsp + 0xd8], rax
andn rax, r14, rbp
mov qword [rsp + 0xe8], rax
mov rax, qword [r12 + 0x140]
and rsi, rax
je 0x140014083
xor eax, eax
mov qword [rsp + 0x140], rax
lea rdi, [0x1400d8b00]
lea r13, [0x1400d8300]
lea rbp, [0x14008d6d0]
lea r15, [rsp + 0x180]
xor eax, eax
mov qword [rsp + 0x90], rax
xor eax, eax
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x74], 0
xor r11d, r11d
jmp 0x140013fe9
mov r14, r11
mov rdx, qword [rsp + 0x58]
inc edx
mov qword [rsp + 0x58], rdx
mov rdx, qword [rsp + 0x48]
add edx, 0xe
mov qword [rsp + 0x48], rdx
mov rdx, rax
and rdx, qword [rsp + 0x130]
popcnt rdx, rdx
add dword [rsp + 0x74], edx
blsr rsi, rsi
or qword [rsp + 0xd8], rcx
or qword [rsp + 0x140], rax
or rbx, rax
and rax, qword [rsp + 0x150]
popcnt rax, rax
mov rcx, qword [rsp + 0x90]
add ecx, dword [rbp + rax*4 + 0x180]
mov qword [rsp + 0x90], rcx
mov rdx, qword [r12 + 0x118]
or rdx, qword [r12 + 0x120]
and rdx, qword [r12 + 0x148]
mov rcx, r12
mov r9, r15
call fcn.140030e90
mov r11, r14
lea ecx, [r14 - 0x130039]
test rax, rax
cmovne r11d, ecx
test rsi, rsi
je 0x140014079
tzcnt r8, rsi
mov rax, qword [r12 + 0x100]
mov rcx, r8
shl rcx, 5
mov rdx, qword [rcx + rdi + 0x10]
pext r9, rax, qword [rcx + rdi]
mov r9d, r9d
mov r10, qword [rcx + r13 + 0x10]
pext rax, rax, qword [rcx + r13]
mov eax, eax
mov rax, qword [r10 + rax*8]
or rax, qword [rdx + r9*8]
mov rcx, qword [r12 + 0x358]
mov rcx, qword [rcx + 0x40]
bt rcx, r8
jae 0x14001405d
mov rcx, qword [r12 + 0x130]
and rcx, qword [r12 + 0x140]
tzcnt rdx, rcx
cmovb rdx, rcx
shl rdx, 9
lea rcx, [0x1400c6f00]
add rdx, rcx
and rax, qword [rdx + r8*8]
mov rcx, rax
and rcx, rbx
test qword [rsp + 0xe8], rax
jne 0x140013f40
mov r14, r11
jmp 0x140013f70
mov rax, qword [r12 + 0x140]
jmp 0x14001409f
xor ecx, ecx
mov qword [rsp + 0x140], rcx
xor ecx, ecx
mov qword [rsp + 0x48], rcx
mov dword [rsp + 0x74], 0
xor r11d, r11d
mov qword [rsp + 0x30], rax
mov rax, qword [r12 + 0x120]
mov r10, qword [r12 + 0x148]
mov qword [rsp + 0x110], rax
and rax, r10
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x198], r11
je 0x140014310
mov rcx, qword [r12 + 0x128]
xor rcx, rax
mov r11, qword [r12 + 0x100]
mov r8, qword [r12 + 0x108]
xor rcx, r11
mov rsi, qword [r12 + 0x358]
mov rdx, qword [r12 + 0x130]
and rdx, r10
tzcnt r9, rdx
shl r11, 8
and r11, r10
mov qword [rsp + 0xd0], r11
mov r10d, r9d
and r10d, 7
xor r11d, r11d
test rdx, rdx
cmovne rdx, r9
mov r9d, 0
mov qword [rsp + 0x160], r9
cmove r10d, r11d
mov qword [rsp + 0x100], rsi
mov r11, qword [rsi + 0x48]
lea rsi, [0x1400d8300]
shl rdx, 9
lea r9, [0x1400c6f00]
add r9, rdx
mov qword [rsp + 0x120], r9
xor r9d, r9d
jmp 0x1400141df
and r13, qword [rsp + 0x30]
xor edi, edi
test r13, r8
sete dil
lea r14, [0x14008d8d0]
add r9d, dword [r14 + rdi*4]
mov r14d, r9d
mov r9, r15
mov rdi, qword [rsp + 0x40]
and r9, rdi
or qword [rsp + 0xb8], r9
blsr rax, rax
or qword [rsp + 0x160], r15
or rdi, r15
mov qword [rsp + 0x40], rdi
mov r9d, dword [rsp + 0x88]
lea rdi, [0x14008d6d0]
add r9d, dword [rdi + rdx*4 + 0x100]
mov dword [rsp + 0x88], r9d
mov r9d, r14d
test rax, rax
je 0x14001431d
tzcnt rdi, rax
mov rdx, rdi
shl rdx, 5
pext r14, rcx, qword [rdx + rsi]
mov rdx, qword [rdx + rsi + 0x10]
mov r14d, r14d
mov r15, qword [rdx + r14*8]
bt r11, rdi
jae 0x14001420f
mov rdx, qword [rsp + 0x120]
and r15, qword [rdx + rdi*8]
mov r14, qword [rsp + 0xb0]
test r15, r14
je 0x140014270
mov rdx, qword [rsp + 0xa0]
inc edx
mov qword [rsp + 0xa0], rdx
mov rdx, qword [rsp + 0xe0]
add edx, 0x2d
mov qword [rsp + 0xe0], rdx
mov rdx, r15
and rdx, qword [rsp + 0x118]
popcnt rdx, rdx
add dword [rsp + 0xc4], edx
mov edx, edi
and dl, 7
movabs r14, 0x101010101010101
shlx r13, r14, rdx
jmp 0x140014292
mov edx, edi
and dl, 7
movabs r13, 0x101010101010101
shlx r13, r13, rdx
lea edx, [r9 + 0x10]
test r13, r14
cmove edx, r9d
mov r9d, edx
mov rdx, r15
and rdx, qword [rsp + 0x168]
popcnt rdx, rdx
mov r14, r8
and r14, r13
test qword [rsp + 0x38], r14
je 0x140014170
cmp r10d, 4
setae bpl
and edi, 7
and r13, qword [rsp + 0xd0]
lea r14d, [r9 - 0x5000a]
test r13, r8
cmove r14d, r9d
cmp edi, r10d
setb r9b
cmp edx, 3
ja 0x14001418c
xor bpl, r9b
je 0x14001418c
lea r9d, [r14 - 0xd0037]
add r14d, 0xffe5ff92
mov rdi, qword [rsp + 0x100]
test byte [rdi + 0x18], 0xc
cmovne r14d, r9d
jmp 0x14001418c
xor eax, eax
mov qword [rsp + 0x160], rax
xor r14d, r14d
mov rcx, qword [rsp + 0x30]
mov rax, rcx
and rax, qword [rsp + 0x110]
mov qword [rsp + 0x1b0], r14
je 0x140014578
mov r10, rcx
mov rcx, qword [r12 + 0x128]
xor rcx, rax
mov r11, qword [r12 + 0x100]
mov r8, qword [r12 + 0x108]
xor rcx, r11
mov rsi, qword [r12 + 0x358]
mov rdx, qword [r12 + 0x130]
and rdx, r10
tzcnt r9, rdx
shr r11, 8
and r11, r10
mov qword [rsp + 0xd0], r11
mov r10d, r9d
and r10d, 7
xor r11d, r11d
test rdx, rdx
cmovne rdx, r9
mov r9d, 0
mov qword [rsp + 0x120], r9
cmove r10d, r11d
mov qword [rsp + 0xf8], rsi
mov r11, qword [rsi + 0x40]
lea rsi, [0x1400d8300]
shl rdx, 9
lea r9, [0x1400c6f00]
add r9, rdx
mov qword [rsp + 0x100], r9
xor r9d, r9d
jmp 0x140014442
xor edi, edi
test qword [rsp + 0x38], r14
sete dil
lea r14, [0x14008d8d0]
add r9d, dword [r14 + rdi*4]
mov edi, r9d
mov r9, r15
and r9, rbx
or qword [rsp + 0xd8], r9
blsr rax, rax
or qword [rsp + 0x120], r15
or rbx, r15
mov r9, qword [rsp + 0x90]
lea r14, [0x14008d6d0]
add r9d, dword [r14 + rdx*4 + 0x100]
mov qword [rsp + 0x90], r9
mov r9d, edi
test rax, rax
je 0x140014584
tzcnt rdi, rax
mov rdx, rdi
shl rdx, 5
pext r14, rcx, qword [rdx + rsi]
mov rdx, qword [rdx + rsi + 0x10]
mov r14d, r14d
mov r15, qword [rdx + r14*8]
bt r11, rdi
jae 0x140014472
mov rdx, qword [rsp + 0x100]
and r15, qword [rdx + rdi*8]
mov r14, qword [rsp + 0xe8]
test r15, r14
je 0x1400144d0
mov rdx, qword [rsp + 0x58]
inc edx
mov qword [rsp + 0x58], rdx
mov rdx, qword [rsp + 0x48]
add edx, 0x2d
mov qword [rsp + 0x48], rdx
mov rdx, r15
and rdx, qword [rsp + 0x130]
popcnt rdx, rdx
add dword [rsp + 0x74], edx
mov edx, edi
and dl, 7
movabs r14, 0x101010101010101
shlx r13, r14, rdx
jmp 0x1400144f2
mov edx, edi
and dl, 7
movabs r13, 0x101010101010101
shlx r13, r13, rdx
lea edx, [r9 + 0x10]
test r13, r14
cmove edx, r9d
mov r9d, edx
mov rdx, r15
and rdx, qword [rsp + 0x150]
popcnt rdx, rdx
mov r14, r8
and r14, r13
test qword [rsp + 0x30], r14
je 0x1400143e0
cmp r10d, 4
setae bpl
and edi, 7
and r13, qword [rsp + 0xd0]
lea r14d, [r9 - 0x5000a]
test r13, r8
cmove r14d, r9d
cmp edi, r10d
setb r9b
cmp edx, 3
ja 0x140014570
xor bpl, r9b
je 0x140014570
mov rdi, r14
lea r9d, [r14 - 0xd0037]
add edi, 0xffe5ff92
mov r14, qword [rsp + 0xf8]
test byte [r14 + 0x18], 3
cmovne edi, r9d
jmp 0x1400143f9
mov rdi, r14
jmp 0x1400143f9
xor eax, eax
mov qword [rsp + 0x120], rax
xor edi, edi
mov rsi, qword [r12 + 0x118]
xor eax, eax
mov qword [rsp + 0xd0], rax
mov r8, rsi
mov r11, qword [rsp + 0x38]
and r8, r11
mov qword [rsp + 0x1b8], rdi
je 0x1400148fd
mov rax, qword [r12 + 0x100]
mov rdi, qword [r12 + 0x108]
mov rcx, qword [r12 + 0x128]
xor rcx, rax
mov qword [rsp + 0xf8], rcx
mov rcx, qword [r12 + 0x358]
mov rcx, qword [rcx + 0x48]
mov qword [rsp + 0x78], rcx
mov rcx, rdi
shl rcx, 8
mov qword [rsp + 0x68], rcx
or rcx, qword [rsp + 0x128]
mov qword [rsp + 0x60], rcx
mov rcx, qword [rsp + 0xa8]
mov rcx, qword [rcx + 0x30]
not rcx
mov qword [rsp + 0x80], rcx
mov rcx, qword [r12 + 0x130]
and rcx, r11
tzcnt r10, rcx
cmovb r10, rcx
shl rax, 8
and r11, rdi
mov qword [rsp + 0xf0], r11
and rax, r11
movabs rcx, 0x3c3c3c3c3c3c3c00
and rcx, rax
popcnt rax, rcx
mov qword [rsp + 0x50], rax
movzx eax, byte [r12 + 0x36c]
mov byte [rsp + 0xc8], al
xor eax, eax
mov qword [rsp + 0x100], rax
xor r13d, r13d
jmp 0x1400146cf
mov r12, qword [rsp + 0x28]
mov rax, rcx
mov rdx, qword [rsp + 0x40]
and rax, rdx
or qword [rsp + 0xb8], rax
blsr r8, r8
or qword [rsp + 0x100], rcx
or rdx, rcx
mov qword [rsp + 0x40], rdx
and rcx, qword [rsp + 0x168]
popcnt rax, rcx
mov ecx, dword [rsp + 0x88]
lea rdx, [0x14008d6d0]
add ecx, dword [rdx + rax*4 + 0x80]
mov dword [rsp + 0x88], ecx
test r8, r8
je 0x14001490a
tzcnt rdx, r8
mov rax, rdx
shl rax, 5
lea rcx, [0x1400d8b00]
mov r15, qword [rax + rcx]
mov r9, qword [rax + rcx + 0x10]
mov rax, qword [rsp + 0xf8]
pext rax, rax, r15
mov eax, eax
mov rcx, qword [r9 + rax*8]
mov rax, qword [rsp + 0x78]
bt rax, rdx
jae 0x14001471e
mov rax, r10
shl rax, 9
lea r11, [0x1400c6f00]
add rax, r11
and rcx, qword [rax + rdx*8]
mov r12, qword [rsp + 0xb0]
mov eax, 1
shlx rax, rax, rdx
test rcx, r12
je 0x140014780
mov r14, qword [rsp + 0xa0]
inc r14d
mov qword [rsp + 0xa0], r14
mov r14, qword [rsp + 0xe0]
add r14d, 0x2e
mov qword [rsp + 0xe0], r14
mov r14, rcx
and r14, qword [rsp + 0x118]
popcnt r14, r14
add dword [rsp + 0xc4], r14d
pext r14, rdi, r15
mov r15d, r14d
jmp 0x140014797
pext r14, rdi, r15
mov r15d, r14d
test qword [r9 + r15*8], r12
lea ebp, [r13 + 0x18]
cmove ebp, r13d
mov r13d, ebp
mov r14, rax
movabs r12, 0xffffff0000
and r14, r12
and r14, qword [rsp + 0x80]
lea r12d, [r13 + 0x19001f]
test qword [rsp + 0x60], r14
cmove r12d, r13d
lea ebp, [r12 + 0x30012]
test qword [rsp + 0x68], rax
cmove ebp, r12d
mov r14, r10
shl r14, 6
lea r12, [0x1400c5f00]
add r14, r12
movzx r14d, byte [rdx + r14]
imul r14d, r14d, 0xfff6fff9
add r14d, ebp
mov r12, rax
and r12, qword [rsp + 0x128]
cmp r12, 1
mov ebp, 0
sbb ebp, ebp
sub ebp, dword [rsp + 0x50]
movabs r12, 0xaa55aa55aa55aa55
test rax, r12
mov rax, r12
movabs r12, 0x55aa55aa55aa55aa
cmove rax, r12
and rax, qword [rsp + 0xf0]
popcnt r13, rax
mov eax, edx
and eax, 7
mov r12d, eax
xor r12d, 7
cmp r12d, eax
cmovge r12d, eax
lea r11, [0x14008d8e0]
imul r13d, dword [r11 + r12*4]
imul r13d, ebp
add r13d, r14d
mov r9, qword [r9 + r15*8]
lea r14, [0x1400d6f00]
mov r14, qword [r14 + rdx*8 + 0x600]
and r14, qword [rsp + 0x30]
and r14, rdi
popcnt r14, r14
imul r14d, r14d, 0xfffafffc
movabs r15, 0x1818000000
and r9, r15
blsr r9, r9
lea r9d, [r13 + r14]
lea r13d, [r14 + r13 + 0x2d]
cmove r13d, r9d
cmp byte [rsp + 0xc8], 0
je 0x140014670
cmp edx, 0x3f
je 0x1400148be
cmp edx, 0x38
jne 0x140014670
xor r9d, r9d
test eax, eax
sete r9b
lea eax, [rdx + r9*2]
add eax, 0xfffffff7
mov r12, qword [rsp + 0x28]
cmp dword [r12 + rax*4], 9
jne 0x140014675
add eax, 0xfffffff8
lea edx, [r13 - 0xc800c8]
add r13d, 0xff69ff6a
cmp dword [r12 + rax*4], 0
cmovne r13d, edx
jmp 0x140014675
xor eax, eax
mov qword [rsp + 0x100], rax
xor r13d, r13d
mov rcx, qword [rsp + 0x30]
and rsi, rcx
mov qword [rsp + 0x1a8], r13
je 0x140014ca0
mov rdx, qword [r12 + 0x100]
mov r8, qword [r12 + 0x108]
mov rax, qword [r12 + 0x128]
xor rax, rdx
mov qword [rsp + 0x78], rax
mov rax, qword [r12 + 0x358]
mov rax, qword [rax + 0x40]
mov qword [rsp + 0x68], rax
mov r9, r8
shr r9, 8
mov qword [rsp + 0xf0], r9
or r9, qword [rsp + 0x108]
mov qword [rsp + 0x60], r9
mov r10, rcx
mov rcx, qword [rsp + 0xa8]
mov rcx, qword [rcx + 0x38]
not rcx
mov qword [rsp + 0x80], rcx
mov r9, qword [r12 + 0x130]
and r9, r10
tzcnt rcx, r9
cmovb rcx, r9
shr rdx, 8
movabs r9, 0x3c3c3c00000000
or r9, 0x3c3c3c3c
and r9, r10
and r9, r8
and r9, rdx
popcnt rdx, r9
mov qword [rsp + 0x50], rdx
movzx edx, byte [r12 + 0x36c]
mov byte [rsp + 0xc8], dl
xor edx, edx
mov qword [rsp + 0xf8], rdx
xor edx, edx
mov qword [rsp + 0xd0], rdx
mov r11, qword [rsp + 0xe8]
jmp 0x140014a63
mov qword [rsp + 0xd0], rdi
mov r11, qword [rsp + 0xe8]
mov rdx, r13
and rdx, rbx
or qword [rsp + 0xd8], rdx
blsr rsi, rsi
or qword [rsp + 0xf8], r13
or rbx, r13
and r13, qword [rsp + 0x150]
popcnt rdx, r13
mov r9, qword [rsp + 0x90]
lea r10, [0x14008d6d0]
add r9d, dword [r10 + rdx*4 + 0x80]
mov qword [rsp + 0x90], r9
test rsi, rsi
je 0x140014caa
tzcnt r15, rsi
mov rdx, r15
shl rdx, 5
lea r9, [0x1400d8b00]
mov rdi, qword [rdx + r9]
mov rdx, qword [rdx + r9 + 0x10]
mov r9, qword [rsp + 0x78]
pext r9, r9, rdi
mov r9d, r9d
mov r13, qword [rdx + r9*8]
mov r9, qword [rsp + 0x68]
bt r9, r15
jae 0x140014ab0
mov r9, rcx
shl r9, 9
lea rax, [0x1400c6f00]
add r9, rax
and r13, qword [r9 + r15*8]
mov r9d, 1
shlx r10, r9, r15
test r13, r11
je 0x140014b10
mov r9, qword [rsp + 0x58]
inc r9d
mov qword [rsp + 0x58], r9
mov r9, qword [rsp + 0x48]
add r9d, 0x2e
mov qword [rsp + 0x48], r9
mov r9, r13
and r9, qword [rsp + 0x130]
popcnt r9, r9
add dword [rsp + 0x74], r9d
pext r9, r8, rdi
mov edi, r9d
mov r14, qword [rsp + 0xd0]
jmp 0x140014b2f
pext r9, r8, rdi
mov edi, r9d
test qword [rdx + rdi*8], r11
mov r11, qword [rsp + 0xd0]
lea r9d, [r11 + 0x18]
cmove r9d, r11d
mov r14d, r9d
mov r9, r10
movabs r11, 0xffffff000000
and r9, r11
and r9, qword [rsp + 0x80]
lea r11d, [r14 + 0x19001f]
test qword [rsp + 0x60], r9
cmove r11d, r14d
lea ebp, [r11 + 0x30012]
test qword [rsp + 0xf0], r10
cmove ebp, r11d
mov r9, rcx
shl r9, 6
lea r11, [0x1400c5f00]
add r9, r11
movzx r9d, byte [r15 + r9]
imul r9d, r9d, 0xfff6fff9
add r9d, ebp
mov r11, r10
and r11, qword [rsp + 0x108]
cmp r11, 1
mov ebp, 0
sbb ebp, ebp
sub ebp, dword [rsp + 0x50]
movabs r11, 0xaa55aa55aa55aa55
test r10, r11
mov r10, r11
movabs r11, 0x55aa55aa55aa55aa
cmove r10, r11
mov r11, qword [rsp + 0x30]
and r11, r8
and r11, r10
popcnt r11, r11
mov r10d, r15d
and r10d, 7
mov r14d, r10d
xor r14d, 7
cmp r14d, r10d
cmovge r14d, r10d
lea rax, [0x14008d8e0]
imul r11d, dword [rax + r14*4]
imul r11d, ebp
add r11d, r9d
mov rdx, qword [rdx + rdi*8]
lea r9, [0x1400d6f00]
mov r9, qword [r9 + r15*8 + 0x600]
and r9, qword [rsp + 0x38]
and r9, r8
popcnt r9, r9
imul r9d, r9d, 0xfffafffc
movabs rdi, 0x1818000000
and rdx, rdi
blsr rdx, rdx
lea edx, [r11 + r9]
lea edi, [r9 + r11 + 0x2d]
cmove edi, edx
cmp byte [rsp + 0xc8], 0
je 0x140014a00
cmp r15d, 7
je 0x140014c5c
test r15d, r15d
jne 0x140014a00
xor edx, edx
test r10d, r10d
sete dl
lea edx, [r15 + rdx*2]
add edx, 7
cmp dword [r12 + rdx*4], 1
mov r11, qword [rsp + 0xe8]
jne 0x140014c93
mov edx, edx
lea r9d, [rdi - 0xc800c8]
add edi, 0xff69ff6a
cmp dword [r12 + rdx*4 + 0x20], 0
cmovne edi, r9d
mov qword [rsp + 0xd0], rdi
jmp 0x140014a10
xor eax, eax
mov qword [rsp + 0xf8], rax
mov r10, qword [r12 + 0x110]
mov rax, r10
mov rdi, qword [rsp + 0x38]
and rax, rdi
je 0x140014ef4
mov rcx, qword [r12 + 0x358]
mov rcx, qword [rcx + 0x48]
mov qword [rsp + 0x78], rcx
mov r11, qword [r12 + 0x108]
mov rcx, r11
shl rcx, 8
mov qword [rsp + 0x68], rcx
or rcx, qword [rsp + 0x128]
mov rdx, qword [rsp + 0xa8]
mov rdx, qword [rdx + 0x30]
movabs r9, 0xffffff0000
andn r9, rdx, r9
and r9, rcx
mov qword [rsp + 0x60], r11
andn r11, r11, qword [rsp + 0x30]
mov rcx, qword [r12 + 0x130]
and rcx, rdi
tzcnt rsi, rcx
cmovb rsi, rcx
not rdi
mov qword [rsp + 0x80], rdi
xor r15d, r15d
xor ebp, ebp
jmp 0x140014dd5
test r14, r14
je 0x140014ed4
add ebp, 0x220036
mov r12, qword [rsp + 0x28]
blsr rax, rax
or qword [rsp + 0xb8], rcx
or r15, rdi
or qword [rsp + 0x40], rdi
and rdi, qword [rsp + 0x168]
popcnt rcx, rdi
mov edi, dword [rsp + 0x88]
lea r14, [0x14008d6d0]
add edi, dword [r14 + rcx*4]
mov dword [rsp + 0x88], edi
lea ecx, [rbp + 0x30012]
test qword [rsp + 0x68], rdx
cmove ecx, ebp
mov rdx, rsi
shl rdx, 6
lea r8, [0x1400c5f00]
add rdx, r8
movzx edx, byte [r13 + rdx]
imul ebp, edx, 0xfff6fff7
add ebp, ecx
test rax, rax
je 0x140014ef9
tzcnt r13, rax
lea rcx, [0x1400d6f00]
mov rdi, qword [rcx + r13*8 + 0x400]
mov rcx, qword [rsp + 0x78]
bt rcx, r13
jae 0x140014e09
mov rcx, rsi
shl rcx, 9
lea rdx, [0x1400c6f00]
add rcx, rdx
and rdi, qword [rcx + r13*8]
mov rcx, qword [rsp + 0xb0]
test rdi, rcx
je 0x140014e52
mov rcx, qword [rsp + 0xa0]
inc ecx
mov qword [rsp + 0xa0], rcx
mov rcx, qword [rsp + 0xe0]
add ecx, 0x4c
mov qword [rsp + 0xe0], rcx
mov rcx, rdi
and rcx, qword [rsp + 0x118]
popcnt rcx, rcx
add dword [rsp + 0xc4], ecx
mov ecx, 1
shlx rdx, rcx, r13
mov rcx, rdi
and rcx, qword [rsp + 0x40]
mov r14, r9
and r14, rdx
test r11, rdi
jne 0x140014d50
mov r12, r14
movabs r8, 0xc3c3c30000
and r12, r8
je 0x140014d50
movabs r14, 0xf0f0f0f0f0f0f0f
test rdx, r14
mov r12, r15
movabs r15, 0xf0f0f0f0f0f0f0f0
cmove r14, r15
mov r15, r12
mov r12, r11
and r12, r14
blsr r12, r12
jne 0x140014d59
and r14, qword [rsp + 0x60]
popcnt r14, r14
mov r12, rbp
lea ebp, [r14 + r14*4]
shl ebp, 0x11
add ebp, r12d
jmp 0x140014eef
mov r14, rdi
and r14, qword [rsp + 0x80]
mov r12, rbp
add ebp, 0x130021
test r14, r9
cmove ebp, r12d
jmp 0x140014d5f
xor r15d, r15d
xor ebp, ebp
mov qword [rsp + 0x190], rbp
mov qword [rsp + 0xf0], r15
mov rcx, qword [rsp + 0x30]
and r10, rcx
je 0x14001513c
mov rax, qword [r12 + 0x358]
mov rbp, qword [rax + 0x40]
mov r8, qword [r12 + 0x108]
mov r9, rcx
mov rax, r8
shr rax, 8
mov qword [rsp + 0x78], rax
or rax, qword [rsp + 0x108]
mov rdx, qword [rsp + 0xa8]
mov rdx, qword [rdx + 0x38]
movabs r11, 0xffffff000000
andn rdx, rdx, r11
and rdx, rax
mov qword [rsp + 0x60], r8
andn r8, r8, qword [rsp + 0x38]
mov rax, qword [r12 + 0x130]
and rax, rcx
tzcnt r11, rax
cmovb r11, rax
not r9
mov qword [rsp + 0x80], r9
xor r15d, r15d
xor edi, edi
mov qword [rsp + 0x68], rbp
jmp 0x140015026
test r14, r14
je 0x140015108
add edi, 0x220036
mov r12, qword [rsp + 0x28]
blsr r10, r10
or qword [rsp + 0xd8], rax
or r15, r9
or rbx, r9
and r9, qword [rsp + 0x150]
popcnt rax, r9
mov r9, qword [rsp + 0x90]
lea r14, [0x14008d6d0]
add r9d, dword [r14 + rax*4]
mov qword [rsp + 0x90], r9
lea eax, [rdi + 0x30012]
test qword [rsp + 0x78], rsi
cmove eax, edi
mov r9, r11
shl r9, 6
lea rcx, [0x1400c5f00]
add r9, rcx
movzx r9d, byte [r13 + r9]
imul edi, r9d, 0xfff6fff7
add edi, eax
test r10, r10
je 0x14001512b
tzcnt r13, r10
lea rax, [0x1400d6f00]
mov r9, qword [rax + r13*8 + 0x400]
bt rbp, r13
jae 0x140015055
mov rax, r11
shl rax, 9
lea rcx, [0x1400c6f00]
add rax, rcx
and r9, qword [rax + r13*8]
test qword [rsp + 0xe8], r9
je 0x14001508c
mov rax, qword [rsp + 0x58]
inc eax
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x48]
add eax, 0x4c
mov qword [rsp + 0x48], rax
mov rax, r9
and rax, qword [rsp + 0x130]
popcnt rax, rax
add dword [rsp + 0x74], eax
mov eax, 1
shlx rsi, rax, r13
mov rax, r9
and rax, rbx
mov r14, rdx
and r14, rsi
test r8, r9
jne 0x140014fa0
mov r12, r14
movabs rcx, 0xc3c3c3000000
and r12, rcx
je 0x140014fa0
movabs r14, 0xf0f0f0f0f0f0f0f
test rsi, r14
mov r12, r15
movabs r15, 0xf0f0f0f0f0f0f0f0
cmove r14, r15
mov r15, r12
mov r12, r8
and r12, r14
blsr r12, r12
jne 0x140014fa9
and r14, qword [rsp + 0x60]
popcnt r14, r14
lea ebp, [r14 + r14*4]
shl ebp, 0x11
add ebp, edi
jmp 0x14001511f
mov r14, r9
and r14, qword [rsp + 0x80]
lea ebp, [rdi + 0x130021]
test r14, rdx
cmove ebp, edi
mov edi, ebp
mov rbp, qword [rsp + 0x68]
jmp 0x140014faf
mov rcx, qword [rsp + 0x30]
mov r10, qword [rsp + 0x38]
mov r13, qword [rsp + 0x60]
jmp 0x14001514e
mov r13, qword [r12 + 0x108]
xor r15d, r15d
xor edi, edi
mov r10, qword [rsp + 0x38]
movabs r14, 0xfefefefefefefe
movabs rsi, 0x7f7f7f7f7f7f00
mov rax, qword [rsp + 0xa8]
mov r8, qword [rax + 0x18]
mov rdx, r13
and rdx, rcx
shl rdx, 8
mov rax, rdx
mov r11, qword [rsp + 0xd8]
not r11
and rax, r8
mov qword [rsp + 0x138], rdx
je 0x1400151cb
mov r9, rcx
mov rcx, r13
and rcx, r10
shr rcx, 8
mov rdx, qword [rsp + 0x40]
or rdx, r11
andn rdx, r9, rdx
and rdx, rcx
not rax
mov rcx, rdx
shr rcx, 1
and rcx, rsi
or rcx, rax
add rdx, rdx
and rdx, r14
or rdx, rcx
and r8, rdx
test r8, r8
mov qword [rsp + 0x80], r15
mov qword [rsp + 0x1a0], r11
mov qword [rsp + 0x60], r13
je 0x140015473
mov rax, rbx
mov rdx, qword [rsp + 0x30]
or rax, rdx
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x128]
not rax
mov qword [rsp + 0x158], rax
mov rax, qword [r12 + 0x130]
mov rcx, rax
and rcx, rdx
tzcnt rdx, rcx
cmovb rdx, rcx
and rax, r10
tzcnt rcx, rax
cmovb rcx, rax
mov qword [rsp + 0x68], rcx
mov rax, qword [r12 + 0x128]
or rax, qword [rsp + 0x110]
mov qword [rsp + 0xc8], rax
xor r13d, r13d
lea r9, [0x14008d8f0]
shl rdx, 6
lea rax, [0x1400c5f00]
add rdx, rax
mov qword [rsp + 0x78], rdx
jmp 0x1400152a4
mov esi, ecx
lea r9, [0x14008d8f0]
blsr r8, r8
and r10d, 7
mov eax, r10d
xor eax, 7
cmp eax, r10d
cmovge eax, r10d
imul eax, eax, 0xfff7fff3
add r13d, esi
add r13d, eax
test r8, r8
je 0x140015476
tzcnt r10, r8
mov eax, r10d
shr eax, 3
xor eax, 7
mov esi, dword [r9 + rax*4]
cmp eax, 3
jb 0x140015279
mov r9d, r10d
mov rcx, qword [rsp + 0x78]
movzx ecx, byte [r9 + rcx - 8]
cmp cl, 5
jb 0x1400152d3
mov ecx, 5
mov rdx, qword [rsp + 0x68]
shl rdx, 6
lea r11, [0x1400c5f00]
add rdx, r11
movzx ebp, byte [r9 + rdx - 8]
cmp bpl, 5
jb 0x1400152f7
mov ebp, 5
lea r11d, [rax + rax*4]
add r11d, 0xfffffff3
lea r14d, [rcx + rcx*8]
lea ecx, [rcx + r14*2]
shr cl, 2
movzx ecx, cl
add bpl, bpl
movzx ebp, bpl
sub ecx, ebp
mov r14d, r11d
shl r14d, 0x10
imul ecx, r14d
add ecx, esi
cmp eax, 6
je 0x140015341
movzx eax, byte [r10 + rdx - 0x10]
cmp al, 5
jb 0x140015337
mov eax, 5
movzx eax, al
imul r14d, eax
sub ecx, r14d
add r9, 0xfffffffffffffff8
cmp dword [r12 + r9*4], 0
jne 0x140015270
mov r14d, r10d
and r14b, 0x38
mov ebp, r10d
and bpl, 7
movabs rax, 0x101010101010101
shlx rax, rax, rbp
mov rdx, 0xffffffffffffff00
shlx rsi, rdx, r14
and rsi, qword [rsp + 0xc8]
and rsi, rax
mov rdx, qword [rsp + 0x50]
test qword [rsp + 0x30], rsi
je 0x14001539a
movabs rdx, 0xffffffffffffff
xor r14b, 0x38
movabs r15, 0xffffffffffffff
shrx r12, r15, r14
movabs r14, 0x202020202020202
shlx r14, r14, rbp
movabs r15, 0xfefefefefefefe
and r14, r15
mov rbp, rax
shr rbp, 1
movabs r15, 0x7f7f7f7f7f7f00
add r15, 0x7f
and r15, rbp
or r14, rax
or r14, r15
and r14, r12
and r14, rdx
je 0x140015423
test qword [rsp + 0x158], r14
je 0x14001542a
and rdx, r12
test rdx, rax
je 0x140015431
bt r14, r9
mov eax, 7
mov r12, qword [rsp + 0x28]
mov r15, qword [rsp + 0x80]
jae 0x14001541a
xor eax, eax
test qword [rsp + 0x38], rsi
jne 0x140015455
jmp 0x14001544a
mov eax, 0x24
jmp 0x140015436
mov eax, 0x1e
jmp 0x140015436
mov eax, 0x11
mov r12, qword [rsp + 0x28]
mov r15, qword [rsp + 0x80]
test qword [rsp + 0x38], rsi
jne 0x140015455
mov rdx, qword [rsp + 0x40]
bt rdx, r9
jae 0x140015458
add eax, 5
lea r9, [0x14008d8f0]
imul r11d, eax
mov esi, r11d
shl esi, 0x10
add esi, ecx
add esi, r11d
jmp 0x140015279
xor r13d, r13d
mov rax, qword [rsp + 0xa8]
mov rax, qword [rax + 0x10]
mov r10, qword [rsp + 0x38]
mov r9, qword [rsp + 0x60]
and r9, r10
shr r9, 8
mov rdx, qword [rsp + 0xb8]
not rdx
and r9, rax
mov qword [rsp + 0x158], rdx
je 0x1400154f4
mov rcx, rbx
or rcx, rdx
andn rcx, r10, rcx
and rcx, qword [rsp + 0x138]
not r9
mov rdx, rcx
shr rdx, 1
movabs r8, 0x7f7f7f7f7f7f00
and rdx, r8
add rcx, rcx
movabs r8, 0xfefefefefefefe
add r8, 0xffffffffffffff02
and r8, rcx
or r8, rdx
or r8, r9
and rax, r8
mov rcx, qword [r12 + 0x130]
test rax, rax
je 0x14001577a
mov rdx, qword [rsp + 0x40]
or rdx, r10
mov qword [rsp + 0x60], rdx
mov rdx, qword [rsp + 0x108]
not rdx
mov qword [rsp + 0xc8], rdx
mov r9, rcx
and r9, r10
tzcnt rdx, r9
mov qword [rsp + 0x50], rdx
cmovae r9, rdx
and rcx, qword [rsp + 0x30]
tzcnt rdx, rcx
cmovb rdx, rcx
mov qword [rsp + 0x68], rdx
mov rcx, qword [rsp + 0x110]
or rcx, qword [r12 + 0x128]
mov qword [rsp + 0x110], rcx
xor esi, esi
lea r8, [0x14008d8f0]
shl r9, 6
lea rcx, [0x1400c5f00]
add r9, rcx
mov qword [rsp + 0x78], r9
mov r9d, 5
jmp 0x1400155c6
mov r10d, r9d
lea r8, [0x14008d8f0]
mov r9d, 5
blsr rax, rax
and edx, 7
mov ecx, edx
xor ecx, 7
cmp ecx, edx
cmovge ecx, edx
imul ecx, ecx, 0xfff7fff3
add esi, r10d
add esi, ecx
test rax, rax
je 0x14001576e
tzcnt rdx, rax
mov ecx, edx
shr ecx, 3
mov r10d, dword [r8 + rcx*4]
cmp edx, 0x18
jb 0x1400155a0
mov r8, qword [rsp + 0x78]
movzx r8d, byte [rdx + r8 + 8]
cmp r8b, 5
cmovae r8d, r9d
lea r11d, [rcx + rcx*4 - 0xd]
mov r14d, 5
lea r9d, [r8 + r8*8]
lea r8d, [r8 + r9*2]
shr r8b, 2
movzx r9d, r8b
mov r8, qword [rsp + 0x68]
shl r8, 6
lea rbp, [0x1400c5f00]
add r8, rbp
movzx ebp, byte [rdx + r8 + 8]
cmp bpl, 5
cmovae ebp, r14d
add bpl, bpl
movzx ebp, bpl
sub r9d, ebp
mov ebp, r11d
shl ebp, 0x10
imul r9d, ebp
add r9d, r10d
cmp ecx, 6
je 0x14001565a
movzx ecx, byte [rdx + r8 + 0x10]
cmp cl, 5
cmovae ecx, r14d
movzx ecx, cl
imul ebp, ecx
sub r9d, ebp
cmp dword [r12 + rdx*4 + 0x20], 0
jne 0x140015590
mov r10d, edx
and r10b, 0x38
mov rcx, 0xffffffffffffff00
shlx r12, rcx, r10
mov ecx, edx
and cl, 7
movabs r8, 0x101010101010101
shlx r8, r8, rcx
movabs r14, 0x202020202020202
shlx rcx, r14, rcx
movabs r14, 0xfefefefefefefe00
and rcx, r14
mov r14, r8
shr r14, 1
movabs rbp, 0x7f7f7f7f7f7f7f00
and r14, rbp
or rcx, r8
or rcx, r14
xor r10b, 0x38
movabs r14, 0xffffffffffffff
shrx r10, r14, r10
and r10, qword [rsp + 0x110]
and r10, r8
test qword [rsp + 0x38], r10
mov r14, 0xffffffffffffff00
cmove r14, qword [rsp + 0x60]
and rcx, r12
and rcx, r14
je 0x140015728
test qword [rsp + 0xc8], rcx
je 0x14001572f
and r14, r12
test r14, r8
je 0x140015736
shrx rcx, rcx, rdx
test ecx, 0x100
mov ecx, 0
mov r8d, 7
cmove ecx, r8d
jmp 0x14001573b
mov ecx, 0x24
jmp 0x14001573b
mov ecx, 0x1e
jmp 0x14001573b
mov ecx, 0x11
mov r12, qword [rsp + 0x28]
test qword [rsp + 0x30], r10
jne 0x140015755
shrx r8, rbx, rdx
test r8d, 0x100
je 0x140015758
add ecx, 5
imul r11d, ecx
mov r10d, r11d
shl r10d, 0x10
add r10d, r9d
add r10d, r11d
jmp 0x140015593
mov r10, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
jmp 0x140015784
and rcx, r10
tzcnt rcx, rcx
xor esi, esi
mov r14, qword [rsp + 0xa8]
cmp dword [r14 + 0x44], ecx
mov qword [rsp + 0x50], rcx
jne 0x1400157be
mov rax, qword [r12 + 0x358]
mov eax, dword [rax + 0x18]
and eax, 0xc
cmp dword [r14 + 0x54], eax
jne 0x1400157be
mov eax, dword [r14 + 0x4c]
mov qword [rsp + 0xc8], rax
mov r8, qword [rsp + 0x30]
jmp 0x1400157e5
mov rcx, r14
mov rdx, r12
call fcn.14002ea80
mov qword [rsp + 0xc8], rax
mov dword [r14 + 0x4c], eax
mov r8, qword [r12 + 0x140]
mov r10, qword [r12 + 0x148]
mov rdx, qword [rsp + 0x40]
not rdx
mov rax, qword [rsp + 0x148]
or rax, qword [rsp + 0x130]
or rax, rdx
mov rcx, qword [rsp + 0xb8]
andn rbp, rcx, rax
and rbp, rbx
mov rax, rbp
and rax, qword [rsp + 0xd8]
mov qword [rsp + 0x138], rdx
or rax, rdx
mov qword [rsp + 0x30], r8
andn r9, r8, rax
mov r14, qword [r12 + 0x100]
mov rcx, qword [r12 + 0x128]
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x38], r10
and rcx, r10
xor rcx, r14
mov r10d, dword [rsp + 0x50]
mov r8, r10
shl r8, 5
lea rdx, [0x1400d8300]
mov rax, qword [r8 + rdx + 0x10]
pext r11, rcx, qword [r8 + rdx]
mov r11d, r11d
mov rax, qword [rax + r11*8]
lea rdx, [0x1400d8b00]
mov r11, qword [r8 + rdx + 0x10]
pext rcx, rcx, qword [r8 + rdx]
mov ecx, ecx
mov r11, qword [r11 + rcx*8]
mov rcx, rax
and rcx, qword [rsp + 0x120]
mov r8, rcx
and r8, r9
mov qword [rsp + 0x78], r14
je 0x1400158bf
xor ecx, ecx
blsr r14, r8
setne cl
lea r14, [0x14008d910]
mov r14d, dword [r14 + rcx*4 + 0x20]
xor ecx, ecx
jmp 0x1400158c2
xor r14d, r14d
or rax, r11
or r8, qword [rsp + 0x148]
andn rax, r8, rax
and rax, qword [rsp + 0x140]
and rax, r9
je 0x140015903
xor r8d, r8d
mov rdx, r10
mov r10d, r14d
blsr r14, rax
setne r8b
lea r14, [0x14008d910]
add r10d, dword [r14 + r8*4 + 0x28]
mov r14d, r10d
mov r10, rdx
and r11, qword [rsp + 0xf8]
xor rax, r9
and rax, r11
je 0x14001592d
xor r8d, r8d
blsr rax, rax
setne r8b
lea rax, [0x14008d910]
add r14d, dword [rax + r8*4 + 0x18]
jmp 0x140015930
or rcx, r11
mov r11, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0x50]
lea rax, [0x1400d6f00]
mov rax, qword [rax + r10*8 + 0x400]
and rax, r15
and r9, rax
je 0x14001596c
xor eax, eax
blsr r8, r9
setne al
lea r8, [0x14008d910]
add r14d, dword [r8 + rax*4 + 0x10]
jmp 0x14001596f
or rcx, rax
mov dword [rsp + 0x110], r14d
and edx, 7
lea rax, str._a_a_a_a_a_a_a_a
mov rdx, qword [rax + rdx*8]
mov rax, rbx
and rax, rdx
and rax, 0xffffffffff000000
mov r8, qword [rsp + 0x40]
mov qword [rsp + 0x60], rdx
and r8, rdx
and r8, 0xffffffffff000000
popcnt r9, rax
and rax, qword [rsp + 0xd8]
popcnt r14, rax
add r14d, r9d
popcnt r10, r8
mov rdx, qword [rsp + 0x48]
imul edx, dword [rsp + 0x58]
and rbp, r11
popcnt rax, rbp
imul eax, eax, 0xb7
mov dword [rsp + 0x58], eax
popcnt rcx, rcx
mov rax, qword [r12 + 0x358]
mov qword [rsp + 0x50], rax
popcnt rax, qword [rax + 0x48]
imul r8d, ecx, 0x94
imul eax, eax, 0x62
imul ecx, dword [rsp + 0x74], 0x45
mov dword [rsp + 0x48], ecx
mov qword [rsp + 0xe8], r14
mov ecx, r14d
imul ecx, ecx
lea r9d, [rcx + rcx*2]
shr r9d, 3
mov rcx, qword [rsp + 0x90]
sub ecx, dword [rsp + 0x88]
mov r11, qword [rsp + 0xc8]
movsx r14d, r11w
add r14d, r14d
lea ebp, [r14 + r14*2]
lea r14d, [r14 + r14*2]
add r14d, 7
test ebp, ebp
cmovns r14d, ebp
sar r14d, 3
lea ebp, [rdx - 0x3f]
add edx, 0x25
mov r15, qword [rsp + 0xf0]
test qword [rsp + 0x130], r15
cmovne edx, ebp
movsx ecx, cx
add ecx, dword [rsp + 0x48]
add ecx, edx
add ecx, dword [rsp + 0x58]
sub ecx, r14d
add r8d, dword [rsp + 0x110]
add r8d, ecx
shl r10d, 2
sub r8d, r10d
lea ecx, [r8 + rax]
add eax, r8d
add eax, 0xfffffc97
cmp dword [r12 + 0x164], 0
cmovne eax, ecx
add eax, r9d
cmp eax, 0x65
jl 0x140015abe
mov ecx, eax
imul ecx, eax
shr ecx, 0xc
and eax, 0xfffffff0
shl eax, 0xc
add eax, ecx
sub r11d, eax
mov r15, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x68]
mov rax, qword [rsp + 0x60]
test qword [r12 + 0x108], rax
lea ecx, [r11 - 0x610013]
cmovne ecx, r11d
mov rax, qword [r12 + 0x130]
and rax, r15
tzcnt rax, rax
mov r14, qword [rsp + 0xa8]
mov qword [rsp + 0x58], rax
cmp dword [r14 + 0x40], eax
mov dword [rsp + 0x74], ecx
jne 0x140015b2d
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x18]
and eax, 3
cmp dword [r14 + 0x50], eax
jne 0x140015b2d
mov eax, dword [r14 + 0x48]
mov qword [rsp + 0x60], rax
mov r14, qword [rsp + 0x78]
jmp 0x140015b61
mov rcx, r14
mov rdx, r12
call fcn.14002e720
mov qword [rsp + 0x60], rax
mov dword [r14 + 0x48], eax
mov r15, qword [r12 + 0x140]
mov r14, qword [r12 + 0x100]
mov rbp, qword [r12 + 0x128]
mov r8, qword [r12 + 0x148]
mov r9, rbx
not r9
mov rax, qword [rsp + 0x140]
or rax, qword [rsp + 0x118]
or rax, r9
mov rcx, qword [rsp + 0xd8]
andn rdx, rcx, rax
and rdx, qword [rsp + 0x40]
mov rax, rdx
and rax, qword [rsp + 0xb8]
mov qword [rsp + 0x48], r9
or rax, r9
mov qword [rsp + 0x38], r8
andn r9, r8, rax
mov qword [rsp + 0x30], r15
mov rcx, r15
and rcx, rbp
mov qword [rsp + 0xc8], rcx
xor rcx, r14
mov r8d, dword [rsp + 0x58]
mov r10, r8
shl r10, 5
lea r11, [0x1400d8300]
pext rax, rcx, qword [r10 + r11]
mov r11, qword [r10 + r11 + 0x10]
mov eax, eax
mov rax, qword [r11 + rax*8]
lea r15, [0x1400d8b00]
mov r11, qword [r10 + r15 + 0x10]
pext rcx, rcx, qword [r10 + r15]
mov ecx, ecx
mov r11, qword [r11 + rcx*8]
mov rcx, rax
and rcx, qword [rsp + 0x160]
mov r10, rcx
and r10, r9
mov qword [rsp + 0x78], r14
je 0x140015c2d
xor ecx, ecx
blsr r14, r10
setne cl
lea r14, [0x14008d910]
mov r14d, dword [r14 + rcx*4 + 0x20]
xor ecx, ecx
jmp 0x140015c30
xor r14d, r14d
mov r15, qword [rsp + 0xf0]
or rax, r11
or r10, qword [rsp + 0x140]
andn rax, r10, rax
and rax, qword [rsp + 0x148]
and rax, r9
je 0x140015c89
xor r10d, r10d
mov qword [rsp + 0x50], r8
mov r8, r15
mov r15, rbp
mov ebp, r14d
blsr r14, rax
setne r10b
lea r14, [0x14008d910]
add ebp, dword [r14 + r10*4 + 0x28]
mov r14d, ebp
mov rbp, r15
mov r15, r8
mov r8, qword [rsp + 0x50]
and r11, qword [rsp + 0x100]
xor rax, r9
and rax, r11
je 0x140015cb3
xor r10d, r10d
blsr rax, rax
setne r10b
lea rax, [0x14008d910]
add r14d, dword [rax + r10*4 + 0x18]
jmp 0x140015cb6
or rcx, r11
lea rax, [0x1400d6f00]
mov rax, qword [rax + r8*8 + 0x400]
and rax, r15
and r9, rax
mov qword [rsp + 0x68], rbp
je 0x140015cf6
xor eax, eax
blsr r8, r9
setne al
lea r8, [0x14008d910]
add r14d, dword [r8 + rax*4 + 0x10]
mov dword [rsp + 0x50], r14d
lea rax, str._a_a_a_a_a_a_a_a
jmp 0x140015d05
or rcx, rax
lea rax, str._a_a_a_a_a_a_a_a
mov dword [rsp + 0x50], r14d
mov r8, qword [rsp + 0x58]
and r8d, 7
mov r9, qword [rax + r8*8]
movabs r8, 0xffffff0000
add r8, 0xffff
mov rax, qword [rsp + 0x40]
and rax, r8
and rax, r9
and r8, rbx
mov qword [rsp + 0x58], r9
and r8, r9
popcnt r9, rax
and rax, qword [rsp + 0xb8]
popcnt r10, rax
add r10d, r9d
popcnt r11, r8
mov r8, qword [rsp + 0xe0]
imul r8d, dword [rsp + 0xa0]
and rdx, qword [rsp + 0xb0]
popcnt rax, rdx
imul eax, eax, 0xb7
mov dword [rsp + 0xb0], eax
popcnt rax, rcx
imul edx, eax, 0x94
mov rax, qword [r12 + 0x358]
mov qword [rsp + 0xa0], rax
popcnt rax, qword [rax + 0x40]
imul r9d, eax, 0x62
imul ecx, dword [rsp + 0xc4], 0x45
mov qword [rsp + 0xe0], r10
mov eax, r10d
imul eax, eax
lea eax, [rax + rax*2]
shr eax, 3
mov ebp, dword [rsp + 0x88]
sub ebp, dword [rsp + 0x90]
mov r10, qword [rsp + 0x60]
movsx r14d, r10w
add r14d, r14d
lea r15d, [r14 + r14*2]
lea r14d, [r14 + r14*2]
add r14d, 7
test r15d, r15d
cmovns r14d, r15d
lea r15d, [r8 + rcx]
add ecx, r8d
add ecx, 0xffffff9c
sar r14d, 3
mov r8, qword [rsp + 0x80]
test qword [rsp + 0x118], r8
cmove ecx, r15d
movsx ebp, bp
add ecx, ebp
add ecx, dword [rsp + 0xb0]
sub ecx, r14d
add edx, dword [rsp + 0x50]
add edx, ecx
shl r11d, 2
sub edx, r11d
lea ecx, [rdx + r9]
add edx, r9d
add edx, 0xfffffc97
mov r14d, dword [r12 + 0x184]
test r14d, r14d
cmovne edx, ecx
add eax, edx
add eax, 0x25
cmp eax, 0x65
jl 0x140015e62
mov ecx, eax
imul ecx, eax
shr ecx, 0xc
and eax, 0xfffffff0
shl eax, 0xc
add eax, ecx
sub r10d, eax
mov r15, qword [rsp + 0x170]
mov rdx, qword [rsp + 0x198]
mov r9, qword [rsp + 0x190]
mov rbp, qword [r12 + 0x108]
test qword [rsp + 0x58], rbp
lea eax, [r10 - 0x610013]
cmovne eax, r10d
mov r11, qword [rsp + 0xe8]
sub r11d, dword [rsp + 0xe0]
mov ecx, dword [rsp + 0xc0]
add ecx, edx
mov rdx, qword [rsp + 0x178]
add edx, dword [rsp + 0x1b0]
mov r8, qword [rsp + 0x1b8]
add r8d, dword [rsp + 0xd0]
add r8d, ecx
mov rcx, qword [rsp + 0x1a8]
add ecx, dword [rsp + 0x88]
add ecx, edx
add ecx, r9d
sub r8d, ecx
mov rcx, qword [rsp + 0x90]
add ecx, edi
add ecx, esi
add ecx, r8d
add r13d, dword [rsp + 0x74]
sub ecx, r13d
lea ecx, [rcx + r11*8]
lea edx, [rax + rcx]
add edx, 0x8000
mov edi, ecx
add edi, eax
mov ecx, edx
sar ecx, 0x10
movsx eax, di
add eax, ecx
mov r8d, eax
neg r8d
cmovs r8d, eax
mov rax, qword [rsp + 0xa0]
mov r13d, dword [rax + 0x10]
mov r11d, dword [rax + 0x14]
mov eax, r13d
add eax, r11d
lea r9d, [r13 + r11 + 0x1f]
cmovns r9d, eax
sar r9d, 5
mov r10, qword [r12 + 0x350]
mov r10d, dword [r10 + 0x158]
mov esi, r10d
neg esi
cmovs esi, r10d
lea r10d, [rsi + rsi*4]
shr r10d, 2
add r9d, r10d
add r9d, 0x7aa
cmp r8d, r9d
mov dword [rsp + 0xc0], edi
jle 0x140015f90
mov rbx, qword [rsp + 0xa8]
mov r9, qword [rsp + 0x30]
mov r10, qword [rsp + 0x38]
jmp 0x1400166d8
mov dword [rsp + 0x90], r14d
xor edx, edx
mov r14d, 0
mov r8d, 0
cmp eax, 0x2d1f
mov r10, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x138]
jl 0x1400160ac
mov rax, rbp
and rax, r10
mov rcx, qword [rsp + 0x108]
not rcx
andn rcx, rax, rcx
movabs r8, 0x3c3c3c00000000
and r8, rcx
mov rcx, rax
shl rcx, 8
or rcx, rax
mov rax, rcx
shl rax, 0x10
or rax, rcx
popcnt rcx, r8
and r8, qword [rsp + 0x48]
and r8, rax
popcnt rax, r8
add eax, ecx
mov rcx, qword [rsp + 0xa8]
mov r8d, dword [rcx + 0x58]
cmp r8d, 9
mov ecx, 9
cmovl ecx, r8d
add ecx, 0xfffffffd
mov r8d, dword [r12 + 0x170]
add r8d, ecx
imul r8d, r8d
imul r8d, eax
lea r14d, [r8 + 0xf]
test r8d, r8d
cmovns r14d, r8d
sar r14d, 4
neg r14d
mov rax, rbp
and rax, qword [rsp + 0x30]
mov r8, qword [rsp + 0x128]
not r8d
andn r8d, eax, r8d
and r8d, 0x3c3c3c00
mov r9, rax
shr r9, 8
or r9, rax
mov rax, r9
shr rax, 0x10
or eax, r9d
popcnt r9, r8
and r8d, esi
and r8d, eax
popcnt rax, r8
add ecx, dword [r12 + 0x150]
add eax, r9d
imul ecx, ecx
imul ecx, eax
lea r8d, [rcx + 0xf]
test ecx, ecx
cmovns r8d, ecx
sar r8d, 4
mov dword [rsp + 0xa0], r8d
mov r8, qword [rsp + 0x30]
andn rcx, rbp, r8
mov r9, qword [rsp + 0x158]
and r9, qword [rsp + 0xd8]
or r9, qword [rsp + 0x108]
mov rax, rcx
and rax, r9
mov qword [rsp + 0x158], r9
andn r15, r9, qword [rsp + 0x40]
and r8, r15
or rax, r8
je 0x1400161bc
mov rdx, qword [rsp + 0xf0]
or rdx, qword [rsp + 0x100]
and rax, rdx
je 0x14001613a
xor edx, edx
lea r9, [0x14008d980]
nop word cs:[rax + rax]
tzcnt r10, rax
mov r10d, dword [r12 + r10*4]
and r10d, 7
add edx, dword [r9 + r10*4]
blsr rax, rax
jne 0x140016120
jmp 0x14001613c
xor edx, edx
mov rax, r8
and rax, qword [rsp + 0x160]
je 0x140016168
lea r9, [0x14008d9a0]
tzcnt r10, rax
mov r10d, dword [r12 + r10*4]
and r10d, 7
add edx, dword [r9 + r10*4]
blsr rax, rax
jne 0x140016150
lea eax, [rdx + 0x570018]
test qword [rsp + 0x130], r8
cmove eax, edx
mov rdx, rcx
and rdx, qword [rsp + 0xb8]
or rdx, qword [rsp + 0x48]
and rdx, r8
popcnt rdx, rdx
imul r9d, edx, 0x280048
mov rdx, qword [rsp + 0x140]
and rdx, r8
popcnt rdx, rdx
lea r8d, [rdx + rdx]
shl edx, 4
sub edx, r8d
add edx, r9d
add edx, eax
mov r10, qword [rsp + 0x38]
mov qword [rsp + 0x88], r14
mov r14, qword [rsp + 0x48]
or r14, qword [rsp + 0x40]
mov r9, rbp
and r9, r10
mov rax, r9
and rax, r14
mov r8, rax
shr r8, 9
movabs r10, 0x7f7f7f7f7f7f00
add r10, 0x7f
and r10, r8
shr rax, 7
movabs r8, 0xfefefefefefefe
and rax, r8
and r15, rbx
popcnt r8, r15
imul r8d, r8d, 0x70006
or rax, r10
and rax, rcx
popcnt rax, rax
imul eax, eax, 0x6300a7
add eax, r8d
add eax, edx
mov rdx, r9
shr rdx, 8
mov rsi, qword [rsp + 0x78]
andn r8, rsi, rdx
shr r8, 8
movabs r10, 0xff00000000
and r10, r8
or r10, rdx
mov rdx, qword [rsp + 0x108]
or rdx, rsi
andn rdx, rdx, r10
and rdx, r14
mov r8, rdx
shr r8, 9
movabs r10, 0x7f7f7f7f7f7f
and r10, r8
shr rdx, 7
movabs r8, 0xfefefefefefe
and r8, rdx
or r8, r10
and r8, rcx
mov rdx, rbp
not rdx
popcnt rcx, r8
imul r8d, ecx, 0x270030
add r8d, eax
mov eax, dword [r12 + 0x164]
cmp eax, 1
mov qword [rsp + 0xb0], rbp
mov dword [rsp + 0x58], eax
jne 0x140016384
cmp dword [rsp + 0x90], 0
sete al
or r9, qword [rsp + 0x158]
mov rdi, qword [rsp + 0xc8]
tzcnt r10, rdi
andn r9, r9, qword [rsp + 0x168]
test rdi, rdi
cmove r10, rdi
lea rdi, [0x1400d6f00]
mov rbp, qword [rsp + 0xf0]
and rbp, qword [rdi + r10*8 + 0x400]
shl r10, 5
lea rdi, [0x1400d8b00]
mov r14, qword [r10 + rdi + 0x10]
pext r15, rsi, qword [r10 + rdi]
mov r15d, r15d
mov r12, qword [rsp + 0x100]
and r12, qword [r14 + r15*8]
lea rdi, [0x1400d8300]
pext r14, rsi, qword [r10 + rdi]
mov r10, qword [r10 + rdi + 0x10]
mov r14d, r14d
mov rdi, qword [rsp + 0x160]
and rdi, qword [r10 + r14*8]
or rdi, r12
and rbp, r9
mov r14, qword [rsp + 0xb8]
and r9, r14
and r9, rdi
popcnt r10, rbp
imul r10d, r10d, 0xb0010
popcnt r9, r9
imul r9d, r9d, 0x15003e
add r9d, r10d
shlx eax, r9d, eax
add r8d, eax
jmp 0x14001638c
mov r14, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0x38]
mov r9, rsi
not r9
and rdx, rdi
and r14, qword [rsp + 0x1a0]
or r14, qword [rsp + 0x128]
mov rax, rdx
and rax, r14
andn r15, r14, rbx
and rdi, r15
or rax, rdi
mov qword [rsp + 0xb8], r14
je 0x140016419
mov r10, qword [rsp + 0x80]
or r10, qword [rsp + 0xf8]
and rax, r10
je 0x140016432
xor r10d, r10d
lea r14, [0x14008d980]
mov r12, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x138]
nop word cs:[rax + rax]
tzcnt rbp, rax
mov ebp, dword [r12 + rbp*4]
and ebp, 7
add r10d, dword [r14 + rbp*4]
blsr rax, rax
jne 0x140016400
jmp 0x14001643d
xor eax, eax
mov r12, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x138]
jmp 0x1400164d2
xor r10d, r10d
mov rsi, qword [rsp + 0x138]
mov rax, rdi
and rax, qword [rsp + 0x120]
je 0x140016479
lea r14, [0x14008d9a0]
mov r12, qword [rsp + 0x28]
nop word cs:[rax + rax]
tzcnt rbp, rax
mov ebp, dword [r12 + rbp*4]
and ebp, 7
add r10d, dword [r14 + rbp*4]
blsr rax, rax
jne 0x140016460
jmp 0x14001647e
mov r12, qword [rsp + 0x28]
lea ebp, [r10 + 0x570018]
test qword [rsp + 0x118], rdi
cmove ebp, r10d
mov rax, rdx
and rax, qword [rsp + 0xd8]
or rax, rsi
and rax, rdi
popcnt rax, rax
imul r10d, eax, 0x280048
mov rax, qword [rsp + 0x148]
and rax, rdi
popcnt rax, rax
lea r14d, [rax + rax]
shl eax, 4
sub eax, r14d
add eax, r10d
add eax, ebp
mov rcx, qword [rsp + 0x30]
and r15, qword [rsp + 0x40]
popcnt r10, r15
imul ebp, r10d, 0x70006
or rbx, rsi
mov r14, qword [rsp + 0xb0]
and r14, rcx
mov r10, r14
and r10, rbx
mov r15, r10
shl r15, 7
movabs rdi, 0x7f7f7f7f7f7f7f00
and r15, rdi
shl r10, 9
movabs rcx, 0xfefefefefefefe00
and r10, rcx
or r10, r15
and r10, rdx
popcnt r10, r10
imul r10d, r10d, 0x6300a7
add r10d, ebp
add r10d, eax
mov rax, r14
shl rax, 8
and r9d, eax
shl r9d, 8
and r9d, 0xff000000
or r9, rax
mov rax, qword [rsp + 0x128]
mov rsi, qword [rsp + 0x78]
or rax, rsi
andn rax, rax, r9
and rax, rbx
mov r9, rax
shl r9, 7
add rdi, 0xffffffffffff8100
and rdi, r9
shl rax, 9
add rcx, 0xffffffffffff0200
and rcx, rax
or rcx, rdi
and rcx, rdx
popcnt rax, rcx
imul edx, eax, 0x270030
add edx, r10d
cmp dword [rsp + 0x90], 1
jne 0x140016680
cmp dword [rsp + 0x58], 0
sete al
or r14, qword [rsp + 0xb8]
mov r15, qword [rsp + 0x38]
mov r10, qword [rsp + 0x68]
and r10, r15
andn rcx, r14, qword [rsp + 0x150]
tzcnt r9, r10
test r10, r10
cmove r9, r10
lea r10, [0x1400d6f00]
mov rbp, qword [rsp + 0x80]
and rbp, qword [r10 + r9*8 + 0x400]
shl r9, 5
lea rdi, [0x1400d8b00]
mov r10, qword [r9 + rdi + 0x10]
pext rbx, rsi, qword [r9 + rdi]
mov ebx, ebx
mov r14, qword [rsp + 0xf8]
and r14, qword [r10 + rbx*8]
lea rdi, [0x1400d8300]
pext r10, rsi, qword [r9 + rdi]
mov r9, qword [r9 + rdi + 0x10]
mov r10d, r10d
mov rbx, qword [rsp + 0x120]
and rbx, qword [r9 + r10*8]
mov r10, r15
or rbx, r14
and rbp, rcx
mov r9, qword [rsp + 0xd8]
and r9, rcx
and r9, rbx
popcnt rcx, rbp
imul ecx, ecx, 0xb0010
popcnt r9, r9
imul r9d, r9d, 0x15003e
add r9d, ecx
shlx eax, r9d, eax
add eax, edx
mov edx, eax
mov r15, qword [rsp + 0x170]
mov rbx, qword [rsp + 0xa8]
jmp 0x140016695
mov r15, qword [rsp + 0x170]
mov rbx, qword [rsp + 0xa8]
mov r10, qword [rsp + 0x38]
mov rbp, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0xa0]
mov r9d, dword [rsp + 0xc0]
add ecx, r9d
add ecx, eax
sub ecx, r8d
lea eax, [rcx + rdx]
mov dword [rsp + 0xc0], eax
add edx, ecx
add edx, 0x8000
mov ecx, edx
sar ecx, 0x10
mov r9, qword [rsp + 0x30]
mov rax, qword [r12 + 0x130]
and r10, rax
tzcnt r8, r10
and r9, rax
tzcnt r10, r9
mov eax, r10d
and eax, 7
mov r9d, r8d
and r9d, 7
sub eax, r9d
mov r9d, eax
neg r9d
cmovs r9d, eax
mov eax, r10d
shr eax, 3
mov esi, r8d
shr esi, 3
sub eax, esi
add eax, r9d
movabs r9, 0xf0f0f0f0f0f0f0f
test rbp, r9
setne r9b
movabs rsi, 0xf0f0f0f0f0f0f0f0
test rbp, rsi
setne bpl
and bpl, r9b
xor r9d, r9d
cmp r8d, 0x20
mov esi, 0x18
mov r8d, 0
cmovb r8d, esi
cmp r10d, 0x20
cmovae r8d, esi
mov r10, qword [rbx + 0x18]
or r10, qword [rbx + 0x10]
popcnt r10, r10
mov esi, dword [r12 + 0x174]
add esi, dword [r12 + 0x154]
add r13d, r11d
mov r11d, 0x33
cmovne r11d, r9d
test eax, eax
mov r14d, 0xffffffd5
cmovns r14d, r9d
lea esi, [rsi + rsi*2]
add r10d, eax
lea eax, [r11 + 0x15]
test bpl, bpl
cmovne r14d, r9d
cmove eax, r11d
lea r9d, [r10 + r10*8]
lea edi, [rax + rsi*4]
add edi, r8d
add edi, r9d
lea eax, [r14 + rdi]
add eax, 0xffffff92
mov r8d, edx
sar r8d, 0x1f
xor r9d, r9d
cmp edx, 0x10000
setae r9b
or r9d, r8d
mov esi, ecx
neg esi
cmovns esi, ecx
cmp eax, esi
cmovg esi, eax
imul esi, r9d
xor ebx, ebx
add esi, ecx
setle bl
mov r13, qword [rsp + 0x1c0]
mov rcx, qword [r13 + rbx*8 + 0x10]
test rcx, rcx
je 0x14001680d
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 8]
cmp eax, 0xff
jne 0x140016813
movzx eax, byte [r13 + rbx + 0x26]
add edi, r14d
cmp eax, 0x40
mov r14d, dword [rsp + 0x18c]
movzx r12d, byte [rsp + 0x9f]
jne 0x140016a4a
mov rax, qword [rsp + 0x28]
mov ecx, dword [rax + 0x15c]
mov edx, dword [rax + 0x17c]
movzx eax, bpl
cmp ecx, 1
jne 0x1400168d7
cmp edx, 1
jne 0x1400168d7
mov r11, qword [rsp + 0x28]
mov r8, qword [r11 + 0x118]
mov r9, qword [r11 + 0x148]
and r9, r8
tzcnt r9, r9
and r8, qword [r11 + 0x140]
tzcnt r8, r8
mov r10d, r8d
shr r10d, 3
add r8d, r9d
shr r9d, 3
add r9d, r8d
add r9d, r10d
mov r8, qword [r11 + 0x358]
test r9b, 1
je 0x1400168e3
cmp dword [r8 + 0x10], 0x339
jne 0x140016a24
cmp dword [r8 + 0x14], 0x339
jne 0x140016a24
mov rcx, qword [rsp + 0xa8]
popcnt rcx, qword [rcx + rbx*8 + 0x10]
lea r8d, [rcx*4 + 0x12]
jmp 0x140016a43
mov r8, qword [rsp + 0x28]
mov r8, qword [r8 + 0x358]
cmp dword [r8 + 0x10], 0x4fc
jne 0x1400169b1
cmp dword [r8 + 0x14], 0x4fc
jne 0x1400169b1
xor r8d, r8d
xor r9d, r9d
test esi, esi
setg r8b
setle r9b
shl r9, 5
mov r11, qword [rsp + 0x28]
mov r9d, dword [r11 + r9 + 0x154]
mov r10, r8
shl r10, 5
sub r9d, dword [r11 + r10 + 0x154]
cmp r9d, 1
jg 0x1400169b1
mov r10, qword [rsp + 0x28]
mov r9, qword [r10 + 0x108]
mov r10, qword [r10 + rbx*8 + 0x140]
and r10, r9
movabs r11, 0xf0f0f0f0f0f0f0f0
test r10, r11
sete r11b
movabs rbx, 0xf0f0f0f0f0f0f0f
test r10, rbx
setne r10b
xor r10b, r11b
jne 0x1400169b1
mov r11, qword [rsp + 0x28]
mov r10, qword [r11 + r8*8 + 0x140]
mov r8, qword [r11 + 0x130]
and r8, r10
tzcnt r11, r8
cmovb r11, r8
lea r8, [0x1400d6f00]
and r9, qword [r8 + r11*8 + 0xc00]
mov r8d, 0x24
test r9, r10
jne 0x140016a43
mov r10, qword [rsp + 0x28]
mov r8d, dword [r10 + 0x164]
mov r9d, dword [r10 + 0x184]
add r9d, r8d
cmp r9d, 1
jne 0x1400169f3
lea r9, [r10 + 0x158]
add r10, 0x178
cmp r8d, 1
cmove ecx, edx
cmove r9, r10
add ecx, dword [r9]
lea r8d, [rcx + rcx*2]
add r8d, 0x25
jmp 0x140016a43
xor ecx, ecx
test esi, esi
setle cl
shl rcx, 5
mov ecx, dword [r10 + rcx + 0x154]
lea edx, [rcx*8]
sub edx, ecx
cmp edx, 0x1c
mov ecx, 0x1c
cmovl ecx, edx
lea r8d, [rcx + rax*4]
add r8d, 0x20
jmp 0x140016a43
xor ecx, ecx
test esi, esi
setle cl
shl rcx, 5
mov rdx, qword [rsp + 0x28]
mov ecx, dword [rdx + rcx + 0x150]
lea r8d, [rcx + rcx*2]
add r8d, 0x16
lea eax, [r8 + rax*4]
add eax, 0xfffffffc
mov edx, dword [rsp + 0xc0]
mov ecx, edx
shl ecx, 0x10
movsx edx, dx
mov r8d, ecx
sar r8d, 0x1f
xor r9d, r9d
test ecx, ecx
setne r9b
or r9d, r8d
mov ecx, edx
neg ecx
cmovns ecx, edx
lea r8d, [rdi - 0x3c]
cmp r8d, ecx
cmovg ecx, r8d
xor r8d, r8d
cmp edi, 0x3d
cmovl r8d, ecx
imul r8d, r9d
add r8d, edx
movsx ecx, word [r13 + 0x24]
mov edx, 0x80
sub edx, ecx
imul esi, edx
imul esi, eax
lea eax, [rsi + 0x3f]
test esi, esi
cmovns eax, esi
sar eax, 6
imul r8d, ecx
lea ecx, [rax + r8]
add ecx, 0x7ff
add eax, r8d
cmovns ecx, eax
sar ecx, 0xb
shl ecx, 4
mov eax, ecx
neg eax
mov rbp, qword [rsp + 0x28]
cmp dword [rbp + 0x364], 0
cmove eax, ecx
mov rcx, qword [rbp + 0x358]
mov edx, 0xc8
sub edx, dword [rcx + 0x1c]
imul edx, eax
movsxd rax, edx
imul rax, rax, 0x4c8f8d29
mov rcx, rax
shr rcx, 0x3f
sar rax, 0x26
add eax, ecx
cmp eax, 0xffff84ee
mov ecx, 0xffff84ed
cmovge ecx, eax
cmp ecx, 0x7b13
mov eax, 0x7b13
cmovl eax, ecx
test r15, r15
sete cl
or cl, r12b
jne 0x140016b37
mov ecx, eax
sub ecx, r14d
mov edx, ecx
neg edx
cmovs edx, ecx
mov dword [r15], edx
add rsp, 0x1c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret