Function at 0x140033120
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa98
mov r15d, r8d
mov qword [rsp + 0x48], rdx
mov rsi, rcx
mov ecx, dword [rcx + 0x3e7c]
lea eax, [rcx + 1]
mov dword [rsi + 0x3e7c], eax
cmp ecx, 0x10
jge 0x140033896
cmp dword [rsi + 0x3e78], 0
mov rdi, qword [rsi + 0x3e80]
jne 0x140033b41
lea rbx, [rsi + 0x20]
cmp dword [rdi + 0xa58], 0x3d
mov qword [rsp + 0x28], rbx
jge 0x140033b49
lea rdx, [rsp + 0x74]
mov rcx, rbx
mov r8, qword [rsp + 0x48]
call fcn.14002b650
mov rcx, qword [rsi + 0x3e80]
test al, al
jne 0x1400339e2
mov dword [rcx + 0x3c], 0xffff82ff
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0x38], 0xffff82ff
movsxd rax, dword [rsp + 0x74]
lea r13, [rsi + 0x148]
lea rcx, [0x1400f4ed0]
mov r14, qword [rcx + rax*8]
xor r14, qword [rsi + 0x148]
mov rax, qword [rsi + 0x3e80]
mov rdx, qword [rax - 0x1af8]
mov rcx, rbx
call fcn.14002d1e0
mov ebp, eax
cmp eax, 1
sete al
mov ecx, 1
sub ecx, dword [rsi + 0x203350]
mov qword [rsp + 0x38], r15
cmp ecx, r15d
setle r15b
or r15b, al
movzx r12d, r15b
or r12d, 0xfffffffe
mov rcx, qword [rsi + 0x10]
mov eax, 0x7f7f
movabs r11, 0x7f030000ffff82ff
mov dil, 1
cmp qword [rcx + 8], 0
jne 0x140033b87
mov ebx, 5
cmp ebp, 1
mov r15, qword [rsp + 0x28]
je 0x140033478
mov qword [rsp + 0x20], r11
mov qword [rsp + 0x30], rax
mov rdx, qword [rsi + 0x3e80]
mov ebp, dword [rdx + 0x3c]
cmp ebp, 0xffff82ff
jne 0x140033c22
cmp dword [rdx + 0x38], 0xffff82ff
jne 0x1400332e5
cmp byte [rsi + 0x2033a5], 0
jne 0x1400332a8
movsxd rax, dword [rsi + 0x140]
mov ecx, 1
sub rcx, rax
lea rax, [rax + rax*2]
lea rcx, [rcx + rcx*2]
mov ecx, dword [rsi + rcx*4 + 0x130]
add ecx, dword [rsi + rax*4 + 0x130]
cmp ecx, 8
jl 0x140033835
cmp byte [0x140236f1c], 0
je 0x140033835
cmp byte [0x140236950], 0
je 0x140033835
mov rcx, r15
call fcn.14002bad0
mov rcx, qword [rsi + 0x3e80]
mov dword [rcx + 0x3c], eax
mov rcx, qword [rsi + 0x3e80]
mov dword [rcx + 0x38], eax
mov rdx, qword [rsi + 0x3e80]
test dil, dil
je 0x140033c31
mov eax, dword [rdx + 4]
mov dword [rdx], eax
mov rax, qword [rsi + 0x3e80]
mov ecx, dword [rax + 0x38]
cmp ecx, dword [rax]
jg 0x1400333f7
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movaps xmmword [rsp + 0xa0], xmm1
movaps xmmword [rsp + 0x90], xmm0
movsxd rax, dword [rsi + 0x140]
mov ebp, 1
sub rbp, rax
movsxd r11, dword [rsi + rbp*4 + 0x120]
mov rcx, qword [rsi + rax*8 + 0x1b8]
mov rdx, qword [rsi + rax*8 + 0x1a8]
or rdx, rcx
lea r8, [0x1400ca380]
and rdx, qword [r8 + r11*8]
or rcx, qword [rsi + rax*8 + 0x198]
lea r8, [0x1400ca580]
and rcx, qword [r8 + r11*8]
or rcx, rdx
jne 0x140033754
xor eax, eax
mov qword [rsp + 0x20], rax
lea rax, vtable.QSearchMoveGenerator.0
mov qword [rsp + 0x200], rax
mov qword [rsp + 0x208], r15
mov qword [rsp + 0x350], 0
mov rdi, qword [rsp + 0x30]
mov qword [rsp + 0x358], rdi
mov rax, qword [rsi + rbp*8 + 0x1c8]
mov qword [rsp + 0x360], rax
mov dword [rsp + 0x368], 0
mov rax, qword [rsp + 0x38]
dec eax
mov dword [rsp + 0x40], eax
mov rcx, qword [rsp + 0x48]
lea eax, [rcx + 1]
cdqe
mov qword [rsp + 0x88], rax
mov eax, 0x7cff
sub eax, ecx
mov dword [rsp + 0x54], eax
xor r13d, r13d
xor r12d, r12d
xor eax, eax
jmp 0x1400342fa
mov dword [rax], ecx
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0x1d50], 0
mov r8, qword [rsi + 0x3e80]
mov eax, dword [r8 + 0x38]
cmp eax, dword [r8 + 8]
jl 0x140033305
cmp ebp, 0xffff82ff
jne 0x140033464
mov rdx, qword [rsi + 0x10]
mov ecx, dword [r8]
cmp ecx, 0xffff82ff
je 0x140033c83
mov r9d, dword [r8 + 0xa58]
cmp ecx, 0xffff8400
jle 0x140033c8d
cmp ecx, 0x7c00
jge 0x140033c97
cmp qword [rdx + 8], 0
jne 0x140033ca1
add rsp, 0xa98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsi + 0x203348]
xor edx, edx
cmp dword [rcx + 0xc8], 0
sete dl
mov rcx, qword [rsi + 0x3e80]
lea r8, [rsi + 0x3a48]
lea r9, vtable.MoveGenerator.0
mov qword [rsp + 0x200], r9
mov qword [rsp + 0x208], r15
mov qword [rsp + 0x210], r8
mov qword [rsp + 0x218], rcx
mov r8, qword [rsp + 0x48]
mov dword [rsp + 0x220], r8d
xorps xmm0, xmm0
movups xmmword [rsp + 0x224], xmm0
movups xmmword [rsp + 0x230], xmm0
mov qword [rsp + 0x240], rax
mov qword [rsp + 0x248], 0
movabs rax, 0x7f00000000
mov qword [rsp + 0x250], rax
mov dword [rsp + 0xa90], edx
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movaps xmmword [rsp + 0xc0], xmm1
movaps xmmword [rsp + 0xb0], xmm0
mov dword [rcx + 0x18], 0
mov rax, qword [rsp + 0x38]
test eax, eax
mov edi, 0xffffffff
cmovns edi, eax
inc edi
dec eax
mov qword [rsp + 0x38], rax
lea eax, [r8 + 1]
movsxd r14, eax
xor r15d, r15d
lea r13, [rsp + 0x200]
lea r12, [rsp + 0x90]
mov eax, 0x7cff
sub eax, r8d
mov dword [rsp + 0x20], eax
mov rcx, r13
mov rdx, r12
call fcn.14002f6b0
cmp rax, 0x7f7f
je 0x140033849
mov rbp, rax
movabs rcx, 0xff00000000
and rax, rcx
movabs rcx, 0x600000000
cmp rax, rcx
je 0x14003566d
mov rax, qword [rsi + 0x3e80]
mov edx, dword [rax + 4]
mov ecx, dword [rax + 8]
inc edx
cmp ecx, edx
jg 0x140033601
cmp r15d, edi
jle 0x140033601
cmp ecx, 0xffff82ff
sete dl
add ecx, 0x7aff
cmp ecx, 0xf5ff
setb cl
mov r8, rbp
shr r8, 0x18
test r8w, r8w
jne 0x140033601
or dl, cl
je 0x140033601
mov rcx, qword [rsp + 0x28]
mov rdx, rbp
call fcn.140035980
test eax, eax
je 0x14003356c
jmp 0x140033b35
mov dword [rsp + 0x30], r15d
mov r15, r12
mov r12, r13
mov qword [rax + 0x28], rbp
mov r8, qword [rsi + 0x3e80]
mov r13, qword [rsp + 0x28]
mov rcx, r13
mov rdx, rbp
call fcn.14002fc60
mov rax, rbp
shr rax, 0x38
cmp eax, 1
je 0x140033a1f
mov rax, qword [rsi + 0x3e80]
xor ecx, ecx
sub ecx, dword [rax]
xor edx, edx
sub edx, dword [rax + 8]
lea r8, [rax + 0x1b20]
mov qword [rsi + 0x3e80], r8
mov dword [rax + 0x1b3c], 0
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0xa58], r14d
mov rax, qword [rsi + 0x3e80]
mov dword [rax], edx
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 4], edx
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 qword [rax + r14*8 + 0x40], 0x7f7f
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0x230], 0
mov rcx, rsi
mov edx, r14d
mov r8, qword [rsp + 0x38]
call fcn.140033120
mov ebx, eax
add qword [rsi + 0x3e80], 0xffffffffffffe4e0
mov rcx, r13
mov rdx, rbp
lea r8, [rsp + 0xb0]
call fcn.14002da40
cmp ebx, 0x7d01
mov r13, r12
mov r12, r15
mov r15d, dword [rsp + 0x30]
je 0x14003356c
mov rax, qword [rsi + 0x3e80]
inc dword [rax + 0x18]
neg ebx
mov rax, qword [rsi + 0x3e80]
cmp dword [rax], ebx
jge 0x14003373a
mov dword [rax], ebx
mov rax, qword [rsi + 0x3e80]
mov qword [rax + 0x20], rbp
mov rax, qword [rsi + 0x3e80]
cmp dword [rax + 8], ebx
jle 0x140033850
jmp 0x1400339d1
movabs rax, 0xffff000000
and rbp, rax
cmp rbp, 1
adc r15d, 0
jmp 0x14003356c
mov rdx, qword [rsi + 0x1d8]
mov r10, rcx
neg r10
and r10, rcx
movabs r8, 0x7edd5e59a4e28c2
imul r10, r8
shr r10, 0x38
and r10d, 0xfffffffc
lea r9, [0x140236d80]
movsxd rdi, dword [r10 + r9]
btr rcx, rdi
shl r11, 9
lea r10, [0x1400e0d80]
add r10, r11
mov r12, qword [r10 + rdi*8]
and r12, rdx
movabs r11, 0x5555555555555555
mov rdi, r12
and rdi, r11
mov r14, r12
shr r14, 1
and r14, r11
add r14, rdi
movabs rdi, 0x3333333333333333
mov rbx, r14
and rbx, rdi
shr r14, 2
and r14, rdi
add r14, rbx
movabs rbx, 0x707070707070707
mov r15, r14
and r15, rbx
shr r14, 4
and r14, rbx
add r14, r15
imul r15d, r14d, 0x1010101
shr r14, 0x20
imul r14d, r14d, 0x1010101
shr r14d, 0x18
shr r15d, 0x18
add r15d, r14d
cmp r15d, 1
jne 0x14003391e
and r12, qword [rsi + rax*8 + 0x1c8]
test rcx, rcx
mov r15, qword [rsp + 0x28]
mov qword [rsp + 0x20], r12
je 0x140033377
jmp 0x140033930
lea rcx, [rsi + 0x3e88]
mov rdx, r15
call fcn.140014560
jmp 0x1400332ca
mov rax, qword [rsi + 0x3e80]
cmp dword [rax + 0x18], 0
jne 0x140034255
mov dword [rax + 0x1d50], 0
mov rax, qword [rsi + 0x3e80]
cmp qword [rax + 0x30], 0x7f7f
jne 0x1400341bb
mov rcx, qword [rsp + 0x48]
add ecx, 0xffff8300
mov dword [rax], ecx
mov rax, qword [rsi + 0x3e80]
or dword [rax + 0x1c], 4
jmp 0x140034255
mov eax, eax
lock add qword [rsi + 0x2450], rax
mov dword [rsi + 0x3e7c], 0
mov rax, qword [rsi + 0x10]
dec dword [rax + 0x110]
mov rax, qword [rsi + 0x10]
mov ecx, dword [rax + 0x108]
lea edx, [rcx - 1]
mov dword [rax + 0x108], edx
cmp ecx, 1
jg 0x140033156
mov rax, qword [rsi + 0x10]
mov ecx, dword [rax + 0x10c]
mov dword [rax + 0x108], ecx
mov rcx, rsi
call fcn.140008cb0
test eax, eax
je 0x140033156
cmp dword [rsi + 0x2033e4], 3
jne 0x140034240
mov r8, qword [0x1402369b0]
cmp qword [0x1402369b8], 0x10
jb 0x1400341f4
mov rdx, qword [0x1402369a0]
jmp 0x1400341fb
xor r12d, r12d
jmp 0x14003381d
mov r12, qword [rsp + 0x20]
jmp 0x1400339b5
mov r14, rcx
neg r14
and r14, rcx
imul r14, r8
shr r14, 0x38
and r14d, 0xfffffffc
movsxd r14, dword [r14 + r9]
mov r15, qword [r10 + r14*8]
and r15, rdx
mov r12, r15
and r12, r11
mov r13, r15
shr r13, 1
and r13, r11
add r13, r12
mov r12, r13
and r12, rdi
shr r13, 2
and r13, rdi
add r13, r12
mov r12, r13
and r12, rbx
shr r13, 4
and r13, rbx
add r13, r12
imul r12d, r13d, 0x1010101
shr r13, 0x20
imul r13d, r13d, 0x1010101
shr r13d, 0x18
shr r12d, 0x18
add r12d, r13d
cmp r12d, 1
jne 0x140033926
and r15, qword [rsi + rax*8 + 0x1c8]
mov r12, qword [rsp + 0x20]
or r12, r15
mov qword [rsp + 0x20], r12
btr rcx, r14
test rcx, rcx
mov r15, qword [rsp + 0x28]
je 0x140033377
jmp 0x140033930
mov ecx, dword [rsp + 0x20]
cmp dword [rax], ecx
jl 0x14003373a
jmp 0x140033850
or byte [rcx + 0x1c], 4
mov rcx, qword [rsi + 0x10]
mov rax, qword [rsi + 0x2450]
and eax, 1
dec eax
mov edx, dword [rcx + 0x124]
test edx, edx
je 0x140033464
mov r8d, dword [rsi + 0x140]
cmp r8d, dword [rcx + 0x120]
jne 0x1400341ed
sub eax, edx
jmp 0x140033464
movsxd rax, dword [rsi + 0x140]
mov ecx, 1
sub rcx, rax
mov ecx, dword [rsi + rcx*4 + 0x120]
cmp ecx, 0x7f
je 0x140033637
movsxd rdx, ecx
mov rcx, rdx
shl rcx, 4
lea r8, [0x1400cbb00]
add r8, rcx
mov rcx, qword [rsi + rax*8 + 0x178]
test qword [r8 + rax*8], rcx
jne 0x140033b12
lea rcx, [0x1400dc900]
mov r8, qword [rsi + rax*8 + 0x188]
test qword [rcx + rdx*8], r8
jne 0x140033b12
lea rcx, [0x1400dcb00]
mov rcx, qword [rcx + rdx*8]
mov r8d, dword [rsi + rax*4 + 0x120]
bt rcx, r8
jb 0x140033b12
shl rdx, 5
lea r9, [0x14022c280]
mov r8, qword [rsi + 0x1d8]
mov r10, qword [rdx + r9]
and r10, r8
imul r10, qword [rdx + r9 + 8]
movzx ecx, byte [rdx + r9 + 0x18]
shr r10, cl
mov rcx, qword [rdx + r9 + 0x10]
movsxd r10, r10d
mov r9, qword [rsi + rax*8 + 0x1b8]
mov r11, qword [rsi + rax*8 + 0x1a8]
or r11, r9
test qword [rcx + r10*8], r11
jne 0x140033b12
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
or r9, qword [rsi + rax*8 + 0x198]
test qword [r10 + rcx*8], r9
je 0x140033637
lea r8, [rsp + 0xb0]
mov rcx, r13
mov rdx, rbp
call fcn.14002da40
mov r13, r12
mov r12, r15
mov r15d, dword [rsp + 0x30]
jmp 0x14003356c
mov rax, qword [rsi + 0x3e80]
jmp 0x140033601
mov eax, dword [rdi + 4]
jmp 0x140033464
mov rdx, qword [rdi - 0x1af8]
mov rcx, rbx
xor r8d, r8d
call fcn.140013590
test eax, eax
je 0x14003566d
or byte [rdi + 0x1c], 4
mov rcx, rsi
mov rdx, qword [rsp + 0x28]
add rsp, 0xa98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x1400ad120
mov r9d, dword [rsi + 0x2033e0]
mov edx, dword [rcx + 0x18]
and edx, r14d
mov rcx, qword [rcx]
movsxd rdx, edx
lea rdx, [rdx + rdx*2]
lea rdx, [rcx + rdx*8]
mov r8, qword [rdx]
mov rcx, qword [rdx + 0x10]
mov r10, r8
xor r10, r14
xor r10, rcx
cmp r10, 0xffff
jbe 0x140033dd9
mov r8, qword [rdx + 0x18]
mov rcx, qword [rdx + 0x28]
mov r10, r8
xor r10, r14
xor r10, rcx
cmp r10, 0x10000
jb 0x140033dd5
mov r8, qword [rdx + 0x30]
mov rcx, qword [rdx + 0x40]
mov r10, r8
xor r10, r14
xor r10, rcx
cmp r10, 0x10000
jb 0x140033fe9
mov r8, qword [rdx + 0x48]
mov rcx, qword [rdx + 0x58]
mov r10, r8
xor r10, r14
xor r10, rcx
cmp r10, 0xffff
ja 0x140033235
add rdx, 0x48
jmp 0x140033dd9
mov dword [rdx + 0x38], ebp
mov rdx, qword [rsi + 0x3e80]
jmp 0x140033268
mov eax, 0xffff82ff
cmp dword [rsp + 0x20], 0xffff82ff
jne 0x140033c62
xor ecx, ecx
cmp eax, dword [rdx + 0x38]
setg cl
inc ecx
cmp ebx, ecx
jne 0x140033c58
mov dword [rdx + 0x38], eax
mov rdx, qword [rsi + 0x3e80]
mov r15, qword [rsp + 0x28]
jmp 0x1400332ee
mov eax, dword [rdx + 0xa58]
cmp dword [rsp + 0x20], 0x7c00
jl 0x140033eeb
mov rcx, qword [rsp + 0x20]
sub ecx, eax
inc ecx
mov eax, ecx
jmp 0x140033c40
mov ecx, 0xffff82ff
jmp 0x140033459
sub ecx, r9d
inc ecx
jmp 0x140033459
lea ecx, [r9 + rcx - 1]
jmp 0x140033459
movzx r8d, word [r8 + 0x3c]
mov r9d, dword [rsi + 0x2033e0]
mov r10d, dword [rdx + 0x18]
and r10d, r14d
mov r11, qword [rdx]
movsxd r10, r10d
lea r10, [r10 + r10*2]
lea r15, [r11 + r10*8]
mov r11, qword [r15]
mov r10, qword [r15 + 0x10]
xor r10, r11
cmp r10, 0x10000
jb 0x140033f69
xor r10, r14
cmp r10, 0x10000
jb 0x140033f69
mov r10d, 0xffffff84
movabs rdi, 0x18000000000000
test r11, rdi
je 0x140033ffc
xor ebx, ebx
lea rdi, [r15 + 0x18]
mov r11, qword [r15 + 0x18]
mov rbp, qword [r15 + 0x28]
xor rbp, r11
cmp rbp, 0x10000
jb 0x140033f6c
xor rbp, r14
cmp rbp, 0x10000
jb 0x140033f6c
movabs r13, 0x18000000000000
test r11, r13
je 0x1400340a5
lea rdi, [r15 + 0x30]
mov r11, qword [r15 + 0x30]
mov rbp, qword [r15 + 0x40]
xor rbp, r11
cmp rbp, 0x10000
jb 0x140033f6c
xor rbp, r14
cmp rbp, 0x10000
jb 0x140033f6c
movabs r13, 0x18000000000000
test r11, r13
je 0x1400340fb
lea rdi, [r15 + 0x48]
mov r11, qword [r15 + 0x48]
mov r15, qword [r15 + 0x58]
xor r15, r11
cmp r15, 0x10000
jb 0x140033f6c
xor r15, r14
cmp r15, 0x10000
jb 0x140033f6c
movabs r15, 0x18000000000000
test r11, r15
je 0x140034170
test rbx, rbx
je 0x140033464
mov r11, qword [rbx]
mov rdi, rbx
jmp 0x140033f6c
add rdx, 0x18
mov r10, r8
shr r10, 0x20
mov rbx, r8
shr rbx, 0x28
movabs r11, 0xffff00ffffffffff
and ebx, 0xff
je 0x140033e25
cmp ebx, r9d
je 0x140033e25
movzx ebx, cx
movzx ecx, r9b
shl rcx, 0x28
and r8, r11
or rcx, r8
mov qword [rdx], rcx
xor rcx, r14
and rcx, 0xffffffffffff0000
or rcx, rbx
mov qword [rdx + 0x10], rcx
jmp 0x140033e28
and r8, r11
mov qword [rsp + 0x20], r8
mov rdx, qword [rdx + 8]
movzx r8d, r10b
add r8d, 0xfffffffe
mov ebx, 4
cmp r8d, r12d
jl 0x140033e63
mov rbx, qword [rsp + 0x20]
shr rbx, 0x30
and ebx, 7
cmp ebx, 5
jne 0x140033e63
mov ebx, 5
mov r11, qword [rsp + 0x20]
jmp 0x14003323a
movsx eax, cx
and ecx, 0x7fff
and eax, 0xffff8000
or eax, ecx
mov rcx, qword [rsi + 0x3e80]
mov dword [rcx + 0x3c], eax
cmp dword [rsp + 0x20], 0xffff82ff
je 0x140033f10
mov rcx, qword [rsi + 0x3e80]
mov r8d, dword [rcx + 0xa58]
cmp dword [rsp + 0x20], 0x7c00
jl 0x140033ed1
mov rax, qword [rsp + 0x20]
sub eax, r8d
inc eax
cmp eax, 0xffff82ff
je 0x140033f10
test ebx, ebx
je 0x140033464
cmp ebx, 2
je 0x140033f07
cmp ebx, 1
jne 0x140033f10
cmp eax, dword [rcx + 4]
jle 0x140033464
jmp 0x140033f10
cmp dword [rsp + 0x20], 0xffff8400
jg 0x140033fdf
mov rax, qword [rsp + 0x20]
lea eax, [r8 + rax - 1]
jmp 0x140033ead
cmp dword [rsp + 0x20], 0xffff8400
jg 0x140033ff2
mov rcx, qword [rsp + 0x20]
lea eax, [rax + rcx - 1]
jmp 0x140033c40
cmp eax, dword [rcx + 8]
jge 0x140033464
mov eax, edx
shr eax, 8
movsx r9d, al
movsx r8d, dl
mov rdx, qword [rsp + 0x20]
sar rdx, 0x38
mov rcx, qword [rsp + 0x28]
call fcn.1400a8680
mov rdi, rax
mov rcx, qword [rsp + 0x28]
mov rdx, rax
call fcn.140013db0
test eax, eax
mov eax, 0x7f7f
mov qword [rsp + 0x30], rdi
cmove rdi, rax
mov qword [rsp + 0x40], rdi
cmp rdi, 0x7f7f
jne 0x140034045
xor edi, edi
jmp 0x140033e59
mov rdi, r15
xor r11, qword [rdi + 0x10]
cmp r11, 0xffff
ja 0x140033f7d
dec qword [rdx + 0x10]
mov rbx, qword [rsp + 0x30]
mov eax, ebx
shr eax, 0x18
mov rdx, rbx
shl rdx, 0x38
movzx r9d, r9b
shl r9, 0x28
or r9, rdx
add r12d, 2
shl r12, 0x20
or r12, r9
mov ecx, ecx
or rcx, r12
movabs rdx, 0x3000000000000
or rdx, rcx
xor r14, rdx
and r14, 0xffffffffffff0000
or r14, r8
mov qword [rdi], rdx
mov byte [rdi + 8], bh
mov byte [rdi + 9], al
mov qword [rdi + 0x10], r14
mov rax, qword [rsi + 0x3e80]
mov eax, dword [rax + 0x38]
jmp 0x140033464
mov rax, qword [rsp + 0x20]
jmp 0x140033eb4
add rdx, 0x30
jmp 0x140033dd9
mov rax, qword [rsp + 0x20]
jmp 0x140033c40
mov rdi, r11
shr rdi, 0x20
shr r11, 0x28
mov ebx, 0xff
and edi, ebx
add edi, 0xfffffffe
and r11d, ebx
cmp edi, r12d
jle 0x140034022
cmp r11d, r9d
je 0x140033d02
sub r11d, r9d
mov ebp, r11d
neg ebp
cmovs ebp, r11d
shl ebp, 0xc
sub ebp, edi
xor ebx, ebx
cmp ebp, 0xffffff85
cmovge r10d, ebp
cmovge rbx, r15
jmp 0x140033d04
xor edi, edi
cmp ebp, 1
je 0x1400340f1
mov rax, qword [rsp + 0x20]
shr rax, 0x20
movzx eax, al
add eax, 0xfffffffe
cmp eax, r12d
je 0x1400340f1
test r15b, r15b
je 0x140034147
mov rax, qword [rsp + 0x40]
shr rax, 0x18
test ax, ax
jne 0x140034164
mov rax, qword [rsi + 0x3e80]
mov ecx, 0xffffff00
add ecx, dword [rax + 4]
cmp dword [rax + 0x38], ecx
jge 0x1400341c5
mov eax, 0x7f7f
jmp 0x14003415f
mov rbp, r11
shr rbp, 0x20
shr r11, 0x28
mov r13d, 0xff
and ebp, r13d
add ebp, 0xfffffffe
and r11d, r13d
cmp ebp, r12d
jle 0x1400340cd
cmp r11d, r9d
je 0x140033d43
sub r11d, r9d
mov r13d, r11d
neg r13d
cmovs r13d, r11d
shl r13d, 0xc
sub r13d, ebp
cmp r13d, r10d
cmovg r10d, r13d
cmovg rbx, rdi
jmp 0x140033d43
mov rax, qword [rsp + 0x30]
jmp 0x140033e59
mov rbp, r11
shr rbp, 0x20
shr r11, 0x28
mov r13d, 0xff
and ebp, r13d
add ebp, 0xfffffffe
and r11d, r13d
cmp ebp, r12d
jle 0x140034123
cmp r11d, r9d
je 0x140033d82
sub r11d, r9d
mov r13d, r11d
neg r13d
cmovs r13d, r11d
shl r13d, 0xc
sub r13d, ebp
cmp r13d, r10d
cmovg r10d, r13d
cmovg rbx, rdi
jmp 0x140033d82
mov rcx, qword [rsp + 0x40]
mov rax, rcx
shr rax, 0x18
test ax, ax
mov eax, 0x7f7f
cmovne rax, rcx
mov qword [rsp + 0x30], rax
xor edi, edi
mov r15, qword [rsp + 0x28]
jmp 0x140033252
mov r15, r11
shr r15, 0x20
mov r13, r11
shr r13, 0x28
mov ebp, 0xff
and r15d, ebp
add r15d, 0xfffffffe
and r13d, ebp
cmp r15d, r12d
jle 0x14003419b
cmp r13d, r9d
je 0x140033dc1
sub r13d, r9d
mov ebp, r13d
neg ebp
cmovs ebp, r13d
shl ebp, 0xc
sub ebp, r15d
cmp ebp, r10d
jle 0x140033dc1
jmp 0x140033f6c
mov ecx, dword [rax + 4]
mov dword [rax], ecx
jmp 0x140034255
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x40]
call fcn.140035980
test eax, eax
je 0x14003409b
xor edi, edi
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x30], rax
jmp 0x140034166
add eax, edx
jmp 0x140033464
lea rdx, [0x1402369a0]
lea rdi, [0x140145f30]
mov rcx, rdi
call fcn.140075630
lea rdx, str.terminating__time_up
mov rcx, rdi
call fcn.140072f20
mov rax, qword [0x140145f30]
movsxd rcx, dword [rax + 4]
add rcx, rdi
mov dl, 0xa
call fcn.14000ebe0
mov rcx, rdi
mov edx, eax
call fcn.14006f000
mov rcx, rdi
call fcn.140074270
mov rax, qword [rsi + 0x10]
mov rcx, qword [rax + 0x138]
call fcn.1400abf40
jmp 0x140033156
mov rdi, qword [rsi + 0x3e80]
mov eax, dword [rdi]
cmp dword [rdi + 4], eax
jge 0x140033464
cmp dword [rdi + 8], eax
jle 0x140033464
mov rcx, qword [rdi + 0x20]
cmp rcx, 0x7f7f
je 0x140033464
movsxd rax, dword [rsp + 0x48]
mov qword [rdi + rax*8 + 0x40], rcx
movsxd r8, dword [rdi + 0x1d50]
test r8, r8
jne 0x1400342b3
mov eax, dword [rdi + 0x1d50]
inc eax
mov dword [rdi + 0x230], eax
mov rax, qword [rsi + 0x3e80]
mov eax, dword [rax]
jmp 0x140033464
lea rcx, [rdi + rax*8 + 0x48]
lea rdx, [rdi + rax*8 + 0x1b68]
cmp r8d, 1
jne 0x1400342ce
mov rax, qword [rdx]
mov qword [rcx], rax
jmp 0x140034297
shl r8, 3
call fcn.14006dc20
jmp 0x140034297
mov rcx, r15
mov rdx, r14
call fcn.140035980
test eax, eax
jne 0x140034461
mov eax, dword [rsp + 0x368]
test eax, eax
je 0x140034310
cmp eax, 1
jne 0x14003437f
jmp 0x140034328
mov dword [rsp + 0x368], 1
cmp rdi, 0x7f7f
jne 0x140035677
mov dword [rsp + 0x368], 2
mov rcx, qword [rsp + 0x208]
lea rdi, [rsp + 0x210]
mov rdx, rdi
xor r8d, r8d
lea r9, [rsp + 0x360]
call fcn.140031090
mov dword [rsp + 0x354], eax
mov rcx, rdi
mov edx, eax
call fcn.140035730
mov r13d, dword [rsp + 0x350]
mov r12d, dword [rsp + 0x354]
mov rdi, qword [rsp + 0x358]
mov eax, r13d
cmp r13d, r12d
cmovbe r13d, r12d
cmp r13, rax
je 0x1400345fe
lea ecx, [rax + 1]
mov dword [rsp + 0x350], ecx
mov r14, qword [rsp + rax*8 + 0x210]
inc rax
cmp r14d, edi
je 0x140034389
mov r13d, eax
cmp r14, 0x7f7f
je 0x1400345fe
mov rax, r14
shr rax, 0x20
movzx ecx, al
cmp ecx, 6
je 0x14003566d
mov rdx, r14
movabs r8, 0xff0000000000
and rdx, r8
movabs r8, 0x40000000000
cmp rdx, r8
je 0x1400344a4
mov edx, r14d
and edx, 0xff0000
cmp edx, 0x10000
je 0x1400345d1
mov rdx, qword [rsi + 0x3e80]
cmp dword [rdx + 8], 0xffff8501
jl 0x1400344a4
cmp ecx, 1
je 0x140034442
lea rcx, [rbp + rbp*2]
mov r8d, dword [rsi + rcx*4 + 0x128]
not r8d
or r8d, 0xfffffff0
add r8d, dword [rsi + rcx*4 + 0x130]
cmp r8d, 2
jl 0x140034461
movzx eax, al
lea rcx, [0x1400f5b90]
mov eax, dword [rcx + rax*4]
mov ecx, dword [rdx + 0x3c]
lea eax, [rax + rcx + 0xb3]
cmp eax, dword [rdx]
jl 0x1400342e0
mov rax, qword [rsp + 0x20]
bt rax, r14
jb 0x1400344a4
mov rax, qword [rsi + 0x3e80]
mov r8d, dword [rax]
sub r8d, dword [rax + 0x3c]
cmp r8d, 0xa1
mov eax, 0xa0
cmovl r8d, eax
add r8d, 0xffffff60
mov rcx, r15
mov rdx, r14
call fcn.14002bee0
test eax, eax
je 0x1400342f3
mov rax, qword [rsi + 0x3e80]
mov qword [rax + 0x28], r14
mov r8, qword [rsi + 0x3e80]
mov rcx, r15
mov rdx, r14
call fcn.14002fc60
mov rcx, r15
mov rdx, r14
xor r8d, r8d
call fcn.140013590
test eax, eax
je 0x140035234
mov rax, qword [rsi + 0x3e80]
xor ecx, ecx
sub ecx, dword [rax]
xor r9d, r9d
sub r9d, dword [rax + 8]
lea r8, [rax + 0x1b20]
mov qword [rsi + 0x3e80], r8
mov dword [rax + 0x1b3c], 0
mov rax, qword [rsi + 0x3e80]
mov rdx, qword [rsp + 0x88]
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 qword [rax + rdx*8 + 0x40], 0x7f7f
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0x230], 0
mov rcx, rsi
mov r8d, dword [rsp + 0x40]
call fcn.140033120
mov ebx, eax
add qword [rsi + 0x3e80], 0xffffffffffffe4e0
mov rcx, r15
mov rdx, r14
lea r8, [rsp + 0x90]
call fcn.14002da40
cmp ebx, 0x7d01
je 0x1400342f3
neg ebx
mov rax, qword [rsi + 0x3e80]
cmp dword [rax], ebx
jge 0x1400342f3
mov dword [rax], ebx
mov rax, qword [rsi + 0x3e80]
mov qword [rax + 0x20], r14
mov rax, qword [rsi + 0x3e80]
cmp dword [rax + 8], ebx
jle 0x140034255
jmp 0x14003506f
movsxd rdx, dword [rsi + 0x140]
mov r8d, r14d
shr r8d, 0xb
and r8d, 0x1f
lea r9, [0x1400e8d80]
lea r8, [r9 + r8*8]
cmp dword [r8 + rdx*4], 7
jne 0x140034407
jmp 0x1400344a4
mov eax, 1
sub eax, dword [rsi + 0x203350]
cmp eax, dword [rsp + 0x38]
jg 0x140034255
lea rax, vtable.QSearchCheckGenerator.0
mov qword [rsp + 0xb0], rax
mov dword [rsp + 0x1f8], 0
mov eax, dword [rsi + 0x140]
mov dword [rsp + 0x50], eax
movsxd r9, eax
mov eax, 1
sub rax, r9
movsxd r14, dword [rsi + rax*4 + 0x120]
mov r13, qword [rsp + 0x20]
test r13, r13
jne 0x140035080
xor r8d, r8d
mov r10, qword [rsi + r9*8 + 0x178]
not r10
and r10, qword [rsi + r9*8 + 0x1c8]
mov qword [rsp + 0x68], r14
je 0x140034a11
shl r14, 5
lea r9, [0x14022c280]
lea rcx, [r9 + r14]
mov qword [rsp + 0x38], rcx
lea rbx, [r14 + r9 + 0x10]
lea r12, [0x14022ca80]
lea rcx, [r12 + r14]
mov qword [rsp + 0x80], rcx
lea rax, [r14 + r12 + 0x10]
mov qword [rsp + 0x78], rax
mov r13, qword [rsi + 0x1d8]
mov rbp, r13
not rbp
movabs r14, 0x7edd5e59a4e28c2
lea r11, [0x140236d80]
mov rax, r10
neg rax
and rax, r10
imul rax, r14
shr rax, 0x38
and eax, 0xfffffffc
mov eax, dword [rax + r11]
movsxd rdx, eax
mov ecx, dword [r15 + rdx*4]
and ecx, 7
add ecx, 0xfffffffe
cmp ecx, 3
ja case.default.0x140034709
lea rdi, [0x1400f6bb4]
movsxd rcx, dword [rdi + rcx*4]
add rcx, rdi
jmp rcx
shl rdx, 5
mov r11, qword [rdx + r9 + 0x10]
mov rdi, qword [rdx + r9]
and rdi, r13
imul rdi, qword [rdx + r9 + 8]
movzx ecx, byte [rdx + r9 + 0x18]
shr rdi, cl
movsxd rcx, edi
mov rdx, qword [r11 + rcx*8]
mov r11, qword [rbx]
mov rcx, qword [rsp + 0x38]
mov rdi, qword [rcx]
and rdi, r13
imul rdi, qword [rbx - 8]
movzx ecx, byte [rbx + 8]
shr rdi, cl
movsxd rcx, edi
and rdx, qword [r11 + rcx*8]
and rdx, rbp
jne 0x140034974
mov edx, r8d
lea r11, [0x140236d80]
btr r10, rax
mov r8d, edx
test r10, r10
mov r15, qword [rsp + 0x28]
jne 0x1400346cd
jmp 0x140034a14
shl rdx, 5
mov r11, qword [rdx + r9]
and r11, r13
imul r11, qword [rdx + r9 + 8]
movzx ecx, byte [rdx + r9 + 0x18]
shr r11, cl
mov rdi, qword [rdx + r9 + 0x10]
movsxd r11, r11d
mov r15, qword [rdx + r12 + 0x10]
mov rcx, r12
mov r12, qword [rsp + 0x38]
mov r14, qword [rdx + rcx]
and r14, r13
imul r14, qword [rdx + rcx + 8]
movzx ecx, byte [rdx + rcx + 0x18]
shr r14, cl
movsxd rcx, r14d
mov rdx, qword [r15 + rcx*8]
or rdx, qword [rdi + r11*8]
mov r9, qword [rsp + 0x78]
mov r11, qword [r9]
mov rcx, qword [rsp + 0x80]
mov rdi, qword [rcx]
and rdi, r13
imul rdi, qword [r9 - 8]
movzx ecx, byte [r9 + 8]
shr rdi, cl
mov r14, qword [r12]
mov qword [rsp + 0x58], r13
and r14, r13
imul r14, qword [rbx - 8]
movzx ecx, byte [rbx + 8]
shr r14, cl
movsxd rcx, edi
mov qword [rsp + 0x60], rbx
mov rdi, qword [rbx]
movsxd r14, r14d
mov r15, qword [rdi + r14*8]
or r15, qword [r11 + rcx*8]
and r15, rdx
mov rbx, rbp
and r15, rbp
je 0x1400349cb
mov rcx, r15
neg rcx
and rcx, r15
movabs r14, 0x7edd5e59a4e28c2
imul rcx, r14
shr rcx, 0x38
and ecx, 0xfffffffc
lea r11, [0x140236d80]
mov ecx, dword [rcx + r11]
mov rdi, 0xfffffffffffffffe
rol rdi, cl
shl ecx, 8
or ecx, eax
or ecx, 0x50000
movsxd rcx, ecx
mov edx, r8d
mov qword [rsp + rdx*8 + 0xb8], rcx
lea edx, [r8 + 1]
and rdi, r15
lea r12, [0x14022ca80]
je 0x1400349f8
mov rcx, rdi
neg rcx
and rcx, rdi
imul rcx, r14
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r11]
mov r15, 0xfffffffffffffffe
rol r15, cl
shl ecx, 8
or ecx, eax
or ecx, 0x50000
lea r11d, [r8 + 2]
movsxd rcx, ecx
mov edx, edx
mov qword [rsp + rdx*8 + 0xb8], rcx
and r15, rdi
lea r9, [0x14022c280]
mov rbp, rbx
mov rbx, qword [rsp + 0x60]
mov r13, qword [rsp + 0x58]
jne 0x140034dd2
mov edx, r11d
jmp 0x14003475e
shl rdx, 5
mov r11, qword [rdx + r12 + 0x10]
mov rdi, qword [rdx + r12]
and rdi, r13
imul rdi, qword [rdx + r12 + 8]
movzx ecx, byte [rdx + r12 + 0x18]
shr rdi, cl
movsxd rcx, edi
mov rdx, qword [r11 + rcx*8]
mov r15, qword [rsp + 0x78]
mov r11, qword [r15]
mov rcx, qword [rsp + 0x80]
mov rdi, qword [rcx]
and rdi, r13
imul rdi, qword [r15 - 8]
movzx ecx, byte [r15 + 8]
shr rdi, cl
movsxd rcx, edi
and rdx, qword [r11 + rcx*8]
and rdx, rbp
je 0x14003475b
jmp 0x140034fcc
lea rdi, [0x1400dc900]
mov rdx, qword [rdi + rdx*8]
mov rcx, qword [rsp + 0x68]
and rdx, qword [rdi + rcx*8]
and rdx, rbp
jne 0x140034e7b
mov edx, r8d
jmp 0x140034765
mov rcx, rdx
neg rcx
and rcx, rdx
imul rcx, r14
shr rcx, 0x38
and ecx, 0xfffffffc
lea r11, [0x140236d80]
mov ecx, dword [rcx + r11]
mov rdi, 0xfffffffffffffffe
rol rdi, cl
shl ecx, 8
or ecx, eax
or ecx, 0x40000
lea r15d, [r8 + 1]
movsxd rcx, ecx
mov r8d, r8d
mov qword [rsp + r8*8 + 0xb8], rcx
and rdi, rdx
jne 0x140034f17
mov edx, r15d
jmp 0x140034765
mov edx, r8d
lea r9, [0x14022c280]
lea r12, [0x14022ca80]
mov rbp, rbx
mov rbx, qword [rsp + 0x60]
movabs r14, 0x7edd5e59a4e28c2
mov r13, qword [rsp + 0x58]
jmp 0x14003475e
lea r9, [0x14022c280]
mov rbp, rbx
mov rbx, qword [rsp + 0x60]
mov r13, qword [rsp + 0x58]
jmp 0x140034765
mov edx, r8d
cmp dword [rsp + 0x50], 0
jne 0x140034b27
mov rax, qword [rsi + 0x178]
mov r8, qword [rsi + 0x1d8]
shl rax, 8
mov rcx, r8
not rcx
and rcx, rax
movabs r9, 0xffffffffffff00
and r9, rcx
mov rcx, qword [rsp + 0x68]
shl rcx, 4
lea rax, [0x1400cbb00]
mov rax, qword [rcx + rax]
mov r14, r9
and r14, rax
jne 0x140034f6b
shl r9d, 8
not r8d
and r8d, r9d
and eax, r8d
and eax, 0xff000000
je 0x140034b82
mov ecx, eax
neg ecx
and ecx, eax
movabs r8, 0x7edd5e59a4e28c2
imul rcx, r8
shr rcx, 0x38
and ecx, 0xfffffffc
lea r9, [0x140236d80]
mov ecx, dword [rcx + r9]
mov r10d, 1
shl r10, cl
not r10d
and r10d, eax
lea eax, [rcx - 0x10]
shl ecx, 8
or ecx, eax
or ecx, 0x10000
movsxd rax, ecx
mov ecx, edx
inc edx
mov qword [rsp + rcx*8 + 0xb8], rax
test r10d, r10d
je 0x140034b82
mov rax, r10
neg rax
and rax, r10
imul rax, r8
shr rax, 0x38
and eax, 0xfffffffc
mov ecx, dword [rax + r9]
mov rax, 0xfffffffffffffffe
rol rax, cl
lea r11d, [rcx - 0x10]
shl ecx, 8
or ecx, r11d
or ecx, 0x10000
lea r11d, [rdx + 1]
movsxd rcx, ecx
mov edx, edx
mov qword [rsp + rdx*8 + 0xb8], rcx
mov edx, r11d
and r10, rax
je 0x140034b85
jmp 0x140034ada
mov rax, qword [rsi + 0x180]
mov r8, qword [rsi + 0x1d8]
shr rax, 8
mov r9, r8
not r9
and r9, rax
and r9, 0xffffffffffffff00
mov rcx, qword [rsp + 0x68]
shl rcx, 4
lea rax, [0x1400cbb00]
mov rax, qword [rcx + rax + 8]
mov r14, r9
and r14, rax
jne 0x1400351d3
shl r9d, 8
not r8d
and r8d, r9d
and eax, r8d
and eax, 0xff000000
jne 0x1400356c7
mov r11d, edx
mov dword [rsp + 0x1fc], r11d
mov edi, dword [rsp + 0x1f8]
cmp edi, r11d
jae 0x140034255
mov r15d, r11d
lea r12, [0x1400dcd00]
mov rax, rdi
inc rdi
mov dword [rsp + 0x1f8], edi
mov rbx, qword [rsp + rax*8 + 0xb8]
cmp rbx, 0x7f7f
je 0x140034255
cmp ebx, dword [rsp + 0x30]
je 0x140034bee
mov rax, qword [rsp + 0x20]
bt rax, rbx
jb 0x140034bf8
mov rcx, qword [rsp + 0x28]
mov rdx, rbx
xor r8d, r8d
call fcn.14002bee0
test eax, eax
jne 0x140034bf8
cmp r15, rdi
jne 0x140034ba7
jmp 0x140034255
movzx r14d, bl
movsxd rax, dword [rsi + 0x140]
movsxd rcx, dword [rsi + rax*4 + 0x120]
mov rdx, r14
shl rdx, 8
add rdx, r12
mov edx, dword [rdx + rcx*4]
test edx, edx
jne 0x140034d46
mov rax, qword [rsi + 0x3e80]
mov qword [rax + 0x28], rbx
mov r8, qword [rsi + 0x3e80]
mov r14, qword [rsp + 0x28]
mov rcx, r14
mov rdx, rbx
call fcn.14002fc60
mov dword [rsi + 0x15c], 1
mov rax, qword [rsi + 0x3e80]
xor ecx, ecx
sub ecx, dword [rax]
xor r9d, r9d
sub r9d, dword [rax + 8]
lea r8, [rax + 0x1b20]
mov qword [rsi + 0x3e80], r8
mov dword [rax + 0x1b3c], 0
mov rax, qword [rsi + 0x3e80]
mov rdx, qword [rsp + 0x88]
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 qword [rax + rdx*8 + 0x40], 0x7f7f
mov rax, qword [rsi + 0x3e80]
mov dword [rax + 0x230], 0
mov rcx, rsi
mov r8d, dword [rsp + 0x40]
call fcn.140033120
mov ebp, eax
add qword [rsi + 0x3e80], 0xffffffffffffe4e0
mov rcx, r14
mov rdx, rbx
lea r8, [rsp + 0x90]
call fcn.14002da40
cmp ebp, 0x7d01
je 0x140034bee
neg ebp
mov rax, qword [rsi + 0x3e80]
cmp dword [rax], ebp
jge 0x140034bee
mov dword [rax], ebp
mov rax, qword [rsi + 0x3e80]
mov qword [rax + 0x20], rbx
mov rax, qword [rsi + 0x3e80]
cmp dword [rax + 8], ebp
jle 0x140034255
jmp 0x14003524c
movzx ebp, bh
shl rbp, 8
add rbp, r12
mov r9d, dword [rbp + rcx*4]
mov r8d, edx
neg r8d
cmovns edx, r8d
mov r10d, r9d
neg r10d
cmovs r10d, r9d
cmp edx, r10d
je 0x140034c20
mov rdx, r14
shl rdx, 9
lea r9, [0x1400e0d80]
add rdx, r9
mov r13, qword [rsi + 0x1d8]
test qword [rdx + rcx*8], r13
jne 0x140034c20
movzx edx, bl
mov r9d, 1
sub r9d, eax
mov rcx, qword [rsp + 0x28]
call fcn.14002c670
cmp eax, 0x7f
je 0x140034c20
cdqe
shl rax, 9
lea rcx, [0x1400e0d80]
add rax, rcx
test qword [rax + r14*8], r13
je 0x140034bee
jmp 0x140034c20
mov rcx, r15
neg rcx
and rcx, r15
imul rcx, r14
shr rcx, 0x38
and ecx, 0xfffffffc
lea rdx, [0x140236d80]
mov ecx, dword [rcx + rdx]
mov rdi, 0xfffffffffffffffe
rol rdi, cl
shl ecx, 8
or ecx, eax
or ecx, 0x50000
add r8d, 3
movsxd rcx, ecx
mov edx, r11d
mov qword [rsp + rdx*8 + 0xb8], rcx
and rdi, r15
je 0x14003475b
lea r11, [0x140236d80]
mov rcx, rdi
neg rcx
and rcx, rdi
imul rcx, r14
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r11]
mov r11, 0xfffffffffffffffe
rol r11, cl
shl ecx, 8
or ecx, eax
or ecx, 0x50000
lea edx, [r8 + 1]
movsxd rcx, ecx
mov r8d, r8d
mov qword [rsp + r8*8 + 0xb8], rcx
mov r8d, edx
and rdi, r11
lea r11, [0x140236d80]
je 0x140034765
jmp 0x140034e27
mov rcx, rdx
neg rcx
and rcx, rdx
imul rcx, r14
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r11]
mov rdi, 0xfffffffffffffffe
rol rdi, cl
shl ecx, 8
or ecx, eax
or ecx, 0x20000
lea r15d, [r8 + 1]
movsxd rcx, ecx
mov r8d, r8d
mov qword [rsp + r8*8 + 0xb8], rcx
and rdi, rdx
je 0x1400349c3
mov rcx, rdi
neg rcx
and rcx, rdi
imul rcx, r14
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r11]
mov r8, 0xfffffffffffffffe
rol r8, cl
shl ecx, 8
or ecx, eax
or ecx, 0x20000
lea edx, [r15 + 1]
movsxd rcx, ecx
mov r11d, r15d
mov qword [rsp + r11*8 + 0xb8], rcx
lea r11, [0x140236d80]
mov r15d, edx
and rdi, r8
je 0x140034765
jmp 0x140034ec3
mov rcx, rdi
neg rcx
and rcx, rdi
imul rcx, r14
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r11]
mov r8, 0xfffffffffffffffe
rol r8, cl
shl ecx, 8
or ecx, eax
or ecx, 0x40000
lea edx, [r15 + 1]
movsxd rcx, ecx
mov r11d, r15d
mov qword [rsp + r11*8 + 0xb8], rcx
lea r11, [0x140236d80]
mov r15d, edx
and rdi, r8
je 0x140034765
jmp 0x140034f17
mov rcx, r14
neg rcx
and rcx, r14
movabs r10, 0x7edd5e59a4e28c2
imul rcx, r10
shr rcx, 0x38
and ecx, 0xfffffffc
lea r11, [0x140236d80]
mov ecx, dword [rcx + r11]
mov rdi, 0xfffffffffffffffe
rol rdi, cl
lea ebx, [rcx - 8]
shl ecx, 8
or ecx, ebx
or ecx, 0x10000
lea ebx, [rdx + 1]
movsxd rcx, ecx
mov edx, edx
mov qword [rsp + rdx*8 + 0xb8], rcx
and rdi, r14
jne 0x14003525d
mov edx, ebx
jmp 0x140034a67
mov rcx, rdx
neg rcx
and rcx, rdx
imul rcx, r14
shr rcx, 0x38
and ecx, 0xfffffffc
lea r11, [0x140236d80]
mov ecx, dword [rcx + r11]
mov rdi, 0xfffffffffffffffe
rol rdi, cl
shl ecx, 8
or ecx, eax
or ecx, 0x30000
lea r15d, [r8 + 1]
movsxd rcx, ecx
mov r8d, r8d
mov qword [rsp + r8*8 + 0xb8], rcx
and rdi, rdx
je 0x1400349c3
mov rcx, rdi
neg rcx
and rcx, rdi
imul rcx, r14
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r11]
mov r8, 0xfffffffffffffffe
rol r8, cl
shl ecx, 8
or ecx, eax
or ecx, 0x30000
lea edx, [r15 + 1]
movsxd rcx, ecx
mov r11d, r15d
mov qword [rsp + r11*8 + 0xb8], rcx
lea r11, [0x140236d80]
mov r15d, edx
and rdi, r8
je 0x140034765
jmp 0x14003501b
mov ecx, dword [rsp + 0x54]
cmp dword [rax], ecx
jl 0x1400342f3
jmp 0x140034255
mov r10, qword [rsi + 0x1d8]
xor ebp, ebp
movabs rdx, 0x7edd5e59a4e28c2
lea r11, [0x140236d80]
lea rbx, [0x1400dcd00]
mov rax, r13
neg rax
and rax, r13
imul rax, rdx
shr rax, 0x38
and eax, 0xfffffffc
mov eax, dword [rax + r11]
movsxd r8, eax
mov ecx, dword [r15 + r8*4]
and ecx, 7
cmp ecx, 1
jne 0x140035145
shl r8, 8
add r8, rbx
mov ecx, dword [r8 + r14*4]
add ecx, 8
test ecx, 0xffffffef
jne 0x1400352aa
mov r8d, ebp
btr r13, rax
mov ebp, r8d
test r13, r13
mov r15, qword [rsp + 0x28]
je 0x14003465b
jmp 0x1400350a1
mov rcx, rdi
neg rcx
and rcx, rdi
imul rcx, rdx
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r11]
mov r15, 0xfffffffffffffffe
rol r15, cl
shl ecx, 8
or ecx, eax
or ecx, 0x40000
lea r8d, [rbp + 1]
movsxd rcx, ecx
mov r12d, ebp
mov qword [rsp + r12*8 + 0xb8], rcx
mov ebp, r8d
and rdi, r15
jne 0x1400350fc
jmp 0x1400350e5
cmp ecx, 3
jne 0x140035353
mov rdi, r10
not rdi
shl r8, 5
lea r12, [0x14022ca80]
mov r15, qword [r8 + r12]
and r15, r10
imul r15, qword [r8 + r12 + 8]
movzx ecx, byte [r8 + r12 + 0x18]
shr r15, cl
mov rcx, qword [r8 + r12 + 0x10]
movsxd r8, r15d
and rdi, qword [rcx + r8*8]
je 0x1400350e2
mov rcx, rdi
neg rcx
and rcx, rdi
imul rcx, rdx
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r11]
mov r15, 0xfffffffffffffffe
rol r15, cl
shl ecx, 8
or ecx, eax
or ecx, 0x30000
lea r8d, [rbp + 1]
movsxd rcx, ecx
mov r12d, ebp
mov qword [rsp + r12*8 + 0xb8], rcx
mov ebp, r8d
and rdi, r15
jne 0x140035187
jmp 0x1400350e5
mov rcx, r14
neg rcx
and rcx, r14
movabs r10, 0x7edd5e59a4e28c2
imul rcx, r10
shr rcx, 0x38
and ecx, 0xfffffffc
lea r11, [0x140236d80]
mov ecx, dword [rcx + r11]
mov rdi, 0xfffffffffffffffe
rol rdi, cl
lea ebx, [rcx + 8]
shl ecx, 8
or ecx, ebx
or ecx, 0x10000
lea ebx, [rdx + 1]
movsxd rcx, ecx
mov edx, edx
mov qword [rsp + rdx*8 + 0xb8], rcx
and rdi, r14
jne 0x140035578
mov edx, ebx
jmp 0x140034b6a
lea r8, [rsp + 0x90]
mov rcx, r15
mov rdx, r14
call fcn.14002da40
jmp 0x1400342f3
mov ecx, dword [rsp + 0x54]
cmp dword [rax], ecx
jl 0x140034bee
jmp 0x140034255
mov rcx, rdi
neg rcx
and rcx, rdi
imul rcx, r10
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r11]
mov r14, 0xfffffffffffffffe
rol r14, cl
lea edx, [rcx - 8]
shl ecx, 8
or ecx, edx
or ecx, 0x10000
lea edx, [rbx + 1]
movsxd rcx, ecx
mov ebx, ebx
mov qword [rsp + rbx*8 + 0xb8], rcx
mov ebx, edx
and rdi, r14
je 0x140034a67
jmp 0x14003525d
xor ecx, ecx
cmp dword [rsp + 0x50], 0
sete cl
shl ecx, 4
lea r8d, [rcx + rax - 8]
movsxd rdi, r8d
cmp dword [r15 + rdi*4], 0
jne 0x1400350e2
lea edi, [rax + 7]
test eax, eax
cmovns edi, eax
sar edi, 3
movsxd rdi, edi
lea r15, [0x1400e8d80]
lea rdi, [r15 + rdi*8]
mov edi, dword [rdi + r9*4]
cmp edi, 6
jg 0x1400350e2
shl r8d, 8
or r8d, eax
or r8d, 0x10000
movsxd r15, r8d
lea r8d, [rbp + 1]
mov r12d, ebp
mov qword [rsp + r12*8 + 0xb8], r15
cmp edi, 2
jne 0x1400350e5
add ecx, 0xfffffff8
lea ecx, [rax + rcx*2]
movsxd rdi, ecx
mov r15, qword [rsp + 0x28]
cmp dword [r15 + rdi*4], 0
jne 0x1400350e5
shl ecx, 8
or ecx, eax
or ecx, 0x10000
movsxd rcx, ecx
add ebp, 2
mov r8d, r8d
mov qword [rsp + r8*8 + 0xb8], rcx
jmp 0x1400350e2
cmp ecx, 2
jne 0x140035531
mov r15, r10
not r15
lea rcx, [0x1400dc900]
and r15, qword [rcx + r8*8]
je 0x1400350e2
mov rcx, r15
neg rcx
and rcx, r15
imul rcx, rdx
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r11]
mov rdi, 0xfffffffffffffffe
rol rdi, cl
shl ecx, 8
or ecx, eax
or ecx, 0x20000
movsxd rcx, ecx
mov r8d, ebp
mov qword [rsp + r8*8 + 0xb8], rcx
lea r8d, [rbp + 1]
and rdi, r15
je 0x1400350e5
mov rcx, rdi
neg rcx
and rcx, rdi
imul rcx, rdx
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r11]
mov r15, 0xfffffffffffffffe
rol r15, cl
shl ecx, 8
or ecx, eax
or ecx, 0x20000
lea r12d, [rbp + 2]
movsxd rcx, ecx
mov r8d, r8d
mov qword [rsp + r8*8 + 0xb8], rcx
and r15, rdi
je 0x1400355d1
mov rcx, r15
neg rcx
and rcx, r15
imul rcx, rdx
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r11]
mov rdi, 0xfffffffffffffffe
rol rdi, cl
shl ecx, 8
or ecx, eax
or ecx, 0x20000
lea r8d, [rbp + 3]
movsxd rcx, ecx
mov r12d, r12d
mov qword [rsp + r12*8 + 0xb8], rcx
and rdi, r15
je 0x1400350e5
mov rcx, rdi
neg rcx
and rcx, rdi
imul rcx, rdx
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r11]
mov r15, 0xfffffffffffffffe
rol r15, cl
shl ecx, 8
or ecx, eax
or ecx, 0x20000
lea r12d, [rbp + 4]
mov dword [rsp + 0x38], r12d
movsxd rcx, ecx
mov r8d, r8d
mov qword [rsp + r8*8 + 0xb8], rcx
and r15, rdi
je 0x1400355c5
mov rcx, r15
neg rcx
and rcx, r15
imul rcx, rdx
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r11]
mov r12, 0xfffffffffffffffe
rol r12, cl
shl ecx, 8
or ecx, eax
or ecx, 0x20000
lea r8d, [rbp + 5]
movsxd rcx, ecx
mov edi, dword [rsp + 0x38]
mov qword [rsp + rdi*8 + 0xb8], rcx
and r12, r15
je 0x1400350e5
mov rcx, r12
neg rcx
and rcx, r12
imul rcx, rdx
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r11]
mov rdi, 0xfffffffffffffffe
rol rdi, cl
shl ecx, 8
or ecx, eax
or ecx, 0x20000
lea r15d, [rbp + 6]
movsxd rcx, ecx
mov r8d, r8d
mov qword [rsp + r8*8 + 0xb8], rcx
and rdi, r12
jne 0x1400355d9
mov r8d, r15d
jmp 0x1400350e5
cmp ecx, 4
jne 0x1400350e2
mov rdi, r10
not rdi
shl r8, 5
lea r12, [0x14022c280]
mov r15, qword [r8 + r12]
and r15, r10
imul r15, qword [r8 + r12 + 8]
movzx ecx, byte [r8 + r12 + 0x18]
shr r15, cl
mov rcx, qword [r8 + r12 + 0x10]
movsxd r8, r15d
and rdi, qword [rcx + r8*8]
jne 0x1400350fc
jmp 0x1400350e2
mov rcx, rdi
neg rcx
and rcx, rdi
imul rcx, r10
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r11]
mov r14, 0xfffffffffffffffe
rol r14, cl
lea edx, [rcx + 8]
shl ecx, 8
or ecx, edx
or ecx, 0x10000
lea edx, [rbx + 1]
movsxd rcx, ecx
mov ebx, ebx
mov qword [rsp + rbx*8 + 0xb8], rcx
mov ebx, edx
and rdi, r14
je 0x140034b6a
jmp 0x140035578
mov ecx, dword [rsp + 0x38]
mov r8d, ecx
jmp 0x1400350e5
mov r8d, r12d
jmp 0x1400350e5
mov rcx, rdi
neg rcx
and rcx, rdi
imul rcx, rdx
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r11]
mov r12, 0xfffffffffffffffe
rol r12, cl
shl ecx, 8
or ecx, eax
or ecx, 0x20000
add ebp, 7
movsxd rcx, ecx
mov r8d, r15d
mov qword [rsp + r8*8 + 0xb8], rcx
and r12, rdi
je 0x1400350e2
mov rcx, r12
neg rcx
and rcx, r12
imul rcx, rdx
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r11]
mov rdi, 0xfffffffffffffffe
rol rdi, cl
shl ecx, 8
or ecx, eax
or ecx, 0x20000
lea r8d, [rbp + 1]
movsxd rcx, ecx
mov r15d, ebp
mov qword [rsp + r15*8 + 0xb8], rcx
mov ebp, r8d
and r12, rdi
je 0x1400350e5
jmp 0x140035620
mov eax, 0x7d01
jmp 0x140033464
mov rax, rdi
movabs rcx, 0xff0000000000
and rax, rcx
movabs rcx, 0x40000000000
cmp rax, rcx
jne 0x1400356a3
mov r14, rdi
mov r15, qword [rsp + 0x28]
jmp 0x1400343bc
mov eax, edi
shr eax, 8
mov rcx, qword [rsp + 0x360]
bt rcx, rax
mov r14, rdi
mov r15, qword [rsp + 0x28]
jb 0x1400343bc
jmp 0x140034328
movabs r8, 0x7edd5e59a4e28c2
lea r9, [0x140236d80]
mov rcx, rax
neg rcx
and rcx, rax
imul rcx, r8
shr rcx, 0x38
and ecx, 0xfffffffc
mov ecx, dword [rcx + r9]
mov r10, 0xfffffffffffffffe
rol r10, cl
lea r11d, [rcx + 0x10]
shl ecx, 8
or ecx, r11d
or ecx, 0x10000
lea r11d, [rdx + 1]
movsxd rcx, ecx
mov edx, edx
mov qword [rsp + rdx*8 + 0xb8], rcx
mov edx, r11d
and rax, r10
je 0x140034b85
jmp 0x1400356d8