Function at 0x140027620
Capabilities:
Encode data using base64
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x9e8
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp + 0x950], xmm6
mov qword [rbp + 0x948], 0xfffffffffffffffe
mov rdi, rcx
mov dword [rbp + 0x8e8], 0
mov rax, qword [rcx + 0x3e80]
mov ebx, dword [rax + 0xa58]
mov eax, dword [rax + 0xa5c]
mov qword [rbp + 0x920], rax
mov ecx, dword [rcx + 0x3e7c]
lea eax, [rcx + 1]
mov dword [rdi + 0x3e7c], eax
cmp ecx, 0x10
mov qword [rbp + 0x940], rdi
jge 0x140028d3f
cmp dword [rdi + 0x3e78], 0
mov rsi, qword [rdi + 0x3e80]
jne 0x14002a4d9
lea rcx, [rdi + 0x20]
cmp dword [rsi + 0xa58], 0x3d
mov qword [rbp + 0x930], rcx
jge 0x14002a4e1
lea rdx, [rbp + 0x8dc]
mov r8d, ebx
call fcn.14002b650
mov rcx, qword [rdi + 0x3e80]
test al, al
jne 0x140029ec8
mov eax, dword [rcx + 0xa58]
lea r13d, [rax - 0x7d00]
mov edx, dword [rcx + 4]
mov r8d, dword [rcx + 8]
cmp edx, r13d
cmovg r13d, edx
mov edx, 0x7cff
sub edx, eax
cmp edx, r8d
cmovge edx, r8d
cmp r13d, edx
jge 0x14002a13d
mov rdx, qword [rbp + 0x940]
cmp byte [rdx + 0x203368], 0
je 0x14002a52f
mov eax, dword [rdx + 0x13c]
add eax, dword [rdx + 0x130]
cmp eax, dword [0x140236fc8]
jle 0x1400296ef
xor eax, eax
movzx esi, al
movsxd rax, ebx
mov qword [rbp + 0x8e0], rax
test byte [rcx + 0x1c], 1
movabs r12, 0x7f030000ffff82ff
mov dword [rbp + 0x8fc], ebx
mov qword [rbp + 0x928], r12
jne 0x140029520
cmp qword [rcx + 0x30], 0x7f7f
mov r8d, dword [rbp + 0x8dc]
mov r14d, 5
mov eax, 0xffff82ff
mov qword [rbp + 0x900], rax
mov edi, 0x7f7f
jne 0x1400277aa
mov rax, qword [rbp + 0x940]
mov rcx, qword [rax + 0x10]
cmp qword [rcx + 8], 0
jne 0x14002a599
xor r15d, r15d
test r8d, r8d
sete cl
test esi, esi
jne 0x1400277b9
xor ecx, ecx
mov rax, qword [rbp + 0x940]
mov rax, qword [rax + 0x3e80]
test cl, cl
mov dword [rbp + 0x910], r8d
jne 0x140029f3d
mov rdx, qword [rax - 0x1af8]
mov rcx, qword [rbp + 0x930]
call fcn.14002d1e0
mov dword [rbp + 0x8ec], eax
mov r8, qword [rbp + 0x940]
mov rax, qword [r8 + 0x3e80]
mov dword [rax + 0x3c], 0xffff82ff
mov rax, qword [r8 + 0x3e80]
mov dword [rax + 0x38], 0xffff82ff
test r15b, r15b
jne 0x14002a536
mov rdx, qword [r8 + 0x3e80]
cmp dword [rdx + 0x38], 0xffff82ff
jne 0x1400278b1
cmp byte [r8 + 0x2033a5], 0
jne 0x140027869
movsxd rax, dword [r8 + 0x140]
mov ecx, 1
sub rcx, rax
lea rax, [rax + rax*2]
lea rcx, [rcx + rcx*2]
mov ecx, dword [r8 + rcx*4 + 0x130]
add ecx, dword [r8 + rax*4 + 0x130]
cmp ecx, 8
jl 0x140028d20
cmp byte [0x140236f1c], 0
je 0x140028d20
cmp byte [0x140236950], 0
je 0x140028d20
mov rcx, qword [rbp + 0x930]
call fcn.14002bad0
mov rdx, qword [rbp + 0x940]
mov rcx, qword [rdx + 0x3e80]
mov dword [rcx + 0x3c], eax
mov rcx, qword [rdx + 0x3e80]
mov dword [rcx + 0x38], eax
mov rdx, qword [rdx + 0x3e80]
test r15b, r15b
jne 0x14002a562
cmp dword [rbp + 0x8ec], 1
je 0x140028d16
mov eax, dword [rdx + 4]
inc eax
cmp dword [rdx + 8], eax
jg 0x140029509
test byte [rdx + 0x1c], 3
sete al
cmp ebx, 3
jl 0x140029518
mov ecx, dword [rdx - 0x3604]
cmp ecx, 0xffff82ff
je 0x140029518
cmp dword [rdx + 0x3c], ecx
setge r8b
mov ecx, dword [rdx + 0xa58]
inc ecx
mov rdx, qword [rbp + 0x940]
mov qword [rdx + rcx*8 + 0x3c50], 0x7f7f
mov qword [rdx + rcx*8 + 0x3a50], 0x7f7f
mov r12, qword [rdx + 0x3e80]
mov dword [rbp + 0x8a4], r8d
movzx ecx, r8b
mov qword [rbp + 0x8c8], rcx
test al, al
je 0x14002799e
cmp dword [rbp + 0x920], 0xa
jg 0x14002799e
lea rdx, [0x1400d0600]
mov rcx, qword [rbp + 0x920]
mov r8d, ecx
shr r8d, 0x1f
add r8d, ecx
sar r8d, 1
cmp r8d, 2
mov ecx, 1
cmovge ecx, r8d
mov r8, qword [rbp + 0x8c8]
imul ecx, dword [rdx + r8*4]
mov edx, dword [r12 + 8]
add edx, ecx
mov ebx, dword [r12 + 0x38]
cmp ebx, edx
jl 0x14002799e
cmp ebx, 0x7c00
jge 0x14002799e
sub ebx, ecx
jmp 0x14002a2a0
mov rbx, qword [rbp + 0x920]
cmp ebx, 4
setge cl
and al, cl
cmp al, 1
je 0x1400289db
mov r10, rdi
mov eax, dword [r12 + 4]
mov ecx, dword [r12 + 8]
inc eax
cmp ecx, eax
jg 0x1400279d1
cmp ebx, 0xa
jge 0x140028e49
mov r14d, r13d
cmp r10, 0x7f7f
jne 0x140027a06
mov eax, dword [r12 + 4]
inc eax
xor ecx, ecx
cmp dword [r12 + 8], eax
setg cl
lea rdx, [0x1400d0468]
mov r10d, 0x7f7f
mov eax, ebx
sub eax, dword [rdx + rcx*4]
jge 0x140029543
mov rax, qword [rbp + 0x940]
movdqu xmm0, xmmword [rax + 0x148]
movups xmm1, xmmword [rax + 0x158]
movaps xmmword [rbp + 0x890], xmm1
movdqa xmmword [rbp + 0x880], xmm0
mov dword [rbp + 0x918], 0
cmp ebx, 0x10
jl 0x140027a47
cmp dword [rbp + 0x8fc], 0
jg 0x140029dab
mov rdx, qword [rbp + 0x940]
lea r9, [rdx + 0x3a48]
mov rax, qword [rdx + 0x203348]
xor ecx, ecx
cmp dword [rax + 0xc8], 0
sete cl
lea rax, vtable.MoveGenerator.0
mov qword [rbp - 0x30], rax
mov rax, qword [rbp + 0x930]
mov qword [rbp - 0x28], rax
mov qword [rbp + 0x8b8], r9
mov qword [rbp - 0x20], r9
mov qword [rbp - 0x18], r12
mov eax, dword [rbp + 0x8fc]
mov dword [rbp - 0x10], eax
pxor xmm0, xmm0
movdqu xmmword [rbp - 0xc], xmm0
movdqu xmmword [rbp], xmm0
mov qword [rbp + 0x10], r10
mov qword [rbp + 0x18], 0
movabs rax, 0x7f00000000
mov qword [rbp + 0x20], rax
mov dword [rbp + 0x860], ecx
mov eax, dword [rdx + 0x3e78]
test eax, eax
sete cl
cmp dword [r12 + 0xc], 0
jne 0x14002a6cd
mov qword [rbp + 0x8d0], r10
test cl, cl
je 0x14002a177
lea eax, [rbx - 2]
mov dword [rbp + 0x938], eax
mov rax, qword [rbp + 0x8c8]
xor al, 1
movzx eax, al
lea eax, [rax + rax + 4]
mov dword [rbp + 0x8f8], eax
mov rax, qword [rbp + 0x8e0]
inc eax
mov dword [rbp + 0x93c], eax
mov eax, 0x7cff
sub eax, dword [rbp + 0x8fc]
mov dword [rbp + 0x8c4], eax
pcmpeqd xmm6, xmm6
nop dword [rax]
cmp dword [r12 + 0x18], 0
je 0x1400281e6
mov eax, dword [r12]
inc eax
mov dword [rbp + 0x928], eax
cmp dword [rbp + 0x8ec], 1
je 0x1400288d8
mov eax, dword [rbp + 4]
cmp dword [rbp - 4], eax
jge 0x140027df1
cmp dword [rbp + 0xc], 2
je 0x1400286b2
mov rax, qword [rbp - 4]
mov rcx, qword [rbp + 0x28]
movq xmm0, rax
psubd xmm0, xmm6
movsxd rdx, eax
shr rax, 0x20
mov dword [rbp + 0x8e8], eax
movq qword [rbp - 4], xmm0
mov rbx, qword [rcx + rdx*8]
cmp rbx, 0x7f7f
je 0x14002a163
bt rbx, 0x30
jb 0x140027f94
mov rax, qword [rbp + 0x940]
mov rax, qword [rax + 0x3e80]
cmp ebx, dword [rax + 0x30]
je 0x140027f94
mov rcx, rbx
movabs rdx, 0xff00000000
and rcx, rdx
movabs rdx, 0x600000000
cmp rcx, rdx
je 0x14002a525
mov qword [rax + 0x28], rbx
mov r11, rbx
shr r11, 0x18
test r11w, r11w
jne 0x140027c15
mov rax, qword [rbp + 0x940]
mov rax, qword [rax + 0x3e80]
movsxd rcx, dword [rax + 0x10]
lea edx, [rcx + 1]
mov dword [rax + 0x10], edx
mov qword [rax + rcx*8 + 0x238], rbx
mov rcx, qword [rbp + 0x940]
mov r9d, dword [rcx + 0x140]
movsxd r15, r9d
mov eax, 1
sub rax, r15
mov esi, dword [rcx + rax*4 + 0x120]
movzx edi, bh
movzx r13d, bl
movsxd r14, esi
mov rcx, r13
shl rcx, 8
lea rax, [0x1400dcd00]
mov qword [rbp + 0x900], rcx
add rax, rcx
mov eax, dword [rax + r14*4]
test eax, eax
jne 0x140027cf0
mov eax, ebx
shr eax, 0x10
movzx eax, al
xor r10d, r10d
dec eax
cmp eax, 5
ja case.default.0x14002974f
lea rcx, [0x1400f6b8c]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov eax, edi
mov rcx, rax
shl rcx, 8
lea rdx, [0x1400dcd00]
add rcx, rdx
mov ecx, dword [rcx + r14*4]
add ecx, 8
cmp ecx, 0x10
ja case.default.0x14002974f
mov edx, 0x10281
bt edx, ecx
jae case.default.0x14002974f
shl rax, 9
lea rcx, [0x1400e0d80]
add rax, rcx
mov rcx, qword [rbp + 0x940]
mov rcx, qword [rcx + 0x1d8]
xor r10d, r10d
test qword [rax + r14*8], rcx
jmp 0x140027dc1
mov ecx, edi
shl rcx, 8
lea rdx, [0x1400dcd00]
add rcx, rdx
mov ecx, dword [rcx + r14*4]
mov r8d, eax
neg r8d
cmovns eax, r8d
mov edx, ecx
neg edx
cmovs edx, ecx
cmp eax, edx
je 0x140027c63
mov rax, r13
shl rax, 9
lea rcx, [0x1400e0d80]
add rax, rcx
mov rcx, qword [rbp + 0x940]
mov r12, qword [rcx + 0x1d8]
test qword [rax + r14*8], r12
jne 0x140027c63
movzx edx, bl
mov rcx, qword [rbp + 0x930]
mov qword [rbp + 0x908], r13
mov r13, r11
call fcn.14002c670
mov r11, r13
mov r13, qword [rbp + 0x908]
cmp eax, 0x7f
je 0x140027c63
jmp 0x1400296ca
mov eax, edi
mov rcx, rax
shl rcx, 8
lea rdx, [0x1400dcd00]
add rcx, rdx
cmp dword [rcx + r14*4], 0
je case.default.0x14002974f
shl rax, 9
lea rcx, [0x1400e0d80]
add rax, rcx
mov rax, qword [rax + r14*8]
xor r10d, r10d
mov rcx, qword [rbp + 0x940]
test qword [rcx + 0x1d8], rax
sete r10b
jmp case.default.0x14002974f
mov rax, rbx
shr rax, 0x28
test al, al
jne 0x140029724
shl r14, 4
lea rax, [0x1400cbb00]
add r14, rax
mov rax, qword [r14 + r15*8]
xor r10d, r10d
bt rax, rdi
jmp 0x140027e35
lea rcx, [rbp - 0x30]
lea rdx, [rbp + 0x28]
lea r8, [rbp - 4]
call fcn.14002ca20
mov dword [rbp + 4], eax
test eax, eax
jne 0x140027b61
jmp 0x14002a163
mov rax, rbx
shr rax, 0x28
test al, al
jne 0x140029dd3
mov eax, edi
lea rcx, [0x1400dcb00]
mov rax, qword [rcx + rax*8]
xor r10d, r10d
bt rax, rsi
setb r10b
mov rcx, rbx
movabs rax, 0xff00000000000000
and rcx, rax
mov qword [rbp + 0x910], rcx
mov rax, qword [rbp + 0x940]
mov r15, qword [rax + 0x3e80]
cmp byte [rbp + 0x918], 0
je 0x140027e7e
movabs rax, 0x100000000000000
cmp qword [rbp + 0x910], rax
je 0x14002a4c5
mov r14, rbx
shr r14, 0x38
cmp dword [r15 + 0x18], 0
je 0x1400282fa
mov r12d, dword [rbp + 0x8e8]
mov rax, qword [rbp + 0x940]
mov eax, dword [rax + 0x15c]
cmp eax, 2
je 0x14002a49e
test eax, eax
jne 0x1400282fa
mov rdx, qword [rbp + 0x940]
movsxd rax, dword [rdx + 0x140]
lea rcx, [rax + rax*2]
test dword [rdx + rcx*4 + 0x128], 0xffeffff0
je 0x1400282fa
cmp dword [r15], 0xffff8401
jl 0x1400282fa
test r11w, r11w
sete cl
cmp r10d, 1
setne sil
and sil, cl
mov edi, dword [r15 + 0xa5c]
cmp sil, 1
jne 0x1400281f0
mov edx, dword [r15 + 4]
mov rcx, rdx
mov qword [rbp + 0x908], rdx
lea ecx, [rdx + 1]
xor edx, edx
cmp dword [r15 + 8], ecx
setg dl
mov ecx, edi
shr ecx, 0x1f
add ecx, edi
sar ecx, 1
movsxd rcx, ecx
cmp r12d, 0x3f
mov r8d, 0x3f
cmovl r8d, r12d
movsxd r8, r8d
shl rdx, 0xe
lea r9, [0x14022e900]
add rdx, r9
shl rcx, 8
add rcx, rdx
mov r13d, edi
sub r13d, dword [rcx + r8*4]
cmp r14d, 6
jb 0x140027fc6
cmp edi, 0x1b
jg 0x14002a4bb
cmp edi, 3
mov ecx, 2
cmovl edi, ecx
shr edi, 1
mov rcx, qword [rbp + 0x8c8]
shl rcx, 6
lea rdx, [0x1400d0580]
add rcx, rdx
mov ecx, dword [rcx + rdi*4]
cmp ecx, r12d
jge 0x140027fc6
mov rax, qword [rbp + 0x940]
mov r12, qword [rax + 0x3e80]
mov eax, dword [rax + 0x3e78]
test eax, eax
sete cl
cmp dword [r12 + 0xc], 0
jne 0x14002a497
test cl, cl
jne 0x140027b30
jmp 0x14002a177
cmp r13d, dword [rbp + 0x8f8]
jg 0x14002807e
mov r8d, dword [r15 + 0xa58]
test r8d, r8d
je 0x14002807e
mov rcx, qword [r15 - 0x1af8]
cmp rcx, 0x7f7f
je 0x14002807e
mov edx, ecx
shr edx, 0x10
movzx r9d, dl
shl r9, 0x11
mov rdx, qword [rbp + 0x940]
add r9, qword [rdx + 0x3e60]
movzx ecx, ch
shl rcx, 0xb
mov edx, ebx
shr edx, 0x10
movzx edx, dl
shl rdx, 8
add rcx, rdx
add rcx, r9
movzx edi, bh
cmp dword [rcx + rdi*4], 0
jns 0x14002807e
cmp r8d, 2
jl 0x14002807e
mov rcx, qword [r15 - 0x3618]
cmp rcx, 0x7f7f
je 0x14002807e
mov r8d, ecx
shr r8d, 0x10
movzx r8d, r8b
shl r8, 0x11
mov r9, qword [rbp + 0x940]
add r8, qword [r9 + 0x3e68]
movzx ecx, ch
shl rcx, 0xb
add rcx, rdx
add rcx, r8
cmp dword [rcx + rdi*4], 0
js 0x140027f94
cmp r13d, 0x10
jg 0x140028304
shl rax, 0xe
mov rcx, qword [rbp + 0x940]
add rax, qword [rcx + 0x3e50]
add rax, qword [rbp + 0x900]
movzx edi, bh
mov eax, dword [rax + rdi*4]
mov edx, dword [r15 + 0xa58]
test edx, edx
jle 0x140028152
mov rcx, qword [r15 - 0x1af8]
cmp rcx, 0x7f7f
je 0x140028103
mov r8d, ecx
shr r8d, 0x10
movzx r8d, r8b
shl r8, 0x11
mov r9, qword [rbp + 0x940]
add r8, qword [r9 + 0x3e60]
movzx ecx, ch
shl rcx, 0xb
mov r9d, ebx
shr r9d, 0x10
movzx r9d, r9b
shl r9, 8
add r9, rcx
add r9, r8
add eax, dword [r9 + rdi*4]
cmp edx, 2
jb 0x140028152
mov rcx, qword [r15 - 0x3618]
cmp rcx, 0x7f7f
je 0x140028152
mov edx, ecx
shr edx, 0x10
movzx edx, dl
shl rdx, 0x11
mov r8, qword [rbp + 0x940]
add rdx, qword [r8 + 0x3e68]
movzx ecx, ch
shl rcx, 0xb
mov r8d, ebx
shr r8d, 0x10
movzx r8d, r8b
shl r8, 8
add r8, rcx
add r8, rdx
add eax, dword [r8 + rdi*4]
mov rcx, qword [rbp + 0x8c8]
lea rdx, [0x1400d0460]
cmp eax, dword [rdx + rcx*4]
jge 0x1400282ac
mov edi, r13d
shr edi, 0x1f
add edi, r13d
sar edi, 1
cmp edi, 2
mov eax, 1
cmovl edi, eax
mov eax, dword [r15 + 0x38]
cmp eax, 0xffff82ff
je 0x14002a665
imul ecx, edi, 0xffffff87
mov rdx, qword [rbp + 0x908]
lea ecx, [rcx + rdx - 0x20]
cmp eax, ecx
jge 0x1400282ac
jmp 0x140027f94
mov eax, edi
mov rcx, rax
shl rcx, 8
lea rdx, [0x1400dcd00]
add rcx, rdx
mov ecx, dword [rcx + r14*4]
add ecx, 9
ror ecx, 1
cmp ecx, 9
ja case.default.0x14002974f
mov edx, 0x303
jmp 0x140027cb1
mov eax, edi
lea rcx, [0x1400dc900]
jmp 0x140027e2a
mov eax, dword [r12 + 8]
jmp 0x140027b42
cmp edi, 0xa
jg 0x140029510
mov r12d, r10d
mov eax, dword [r15 + 0x38]
cmp eax, 0xffff82ff
je 0x14002a699
mov ecx, dword [r15 + 4]
mov r9, rbx
movabs rdx, 0xff0000000000
and r9, rdx
mov rdx, rbx
shr rdx, 0x20
movzx r10d, dl
lea rdx, [0x1400f5b90]
mov r8d, dword [rdx + r10*4]
movabs rdx, 0x40000000000
cmp r9, rdx
je 0x140029e22
mov r9d, edi
shr r9d, 0x1f
add r9d, edi
sar r9d, 1
shl r9d, 6
lea r9d, [r9 + r9*4]
sub ecx, r9d
sub ecx, r8d
mov rdx, qword [rbp + 0x940]
movsxd r8, dword [rdx + r13*4 + 0x20]
shl r8, 0xb
add r8, qword [rdx + 0x3e70]
movzx edx, bh
shl rdx, 5
add rdx, r8
mov edx, dword [rdx + r10*4]
mov r8d, edx
shr r8d, 0x1f
add r8d, edx
sar r8d, 1
sub ecx, r8d
add ecx, 0xffffff00
mov r13d, edi
cmp eax, ecx
mov r10d, r12d
jl 0x140027f94
cmp r14d, 3
jb 0x1400282fa
cmp r13d, 0xe
jg 0x1400282fa
mov eax, r13d
shr eax, 0x1f
add eax, r13d
sar eax, 1
imul r8d, eax, 0xffffffe7
test sil, sil
mov ecx, 0xffffffa0
cmovne r8d, ecx
imul r8d, eax
mov rcx, qword [rbp + 0x930]
mov rdx, rbx
mov esi, r10d
mov rdi, r11
call fcn.14002bee0
mov r11, rdi
mov r10d, esi
test eax, eax
je 0x140027f94
cmp r10d, 1
je 0x140028978
mov eax, ebx
and eax, 0xff0000
cmp eax, 0x10000
je 0x14002894d
mov rax, rbx
shr rax, 0x28
xor r12d, r12d
test al, al
jne 0x14002833a
mov rax, rbx
movabs rcx, 0xfe00000000
and rax, rcx
jne 0x140028983
mov rax, qword [rbp + 0x940]
mov r15, qword [rax + 0x3e80]
mov eax, dword [r15 + 0xa5c]
xor edi, edi
cmp eax, 6
jge 0x140028720
mov r14d, r10d
add r12d, dword [rbp + 0x938]
lea esi, [r12 - 2]
cmp edi, esi
cmovl esi, edi
cmp esi, 2
mov eax, 0
cmovl esi, eax
mov rcx, qword [rbp + 0x930]
mov rdx, rbx
mov r8, r15
call fcn.14002fc60
mov rdx, qword [rbp + 0x940]
mov r8d, dword [rdx + 0x140]
movsxd rax, r8d
mov ecx, 1
sub rcx, rax
mov ecx, dword [rdx + rcx*4 + 0x120]
movsxd rdx, ecx
cmp dword [rbp + 0x8ec], 1
je 0x1400288f0
mov r9, rbx
shr r9, 0x28
movzx r9d, r9b
lea r10d, [r9 - 1]
cmp r10d, 2
jb 0x1400284f0
cmp r9d, 3
je 0x140029e14
cmp ecx, 0x7f
je 0x1400284f0
movsxd rax, r8d
movsxd rdx, ecx
mov rcx, rdx
shl rcx, 4
lea r8, [0x1400cbb00]
add rcx, r8
mov r8, qword [rbp + 0x940]
mov r8, qword [r8 + rax*8 + 0x178]
test qword [rcx + rax*8], r8
jne 0x1400289c0
mov rcx, qword [rbp + 0x940]
mov rcx, qword [rcx + rax*8 + 0x188]
lea r8, [0x1400dc900]
test qword [r8 + rdx*8], rcx
jne 0x1400289c0
lea rcx, [0x1400dcb00]
mov rcx, qword [rcx + rdx*8]
mov r8, qword [rbp + 0x940]
mov r8d, dword [r8 + rax*4 + 0x120]
bt rcx, r8
jb 0x1400289c0
mov r9, rdx
shl r9, 5
mov r11, qword [rbp + 0x940]
mov r8, qword [r11 + 0x1d8]
lea rdi, [0x14022c280]
mov r10, qword [r9 + rdi]
and r10, r8
imul r10, qword [r9 + rdi + 8]
movzx ecx, byte [r9 + rdi + 0x18]
shr r10, cl
mov rcx, qword [r9 + rdi + 0x10]
movsxd r10, r10d
mov r9, qword [r11 + rax*8 + 0x1b8]
mov r11, qword [r11 + rax*8 + 0x1a8]
or r11, r9
test qword [rcx + r10*8], r11
jne 0x1400289c0
shl rdx, 5
lea rcx, [0x14022ca80]
mov r10, qword [rdx + rcx + 0x10]
and r8, qword [rdx + rcx]
imul r8, qword [rdx + rcx + 8]
movzx ecx, byte [rdx + rcx + 0x18]
shr r8, cl
movsxd rcx, r8d
mov rdx, qword [rbp + 0x940]
or r9, qword [rdx + rax*8 + 0x198]
test qword [r10 + rcx*8], r9
jne 0x1400289c0
cmp r14d, 2
mov rdi, qword [rbp + 0x940]
je 0x140028504
mov dword [rdi + 0x15c], r14d
mov rdx, qword [rdi + 0x3e80]
xor eax, eax
sub eax, dword [rdx]
mov r14d, dword [rbp + 0x928]
neg r14d
lea r8, [rdx + 0x1b20]
mov ecx, r12d
mov qword [rdi + 0x3e80], r8
sub ecx, esi
jle 0x140028838
mov dword [r8], r14d
mov rdx, qword [rdi + 0x3e80]
mov dword [rdx + 4], r14d
mov rdx, qword [rdi + 0x3e80]
mov dword [rdx + 8], eax
mov rax, qword [rdi + 0x3e80]
mov dword [rax + 0x1c], 0
mov rax, qword [rdi + 0x3e80]
mov qword [rax + 0x30], 0x7f7f
mov rax, qword [rdi + 0x3e80]
mov qword [rax + 0x20], 0x7f7f
mov rax, qword [rdi + 0x3e80]
mov dword [rax + 0x18], 0
mov rax, qword [rdi + 0x3e80]
mov dword [rax + 0x10], 0
mov rax, qword [rdi + 0x3e80]
mov edx, dword [rbp + 0x93c]
mov dword [rax + 0xa58], edx
mov rax, qword [rdi + 0x3e80]
mov dword [rax + 0xa5c], ecx
mov rax, qword [rdi + 0x3e80]
mov dword [rax + 0xc], 0
mov rax, qword [rdi + 0x3e80]
mov qword [rax + 0x28], 0x7f7f
mov rax, qword [rdi + 0x3e80]
mov rcx, qword [rbp + 0x8e0]
mov qword [rax + rcx*8 + 0x48], 0x7f7f
mov rax, qword [rdi + 0x3e80]
mov dword [rax + 0x230], 0
mov rcx, rdi
call fcn.140027620
mov r15d, eax
mov rax, qword [rdi + 0x3e80]
lea rcx, [rax - 0x1b20]
mov qword [rdi + 0x3e80], rcx
cmp r15d, 0x7d01
je 0x1400289c0
inc dword [rax - 0x1b08]
neg r15d
mov rax, qword [rbp + 0x940]
mov rax, qword [rax + 0x3e80]
test esi, esi
je 0x14002865b
mov r8d, dword [rax]
cmp r8d, r15d
jge 0x14002865b
mov rcx, qword [rbp + 0x940]
cmp dword [rcx + 0x3e78], 0
je 0x1400297fd
mov ecx, dword [rax]
cmp r15d, ecx
jg 0x14002890c
mov rcx, qword [rbp + 0x930]
mov rdx, rbx
lea r8, [rbp + 0x880]
call fcn.14002da40
mov rax, qword [rbp + 0x940]
cmp dword [rax + 0x3e78], 0
mov rsi, qword [rax + 0x3e80]
jne 0x14002a6d7
cmp r15d, dword [rsi]
jg 0x140028937
cmp r15d, dword [rbp + 0x8c4]
jl 0x140027f94
jmp 0x14002a152
mov edx, dword [rbp - 4]
cmp edx, eax
jge 0x140028707
mov rsi, qword [rbp + 0x28]
lea ecx, [rdx + 1]
mov dword [rbp - 4], ecx
movsxd rdi, edx
mov rdx, qword [rsi + rdi*8]
cmp edx, dword [rbp + 0x10]
je 0x140028701
mov rcx, qword [rbp - 0x28]
xor r8d, r8d
call fcn.14002bee0
test eax, eax
jne 0x1400288bb
mov byte [rsi + rdi*8 + 7], 7
mov rax, qword [rsi + rdi*8]
movsxd rcx, dword [rbp - 8]
lea edx, [rcx + 1]
mov dword [rbp - 8], edx
mov qword [rbp + rcx*8 + 0x30], rax
mov ecx, dword [rbp - 4]
mov eax, dword [rbp + 4]
mov edx, ecx
cmp ecx, eax
jl 0x1400286b9
mov rax, qword [rbp - 0x30]
lea rcx, [rbp - 0x30]
lea rdx, [rbp + 0x8e8]
call qword [rax]
mov rbx, rax
jmp 0x140027b92
mov ecx, dword [rbp + 0x8e8]
mov edx, dword [r15 + 4]
mov r8d, dword [r15 + 8]
inc edx
xor r9d, r9d
cmp r8d, edx
setg r9b
lea r9d, [r9 + r9 + 1]
cmp r9d, ecx
jg 0x14002835a
test r11w, r11w
jne 0x140028ddb
mov dword [rbp + 0x900], r10d
xor r9d, r9d
cmp r8d, edx
setg r9b
shr eax, 1
cmp ecx, 0x3f
mov r10d, 0x3f
cmovge ecx, r10d
shl r9, 0xe
shl rax, 8
lea r10, [0x14022e900]
add rax, r10
add rax, r9
mov eax, dword [rax + rcx*4]
lea edi, [rax + 2]
cmp r8d, edx
cmovg edi, eax
cmp byte [rbp + 0x8a4], 0
cmovne edi, eax
cmp dword [r15 + 0xa58], 0
jle 0x140029d9f
mov qword [rbp + 0x908], r12
mov r13, qword [rbp + 0x940]
mov eax, dword [r13 + 0x15c]
mov rsi, r15
cmp eax, 2
je 0x14002a858
lea r12d, [rdi - 2]
cmp eax, 1
cmove r12d, edi
cmp r14d, 6
cmovae r12d, edi
mov r9d, dword [r13 + 0x140]
mov rcx, qword [rbp + 0x8b8]
mov rdx, rbx
mov r8, r15
call fcn.14007cb10
lea ecx, [rax + 0xff]
test eax, eax
cmovns ecx, eax
sar ecx, 8
cmp ecx, 4
mov eax, 4
cmovge ecx, eax
cmp ecx, 0xfffffffd
mov eax, 0xfffffffc
cmovl ecx, eax
sub r12d, ecx
mov r15, rsi
mov edi, r12d
mov r10d, dword [rbp + 0x900]
mov r12, qword [rbp + 0x908]
jmp 0x14002835a
mov dword [rdx + 0x1b3c], 0
mov rcx, qword [rdi + 0x3e80]
mov edx, dword [rbp + 0x93c]
mov dword [rcx + 0xa58], edx
mov rcx, qword [rdi + 0x3e80]
mov dword [rcx], r14d
mov rcx, qword [rdi + 0x3e80]
mov dword [rcx + 4], r14d
mov rcx, qword [rdi + 0x3e80]
mov dword [rcx + 8], eax
mov rax, qword [rdi + 0x3e80]
mov qword [rax + 0x20], 0x7f7f
mov rax, qword [rdi + 0x3e80]
mov rcx, qword [rbp + 0x8e0]
mov qword [rax + rcx*8 + 0x48], 0x7f7f
mov rax, qword [rdi + 0x3e80]
mov dword [rax + 0x230], 0
mov rcx, rdi
xor r8d, r8d
call fcn.140033120
jmp 0x1400285ff
mov byte [rsi + rdi*8 + 7], 2
mov eax, dword [rbp]
lea ecx, [rax + 1]
mov dword [rbp], ecx
mov dword [rbp + 0x8e8], eax
mov rbx, qword [rsi + rdi*8]
jmp 0x140027b92
lea rcx, [rbp - 0x30]
lea rdx, [rbp + 0x8e8]
call fcn.14002f6b0
mov rbx, rax
jmp 0x140027b92
movabs r8, 0x100000000000000
cmp qword [rbp + 0x910], r8
jne 0x1400284f0
jmp 0x140029e14
mov r9d, dword [rax + 8]
cmp dword [rbp + 0x928], r9d
jge 0x140028666
mov r8, qword [rbp + 0x940]
cmp dword [r8 + 0x3e78], 0
jne 0x140028666
jmp 0x140029914
mov dword [rsi], r15d
mov qword [rsi + 0x20], rbx
cmp dword [rsi + 8], r15d
jle 0x14002a160
jmp 0x140029a3d
mov rax, qword [rbp + 0x940]
movsxd rax, dword [rax + 0x140]
mov ecx, ebx
shr ecx, 0xb
and ecx, 0x1f
lea rdx, [0x1400e8d80]
lea rcx, [rdx + rcx*8]
cmp dword [rcx + rax*4], 7
jne 0x140028316
mov r12d, 2
jmp 0x14002833a
mov r8, qword [rbp + 0x940]
movsxd rax, dword [r8 + 0x140]
mov ecx, 1
sub rcx, rax
lea rcx, [rcx + rcx*2]
mov edx, dword [r8 + rcx*4 + 0x128]
not edx
or edx, 0xfffffff0
add edx, dword [r8 + rcx*4 + 0x130]
cmp edx, 1
jne 0x14002833a
jmp 0x140029a1b
mov rcx, qword [rbp + 0x930]
mov rdx, rbx
lea r8, [rbp + 0x880]
call fcn.14002da40
jmp 0x140027f94
mov rax, qword [r12 - 0x1af8]
cmp rax, 0x7f7f
mov r10, rdi
je 0x1400279b8
cmp ebx, 7
ja 0x140028a0a
movabs rcx, 0xffff000000
and rax, rcx
jne 0x1400279d1
mov rdx, qword [rbp + 0x940]
movsxd rax, dword [rdx + 0x140]
lea rcx, [rax + rax*2]
test dword [rdx + rcx*4 + 0x128], 0xffeffff0
je 0x1400279b8
cmp qword [r12 + 0x30], 0x7f7f
jne 0x1400279b8
mov eax, dword [r12 + 8]
mov r9d, dword [r12 + 0x38]
mov edx, r9d
sub edx, eax
jl 0x1400279b8
mov r8d, dword [r12 + 0x3c]
cmp r9d, r8d
jl 0x1400279b5
mov r9d, ebx
shl r9d, 4
and r9d, 0xffffffe0
mov r10d, eax
sub r10d, r9d
add r10d, 0xc0
cmp r8d, r10d
jge 0x140028a85
cmp ebx, 0x18
jb 0x1400279b5
mov r8d, dword [r12 + 4]
cmp r8d, 0xffff82ff
je 0x140028aa7
add r8d, 0xffff8500
cmp r8d, 0xffff0a01
jb 0x1400279b5
mov r9, qword [rbp + 0x940]
cmp dword [r9 + 0x154], 0x62
jg 0x1400279b5
mov ecx, dword [r9 + rcx*4 + 0x12c]
cmp ecx, 0x1f
mov r8d, 0x1f
cmovb r8d, ecx
xor esi, esi
cmp r8d, 4
setb sil
lea ecx, [rsi + 2]
mov r8d, ebx
shr r8d, cl
lea ecx, [rdx + 0x7f]
test edx, edx
cmovns ecx, edx
sar ecx, 7
cmp ecx, 6
mov edx, 6
cmovl edx, ecx
add esi, ebx
add edx, r8d
sub esi, edx
add esi, 0xfffffff8
test r15b, r15b
jne 0x14002ac34
lea rbx, [r9 + 0x148]
mov qword [r12 + 0x28], 0x7f7f
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movaps xmmword [rbp - 0x20], xmm1
movaps xmmword [rbp - 0x30], xmm0
mov rcx, qword [r9 + 0x3e80]
movabs rax, 0x200000000
mov qword [r9 + 0x158], rax
movsxd rax, dword [r9 + 0x150]
mov rdx, qword [r9 + 0x148]
cmp rax, 0x7f
jne 0x14002a120
mov r11, qword [rbp + 0x940]
mov dword [r11 + 0x150], 0x7f
mov r8d, dword [r11 + 0x140]
xor r9d, r9d
test r8d, r8d
setne r9b
mov eax, 1
mov r10d, 1
sub r10d, r8d
mov dword [r11 + 0x140], r10d
movabs r8, 0x7fffffffffffffff
and r8, rdx
shl r9, 0x3f
or r9, r8
mov qword [r11 + 0x148], r9
mov rdx, qword [r11 + 0x21e0]
lea r8, [rdx + 8]
mov qword [r11 + 0x21e0], r8
mov qword [rdx], r9
test rcx, rcx
je 0x140028bde
mov dword [rcx + 0x3624], 0
mov qword [rcx + 0x35e0], 0
mov rcx, qword [rbp + 0x8e0]
lea r9d, [rcx + 1]
mov r12, qword [rbp + 0x940]
mov rdx, qword [r12 + 0x3e80]
mov ecx, dword [rdx + 8]
sub eax, ecx
neg ecx
lea r8, [rdx + 0x1b20]
mov qword [r12 + 0x3e80], r8
test esi, esi
mov dword [rbp + 0x918], r9d
jg 0x140029cc6
mov dword [rdx + 0x1b3c], 0
mov rdx, qword [r12 + 0x3e80]
mov dword [rdx + 0xa58], r9d
mov rdx, qword [r12 + 0x3e80]
mov dword [rdx], ecx
mov rdx, qword [r12 + 0x3e80]
mov dword [rdx + 4], ecx
mov rcx, qword [r12 + 0x3e80]
mov dword [rcx + 8], eax
mov rax, qword [r12 + 0x3e80]
mov qword [rax + 0x20], 0x7f7f
mov rax, qword [r12 + 0x3e80]
movsxd rdx, r9d
mov qword [rax + rdx*8 + 0x40], 0x7f7f
mov rax, qword [r12 + 0x3e80]
mov dword [rax + 0x230], 0
mov rcx, r12
xor r8d, r8d
call fcn.140033120
mov rcx, qword [r12 + 0x3e80]
lea rdx, [rcx - 0x1b20]
mov r9, rdx
mov qword [r12 + 0x3e80], rdx
movdqa xmm0, xmmword [rbp - 0x30]
movaps xmm1, xmmword [rbp - 0x20]
movups xmmword [rbx + 0x10], xmm1
movdqu xmmword [rbx], xmm0
add qword [r12 + 0x21e0], 0xfffffffffffffff8
mov edx, 1
sub edx, dword [r12 + 0x140]
mov dword [r12 + 0x140], edx
cmp dword [r12 + 0x3e78], 0
jne 0x14002ac89
mov r8d, eax
neg r8d
mov edx, dword [rcx - 0x1b18]
cmp edx, r8d
jle 0x140029b39
mov r10, rdi
mov r12, r9
mov rbx, qword [rbp + 0x920]
jmp 0x1400279b8
xor eax, eax
xor r8d, r8d
jmp 0x1400278fe
mov rax, qword [rbp + 0x940]
lea rcx, [rax + 0x3e88]
mov rdx, qword [rbp + 0x930]
call fcn.140014560
jmp 0x14002788f
mov eax, eax
lock add qword [rdi + 0x2450], rax
mov dword [rdi + 0x3e7c], 0
mov rax, qword [rdi + 0x10]
mov ecx, dword [rax + 0x110]
lea edx, [rcx - 1]
mov dword [rax + 0x110], edx
cmp ecx, 1
jle 0x14002a09b
mov rax, qword [rdi + 0x10]
mov ecx, dword [rax + 0x108]
lea edx, [rcx - 1]
mov dword [rax + 0x108], edx
cmp ecx, 1
jg 0x140027694
mov rax, qword [rdi + 0x10]
mov ecx, dword [rax + 0x10c]
mov dword [rax + 0x108], ecx
mov rcx, rdi
call fcn.140008cb0
test eax, eax
je 0x140027694
mov esi, ebx
cmp dword [rdi + 0x2033e4], 3
jne 0x14002b3b4
mov r8, qword [0x1402369b0]
cmp qword [0x1402369b8], 0x10
jb 0x14002b368
mov rdx, qword [0x1402369a0]
jmp 0x14002b36f
mov esi, r10d
cmp eax, 0x1b
ja 0x14002ab9c
mov r9d, eax
shr r9d, 1
mov r10, qword [rbp + 0x8c8]
shl r10, 6
lea r11, [0x1400d0580]
add r10, r11
mov r9d, dword [r10 + r9*4]
cmp r9d, ecx
mov r10d, esi
jge 0x14002835a
xor r9d, r9d
cmp r8d, edx
setg r9b
shr eax, 1
cmp ecx, 0x3f
mov edx, 0x3f
cmovge ecx, edx
shl r9, 0xe
shl rax, 8
lea rdx, [0x14022e900]
add rax, rdx
add rax, r9
mov edi, dword [rax + rcx*4]
add edi, 0xfffffffe
jmp 0x14002835a
cmp ebx, 0x12
setae dl
test byte [r12 + 0x1c], 8
mov al, 1
jne 0x140029f2f
mov edx, ecx
neg edx
cmovs edx, ecx
cmp edx, 0x7c00
setb dl
test al, al
je 0x140029f36
test dl, dl
je 0x1400279d1
cmp ecx, 0x7c60
mov eax, 0x7c60
cmovl eax, ecx
lea r11d, [rax + 0xa0]
mov ecx, ebx
shr ecx, 3
neg ecx
lea ecx, [rbx + rcx - 8]
mov qword [rbp + 0x8d0], rcx
test r15b, r15b
jne 0x14002aba7
mov ecx, dword [r12 + 0x3c]
mov r9, qword [rbp + 0x940]
movdqu xmm0, xmmword [r9 + 0x148]
movups xmm1, xmmword [r9 + 0x158]
movaps xmmword [rbp + 0x890], xmm1
movdqa xmmword [rbp + 0x880], xmm0
mov edx, dword [r12 + 4]
mov dword [rbp + 0x908], edx
mov edx, dword [r12 + 8]
mov dword [rbp + 0x938], edx
movsxd rdx, dword [r12 + 0xa58]
mov qword [rbp + 0x918], rdx
mov edx, dword [r12 + 0xa5c]
mov dword [rbp + 0x8f8], edx
mov edx, dword [r12 + 0x1c]
mov dword [rbp + 0x93c], edx
movsxd rdx, dword [r9 + 0x140]
mov r8d, 1
sub r8, rdx
mov rdx, qword [r9 + r8*8 + 0x178]
not rdx
and rdx, qword [r9 + r8*8 + 0x1c8]
lea r8, vtable.ProbCutMoveGenerator.0
mov qword [rbp - 0x30], r8
mov r8, qword [rbp + 0x930]
mov qword [rbp - 0x28], r8
mov qword [rbp + 0x120], 0
mov r10, rdi
mov qword [rbp + 0x128], rdi
mov qword [rbp + 0x130], rdx
mov dword [rbp + 0x138], 0
lea r14, [rbp - 0x20]
mov dword [rbp + 0x8b4], r11d
sub r11d, ecx
mov dword [rbp + 0x8c4], r11d
mov ecx, 0xffffff60
sub ecx, eax
mov dword [rbp + 0x8ac], ecx
mov ecx, 0xffffff61
sub ecx, eax
mov dword [rbp + 0x8b0], ecx
mov r8, rdi
xor esi, esi
xor r9d, r9d
xor eax, eax
test eax, eax
jne 0x1400290d4
mov dword [rbp + 0x138], 1
cmp r8, 0x7f7f
jne 0x14002abfc
mov dword [rbp + 0x138], 2
mov rbx, qword [rbp - 0x28]
mov eax, dword [rbx + 0x13c]
cmp eax, 2
je 0x14002ac27
cmp eax, 1
je 0x14002929b
mov rcx, rbx
mov rdx, r14
xor r8d, r8d
lea r9, [rbp + 0x130]
call fcn.140031090
mov dword [rbp + 0x124], eax
mov rcx, r14
mov edx, eax
call fcn.140035730
mov esi, dword [rbp + 0x120]
mov r9d, dword [rbp + 0x124]
mov r8, qword [rbp + 0x128]
mov r10, rdi
mov ecx, esi
cmp esi, r9d
cmovbe esi, r9d
mov al, 1
cmp rsi, rcx
je 0x140029459
lea edx, [rcx + 1]
mov dword [rbp + 0x120], edx
mov rbx, qword [rbp + rcx*8 - 0x20]
inc rcx
cmp ebx, r8d
je 0x140029039
mov esi, ecx
cmp rbx, 0x7f7f
je 0x140029459
mov dword [rbp + 0x8a8], r9d
mov qword [rbp + 0x8b8], r8
mov rax, rbx
movabs rcx, 0xff00000000
and rax, rcx
movabs rcx, 0x600000000
cmp rax, rcx
je 0x14002a9e5
mov rcx, qword [rbp + 0x930]
mov rdx, rbx
mov r8d, dword [rbp + 0x8c4]
call fcn.14002bee0
test eax, eax
jne 0x1400290e2
mov eax, dword [rbp + 0x138]
mov r10, rdi
lea r14, [rbp - 0x20]
mov r8, qword [rbp + 0x8b8]
mov r9d, dword [rbp + 0x8a8]
jmp 0x140028faf
cmp eax, 1
jne 0x140029030
jmp 0x140028fce
mov qword [rbp + 0x8f0], r12
movabs rax, 0xffffffffffffff
and rbx, rax
movabs rax, 0x200000000000000
or rbx, rax
mov r14, qword [rbp + 0x940]
mov r8, qword [r14 + 0x3e80]
mov r12, qword [rbp + 0x930]
mov rcx, r12
mov rdx, rbx
call fcn.14002fc60
mov rcx, r12
mov rdx, rbx
xor r8d, r8d
call fcn.140013590
test eax, eax
je 0x14002a079
mov rax, qword [r14 + 0x3e80]
mov qword [rax + 0x28], rbx
mov rax, qword [r14 + 0x3e80]
inc dword [rax + 0x18]
mov r8, qword [rbp + 0x8e0]
lea rax, [r8 + 1]
mov rcx, qword [r14 + 0x3e80]
lea rdx, [rcx + 0x1b20]
mov qword [r14 + 0x3e80], rdx
mov edx, dword [rbp + 0x8ac]
mov dword [rcx + 0x1b20], edx
mov rcx, qword [r14 + 0x3e80]
mov dword [rcx + 4], edx
mov rcx, qword [r14 + 0x3e80]
mov edx, dword [rbp + 0x8b0]
mov dword [rcx + 8], edx
mov rcx, qword [r14 + 0x3e80]
mov dword [rcx + 0x1c], 8
mov rcx, qword [r14 + 0x3e80]
mov qword [rcx + 0x30], 0x7f7f
mov rcx, qword [r14 + 0x3e80]
mov qword [rcx + 0x20], 0x7f7f
mov rcx, qword [r14 + 0x3e80]
mov dword [rcx + 0x18], 0
mov rcx, qword [r14 + 0x3e80]
mov dword [rcx + 0x10], 0
mov rcx, qword [r14 + 0x3e80]
mov dword [rcx + 0xa58], eax
mov rax, qword [r14 + 0x3e80]
mov rcx, qword [rbp + 0x8d0]
mov dword [rax + 0xa5c], ecx
mov rax, qword [r14 + 0x3e80]
mov dword [rax + 0xc], 0
mov rax, qword [r14 + 0x3e80]
mov qword [rax + 0x28], 0x7f7f
mov rax, qword [r14 + 0x3e80]
mov qword [rax + r8*8 + 0x48], 0x7f7f
mov rax, qword [r14 + 0x3e80]
mov dword [rax + 0x230], 0
mov rcx, r14
call fcn.140027620
mov r12d, eax
add qword [r14 + 0x3e80], 0xffffffffffffe4e0
mov rcx, qword [rbp + 0x930]
mov rdx, rbx
lea r8, [rbp + 0x880]
call fcn.14002da40
mov r14d, r12d
neg r14d
cmp dword [rbp + 0x8b4], r14d
setg al
cmp r12d, 0x7d01
mov r8d, r12d
je 0x14002ad84
mov r12, qword [rbp + 0x8f0]
test al, al
je 0x140029a8d
jmp 0x1400290b4
movsxd rax, dword [rbx + 0x120]
mov edx, 1
sub rdx, rax
movsxd r8, dword [rbx + rax*4 + 0x100]
mov r9, qword [rbx + rdx*8 + 0x168]
movzx ecx, byte [rbx + rdx*4 + 0x100]
mov r10d, 1
shl r10, cl
lea rax, [0x1400dc900]
and r9, qword [rax + r8*8]
lea rax, [0x1400dcb00]
and r10, qword [rax + r8*8]
mov rsi, r8
shl r8, 5
mov r11, qword [rbx + 0x1b8]
lea r14, [0x14022c280]
mov rax, qword [r8 + r14]
and rax, r11
imul rax, qword [r8 + r14 + 8]
movzx ecx, byte [r8 + r14 + 0x18]
shr rax, cl
mov rcx, qword [r8 + r14 + 0x10]
movsxd r14, eax
mov rax, qword [rbx + rdx*8 + 0x198]
mov qword [rbp + 0x8f0], r12
mov r12, qword [rbx + rdx*8 + 0x188]
or r12, rax
and r12, qword [rcx + r14*8]
shl rsi, 4
lea rcx, [0x1400cbb00]
add rsi, rcx
mov r14, qword [rbx + rdx*8 + 0x158]
and r14, qword [rsi + rdx*8]
or rax, qword [rbx + rdx*8 + 0x178]
lea rdx, [0x14022ca80]
and r11, qword [r8 + rdx]
imul r11, qword [r8 + rdx + 8]
movzx ecx, byte [r8 + rdx + 0x18]
mov rdx, qword [r8 + rdx + 0x10]
shr r11, cl
movsxd rcx, r11d
and rax, qword [rdx + rcx*8]
or r10, r9
or r10, r14
lea r14, [rbp - 0x20]
or r12, r10
or rax, r12
mov r12, qword [rbp + 0x8f0]
mov rcx, rax
movabs r8, 0x5555555555555555
and rcx, r8
mov rdx, rax
shr rdx, 1
and rdx, r8
add rdx, rcx
mov rcx, rdx
movabs r8, 0x3333333333333333
and rcx, r8
shr rdx, 2
and rdx, r8
add rdx, rcx
mov rcx, rdx
movabs r8, 0x707070707070707
and rcx, r8
shr rdx, 4
and rdx, r8
add rdx, rcx
imul ecx, edx, 0x1010101
shr rdx, 0x20
imul edx, edx, 0x1010101
shr edx, 0x18
shr ecx, 0x18
add ecx, edx
mov qword [rbp + 0x870], rax
mov dword [rbp + 0x878], ecx
cmp ecx, 1
jne 0x140029442
test rax, rax
je 0x14002af34
mov rcx, rax
neg rcx
and rcx, rax
movabs rax, 0x7edd5e59a4e28c2
imul rcx, rax
shr rcx, 0x38
and ecx, 0xfffffffc
lea rax, [0x140236d80]
mov eax, dword [rcx + rax]
mov dword [rbp + 0x87c], eax
mov rcx, rbx
lea rdx, [rbp + 0x870]
mov r8, r14
call fcn.140012ea0
jmp 0x140029009
mov r14d, r13d
mov ecx, dword [rbp + 0x908]
mov dword [r12 + 4], ecx
mov edx, dword [rbp + 0x938]
mov dword [r12 + 8], edx
mov edx, dword [rbp + 0x8f8]
mov dword [r12 + 0xa5c], edx
mov edx, dword [rbp + 0x93c]
mov dword [r12 + 0x1c], edx
mov dword [r12], ecx
mov qword [r12 + 0xc], 0
mov dword [r12 + 0x18], 0
mov qword [r12 + 0x28], 0x7f7f
mov qword [r12 + 0x20], 0x7f7f
mov rcx, qword [rbp + 0x918]
mov qword [r12 + rcx*8 + 0x1b68], 0x7f7f
mov dword [r12 + 0x1d50], 0
mov qword [r12 + rcx*8 + 0x40], 0x7f7f
mov dword [r12 + 0x230], 0
test al, al
mov rbx, qword [rbp + 0x920]
je 0x140029a85
mov rax, qword [rbp + 0x940]
mov r12, qword [rax + 0x3e80]
jmp 0x1400279d4
xor eax, eax
jmp 0x1400278dc
mov r13d, edi
jmp 0x1400282ac
xor r8d, r8d
jmp 0x1400278fe
mov r14d, 5
mov eax, 0xffff82ff
mov qword [rbp + 0x900], rax
mov edi, 0x7f7f
mov r8d, dword [rbp + 0x8dc]
jmp 0x1400277aa
add eax, 2
mov qword [r12 + 0x35e0], 0
mov dword [r12 + 0x3624], 0
mov rsi, qword [rbp + 0x940]
mov rdx, qword [rsi + 0x3e80]
mov ecx, dword [rdx + 4]
mov dword [rbp + 0x908], ecx
mov ecx, dword [rdx + 8]
mov dword [rbp + 0x93c], ecx
movsxd rcx, dword [rdx + 0xa58]
mov qword [rbp + 0x918], rcx
mov ecx, dword [rdx + 0xa5c]
mov dword [rbp + 0x8f8], ecx
mov ecx, dword [rdx + 0x1c]
mov dword [rbp + 0x938], ecx
or ecx, 1
mov qword [rbp + 0x910], rdx
mov dword [rdx + 0x1c], ecx
mov rcx, qword [rsi + 0x3e80]
mov dword [rcx + 0xa5c], eax
mov rcx, rsi
call fcn.140027620
mov rdx, qword [rsi + 0x3e80]
mov r10, qword [rdx + 0x20]
cmp eax, 0x7d01
je 0x14002ad42
test byte [rdx + 0x1c], 4
jne 0x14002a06f
mov r9, r10
mov rcx, qword [rbp + 0x940]
cmp dword [rcx + 0x3e78], 0
mov r8d, dword [rdx + 4]
jne 0x14002ad4f
cmp eax, r8d
jg 0x14002960d
cmp dword [rdx + 0x38], r8d
jg 0x140029caf
mov r8d, dword [rdx + 8]
mov cl, 1
cmp eax, r8d
jl 0x140029622
cmp dword [rdx + 0x38], r8d
jl 0x140029caf
mov r10, r9
mov r8, qword [rbp + 0x910]
mov rax, qword [rbp + 0x918]
mov edx, dword [rbp + 0x908]
mov r9d, dword [rbp + 0x938]
mov dword [r8 + 4], edx
mov r11d, dword [rbp + 0x93c]
mov dword [r8 + 8], r11d
mov r11d, dword [rbp + 0x8f8]
mov dword [r8 + 0xa5c], r11d
mov dword [r8 + 0x1c], r9d
mov dword [r8], edx
mov qword [r8 + 0xc], 0
mov dword [r8 + 0x18], 0
mov qword [r8 + 0x28], 0x7f7f
mov qword [r8 + 0x20], 0x7f7f
mov qword [r8 + rax*8 + 0x1b68], 0x7f7f
mov dword [r8 + 0x1d50], 0
mov qword [r8 + rax*8 + 0x40], 0x7f7f
mov dword [r8 + 0x230], 0
test cl, cl
je 0x140029a85
mov rax, qword [rbp + 0x940]
mov r12, qword [rax + 0x3e80]
jmp 0x140027a06
cdqe
shl rax, 9
lea rcx, [0x1400e0d80]
add rax, rcx
mov r10d, 1
test qword [rax + r13*8], r12
je case.default.0x14002974f
jmp 0x140027c63
mov rax, qword [rbp + 0x940]
mov rax, qword [rax + 0x10]
cmp byte [rax + 0x150], 0
je 0x14002773c
mov eax, dword [rcx + 0xa5c]
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
cmp edx, dword [0x140236f0c]
setge al
jmp 0x14002773e
movzx eax, al
cmp eax, 4
jne 0x140029dde
mov eax, ebx
shr eax, 0x18
add eax, 0xfffffffe
cmp eax, 3
ja case.default.0x14002974f
lea rcx, [0x1400f6ba4]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov edx, edi
mov rax, rdx
shl rax, 8
lea rcx, [0x1400dcd00]
add rax, rcx
cmp dword [rax + r14*4], 0
je case.default.0x14002974f
mov rdi, qword [rbp + 0x940]
mov rax, qword [rdi + 0x1d8]
mov r8, rax
btr r8, r13
mov qword [rdi + 0x1d8], r8
shl rdx, 5
lea rcx, [0x14022c280]
mov r9, qword [rdx + rcx + 0x10]
mov r10, qword [rdx + rcx]
and r10, r8
imul r10, qword [rdx + rcx + 8]
movzx ecx, byte [rdx + rcx + 0x18]
shr r10, cl
movsxd r10, r10d
lea rcx, [0x14022ca80]
mov r14, r11
mov r11, qword [rdx + rcx + 0x10]
and r8, qword [rdx + rcx]
imul r8, qword [rdx + rcx + 8]
movzx ecx, byte [rdx + rcx + 0x18]
shr r8, cl
movsxd rcx, r8d
mov rcx, qword [r11 + rcx*8]
mov r11, r14
or rcx, qword [r9 + r10*8]
xor r10d, r10d
bt rcx, rsi
setb r10b
bts rax, r13
mov qword [rdi + 0x1d8], rax
jmp case.default.0x14002974f
neg r8d
test r12d, r12d
jle 0x14002ad59
lea rcx, [rax + 0x1b20]
mov rsi, qword [rbp + 0x940]
mov qword [rsi + 0x3e80], rcx
mov dword [rax + 0x1b20], r14d
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 4], r14d
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 8], r8d
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0x1c], 0
mov rax, qword [rsi + 0x3e80]
mov qword [rax + 0x30], 0x7f7f
mov rax, qword [rsi + 0x3e80]
mov qword [rax + 0x20], 0x7f7f
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0x18], 0
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0x10], 0
mov rax, qword [rsi + 0x3e80]
mov ecx, dword [rbp + 0x93c]
mov dword [rax + 0xa58], ecx
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0xa5c], r12d
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0xc], 0
mov rax, qword [rsi + 0x3e80]
mov qword [rax + 0x28], 0x7f7f
mov rax, qword [rsi + 0x3e80]
mov rcx, qword [rbp + 0x8e0]
mov qword [rax + rcx*8 + 0x48], 0x7f7f
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0x230], 0
mov rcx, rsi
call fcn.140027620
mov r15d, eax
mov rax, qword [rsi + 0x3e80]
mov rcx, 0xffffffffffffe4e0
add rax, rcx
mov qword [rsi + 0x3e80], rax
neg r15d
jmp 0x14002865b
neg ecx
neg r9d
lea r8, [rax + 0x1b20]
mov rsi, qword [rbp + 0x940]
mov qword [rsi + 0x3e80], r8
test r12d, r12d
jle 0x140029e45
mov dword [r8], r9d
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 4], r9d
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 8], ecx
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0x1c], 0
mov rax, qword [rsi + 0x3e80]
mov qword [rax + 0x30], 0x7f7f
mov rax, qword [rsi + 0x3e80]
mov qword [rax + 0x20], 0x7f7f
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0x18], 0
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0x10], 0
mov rax, qword [rsi + 0x3e80]
mov ecx, dword [rbp + 0x93c]
mov dword [rax + 0xa58], ecx
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0xa5c], r12d
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0xc], 0
mov rax, qword [rsi + 0x3e80]
mov qword [rax + 0x28], 0x7f7f
mov rax, qword [rsi + 0x3e80]
mov rcx, qword [rbp + 0x8e0]
mov qword [rax + rcx*8 + 0x48], 0x7f7f
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0x230], 0
mov rcx, rsi
call fcn.140027620
mov r15d, eax
add qword [rsi + 0x3e80], 0xffffffffffffe4e0
neg r15d
jmp 0x140028666
lea rax, [rax + rax*2]
xor r12d, r12d
mov rcx, qword [rbp + 0x940]
test dword [rcx + rax*4 + 0x128], 0xffeffff0
sete r12b
jmp 0x14002833a
mov dword [rsi], r15d
mov rax, qword [rbp + 0x8e0]
mov qword [rsi + rax*8 + 0x40], rbx
movsxd r8, dword [rsi + 0x1d50]
test r8, r8
je 0x140029e3e
lea rcx, [rsi + rax*8 + 0x48]
lea rdx, [rsi + rax*8 + 0x1b68]
shl r8, 3
call fcn.14006dc20
mov eax, dword [rsi + 0x1d50]
inc eax
mov dword [rsi + 0x230], eax
jmp 0x1400286a0
mov ebx, r14d
jmp 0x14002a2a0
test r15b, r15b
jne 0x14002aee6
cmp r8d, 0xffff82ff
je 0x14002a9e5
mov rax, qword [rbp + 0x940]
mov rcx, qword [rax + 0x10]
mov rdx, qword [rax + 0x3e80]
mov eax, dword [rdx + 0x3c]
mov edx, dword [rdx + 0xa58]
cmp r8d, 0x7c00
jge 0x14002af24
mov esi, r14d
cmp r8d, 0xffff8400
jle 0x14002a145
mov r11, qword [rbp + 0x940]
mov r9d, dword [r11 + 0x2033e0]
mov r8, qword [rbp + 0x8d0]
add r8d, 2
movsxd rdx, dword [rbp + 0x910]
lea r10, [0x1400f4ed0]
mov rdx, qword [r10 + rdx*8]
xor rdx, qword [r11 + 0x148]
mov qword [rsp + 0x40], rbx
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x20], 2
call fcn.1400142b0
xor eax, eax
mov r10, rdi
jmp 0x14002945c
mov ebx, edx
cmp eax, 0xffff8401
jl 0x140029b45
mov ebx, r8d
test esi, esi
mov r12, r9
jle 0x140029c9f
cmp dword [rbp + 0x920], 0xc
mov r10, rdi
jb 0x140029ca2
mov qword [rcx + 0x1ac0], 0
mov dword [rcx + 0x1b04], 0
mov r12, qword [rbp + 0x940]
mov rax, qword [r12 + 0x3e80]
mov ecx, dword [rax + 8]
lea edx, [rcx - 1]
lea r8, [rax + 0x1b20]
mov qword [r12 + 0x3e80], r8
mov dword [rax + 0x1b20], edx
mov rax, qword [r12 + 0x3e80]
mov dword [rax + 4], edx
mov rax, qword [r12 + 0x3e80]
mov dword [rax + 8], ecx
mov rax, qword [r12 + 0x3e80]
mov dword [rax + 0x1c], 2
mov rax, qword [r12 + 0x3e80]
mov qword [rax + 0x30], 0x7f7f
mov rax, qword [r12 + 0x3e80]
mov qword [rax + 0x20], 0x7f7f
mov rax, qword [r12 + 0x3e80]
mov dword [rax + 0x18], 0
mov rax, qword [r12 + 0x3e80]
mov dword [rax + 0x10], 0
mov rax, qword [r12 + 0x3e80]
mov ecx, dword [rbp + 0x918]
mov dword [rax + 0xa58], ecx
mov rax, qword [r12 + 0x3e80]
mov dword [rax + 0xa5c], esi
mov rax, qword [r12 + 0x3e80]
mov dword [rax + 0xc], 0
mov rax, qword [r12 + 0x3e80]
mov qword [rax + 0x28], 0x7f7f
mov rax, qword [r12 + 0x3e80]
movsxd rcx, ecx
mov qword [rax + rcx*8 + 0x40], 0x7f7f
mov rax, qword [r12 + 0x3e80]
mov dword [rax + 0x230], 0
mov rcx, r12
call fcn.140027620
mov ebx, eax
mov rax, qword [r12 + 0x3e80]
lea rcx, [rax - 0x1b20]
mov qword [r12 + 0x3e80], rcx
cmp ebx, 0x7d01
je 0x14002a525
mov r12, rcx
mov edx, dword [rax - 0x1b18]
mov r10, rdi
cmp ebx, edx
jge 0x14002a2a0
jmp 0x140028d0a
add rdx, 0x38
mov r10, r9
mov r8, qword [rbp + 0x910]
mov dword [rdx], eax
mov cl, 1
jmp 0x14002962c
mov dword [r8], ecx
mov rdx, qword [r12 + 0x3e80]
mov dword [rdx + 4], ecx
mov rcx, qword [r12 + 0x3e80]
mov dword [rcx + 8], eax
mov rax, qword [r12 + 0x3e80]
mov dword [rax + 0x1c], 0
mov rax, qword [r12 + 0x3e80]
mov qword [rax + 0x30], 0x7f7f
mov rax, qword [r12 + 0x3e80]
mov qword [rax + 0x20], 0x7f7f
mov rax, qword [r12 + 0x3e80]
mov dword [rax + 0x18], 0
mov rax, qword [r12 + 0x3e80]
mov dword [rax + 0x10], 0
mov rax, qword [r12 + 0x3e80]
mov dword [rax + 0xa58], r9d
mov rax, qword [r12 + 0x3e80]
mov dword [rax + 0xa5c], esi
mov rax, qword [r12 + 0x3e80]
mov dword [rax + 0xc], 0
mov rax, qword [r12 + 0x3e80]
mov qword [rax + 0x28], 0x7f7f
mov rax, qword [r12 + 0x3e80]
mov rcx, qword [rbp + 0x8e0]
mov qword [rax + rcx*8 + 0x48], 0x7f7f
mov rax, qword [r12 + 0x3e80]
mov dword [rax + 0x230], 0
mov rcx, r12
call fcn.140027620
jmp 0x140028c97
mov r10d, dword [rbp + 0x900]
jmp 0x14002835a
cmp qword [r12 + 0x30], 0x7f7f
setne al
xor r15b, 1
or r15b, al
je 0x14002b01c
mov dword [rbp + 0x918], 0
jmp 0x140027a47
mov r10d, 2
jmp case.default.0x14002974f
cmp eax, 3
jne case.default.0x14002974f
shl r14, 4
lea rax, [0x1400cbb00]
add r14, rax
mov rax, qword [r14 + r15*8]
mov r10d, 2
bt rax, rdi
jae case.default.0x14002974f
mov r10d, 1
jmp case.default.0x14002974f
cmp ecx, 0x7f
jne 0x1400283ed
jmp 0x1400284f0
mov r9d, ebx
shr r9d, 0x18
lea rdx, [0x1400f5b90]
mov r9d, dword [rdx + r9*4]
lea r8d, [r9 + r8 - 0x80]
jmp 0x140028248
xor eax, eax
jmp 0x140029a78
mov dword [rax + 0x1b3c], 0
mov rax, qword [rsi + 0x3e80]
mov edx, dword [rbp + 0x93c]
mov dword [rax + 0xa58], edx
mov rax, qword [rsi + 0x3e80]
mov dword [rax], r9d
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 4], r9d
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 8], ecx
mov rax, qword [rsi + 0x3e80]
mov qword [rax + 0x20], 0x7f7f
mov rax, qword [rsi + 0x3e80]
mov rcx, qword [rbp + 0x8e0]
mov qword [rax + rcx*8 + 0x48], 0x7f7f
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0x230], 0
mov rcx, rsi
xor r8d, r8d
call fcn.140033120
jmp 0x140029a05
or byte [rcx + 0x1c], 4
mov rsi, qword [rbp + 0x940]
mov rax, qword [rsi + 0x3e80]
mov rdx, qword [rax - 0x1af8]
mov rcx, qword [rbp + 0x930]
xor r8d, r8d
call fcn.140013590
test eax, eax
je 0x14002a525
mov rax, qword [rsi + 0x10]
mov rbx, qword [rsi + 0x2450]
and ebx, 1
dec ebx
mov ecx, dword [rax + 0x124]
test ecx, ecx
je 0x14002a2a0
mov edx, dword [rsi + 0x140]
cmp edx, dword [rax + 0x120]
je 0x140027997
add ebx, ecx
jmp 0x14002a2a0
mov eax, edx
jmp 0x140028e5d
xor edx, edx
jmp 0x140028e75
mov rcx, qword [rbp + 0x940]
cmp dword [rcx + 0x154], 0
sete cl
test byte [rax + 0x1c], 1
jne 0x14002b0fd
test cl, cl
je 0x1400277d6
mov rdx, qword [rbp + 0x940]
cmp dword [rdx + 0x164], 3
setl cl
cmp dword [rdx + 0x160], 3
jl 0x14002b104
test cl, cl
jne 0x1400277d6
mov esi, ebx
mov rbx, qword [rbp + 0x940]
inc qword [rbx + 0x2440]
movzx r8d, byte [rbx + 0x203390]
lea rdx, [rbp - 0x30]
mov rcx, qword [rbp + 0x930]
call fcn.14001a920
test eax, eax
je 0x14002b10b
lock inc qword [rbx + 0x2448]
mov rcx, qword [rbx + 0x10]
mov esi, dword [rbp - 0x30]
cmp esi, 0xffff82ff
je 0x14002b119
mov rax, qword [rbx + 0x3e80]
mov edx, dword [rax + 0xa58]
mov eax, esi
cmp esi, 0xffff8400
jle 0x14002b123
cmp esi, 0x7c00
jge 0x14002b12c
mov rdi, qword [rbp + 0x940]
mov r9d, dword [rdi + 0x2033e0]
movsxd rdx, dword [rbp + 0x8dc]
lea r8, [0x1400f4ed0]
mov rdx, qword [r8 + rdx*8]
xor rdx, qword [rdi + 0x148]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x40], 0x7f7f
mov dword [rsp + 0x38], 8
mov dword [rsp + 0x30], 0xffff82ff
mov dword [rsp + 0x20], 0
mov r8d, 0x7a
call fcn.1400142b0
mov rax, qword [rdi + 0x3e80]
mov dword [rax], esi
mov rax, qword [rdi + 0x3e80]
or dword [rax + 0x1c], 4
mov rax, qword [rdi + 0x3e80]
jmp 0x14002a29e
xor ecx, ecx
mov r14d, eax
jmp 0x140029625
lea r8, [rbp + 0x880]
mov rcx, qword [rbp + 0x930]
mov rdx, rbx
call fcn.14002da40
mov r12, qword [rbp + 0x8f0]
jmp 0x1400290b4
mov rax, qword [rdi + 0x10]
inc qword [rax + 0x2900]
mov rax, qword [rdi + 0x10]
mov rcx, qword [rax + 0x138]
mov rdx, qword [rcx + 0x908]
mov r8, qword [rcx + 0x910]
mov r9, qword [rcx + 0x918]
mov r10, qword [rcx + 0x920]
and rdx, qword [rcx + 0x928]
and r8, qword [rcx + 0x930]
and r9, qword [rcx + 0x938]
and r10, qword [rcx + 0x940]
popcnt rcx, rdx
popcnt rdx, r8
add rdx, rcx
popcnt rcx, r9
popcnt r8, r10
add r8, rcx
add r8, rdx
add qword [rax + 0x2908], r8
mov rax, qword [rdi + 0x10]
mov dword [rax + 0x110], 0x271
jmp 0x140028d6f
lea r8, [0x1400c9f80]
xor rdx, qword [r8 + rax*8]
movabs rax, 0x6c207454dd4a2536
xor rdx, rax
jmp 0x140028b5c
mov ebx, r13d
jmp 0x14002a2a0
not r8d
add edx, r8d
mov esi, edx
jmp 0x140029adb
mov rax, qword [rbp + 0x940]
mov rsi, qword [rax + 0x3e80]
inc dword [rsi + 0xc]
mov rcx, qword [rbp + 0x940]
mov eax, dword [rcx + 0x3e78]
mov r12, qword [rcx + 0x3e80]
test eax, eax
jne 0x14002a6d4
cmp dword [r12 + 0x18], 0
mov eax, dword [rbp + 0x8fc]
mov rcx, qword [rbp + 0x8d0]
je 0x14002a385
cmp qword [r12 + 0x20], 0x7f7f
je 0x14002a1fa
mov rax, qword [rbp + 0x940]
mov eax, dword [rax + 0x15c]
cmp eax, 2
je 0x14002a840
cmp eax, 1
je 0x14002a1fa
mov r9, qword [rbp + 0x940]
mov r8, qword [r9 + 0x3e80]
mov rax, qword [r8 + 0x20]
mov rcx, rax
shr rcx, 0x18
test cx, cx
je 0x14002a2de
mov rcx, qword [rbp + 0x8b8]
mov rdx, qword [rbp + 0x930]
call fcn.140012a30
mov rcx, qword [rbp + 0x8d0]
mov r11, qword [rbp + 0x940]
cmp dword [r11 + 0x3e78], 0
jne 0x14002a297
mov r10, qword [r11 + 0x3e80]
cmp qword [r10 + 0x30], 0x7f7f
jne 0x14002a297
cmp qword [r10 + 0x20], 0x7f7f
jne 0x14002a23c
mov qword [r10 + 0x20], rcx
mov rax, qword [rbp + 0x940]
mov r10, qword [rax + 0x3e80]
mov eax, dword [r10]
cmp eax, dword [r10 + 4]
jle 0x14002a2bd
xor ecx, ecx
cmp eax, dword [r10 + 8]
setge cl
shl rcx, 0x31
mov rdx, qword [rbp + 0x940]
mov r8, qword [rdx + 0x10]
cmp eax, 0xffff82ff
je 0x14002a6e8
mov edx, dword [r10 + 0xa58]
cmp eax, 0xffff8400
jle 0x14002a3b2
cmp eax, 0x7c00
jge 0x14002a37c
cmp qword [r8 + 8], 0
mov r11, qword [rbp + 0x940]
jne 0x14002a6f2
mov rax, qword [r11 + 0x3e80]
mov ebx, dword [rax]
mov eax, ebx
movaps xmm6, xmmword [rbp + 0x950]
add rsp, 0x9e8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov qword [r10 + 0x20], rcx
mov rdx, qword [rbp + 0x940]
mov r10, qword [rdx + 0x3e80]
movabs rcx, 0x1000000000000
jmp 0x14002a259
mov ecx, dword [r8 + 0xa58]
mov rdx, qword [r9 + rcx*8 + 0x3a50]
cmp eax, edx
je 0x14002a2fd
mov qword [r9 + rcx*8 + 0x3c50], rdx
mov rax, qword [r8 + 0x20]
mov qword [r9 + rcx*8 + 0x3a50], rax
mov r8, qword [r9 + 0x3e80]
cmp dword [r8 + 0xa58], 0
jle 0x14002a1e0
mov rax, qword [r8 - 0x1af8]
cmp rax, 0x7f7f
je 0x14002a1e0
mov r10, qword [rbp + 0x940]
movsxd rcx, dword [r10 + 0x140]
mov edx, 1
sub rdx, rcx
mov ecx, eax
shr ecx, 0x10
movzx ecx, cl
lea r9, [0x1400e0d00]
lea rcx, [r9 + rcx*8]
movsxd rcx, dword [rcx + rdx*4]
shl rcx, 9
add rcx, qword [r10 + 0x3e58]
mov rdx, qword [r8 + 0x20]
movzx eax, ah
mov qword [rcx + rax*8], rdx
mov r8, qword [r10 + 0x3e80]
jmp 0x14002a1e0
lea eax, [rax + rdx - 1]
jmp 0x14002a285
cmp dword [rbp + 0x8ec], 1
jne 0x14002af3e
add eax, 0xffff8300
mov dword [r12], eax
mov r11, qword [rbp + 0x940]
mov rax, qword [r11 + 0x3e80]
or dword [rax + 0x1c], 4
jmp 0x14002a297
sub eax, edx
inc eax
jmp 0x14002a285
mov eax, edi
mov rcx, rax
shl rcx, 8
lea rdx, [0x1400dcd00]
add rcx, rdx
mov edx, dword [rcx + r14*4]
mov ecx, edx
neg ecx
cmovs ecx, edx
cmp ecx, 8
je 0x14002a3e7
cmp ecx, 1
jne case.default.0x14002974f
mov r9, qword [rbp + 0x940]
mov rdx, qword [r9 + 0x1d8]
mov r8, rdx
btr r8, r13
mov qword [r9 + 0x1d8], r8
shl rax, 5
lea r10, [0x14022c280]
jmp 0x14002a45e
mov eax, edi
mov rcx, rax
shl rcx, 8
lea rdx, [0x1400dcd00]
add rcx, rdx
mov edx, dword [rcx + r14*4]
mov ecx, edx
neg ecx
cmovs ecx, edx
cmp ecx, 9
jne 0x14002b42e
mov r9, qword [rbp + 0x940]
mov rdx, qword [r9 + 0x1d8]
mov r8, rdx
btr r8, r13
mov qword [r9 + 0x1d8], r8
shl rax, 5
lea r10, [0x14022ca80]
and r8, qword [rax + r10]
imul r8, qword [rax + r10 + 8]
mov cl, byte [rax + r10 + 0x18]
shr r8, cl
mov rax, qword [rax + r10 + 0x10]
movsxd rcx, r8d
mov rax, qword [rax + rcx*8]
xor r10d, r10d
bt rax, rsi
setb r10b
bts rdx, r13
mov qword [r9 + 0x1d8], rdx
jmp case.default.0x14002974f
xor ecx, ecx
jmp 0x140027fb9
mov rcx, qword [rbp + 0x930]
mov esi, r10d
mov rdi, r11
call fcn.14000b590
mov r11, rdi
mov r10d, esi
jmp 0x140027ead
mov ecx, 0xdc
jmp 0x140027f8f
mov r14d, r10d
xor esi, esi
mov rax, qword [rbp + 0x920]
mov r12d, eax
jmp 0x140028379
mov ebx, dword [rsi + 4]
jmp 0x14002a2a0
mov rdx, qword [rsi - 0x1af8]
xor r8d, r8d
call fcn.140013590
test eax, eax
je 0x14002a525
or byte [rsi + 0x1c], 4
mov rcx, qword [rbp + 0x940]
mov rdx, qword [rbp + 0x930]
movaps xmm6, xmmword [rbp + 0x950]
add rsp, 0x9e8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp 0x1400ad120
mov ebx, 0x7d01
jmp 0x14002a2a0
xor esi, esi
jmp 0x140027741
movsx eax, r12w
and r12d, 0x7fff
and eax, 0xffff8000
or eax, r12d
mov rcx, qword [r8 + 0x3e80]
mov dword [rcx + 0x3c], eax
mov rcx, qword [r8 + 0x3e80]
mov dword [rcx + 0x38], eax
jmp 0x14002781b
xor eax, eax
mov rcx, qword [rbp + 0x900]
cmp ecx, dword [rdx + 0x38]
setg al
inc eax
cmp r14d, eax
jne 0x1400278ba
mov rax, qword [rbp + 0x900]
mov dword [rdx + 0x38], eax
mov rax, qword [rbp + 0x940]
mov rdx, qword [rax + 0x3e80]
jmp 0x1400278ba
mov dword [rbp + 0x910], r8d
movsxd rax, r8d
mov r9, qword [rbp + 0x940]
mov r8d, dword [r9 + 0x2033e0]
lea rdx, [0x1400f4ed0]
mov rax, qword [rdx + rax*8]
xor rax, qword [r9 + 0x148]
mov edx, dword [rcx + 0x18]
and edx, eax
mov rcx, qword [rcx]
movsxd rdx, edx
lea rdx, [rdx + rdx*2]
lea rcx, [rcx + rdx*8]
mov rdx, qword [rcx]
mov r12, qword [rcx + 0x10]
mov r9, rdx
xor r9, rax
xor r9, r12
cmp r9, 0xffff
jbe 0x14002a8e0
mov rdx, qword [rcx + 0x18]
mov r12, qword [rcx + 0x28]
mov r9, rdx
xor r9, rax
xor r9, r12
cmp r9, 0x10000
jb 0x14002a8dc
mov rdx, qword [rcx + 0x30]
mov r12, qword [rcx + 0x40]
mov r9, rdx
xor r9, rax
xor r9, r12
cmp r9, 0x10000
jb 0x14002a989
mov rdx, qword [rcx + 0x48]
mov r12, qword [rcx + 0x58]
mov r9, rdx
xor r9, rax
xor r9, r12
cmp r9, 0xffff
jbe 0x14002a9f2
xor r15d, r15d
movabs r12, 0x7f030000ffff82ff
mov ebx, dword [rbp + 0x8fc]
jmp 0x14002a97d
mov rcx, qword [rbp + 0x940]
mov rdx, qword [rbp + 0x930]
mov dword [rbp + 0x900], r10d
mov r12, r11
call 0x1400ad120
mov r11, r12
mov r10d, dword [rbp + 0x900]
mov dword [r15 + 0x3c], eax
mov dword [r15 + 0x38], eax
jmp 0x14002818e
mov rcx, qword [rbp + 0x940]
mov rdx, qword [rbp + 0x930]
mov qword [rbp + 0x908], r13
mov r13, r11
call 0x1400ad120
mov r11, r13
mov r13, qword [rbp + 0x908]
mov dword [r15 + 0x3c], eax
mov dword [r15 + 0x38], eax
jmp 0x14002820b
xor ecx, ecx
jmp 0x140027adb
mov rsi, r12
mov eax, dword [rsi + 4]
mov dword [rsi], eax
mov r11, qword [rbp + 0x940]
jmp 0x14002a297
mov eax, 0xffff82ff
jmp 0x14002a285
movsxd rdx, dword [rbp + 0x8dc]
lea r9, [0x1400f4ed0]
mov rdx, qword [r9 + rdx*8]
movzx r9d, word [r10 + 0x3c]
xor rdx, qword [r11 + 0x148]
mov rbx, qword [r10 + 0x20]
mov r10d, dword [r11 + 0x2033e0]
mov r11d, dword [r8 + 0x18]
and r11d, edx
mov rsi, qword [r8]
movsxd r11, r11d
lea r11, [r11 + r11*2]
lea r15, [rsi + r11*8]
mov rdi, qword [r15]
mov r11, qword [r15 + 0x10]
xor r11, rdi
cmp r11, 0x10000
jb 0x14002a870
xor r11, rdx
cmp r11, 0x10000
jb 0x14002a870
mov r11d, 0xffffff84
movabs rsi, 0x18000000000000
test rdi, rsi
je 0x14002a992
xor r14d, r14d
lea rsi, [r15 + 0x18]
mov rdi, qword [r15 + 0x18]
mov r13, qword [r15 + 0x28]
xor r13, rdi
cmp r13, 0x10000
jb 0x14002a873
xor r13, rdx
cmp r13, 0x10000
jb 0x14002a873
movabs r12, 0x18000000000000
test rdi, r12
je 0x14002a9fb
lea rsi, [r15 + 0x30]
mov rdi, qword [r15 + 0x30]
mov r13, qword [r15 + 0x40]
xor r13, rdi
cmp r13, 0x10000
jb 0x14002a873
xor r13, rdx
cmp r13, 0x10000
jb 0x14002a873
movabs r12, 0x18000000000000
test rdi, r12
je 0x14002ac9a
lea rsi, [r15 + 0x48]
mov rdi, qword [r15 + 0x48]
mov r15, qword [r15 + 0x58]
xor r15, rdi
cmp r15, 0x10000
jb 0x14002a873
xor r15, rdx
cmp r15, 0x10000
jb 0x14002a873
movabs r15, 0x18000000000000
test rdi, r15
je 0x14002ad8b
test r14, r14
mov r11, qword [rbp + 0x940]
je 0x14002a297
mov rdi, qword [r14]
mov rsi, r14
jmp 0x14002a873
mov rcx, qword [rbp + 0x930]
call fcn.14000b590
mov rcx, qword [rbp + 0x8d0]
jmp 0x14002a1b9
mov rcx, qword [rbp + 0x930]
call fcn.14000b590
mov rsi, qword [r13 + 0x3e80]
jmp 0x1400287cc
mov rsi, r15
xor rdi, qword [rsi + 0x10]
cmp rdi, 0xffff
ja 0x14002a884
dec qword [r8 + 0x10]
mov r8d, ebx
shr r8d, 0x18
mov r11, rbx
shl r11, 0x38
or r11, rcx
mov ecx, 0xff
and r10d, ecx
shl r10, 0x28
mov rdi, qword [rbp + 0x920]
add edi, 2
and edi, ecx
shl rdi, 0x20
or rdi, r10
mov eax, eax
or rax, rdi
or rax, r11
xor rdx, rax
and rdx, 0xffffffffffff0000
or rdx, r9
mov qword [rsi], rax
mov byte [rsi + 8], bh
mov byte [rsi + 9], r8b
mov qword [rsi + 0x10], rdx
jmp 0x14002a6dc
add rcx, 0x18
mov r9, rdx
shr r9, 0x20
mov r11, rdx
shr r11, 0x28
movabs r10, 0xffff00ffffffffff
and r11d, 0xff
je 0x14002a937
cmp r11d, r8d
je 0x14002a937
movzx r11d, r12w
movzx r8d, r8b
shl r8, 0x28
and rdx, r10
or r8, rdx
xor rax, r8
and rax, 0xffffffffffff0000
or rax, r11
mov qword [rcx], r8
mov qword [rcx + 0x10], rax
mov qword [rbp + 0x928], rdx
mov r12, rax
jmp 0x14002a941
and rdx, r10
mov qword [rbp + 0x928], rdx
mov rax, qword [rcx + 8]
movzx ecx, r9b
add ecx, 0xfffffffe
cmp ecx, dword [rbp + 0x920]
jl 0x14002aa4c
mov rdi, qword [rbp + 0x928]
shr rdi, 0x30
and edi, 7
cmp edi, 5
jne 0x14002aa51
xor r15d, r15d
mov ebx, dword [rbp + 0x8fc]
mov edi, 0x7f7f
mov r8d, dword [rbp + 0x910]
jmp 0x1400277ad
add rcx, 0x30
jmp 0x14002a8e0
mov rsi, rdi
shr rsi, 0x20
shr rdi, 0x28
mov r14d, 0xff
and esi, r14d
add esi, 0xfffffffe
and edi, r14d
cmp esi, dword [rbp + 0x920]
jle 0x14002a9bd
cmp edi, r10d
je 0x14002a770
sub edi, r10d
mov r13d, edi
neg r13d
cmovs r13d, edi
shl r13d, 0xc
sub r13d, esi
xor r14d, r14d
cmp r13d, 0xffffff85
cmovge r11d, r13d
cmovge r14, r15
jmp 0x14002a773
xor eax, eax
mov r14d, 0x7d01
jmp 0x140029b31
add rcx, 0x48
jmp 0x14002a8e0
mov r13, rdi
shr r13, 0x20
shr rdi, 0x28
mov r12d, 0xff
and r13d, r12d
add r13d, 0xfffffffe
and edi, r12d
cmp r13d, dword [rbp + 0x920]
jle 0x14002aa28
cmp edi, r10d
je 0x14002a7b2
sub edi, r10d
mov r12d, edi
neg r12d
cmovs r12d, edi
shl r12d, 0xc
sub r12d, r13d
cmp r12d, r11d
cmovg r11d, r12d
cmovg r14, rsi
jmp 0x14002a7b2
mov edi, 4
bt qword [rbp + 0x928], 0x33
jb 0x14002aa7d
test esi, esi
jne 0x14002aa78
mov rcx, qword [rbp + 0x940]
mov rcx, qword [rcx + 0x3e80]
mov edx, dword [rcx + 4]
inc edx
cmp dword [rcx + 8], edx
jle 0x14002aa7d
mov edi, 4
mov ebx, 0xffff82ff
cmp dword [rbp + 0x928], 0xffff82ff
jne 0x14002aceb
mov ecx, eax
shr ecx, 8
movsx r9d, cl
movsx r8d, al
mov rdx, qword [rbp + 0x928]
sar rdx, 0x38
mov r15, qword [rbp + 0x930]
mov rcx, r15
mov qword [rbp + 0x900], rdx
mov dword [rbp + 0x8c8], r8d
mov dword [rbp + 0x8ec], r9d
call fcn.1400a8680
mov r14, rax
mov rcx, r15
mov rdx, rax
call fcn.140013db0
test eax, eax
mov r9d, 0x7f7f
cmovne r9, r14
mov r15b, 1
cmp edi, 2
je 0x14002addd
cmp edi, 1
je 0x14002ae03
test edi, edi
jne 0x14002aeae
mov rax, qword [rbp + 0x940]
mov rax, qword [rax + 0x3e80]
cmp dword [rax + 4], ebx
jge 0x14002a2a0
cmp dword [rax + 8], ebx
jle 0x14002a2a0
mov rsi, qword [rbp + 0x930]
mov rcx, rsi
mov rdx, qword [rbp + 0x900]
mov r8d, dword [rbp + 0x8c8]
mov r9d, dword [rbp + 0x8ec]
call fcn.1400a8680
mov rdi, rax
mov rcx, rsi
mov rdx, rax
call fcn.140013db0
cmp rdi, 0x7f7f
je 0x14002a2a0
test eax, eax
je 0x14002a2a0
mov rcx, qword [rbp + 0x940]
mov rax, qword [rcx + 0x3e80]
mov rdx, qword [rbp + 0x8e0]
mov qword [rax + rdx*8 + 0x40], rdi
mov rax, qword [rcx + 0x3e80]
mov dword [rax + 0x230], 1
jmp 0x14002a2a0
mov r9d, 0xdc
jmp 0x140028e06
cmp r14d, 1
jne 0x140028ead
mov rcx, qword [rbp + 0x928]
shr rcx, 0x20
movzx ecx, cl
add ecx, 0xfffffffe
mov rdx, qword [rbp + 0x8d0]
add edx, 2
cmp ecx, edx
jl 0x140028ead
cmp dword [rbp + 0x900], 0xffff82ff
je 0x140028ead
cmp dword [rbp + 0x900], r11d
jge 0x140028ead
mov r14d, r13d
mov r10, rdi
jmp 0x1400279d4
movabs rax, 0xff0000000000
mov rdx, r8
and rax, r8
movabs rcx, 0x40000000000
cmp rax, rcx
jne 0x14002ad1f
mov rbx, rdx
jmp 0x140029069
mov rcx, rbx
call fcn.14000b590
jmp 0x140028feb
movabs rcx, 0x7000000000000
and rcx, qword [rbp + 0x928]
movabs rdx, 0x1000000000000
cmp rcx, rdx
jne 0x140028b0d
mov rcx, qword [rbp + 0x928]
shr rcx, 0x20
movzx ecx, cl
add ecx, 0xfffffffe
cmp ecx, esi
jl 0x140028b0d
cmp eax, dword [rbp + 0x928]
jle 0x140028b0d
mov rbx, qword [rbp + 0x920]
jmp 0x1400279b5
mov eax, dword [rcx - 0x1b1c]
mov dword [rcx - 0x1b20], eax
jmp 0x14002a6dc
mov r13, rdi
shr r13, 0x20
shr rdi, 0x28
mov r12d, 0xff
and r13d, r12d
add r13d, 0xfffffffe
and edi, r12d
cmp r13d, dword [rbp + 0x920]
jle 0x14002acc7
cmp edi, r10d
je 0x14002a7f1
sub edi, r10d
mov r12d, edi
neg r12d
cmovs r12d, edi
shl r12d, 0xc
sub r12d, r13d
cmp r12d, r11d
cmovg r11d, r12d
cmovg r14, rsi
jmp 0x14002a7f1
mov rcx, qword [rbp + 0x940]
mov rcx, qword [rcx + 0x3e80]
mov ecx, dword [rcx + 0xa58]
cmp dword [rbp + 0x928], 0x7c00
jl 0x14002aec6
mov rbx, qword [rbp + 0x928]
sub ebx, ecx
inc ebx
jmp 0x14002aa92
mov eax, r8d
shr eax, 8
mov rcx, qword [rbp + 0x130]
bt rcx, rax
mov rbx, rdx
lea r14, [rbp - 0x20]
jb 0x140029069
jmp 0x140028fce
mov r14d, 0x7d01
xor ecx, ecx
jmp 0x140029625
xor ecx, ecx
mov r14d, r8d
jmp 0x140029622
mov rsi, qword [rbp + 0x940]
mov rcx, rsi
mov edx, r14d
mov r9d, dword [rbp + 0x93c]
call fcn.1400ad280
mov r15d, eax
neg r15d
mov rax, qword [rsi + 0x3e80]
jmp 0x14002865b
mov al, 1
jmp 0x140029287
mov r15, rdi
shr r15, 0x20
mov r12, rdi
shr r12, 0x28
mov r13d, 0xff
and r15d, r13d
add r15d, 0xfffffffe
and r12d, r13d
cmp r15d, dword [rbp + 0x920]
jle 0x14002adbb
cmp r12d, r10d
je 0x14002a828
sub r12d, r10d
mov r13d, r12d
neg r13d
cmovs r13d, r12d
shl r13d, 0xc
sub r13d, r15d
cmp r13d, r11d
jle 0x14002a828
jmp 0x14002a873
mov rax, qword [rbp + 0x940]
mov r8, qword [rax + 0x3e80]
mov r14d, 2
cmp ebx, dword [r8 + 8]
jge 0x14002ae1d
mov qword [rbp + 0x900], rbx
jmp 0x14002aeb8
mov rax, qword [rbp + 0x940]
mov r8, qword [rax + 0x3e80]
mov r14d, 1
cmp ebx, dword [r8 + 4]
jg 0x14002adf7
cmp r9, 0x7f7f
jne 0x14002af85
mov rax, qword [rbp + 0x940]
mov r8, qword [rax + 0x3e80]
cmp dword [r8 + 0xa58], 0
jle 0x14002a2a0
cmp dword [r8 - 0x1b08], 2
jg 0x14002a2a0
mov rax, qword [r8 + 0x28]
cmp rax, 0x7f7f
je 0x14002a2a0
movabs rcx, 0xffff000000
and rax, rcx
jne 0x14002a2a0
mov rcx, qword [rbp + 0x940]
add rcx, 0x3a48
mov r9, qword [r8 - 0x1af8]
add r8, 0xffffffffffffe4e0
mov byte [rsp + 0x28], 1
mov byte [rsp + 0x20], 0
mov rdx, qword [rbp + 0x930]
call fcn.140012c60
jmp 0x14002a2a0
mov qword [rbp + 0x900], rbx
mov r14d, edi
mov ebx, dword [rbp + 0x8fc]
mov rdi, r9
jmp 0x14002a97d
cmp dword [rbp + 0x928], 0xffff8400
jg 0x14002b010
mov rdx, qword [rbp + 0x928]
lea ebx, [rcx + rdx - 1]
jmp 0x14002aa92
mov rax, qword [rbp + 0x928]
shr rax, 0x20
movzx ecx, al
add ecx, 0xfffffffe
mov rax, qword [rbp + 0x8d0]
lea edx, [rax + 2]
xor eax, eax
cmp ecx, edx
jge 0x14002b0ee
cmp r8d, 0xffff82ff
mov r12, qword [rbp + 0x8f0]
jne 0x140029aa3
jmp 0x140029b31
add r8d, edx
mov esi, 1
sub esi, r8d
jmp 0x140029adb
mov eax, 0x7f
jmp 0x14002943c
mov rax, qword [rbp + 0x940]
mov rcx, qword [rax + 0x10]
mov rax, qword [rax + 0x2450]
and eax, 1
dec eax
mov edx, dword [rcx + 0x124]
test edx, edx
je 0x14002b070
mov r8, qword [rbp + 0x940]
mov r8d, dword [r8 + 0x140]
cmp r8d, dword [rcx + 0x120]
jne 0x14002b06e
sub eax, edx
jmp 0x14002b070
mov rcx, r9
shr rcx, 0x18
mov eax, dword [r8 + 8]
test cx, cx
jne 0x14002b2e0
cmp ebx, eax
jl 0x14002afe1
mov eax, dword [r8 + 0xa58]
mov rcx, qword [rbp + 0x940]
mov rcx, qword [rcx + rax*8 + 0x3a50]
cmp r9d, ecx
je 0x14002afc7
mov rdx, qword [rbp + 0x940]
mov qword [rdx + rax*8 + 0x3c50], rcx
mov rcx, qword [rbp + 0x940]
mov qword [rcx + rax*8 + 0x3a50], r9
mov r8, qword [rcx + 0x3e80]
mov eax, dword [r8 + 8]
cmp ebx, dword [r8 + 4]
setle byte [rsp + 0x28]
mov rcx, qword [rbp + 0x940]
add rcx, 0x3a48
cmp ebx, eax
setge byte [rsp + 0x20]
mov rdx, qword [rbp + 0x930]
call fcn.140012c60
jmp 0x14002ae2a
mov rbx, qword [rbp + 0x928]
jmp 0x14002aa92
mov r8, r12
mov r15, r10
movabs rax, 0x7000000000000
and rax, qword [rbp + 0x928]
movabs rcx, 0x2000000000000
cmp rax, rcx
jne 0x14002b0d2
cmp r15, 0x7f7f
jne 0x14002b097
mov dword [rbp + 0x918], 0
mov r10d, 0x7f7f
mov rbx, qword [rbp + 0x920]
mov r12, r8
jmp 0x140027a47
add eax, edx
mov rdx, qword [rbp + 0x940]
mov rcx, qword [rdx + 0x3e80]
mov dword [rcx], eax
mov rax, qword [rdx + 0x3e80]
or dword [rax + 0x1c], 4
mov rax, qword [rdx + 0x3e80]
jmp 0x14002a29e
cmp dword [rbp + 0x900], 0xffff82ff
je 0x14002b0b6
mov rax, qword [rbp + 0x900]
add eax, 0xffff8500
cmp eax, 0xffff0a01
jb 0x14002b0d2
mov rax, qword [rbp + 0x928]
shr rax, 0x20
movzx eax, al
mov rcx, qword [rbp + 0x920]
add ecx, 0xfffffffc
cmp ecx, eax
jbe 0x14002b135
mov dword [rbp + 0x918], 0
mov rbx, qword [rbp + 0x920]
mov r10, r15
mov r12, r8
jmp 0x140027a47
mov r10, rdi
mov r12, qword [rbp + 0x8f0]
jmp 0x14002945c
xor ecx, ecx
jmp 0x140029f58
mov cl, 1
jmp 0x140029f7e
mov rax, qword [rbx + 0x3e80]
mov ebx, esi
jmp 0x1400277d6
mov eax, 0xffff82ff
jmp 0x140029ff8
sub eax, edx
inc eax
jmp 0x140029ff8
lea eax, [rdx + rsi - 1]
jmp 0x140029ff8
mov rsi, qword [rbp + 0x930]
mov rcx, rsi
mov rdi, r15
mov rdx, r15
call fcn.14002fc60
mov dword [rbp + 0x918], 0
mov rcx, rsi
mov rdx, r15
xor r8d, r8d
call fcn.140013590
mov ebx, eax
lea r8, [rbp + 0x880]
mov rcx, rsi
mov rdx, r15
call fcn.14002da40
mov rax, qword [rbp + 0x940]
mov rax, qword [rax + 0x3e80]
mov qword [rbp + 0x8f0], rax
test ebx, ebx
je 0x14002b30d
mov rdx, qword [rbp + 0x8f0]
mov eax, dword [rdx + 4]
mov dword [rbp + 0x928], eax
mov eax, dword [rdx + 8]
mov dword [rbp + 0x938], eax
movsxd rax, dword [rdx + 0xa58]
mov qword [rbp + 0x910], rax
mov eax, dword [rdx + 0xa5c]
mov dword [rbp + 0x93c], eax
mov eax, dword [rdx + 0x1c]
mov dword [rbp + 0x908], eax
mov rax, qword [rbp + 0x900]
mov rcx, qword [rbp + 0x920]
sub eax, ecx
cmp eax, 0xffff8301
mov ebx, 0xffff8300
cmovge ebx, eax
mov qword [rdx + 0x1ac0], 0
mov dword [rdx + 0x1b04], 0
mov eax, ecx
shr eax, 1
add eax, 0xfffffffe
mov rcx, qword [rbp + 0x940]
mov rdx, qword [rcx + 0x3e80]
mov r9d, dword [rdx + 0xa58]
inc r9d
lea edx, [rbx - 1]
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], eax
mov r8d, ebx
call fcn.1400ad190
mov cl, 1
mov dword [rbp + 0x918], ecx
cmp eax, ebx
jge 0x14002b326
mov cl, 1
mov ebx, r14d
mov r8, qword [rbp + 0x8f0]
mov eax, dword [rbp + 0x928]
mov dword [r8 + 4], eax
mov edx, dword [rbp + 0x938]
mov dword [r8 + 8], edx
mov edx, dword [rbp + 0x93c]
mov dword [r8 + 0xa5c], edx
mov edx, dword [rbp + 0x908]
mov dword [r8 + 0x1c], edx
mov dword [r8], eax
mov qword [r8 + 0xc], 0
xor eax, eax
mov dword [r8 + 0x18], eax
mov edx, 0x7f7f
mov qword [r8 + 0x28], rdx
mov qword [r8 + 0x20], rdx
mov r9, qword [rbp + 0x910]
mov qword [r8 + r9*8 + 0x1b68], rdx
mov dword [r8 + 0x1d50], eax
mov qword [r8 + r9*8 + 0x40], rdx
mov dword [r8 + 0x230], eax
test cl, cl
je 0x14002a2a0
mov rax, qword [rbp + 0x940]
mov r12, qword [rax + 0x3e80]
mov rbx, qword [rbp + 0x920]
mov r10, r15
jmp 0x140027a47
mov rcx, qword [rbp + 0x940]
mov rcx, qword [rcx + 0x3e70]
cmp ebx, eax
setge byte [rsp + 0x20]
mov rdx, qword [rbp + 0x930]
mov r8, qword [rbp + 0x920]
call fcn.1400aa340
jmp 0x14002ae2a
mov r10d, 0x7f7f
mov rbx, qword [rbp + 0x920]
mov r12, qword [rbp + 0x8f0]
jmp 0x140027a47
mov rax, qword [rbp + 0x940]
mov rax, qword [rax + 0x3e80]
mov r8d, dword [rax + 8]
mov dword [rbp + 0x918], 0
mov ecx, 0
cmp ebx, r8d
jge 0x14002b249
cmp dword [rbp + 0x900], r8d
jge 0x14002b3d2
mov dword [rbp + 0x918], 0
jmp 0x14002b244
lea rdx, [0x1402369a0]
lea rbx, [0x140145f30]
mov rcx, rbx
call fcn.140075630
lea rdx, str.terminating__time_up
mov rcx, rbx
call fcn.140072f20
mov rax, qword [0x140145f30]
movsxd rcx, dword [rax + 4]
add rcx, rbx
mov dl, 0xa
call fcn.14000ebe0
mov rcx, rbx
mov edx, eax
call fcn.14006f000
mov rcx, rbx
call fcn.140074270
mov rdi, qword [rbp + 0x940]
mov rax, qword [rdi + 0x10]
mov rcx, qword [rax + 0x138]
call fcn.1400abf40
mov ebx, esi
jmp 0x140027694
mov rcx, qword [rbp + 0x920]
add ecx, 6
shr ecx, 1
mov r9d, dword [rax + 0xa58]
inc r9d
lea edx, [r8 - 1]
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], ecx
mov rcx, qword [rbp + 0x940]
call fcn.1400ad190
mov rcx, qword [rbp + 0x940]
mov rcx, qword [rcx + 0x3e80]
mov ebx, dword [rcx + 8]
mov dword [rbp + 0x918], 0
mov ecx, 0
cmp eax, ebx
jl 0x14002b244
jmp 0x14002b249
cmp ecx, 7
jne case.default.0x14002974f
jmp 0x14002a437
cmp byte [rcx + 0x2033a5], 0
jne 0x1400ad157
movsxd rax, dword [rdx + 0x120]
mov r8d, 1
sub r8, rax
lea rax, [rax + rax*2]
lea r8, [r8 + r8*2]
mov r8d, dword [rdx + r8*4 + 0x110]
add r8d, dword [rdx + rax*4 + 0x110]
cmp r8d, 8
jl 0x1400ad17b
cmp byte [0x140236f1c], 0
je 0x1400ad17b
cmp byte [0x140236950], 0
je 0x1400ad17b
mov rax, qword [rcx + 0x3e80]
mov rcx, rdx
mov rdx, rax
jmp fcn.14002bad0
add rcx, 0x3e88
jmp fcn.140014560