Function at 0x140418010
Capabilities:
Encrypt data using speck

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
push rbp
sub rsp, 0xe48
xor r10d, r10d
mov rax, qword [0x14194d6d8]
mov r12d, r9d
xor rax, rsp
pxor xmm2, xmm2
mov qword [rsp + 0xe40], rax
mov eax, 0x80
movsxd rdx, edx
movsxd r8, r8d
mov qword [rsp + 0x3d0], rdx
mov qword [rsp + 0x240], r8
mov dword [rsp + 0x320], r10d
mov dword [rsp + 0xe0], r10d
movdqu xmmword [rsp + rax + 0xdb0], xmm2
movdqu xmmword [rsp + rax + 0xda0], xmm2
movdqu xmmword [rsp + rax + 0xd90], xmm2
movdqu xmmword [rsp + rax + 0xd80], xmm2
sub rax, 0x40
jne 0x14041806a
mov rsi, qword [rsp + 0x3d0]
mov r8d, 0x39
mov rdi, qword [rsp + 0xeb0]
mov r9d, 1
mov r10, rsi
test rsi, rsi
jle 0x1404182dd
movsxd r11, r12d
shr r11, 0x16
and r11, 7
test r12d, 0x80000000
jne 0x1404180dc
test r11, 1
jne 0x1404180dc
xor r11d, r11d
mov r13d, r12d
xor ebp, ebp
and r13d, 0x80002000
mov eax, r12d
cmp r13d, 0x80002000
mov r13d, ebp
mov ebx, r12d
sete r13b
xor edx, edx
and eax, 0x80001000
cmp eax, 0x80001000
mov rax, r11
sete dl
and ebx, 0x80000800
cmp ebx, 0x80000800
sete bpl
and rax, 2
shl r13d, 0xa
shl edx, 9
shl ebp, 8
or r13d, edx
or r13d, ebp
bts r13d, r11d
test r11, 4
je 0x140418151
mov edx, 0xfa
test rax, rax
mov eax, 0xaaaa
cmovne edx, eax
jmp 0x14041816e
test rax, rax
je 0x14041815d
mov edx, 0xfa00
jmp 0x14041816e
mov edx, 0xa8a8
xor eax, eax
test r11, 1
cmovne edx, eax
movss dword [rsp + 0x20], xmm0
movabs rcx, 0x80000000
mov r15d, dword [rsp + 0x20]
and rcx, r15
mov rbp, r15
mov rbx, r15
xor rbp, rcx
mov rax, rbp
mov r14d, ebp
shr rax, 7
mov r11d, r14d
mov dword [rsp + 0x20], ebp
add rax, 0xffffffffff810000
movss xmm1, dword [rsp + 0x20]
and rbx, 0x7f800000
jne 0x140418354
test rbp, rbp
jne 0x1404181e5
bt r15, 0x1f
jae 0x1404181d5
mov rax, qword [rsp + 0xed0]
mov dword [rax], 0xffffffff
jmp 0x140418217
mov rax, qword [rsp + 0xed0]
mov dword [rax], 1
jmp 0x140418217
bt r15, 0x1f
jae 0x1404181fc
mov rax, qword [rsp + 0xed0]
mov dword [rax], 0xfffffffe
jmp 0x14041820a
mov rax, qword [rsp + 0xed0]
mov dword [rax], 2
test r12d, 0x10000000
je 0x1404182ff
test r12d, 0x80
je 0x14041822e
mov qword [rsp + 0x240], 1
jmp 0x14041827b
test r12d, 2
je 0x140418257
mov rax, qword [rsp + 0x240]
inc rax
mov qword [rsp + 0x240], rax
cmp rax, qword [rsp + 0x3d0]
jle 0x140418270
mov rsi, r10
mov rbp, rdi
lea rax, [rsi - 1]
mov qword [rsp + 0x240], rax
mov rbx, rbp
test rsi, rsi
jne 0x140418286
jmp 0x1404182b6
cmp qword [rsp + 0x240], 0
jle 0x1404182dd
dec qword [rsp + 0x240]
mov rbx, rdi
mov rax, qword [rsp + 0x240]
lea r8, [rax + 1]
cmp rax, 0x60
jle 0x14041ceea
mov rcx, rdi
mov edx, 0x30
call fcn.14042ad60
mov rax, qword [rsp + 0x240]
lea rbp, [rdi + rax + 1]
mov rdx, qword [rsp + 0xec8]
mov esi, 0xb
test r12d, 0x40000000
mov dword [rdx], 1
mov edx, 0
cmovne edx, esi
jmp 0x14041879d
mov rdx, qword [rsp + 0xec8]
mov rbx, rdi
mov byte [rdi], 0x30
lea rbp, [rdi + 1]
mov dword [rdx], 1
mov edx, 6
jmp 0x14041879d
mov rax, r11
and rax, 0x7f800000
shr rax, 0x17
je 0x140418317
mov rbx, r11
shl rbx, 0x28
jmp 0x140418333
mov rbx, r11
xor eax, eax
shl rbx, 0x29
test rbx, rbx
jle 0x140418330
add rbx, rbx
inc rax
test rbx, rbx
jg 0x140418325
neg rax
shr rbx, 0x2f
shl rax, 0x10
movzx ebx, bx
add rax, 0xffffffffff810000
mov qword [rsp + 0xdc8], rbx
or rax, rbx
jmp 0x1404185e9
cmp rbx, 0x7f800000
jne 0x1404185c4
cmp rbp, 0x7f800000
jne 0x14041848b
bt r15, 0x1f
jae 0x140418385
mov rax, qword [rsp + 0xed0]
mov dword [rax], 0xfffffffc
jmp 0x140418393
mov rax, qword [rsp + 0xed0]
mov dword [rax], 4
test r13d, 0x400
je 0x1404183b7
test r13d, 0x200
lea rax, str.INFINITY
lea rsi, str.infinity
cmovne rsi, rax
jmp 0x1404183be
lea rsi, str.Infinity
mov rbp, rdi
mov dl, byte [rsi]
test dl, dl
je 0x140418456
xor eax, eax
inc rax
lea r8, [rdi + rax*8]
mov byte [r8 - 8], dl
lea rbp, [r8 - 7]
mov dl, byte [rsi + rax*8 - 7]
test dl, dl
je 0x140418456
mov byte [r8 - 7], dl
lea rbp, [r8 - 6]
mov dl, byte [rsi + rax*8 - 6]
test dl, dl
je 0x140418456
mov byte [r8 - 6], dl
lea rbp, [r8 - 5]
mov dl, byte [rsi + rax*8 - 5]
test dl, dl
je 0x140418456
mov byte [r8 - 5], dl
lea rbp, [r8 - 4]
mov dl, byte [rsi + rax*8 - 4]
test dl, dl
je 0x140418456
mov byte [r8 - 4], dl
lea rbp, [r8 - 3]
mov dl, byte [rsi + rax*8 - 3]
test dl, dl
je 0x140418456
mov byte [r8 - 3], dl
lea rbp, [r8 - 2]
mov dl, byte [rsi + rax*8 - 2]
test dl, dl
je 0x140418456
mov byte [r8 - 2], dl
lea rbp, [r8 - 1]
mov dl, byte [rsi + rax*8 - 1]
test dl, dl
je 0x140418456
mov byte [r8 - 1], dl
mov rbp, r8
mov dl, byte [rsi + rax*8]
test dl, dl
jne 0x1404183cd
mov rsi, qword [rsp + 0xec8]
and r12d, 0x40000000
mov rdx, rbp
shr r12d, 0x1d
sub rdx, rdi
mov dword [rsi], edx
mov ecx, r12d
mov edx, 4
shl edx, cl
mov rbx, qword [rsp + 0xeb0]
add edx, 0xfffffffc
jmp 0x14041879d
test r13d, 0x400
je 0x1404184e4
test r14d, 0x400000
jne 0x1404184ad
shr rcx, 0x1e
mov edx, 0x10
shr edx, cl
add edx, 0xfffffff6
jmp 0x1404184bf
mov eax, 0xfffffffb
mov edx, 5
bt r15, 0x1f
cmovb edx, eax
mov rsi, qword [rsp + 0xed0]
test r13d, 0x200
lea rax, [0x1405a0100]
mov dword [rsi], edx
lea rsi, [0x1405a0104]
cmovne rsi, rax
jmp 0x1404184f9
mov rax, qword [rsp + 0xed0]
lea rsi, [0x1405a0108]
mov dword [rax], 0
mov rbp, rdi
mov dl, byte [rsi]
test dl, dl
je 0x140418591
xor eax, eax
inc rax
lea r8, [rdi + rax*8]
mov byte [r8 - 8], dl
lea rbp, [r8 - 7]
mov dl, byte [rsi + rax*8 - 7]
test dl, dl
je 0x140418591
mov byte [r8 - 7], dl
lea rbp, [r8 - 6]
mov dl, byte [rsi + rax*8 - 6]
test dl, dl
je 0x140418591
mov byte [r8 - 6], dl
lea rbp, [r8 - 5]
mov dl, byte [rsi + rax*8 - 5]
test dl, dl
je 0x140418591
mov byte [r8 - 5], dl
lea rbp, [r8 - 4]
mov dl, byte [rsi + rax*8 - 4]
test dl, dl
je 0x140418591
mov byte [r8 - 4], dl
lea rbp, [r8 - 3]
mov dl, byte [rsi + rax*8 - 3]
test dl, dl
je 0x140418591
mov byte [r8 - 3], dl
lea rbp, [r8 - 2]
mov dl, byte [rsi + rax*8 - 2]
test dl, dl
je 0x140418591
mov byte [r8 - 2], dl
lea rbp, [r8 - 1]
mov dl, byte [rsi + rax*8 - 1]
test dl, dl
je 0x140418591
mov byte [r8 - 1], dl
mov rbp, r8
mov dl, byte [rsi + rax*8]
test dl, dl
jne 0x140418508
mov rsi, qword [rsp + 0xec8]
mov rdx, rbp
sub rdx, rdi
mov r8d, 0xa
test r12d, 0x40000000
mov dword [rsi], edx
mov edx, 0
mov rbx, qword [rsp + 0xeb0]
cmovne edx, r8d
jmp 0x14041879d
bt r15, 0x1f
jae 0x1404185db
mov rbx, qword [rsp + 0xed0]
mov dword [rbx], 0xfffffffd
jmp 0x1404185e9
mov rbx, qword [rsp + 0xed0]
mov dword [rbx], 3
mov ebx, r13d
shr rcx, 0x1f
and ebx, 0x100
mov dword [rsp + 0x290], ebx
je 0x140418839
and r13d, 0x200
mov rax, r11
mov r9d, r13d
and rax, 0x7f800000
xor r9d, 0x200
shr r9d, 4
lea r8d, [r9 + 0x46]
add r9d, 8
shr rax, 0x17
je 0x14041863c
or r11, 0xffffffffff800000
shl r11, 0x28
jmp 0x140418655
shl r11, 0x29
xor eax, eax
test r11, r11
jle 0x140418652
add r11, r11
inc rax
test r11, r11
jg 0x140418647
neg rax
mov r10, qword [rsp + 0x3d0]
lea rbp, [rdi + 1]
mov qword [rsp + 0xdc8], r11
mov r15d, 0x10
mov byte [rdi], 0x30
mov rbx, rbp
mov qword [rsp + 0x418], rdi
lea r10, [r10 - 1]
mov dword [rsp + 0x300], r12d
mov r14, r11
dec r15
shr r14, 0x3c
shl r11, 4
cmp r14d, 0xa
jge 0x1404186a3
lea r12d, [r14 + 0x30]
jmp 0x1404186b2
test r13d, r13d
lea edi, [r14 + 0x37]
lea r12d, [r14 + 0x57]
cmovne r12d, edi
mov byte [rbp], r12b
inc rbp
test r10, r10
jle 0x14041cfb7
dec r10
test r15, r15
jne 0x140418689
mov rdi, qword [rsp + 0x418]
mov r12d, dword [rsp + 0x300]
xor r11d, r11d
and r14d, 1
mov r13, r11
add r14d, r14d
xor r15d, r15d
add r13, r11
mov r10, qword [rsp + 0xec8]
lea ecx, [r14 + rcx*8]
mov r14d, r15d
setne r14b
add rax, 0xffffffffffffff82
test r14d, r14d
mov dword [r10], eax
setne r15b
shr r11, 0x3f
lea r10d, [r11 + r15*4]
add ecx, r10d
shr edx, cl
test dl, 1
je 0x140418751
movsx edx, byte [rbp - 1]
cmp edx, r8d
jne 0x140418735
dec rbp
movsx edx, byte [rbp - 1]
cmp edx, r8d
je 0x140418729
mov r8d, 1
cmp edx, 0x39
cmove r8d, r9d
add edx, r8d
mov byte [rbp - 1], dl
cmp rbp, rbx
je 0x14041cf79
test r12d, 0x80
je 0x14041876b
cmp byte [rbp - 1], 0x30
jne 0x14041879b
dec rbp
cmp byte [rbp - 1], 0x30
je 0x140418760
jmp 0x14041879b
sub rsi, rbp
add rsi, rbx
dec esi
movsxd rsi, esi
test rsi, rsi
jl 0x14041879b
lea r8, [rsi + 1]
cmp rsi, 0x60
jle 0x14041cf32
mov rcx, rbp
mov edx, 0x30
call fcn.14042ad60
lea rbp, [rbp + rsi + 1]
xor edx, edx
mov r8, qword [rsp + 0xeb8]
mov byte [rbp], 0
test r8, r8
je 0x1404187b7
mov rsi, rbx
sub rsi, rdi
mov dword [r8], esi
mov rsi, qword [rsp + 0xec0]
test rsi, rsi
je 0x1404187cc
neg rdi
add rdi, rbp
mov dword [rsi], edi
mov rsi, rbx
test rbx, rbx
je 0x1404187ea
cmp rsi, rbp
jae 0x1404187ea
mov dil, byte [rsi]
inc rsi
cmp dil, 0x30
jne 0x1404187ef
test rsi, rsi
jne 0x1404187d4
mov edx, 0xb
mov rcx, qword [rsp + 0xed8]
test rcx, rcx
je 0x1404187fe
mov dword [rcx], edx
mov rcx, qword [rsp + 0xe40]
mov qword [rsp + 0xe40], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x14041cf2d
mov rax, rbx
add rsp, 0xe48
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
xor ebx, ebx
test rax, rax
mov r15d, r13d
lea r14, [rdi + 1]
setl bl
and r15d, 2
add rbx, 0x4d104d42
pxor xmm0, xmm0
imul rax, rbx
cvtss2sd xmm0, xmm1
mov qword [rsp + 0x330], r14
mov r14d, r13d
and r14d, 0x41
mov ebx, r12d
sar rax, 0x30
and r13d, 0x14
mov dword [rsp + 0x208], r14d
inc rax
mov qword [rsp + 0x2f0], r11
and ebx, 2
mov qword [rsp + 0x418], rdi
mov dword [rsp + 0x200], r13d
mov r13d, 0x80
mov dword [rsp + 0x210], r15d
xor r15d, r15d
mov qword [rsp + 0x218], rbp
mov dword [rsp + 0x338], ecx
mov dword [rsp + 0x340], edx
mov qword [rsp + 0x220], r10
mov dword [rsp + 0x228], r9d
lea r9, [0x140000000]
mov dword [rsp + 0x230], r8d
mov dword [rsp + 0x300], r12d
xor r12d, r12d
mov rdi, qword [rsp + 0x240]
mov r11d, dword [rsp + 0x320]
mov r14, qword [rsp + 0xec8]
jmp 0x14041895a
mov rax, qword [rsp + 0x2f8]
xor r15d, r15d
neg rax
mov r13d, 0x80
mov ebx, dword [rsp + 0x238]
xor r12d, r12d
mov rdi, qword [rsp + 0x240]
inc rax
mov rsi, qword [rsp + 0x348]
mov r11d, dword [rsp + 0x320]
mov qword [rsp + 0x310], r9
lea r9, [0x140000000]
mov r14, qword [rsp + 0xec8]
mov ebp, eax
test ebx, ebx
je 0x1404189b0
test rdi, rdi
jge 0x140418974
neg edi
mov dword [rsp + 0xe0], edi
mov r11d, edi
mov rdi, r15
lea rsi, [rax + rdi]
cmp rsi, qword [rsp + 0x3d0]
jle 0x1404189a7
sub rsi, qword [rsp + 0x3d0]
mov dword [r14], ebp
neg esi
add esi, dword [rsp + 0xe0]
test r11d, r11d
cmovne r11d, esi
mov rsi, qword [rsp + 0x220]
jmp 0x1404189b3
test rsi, rsi
jle 0x14041cfd5
mov dword [r14], ebp
neg rax
jne 0x140418a1e
mov rcx, qword [rsp + 0x2f0]
mov rdx, r15
and rcx, 0x7f800000
mov r8d, 0x18
shr rcx, 0x17
je 0x1404189eb
mov rbp, qword [rsp + 0x2f0]
or rbp, 0xffffffffff800000
shl rbp, 0x28
jmp 0x140418a0d
mov rbp, qword [rsp + 0x2f0]
mov rcx, r15
shl rbp, 0x29
test rbp, rbp
jle 0x140418a0a
add rbp, rbp
inc rcx
test rbp, rbp
jg 0x1404189ff
neg rcx
mov qword [rsp + 0xdc8], rbp
add rcx, 0xffffffffffffff82
jmp 0x140418b64
cmp rsi, 0xf
jl 0x140418a56
mov rdx, r13
lea rcx, [rsp + rdx + 0xbb0]
movdqu xmmword [rcx], xmm2
movdqu xmmword [rcx - 0x10], xmm2
movdqu xmmword [rcx - 0x20], xmm2
movdqu xmmword [rcx - 0x30], xmm2
sub rdx, 0x40
jne 0x140418a27
cmp rax, 0xfffffffffffffeaa
jl 0x140418af1
jmp 0x140418a92
mov edx, 1
cmp rax, 0x24
jle 0x140418af9
mov rdx, r13
movdqu xmmword [rsp + rdx + 0xbb0], xmm2
movdqu xmmword [rsp + rdx + 0xba0], xmm2
movdqu xmmword [rsp + rdx + 0xb90], xmm2
movdqu xmmword [rsp + rdx + 0xb80], xmm2
sub rdx, 0x40
jne 0x140418a68
cmp rax, 0x159
jg 0x140418af1
mov r8d, 0x40
cmp rsi, 0x11
mov edx, r12d
cmovg r8, r13
cmp r8, 0x80
setne dl
mov qword [rsp + 0x328], rdx
mov qword [rsp + 0x2f8], rax
mov dword [rsp + 0x238], ebx
mov qword [rsp + 0x240], rdi
mov qword [rsp + 0x348], rsi
mov dword [rsp + 0x320], r11d
mov r9, qword [rsp + 0x310]
jmp 0x140419181
mov r8, r13
mov rdx, r15
jmp 0x140418ab5
movsd xmm3, qword [r9 + rax*8 + 0x5a1318]
movabs rcx, 0x7ff0000000000000
mulsd xmm3, xmm0
mov r8d, 0x35
movq r10, xmm3
and rcx, r10
shr rcx, 0x34
je 0x140418b38
movabs rbp, 0x10000000000000
or rbp, r10
shl rbp, 0xb
jmp 0x140418b55
mov rbp, r10
mov rcx, r15
shl rbp, 0xc
test rbp, rbp
jle 0x140418b52
add rbp, rbp
inc rcx
test rbp, rbp
jg 0x140418b47
neg rcx
mov qword [rsp + 0xdc8], rbp
add rcx, 0xfffffffffffffc02
mov qword [rsp + 0x328], rdx
mov r10d, 1
mov qword [rsp + 0x2f8], rax
mov dword [rsp + 0x238], ebx
mov qword [rsp + 0x240], rdi
mov qword [rsp + 0x348], rsi
mov dword [rsp + 0x320], r11d
mov r9, qword [rsp + 0x310]
test rcx, rcx
jg 0x14041890a
neg rcx
mov esi, ecx
test esi, esi
je 0x140418cad
mov ebx, esi
lea rbp, [r10 - 1]
neg ebx
mov edi, ebp
mov rax, qword [rsp + r10*8 + 0xdc0]
mov ecx, ebx
mov rdx, rax
shl rdx, cl
mov ecx, esi
shr rax, cl
mov qword [rsp + r10*8 + 0xdc8], rdx
mov qword [rsp + r10*8 + 0xdc0], rax
test edi, edi
je 0x140418ca4
mov edx, edi
xor r11d, r11d
mov eax, 1
xor r12d, r12d
shr edx, 1
je 0x140418c5d
movsxd rax, ebp
lea r14, [rsp + rax*8 + 0xdc0]
mov r13, qword [r14 + 8]
mov rax, qword [r12 + r14]
mov ecx, ebx
mov r15, rax
inc r11
shl r15, cl
mov ecx, esi
or r13, r15
mov qword [r12 + r14 + 8], r13
mov r13, qword [r12 + r14 - 8]
mov r15, r13
shr rax, cl
mov ecx, ebx
shl r15, cl
mov ecx, esi
or rax, r15
mov qword [r12 + r14], rax
add r12, 0xfffffffffffffff0
shr r13, cl
cmp r11, rdx
jb 0x140418c0e
lea eax, [r11 + r11 + 1]
shl r11, 4
neg r11
mov qword [r14 + r11 + 8], r13
lea edx, [rax - 1]
cmp edx, edi
jae 0x140418c9c
movsxd rdi, ebp
mov ecx, ebx
movsxd rax, eax
sub rdi, rax
mov rbp, qword [rsp + rdi*8 + 0xdc8]
mov rdx, rbp
shl rdx, cl
mov ecx, esi
shr rbp, cl
or qword [rsp + rdi*8 + 0xdd0], rdx
mov qword [rsp + rdi*8 + 0xdc8], rbp
mov rdx, qword [rsp + r10*8 + 0xdc8]
jmp 0x140418ca4
mov rdx, qword [rsp + r10*8 + 0xdc8]
xor eax, eax
cmp rax, rdx
adc r10, 0
mov rdx, qword [rsp + 0x348]
mov r12d, 0x27
cmp rdx, 0x27
mov r15, qword [rsp + 0x418]
cmovle r12, rdx
mov rbp, qword [rsp + 0x330]
mov rbx, rbp
mov byte [r15], 0x30
xor r15d, r15d
cmp r12d, dword [rsp + 0x320]
jle 0x140418edb
sub r12d, dword [rsp + 0x320]
movsxd r12, r12d
je 0x140418edb
xor r11d, r11d
xor esi, esi
mov qword [rsp + 0x308], r8
xor edi, edi
mov qword [rsp + 0x310], r9
mov qword [rsp + 0x318], rbx
mov rax, qword [rsp + 0x418]
mov qword [rsp + 0xdc0], 0
mov edx, esi
test r10, r10
je 0x140418ea1
mov ecx, r10d
mov rdx, rdi
mov r13, qword [rsp + r10*8 + 0xdc0]
mov qword [rsp + r10*8 + 0xdc0], 0
test ecx, ecx
je 0x140418e92
mov edx, ecx
mov rbp, rdi
mov r14d, 1
mov rbx, rbp
shr edx, 1
je 0x140418e25
movsxd r8, r10d
lea r9, [rsp + r8*8 + 0xdc0]
mov r8, qword [r9]
mov eax, esi
lea r14, [r13 + r13*4]
cmp r14, r13
lea r8, [r8 + r14*2]
mov qword [rbx + r9], r8
setb al
inc rbp
shr r13, 0x3e
add r13, rax
mov rax, r14
add r14, r14
add r13, r13
cmp r8, r14
mov r14d, esi
mov r8, qword [rbx + r9 - 8]
setb r14b
shr rax, 0x3f
or r13, rax
add r13, r14
lea rax, [r8 + r8*4]
cmp rax, r8
mov r14d, esi
setb r14b
shr r8, 0x3e
lea r13, [r13 + rax*2]
add r8, r14
mov r14, rax
add rax, rax
add r8, r8
cmp r13, rax
mov eax, esi
mov qword [rbx + r9 - 8], r13
setb al
shr r14, 0x3f
or r8, r14
mov r13, qword [rbx + r9 - 0x10]
add r8, rax
add rbx, 0xfffffffffffffff0
cmp rbp, rdx
jb 0x140418d80
mov rax, qword [rsp + 0x418]
lea r14d, [rbp + rbp + 1]
shl rbp, 4
neg rbp
mov qword [r9 + rbp], r8
lea edx, [r14 - 1]
cmp edx, ecx
jae 0x140418e8a
movsxd r14, r14d
lea rcx, [r13 + r13*4]
movsxd rdx, r10d
cmp rcx, r13
mov ebx, esi
lea r8, [rcx + rcx]
setb bl
sub rdx, r14
shr r13, 0x3e
add r13, rbx
mov ebx, esi
mov rbp, qword [rsp + rdx*8 + 0xdc8]
add r13, r13
lea r9, [rbp + rcx*2]
shr rcx, 0x3f
cmp r9, r8
mov qword [rsp + rdx*8 + 0xdc8], r9
setb bl
or r13, rcx
add r13, rbx
mov qword [rsp + rdx*8 + 0xdc0], r13
mov rdx, qword [rsp + r10*8 + 0xdc0]
jmp 0x140418e92
mov rdx, qword [rsp + r10*8 + 0xdc0]
cmp rdx, 1
mov edx, dword [rsp + 0xdc0]
sbb r10, 0
add r15, 0x35269
lea ecx, [rdx + 0x30]
mov byte [r11 + rax + 1], cl
lea rbp, [r11 + rax + 2]
inc r11
cmp r11, r12
jb 0x140418d23
mov r8, qword [rsp + 0x308]
mov r9, qword [rsp + 0x310]
mov rbx, qword [rsp + 0x318]
jmp 0x140418ee2
mov edx, dword [rsp + 0xdc0]
add r15, 0xffff
lea r14, [r8 + 0x3f]
and r14, 0xffffffffffffffc0
movabs rdi, 0x8000000000000000
mov r13, r14
shr r15, 0x10
sub r13, r8
add r13, r15
mov r15d, r13d
mov ecx, r15d
mov r10, qword [rsp + 0x328]
mov rsi, qword [rsp + 0xdc8]
shl r10, cl
mov byte [rbp], 0
sub rsi, rdi
je 0x140418f34
xor eax, eax
cmp rdi, rsi
setne al
jmp 0x140418f36
xor eax, eax
xor r12d, r12d
xor edi, edi
test rsi, rsi
setns dil
and edx, 1
mov ecx, dword [rsp + 0x338]
lea ecx, [rdi + rcx*8]
lea r11d, [rdx + rdx]
lea edx, [rcx + rdx*2]
lea ecx, [rdx + rax*4]
mov edx, dword [rsp + 0x340]
shr edx, cl
lea rax, [rsi + r10]
and edx, 1
lea rcx, [r10 + r10]
cmp rax, rcx
mov rax, r14
setbe r12b
sub rax, r13
cmp rax, 0x40
jb 0x14041914f
lea r10, [rsi + 1]
cmp r10, 1
ja 0x14041d2b2
shr r13, 6
mov ecx, r15d
shr r14, 6
mov r10, qword [rsp + 0x328]
sub r14d, r13d
shl r10, cl
mov edx, r14d
mov r12, r10
mov r13, r10
cmp r14d, 1
jle 0x1404190fa
xor ecx, ecx
lea eax, [r14 - 1]
mov edi, 1
xor r15d, r15d
shr eax, 1
je 0x1404190a3
movsxd r14, r14d
mov qword [rsp + 0x308], r8
xor r8d, r8d
mov qword [rsp + 0x310], r9
mov qword [rsp + 0x318], rbx
mov qword [rsp + 0x248], rbp
lea rdi, [rsp + r14*8 + 0xdc0]
nop dword [rax]
nop dword [rax]
mov rbp, qword [r15 + rdi]
test rbp, rbp
mov r9d, r8d
setne r9b
add r12, rbp
neg r13
mov rbx, qword [r15 + rdi - 8]
or rsi, r9
test rbx, rbx
mov r9d, r8d
setne r9b
cmp r12, rbp
mov r12d, r8d
setb r12b
add r13, rbp
inc ecx
add r12, rbx
add r15, 0xfffffffffffffff0
cmp r12, rbx
mov r12d, r8d
setb r12b
cmp r13, rbp
mov r13d, r8d
seta r13b
or rsi, r9
neg r13
add r13, rbx
cmp r13, rbx
mov r13d, r8d
seta r13b
cmp ecx, eax
jb 0x140419010
mov r8, qword [rsp + 0x308]
lea edi, [rcx + rcx]
neg edi
mov r9, qword [rsp + 0x310]
add r14d, edi
mov rbx, qword [rsp + 0x318]
lea edi, [rcx + rcx + 1]
mov rbp, qword [rsp + 0x248]
lea r15d, [rdi - 1]
lea eax, [rdx - 1]
cmp r15d, eax
jae 0x14041d2e4
movsxd rdx, edx
neg r13
mov r14d, edx
sub r14d, edi
movsxd rdi, edi
sub rdx, rdi
xor edi, edi
xor r15d, r15d
mov rdx, qword [rsp + rdx*8 + 0xdc8]
test rdx, rdx
setne r15b
add r12, rdx
cmp r12, rdx
mov r12d, edi
setb r12b
add r13, rdx
cmp r13, rdx
mov r13d, edi
seta r13b
or rsi, r15
setge dil
movsxd r14, r14d
mov rdx, qword [rsp + r14*8 + 0xdc0]
add r12, rdx
sub rdx, r13
xor r12, rdx
shr r12, 0x3f
test rsi, rsi
je 0x14041912e
movabs rdx, 0x8000000000000000
cmp rdx, rsi
mov edx, 0
setne dl
jmp 0x140419130
xor edx, edx
mov esi, dword [rsp + 0x338]
lea r13d, [r11 + rsi*8]
add r13d, edi
lea ecx, [r13 + rdx*4]
mov edx, dword [rsp + 0x340]
shr edx, cl
and edx, 1
test r12d, r12d
je 0x14041d2b2
test r10, r10
je 0x14041d2b2
cmp r8, 0x80
jae 0x14041d254
mov eax, 0x80
cmp r8, 0x40
mov r8d, 0x40
cmovae r8, rax
mov rbp, qword [rsp + 0x2f0]
and rbp, 0x7f800000
shr rbp, 0x17
je 0x1404191ab
mov rbx, qword [rsp + 0x2f0]
or rbx, 0xffffffffff800000
shl rbx, 0x28
jmp 0x1404191cc
mov rbx, qword [rsp + 0x2f0]
xor ebp, ebp
shl rbx, 0x29
test rbx, rbx
jle 0x1404191c9
add rbx, rbx
inc rbp
test rbx, rbx
jg 0x1404191be
neg rbp
mov qword [rsp + 0xdc8], rbx
mov eax, 0x80
movdqu xmmword [rsp + rax + 0x8b0], xmm2
movdqu xmmword [rsp + rax + 0x8a0], xmm2
movdqu xmmword [rsp + rax + 0x890], xmm2
movdqu xmmword [rsp + rax + 0x880], xmm2
sub rax, 0x40
jne 0x1404191d9
mov rdi, qword [rsp + 0x2f8]
cmp r8, 0x40
jne 0x1404198d9
mov rax, rdi
mov edx, 1
mov edi, 8
lea rcx, [rax + 0x2f]
cmp rcx, 0x5e
ja 0x140419271
lea rcx, [0x140000000]
mov rsi, rax
mov r10, qword [rcx + rsi*8 + 0x5a0ad8]
movsx rax, word [rcx + rsi*2 + 0x5a0cbe]
mov qword [rsp + 0xbc8], r10
test r10, r10
jne 0x14041d0bf
add rdi, 0xfffffffffffffff8
dec rdx
mov r11, qword [rsp + rdi + 0xbc0]
test r11, r11
je 0x140419258
jmp 0x14041c9bb
cmp qword [rsp + 0x2f8], 0
jl 0x14041d0e1
mov rcx, rax
mov rsi, rcx
shr rsi, 3
lea rax, [0x140000000]
movsxd r11, esi
movzx edi, word [rax + r11*2 + 0x5a0ea2]
lea r10, [r11 + 1]
shr edi, 5
cmp rdi, rcx
cmovle r11, r10
movzx r13d, word [rax + r11*2 + 0x5a0ea0]
mov r12d, r13d
shr r13d, 5
and r12d, 0x1f
movsx r14, word [rax + r12*2 + 0x5a0f18]
neg r13
add r13, rcx
movsxd rdi, r13d
mov qword [rsp + 0x1f8], r14
mov rsi, qword [rax + r12*8 + 0x5a0e20]
lea rax, [0x140000000]
mov qword [rsp + 0x8c8], rsi
movsx rcx, word [rax + rdi*2 + 0x5a0cbe]
mov rdi, qword [rax + rdi*8 + 0x5a0ad8]
mov qword [rsp + 0xbc8], rdi
test rdi, rdi
jne 0x14041d0d4
dec rdx
mov rax, qword [rsp + rdx*8 + 0xbc0]
test rax, rax
je 0x140419312
mov r13d, eax
mov r12, rsi
shr r12, 0x20
mov r10, r13
imul r10, r12
mov edi, esi
mov r15, rax
imul r13, rdi
mov rax, r10
mov r14d, edx
shl rax, 0x20
add r13, rax
cmp r13, rax
mov eax, 0
mov qword [rsp + 0x1c0], rdi
setb al
shr r15, 0x20
mov qword [rsp + 0x1d0], rax
mov rax, r15
imul r15, rdi
imul rax, r12
mov rdi, r15
shl rdi, 0x20
shr r10, 0x20
add r13, rdi
add rax, r10
xor r10d, r10d
cmp r13, rdi
movsxd rsi, edx
mov qword [rsp + 0x1c8], r12
setb r10b
dec r14d
mov r12, qword [rsp + 0x1f0]
lea r11, [rsp + rsi*8 + 0x940]
cmovns r12, rsi
add rax, qword [rsp + 0x1d0]
shr r15, 0x20
add rax, r15
add rax, r10
lea r10, [rsp + rsi*8 + 0x7c0]
mov qword [r11], rax
mov qword [r11 + 8], r13
mov qword [rsp + 0x1f0], r12
mov qword [r10], 0
mov rax, qword [rsp + 0x1c8]
test r14d, r14d
js 0x1404194d8
movsxd rdi, dword [rsp + 0x1f0]
neg rdi
dec rdi
neg rdi
dec rdi
cmp rdi, 2
jl 0x14041d0cc
sub rsi, qword [rsp + 0x1f0]
lea r13, [rsp + rsi*8 + 0x940]
mov esi, 1
and r13, 0xf
cmovne r13, rsi
lea r12, [r13 + 2]
cmp rdi, r12
jl 0x14041d0cc
mov rsi, qword [rsp + 0x1f0]
mov r14d, r13d
mov r12d, edi
neg r14d
add r14d, r12d
and r14d, 1
lea r15, [rsi*8]
mov rsi, r10
sub r12d, r14d
sub rsi, r15
neg r15
add r15, r11
xor r14d, r14d
movsxd r12, r12d
test r13, r13
jbe 0x140419496
mov qword [rsp + 0x310], r9
xor r9d, r9d
mov qword [rsi + r14*8], r9
mov qword [r15 + r14*8], r9
inc r14
cmp r14, r13
jb 0x14041947e
mov r9, qword [rsp + 0x310]
movdqu xmmword [rsi + r13*8], xmm2
movdqu xmmword [r15 + r13*8], xmm2
add r13, 2
cmp r13, r12
jb 0x140419496
cmp r12, rdi
jae 0x1404194d8
mov rsi, qword [rsp + 0x1f0]
lea r13, [rsi*8]
xor esi, esi
sub r10, r13
sub r11, r13
mov qword [r10 + r12*8], rsi
mov qword [r11 + r12*8], rsi
inc r12
cmp r12, rdi
jb 0x1404194c8
xor r10d, r10d
lea r13, [rdx - 1]
movsxd r13, r13d
xor edi, edi
test r13, r13
je 0x140419617
mov qword [rsp + 0x308], r8
lea r14, [rsp + r13*8 + 0x940]
mov r12, qword [r14 + 8]
lea r11, [rsp + r13*8 + 0xbc0]
mov qword [rsp + 0x2b0], rdx
lea rsi, [rsp + r13*8 + 0x7c0]
mov qword [rsp + 0x150], rcx
mov qword [rsp + 0x2a0], rbp
mov qword [rsp + 0x260], rbx
mov qword [rsp + 0x310], r9
xor r9d, r9d
mov r8, qword [rsp + 0x1c0]
mov rdx, qword [r11 + rdi*8]
mov rbx, rax
mov ebp, edx
mov r15, rdx
imul rbx, rbp
imul rbp, r8
mov rcx, rbx
mov edx, r9d
shl rcx, 0x20
inc r10
add rbp, rcx
shr r15, 0x20
cmp rbp, rcx
mov rcx, r8
setb dl
imul rcx, r15
imul r15, rax
shr rbx, 0x20
add r15, rbx
mov rbx, rcx
shl rbx, 0x20
add rbp, rbx
cmp rbp, rbx
mov ebx, r9d
setb bl
add r12, rbp
cmp r12, rbp
mov ebp, r9d
mov qword [r14 + rdi*8 + 8], r12
mov r12d, r9d
setb r12b
shr rcx, 0x20
add rdx, rcx
add r15, rdx
add rbx, r12
add r15, rbx
mov r12, qword [r14 + rdi*8]
add r12, r15
cmp r12, r15
setb bpl
add qword [rsi + rdi*8 - 8], rbp
dec rdi
cmp r10, r13
jb 0x140419544
shl r10, 3
neg r10
mov rdx, qword [rsp + 0x2b0]
mov rcx, qword [rsp + 0x150]
mov rbp, qword [rsp + 0x2a0]
mov rbx, qword [rsp + 0x260]
mov r8, qword [rsp + 0x308]
mov r9, qword [rsp + 0x310]
mov qword [r10 + r14 + 8], r12
mov rax, qword [rsp + 0x1f8]
lea r12, [rdx + 1]
mov r13d, edx
lea r14, [rsp + rdx*8 + 0xbc8]
mov rdi, qword [rsp + r12*8 + 0x940]
xor esi, esi
mov qword [r14], rdi
add rax, rcx
test r13d, r13d
je 0x140419758
mov r11d, r13d
xor r15d, r15d
mov edi, 1
xor r10d, r10d
shr r11d, 1
je 0x140419726
movsxd rdi, edx
mov qword [rsp + 0x180], r11
mov qword [rsp + 0x2a0], rbp
mov qword [rsp + 0x260], rbx
lea r11, [rsp + rdi*8 + 0xbc0]
mov qword [rsp + 0x188], r11
lea r11, [rsp + rdi*8 + 0x940]
mov qword [rsp + 0x308], r8
lea rdi, [rsp + rdi*8 + 0x7c0]
mov qword [rsp + 0x310], r9
xor r8d, r8d
mov rbp, qword [rsp + 0x188]
mov rbx, qword [rsp + 0x180]
nop dword [rax]
add rsi, qword [r10 + rdi]
inc r15
mov r9, qword [r10 + r11]
add r9, rsi
cmp r9, rsi
mov esi, r8d
mov qword [r10 + rbp], r9
setb sil
add rsi, qword [r10 + rdi - 8]
mov r9, qword [r10 + r11 - 8]
add r9, rsi
cmp r9, rsi
mov esi, r8d
mov qword [r10 + rbp - 8], r9
setb sil
add r10, 0xfffffffffffffff0
cmp r15, rbx
jb 0x1404196c0
mov rbp, qword [rsp + 0x2a0]
lea edi, [r15 + r15 + 1]
mov rbx, qword [rsp + 0x260]
mov r8, qword [rsp + 0x308]
mov r9, qword [rsp + 0x310]
lea r10d, [rdi - 1]
cmp r10d, r13d
jae 0x140419755
movsxd rdi, edi
movsxd r10, edx
sub r10, rdi
add rsi, qword [rsp + r10*8 + 0x7c8]
add rsi, qword [rsp + r10*8 + 0x948]
mov qword [rsp + r10*8 + 0xbc8], rsi
mov rdi, qword [r14]
jmp 0x140419758
mov rdi, qword [r14]
test rdi, rdi
jne 0x140419773
dec r12
lea r14, [rsp + r12*8 + 0xbc0]
cmp qword [r14], 0
je 0x14041975d
lea rdx, [r12 - 1]
mov r10, qword [rsp + 0xbc8]
test r10, r10
jle 0x140419851
mov rax, qword [rsp + 0x1f8]
add r10, r10
mov qword [rsp + 0xbc8], r10
lea rax, [rax + rcx - 1]
cmp r12, 2
jb 0x140419851
xor esi, esi
lea rdi, [r12 - 1]
mov ecx, 1
shr rdi, 1
je 0x140419820
nop word [rax + rax]
movsxd r15, esi
inc esi
shl r15, 4
mov r13, qword [rsp + r15 + 0xbd0]
mov rcx, r13
shr rcx, 0x3f
add r13, r13
or r10, rcx
mov qword [rsp + r15 + 0xbc8], r10
mov r10, qword [rsp + r15 + 0xbd8]
mov r11, r10
shr r11, 0x3f
add r10, r10
or r13, r11
mov qword [rsp + r15 + 0xbd0], r13
cmp rsi, rdi
jb 0x1404197c0
lea ecx, [rsi + rsi]
movsxd rsi, esi
shl rsi, 4
movsxd rcx, ecx
inc rcx
mov qword [rsp + rsi + 0xbc8], r10
dec rcx
lea rdi, [r12 - 1]
mov esi, ecx
cmp rsi, rdi
jae 0x140419851
mov rdi, qword [rsp + rcx*8 + 0xbd0]
mov rsi, rdi
shr rsi, 0x3f
add rdi, rdi
or qword [rsp + rcx*8 + 0xbc8], rsi
mov qword [rsp + rcx*8 + 0xbd0], rdi
cmp qword [r14], 0
cmovne rdx, r12
cmp rdx, 1
jb 0x14041c9ab
mov rcx, qword [rsp + 0xbd0]
mov edx, 1
shr rcx, 0x3f
mov edi, 8
mov rsi, qword [rsp + 0xbc8]
add rsi, rcx
cmp rsi, rcx
jae 0x1404198af
movabs r11, 0x8000000000000000
mov qword [rsp + 0xbc0], 0
inc rax
mov qword [rsp + 0xbc8], r11
jmp 0x14041c9bb
mov qword [rsp + 0xbc8], rsi
test rsi, rsi
jne 0x14041d0bf
add rdi, 0xfffffffffffffff8
dec rdx
mov r11, qword [rsp + rdi + 0xbc0]
test r11, r11
je 0x1404198c0
jmp 0x14041c9bb
mov eax, 0x80
movdqu xmmword [rsp + rax + 0x9b0], xmm2
movdqu xmmword [rsp + rax + 0x9a0], xmm2
movdqu xmmword [rsp + rax + 0x990], xmm2
movdqu xmmword [rsp + rax + 0x980], xmm2
sub rax, 0x40
jne 0x1404198de
xor esi, esi
mov ecx, 2
cmp qword [rsp + 0x2f8], 0xfffffffffffffdea
jge 0x14041a281
mov r14, r8
xor eax, eax
shr r14, 6
mov r11d, 0x1000
xor edx, edx
mov r10d, 6
cmp qword [rsp + 0x2f8], 0xfffffffffffff000
lea r13, [r14 - 1]
lea r12, [rsp + r14*8 + 0x9c0]
jle 0x1404199af
mov qword [rsp + 0x250], rcx
mov qword [rsp + 0x268], rax
mov dword [rsp + 0x270], r11d
mov qword [rsp + 0x278], r12
mov qword [rsp + 0x280], r13
mov qword [rsp + 0x288], r14
mov qword [rsp + 0x2a0], rbp
mov qword [rsp + 0x260], rbx
mov qword [rsp + 0x308], r8
mov qword [rsp + 0x310], r9
mov rcx, qword [rsp + 0x258]
jmp 0x14041a20a
mov qword [rsp + 0x250], rcx
mov qword [rsp + 0x268], rax
mov dword [rsp + 0x270], r11d
mov qword [rsp + 0x278], r12
mov qword [rsp + 0x280], r13
mov qword [rsp + 0x288], r14
mov qword [rsp + 0x2a0], rbp
mov qword [rsp + 0x260], rbx
mov qword [rsp + 0x308], r8
mov qword [rsp + 0x310], r9
mov rcx, qword [rsp + 0x258]
movsxd rax, dword [rsp + 0x270]
add rdi, rax
test rsi, rsi
je 0x14041a1d5
lea r9, [0x140000000]
xor r14d, r14d
mov r11, qword [rsp + rsi*8 + 0x9c0]
mov rbx, r11
mov qword [rsp + 0x258], rcx
mov ecx, r11d
movsx rax, word [r9 + r10 + 0x5a091e]
mov r8, rcx
mov qword [rsp + 0x1a0], rax
mov r12, rcx
mov rax, qword [r9 + rdx + 0x5a0638]
mov r9, qword [r9 + rdx + 0x5a0630]
mov r13, r9
shr r13, 0x20
imul r8, r13
mov r15d, r9d
mov rbp, r8
imul r12, r15
shl rbp, 0x20
shr rbx, 0x20
add r12, rbp
cmp r12, rbp
mov rbp, rbx
mov qword [rsp + 0x438], r15
mov qword [rsp + 0x198], r10
lea r10, [rsi + 1]
mov qword [rsp + 0x8d0], r9
setb r14b
imul rbp, r13
imul r15, rbx
shr r8, 0x20
movsxd r9, r10d
add rbp, r8
mov r8, r15
shl r8, 0x20
add r12, r8
lea r11, [rsp + r9*8 + 0x740]
cmp r12, r8
lea r8, [rsp + r9*8 + 0x6c0]
mov qword [r11 + 8], r12
mov r12d, 0
mov qword [rsp + 0x8c8], rax
mov qword [r8], r12
mov qword [r8 - 8], r12
mov r12d, eax
mov qword [rsp + 0x430], r12
mov qword [rsp + 0x440], r13
mov r13d, 0
setb r13b
add rbp, r14
shr rax, 0x20
mov r14, rcx
imul r14, rax
imul rcx, r12
imul r12, rbx
imul rbx, rax
shr r15, 0x20
add rbp, r15
mov r15, r14
shr r14, 0x20
shl r15, 0x20
add rbx, r14
mov r14, r12
add rcx, r15
shl r14, 0x20
add rbp, r13
xor r13d, r13d
cmp rcx, r15
setb r13b
xor r15d, r15d
add rcx, r14
cmp rcx, r14
setb r15b
add rbp, rcx
cmp rbp, rcx
mov ecx, 0
setb cl
shr r12, 0x20
add r13, r12
add rbx, r13
add r15, rcx
add rbx, r15
mov qword [r11], rbp
add r10d, 0xfffffffe
mov qword [r11 - 8], rbx
mov rcx, qword [rsp + 0x258]
mov r10, qword [rsp + 0x198]
js 0x140419c72
lea rbx, [r9 - 1]
movsxd rbp, ebx
neg rbp
dec rbp
neg rbp
dec rbp
cmp rbp, 2
jl 0x14041d14b
sub r9, rbx
lea r14, [rsp + r9*8 + 0x738]
mov r9d, 1
and r14, 0xf
cmovne r14, r9
lea r12, [r14 + 2]
cmp rbp, r12
jl 0x14041d14b
mov r9d, r14d
mov r13d, ebp
neg r9d
lea r15, [rbx*8]
add r9d, r13d
mov r12, r8
and r9d, 1
sub r12, r15
neg r15
sub r13d, r9d
add r15, r11
xor r9d, r9d
movsxd r13, r13d
test r14, r14
jbe 0x140419c38
mov qword [rsp + 0x190], rsi
xor esi, esi
mov qword [r12 + r9*8 - 8], rsi
mov qword [r15 + r9*8 - 8], rsi
inc r9
cmp r9, r14
jb 0x140419c1e
mov rsi, qword [rsp + 0x190]
movdqu xmmword [r12 + r14*8 - 8], xmm2
movdqu xmmword [r15 + r14*8 - 8], xmm2
add r14, 2
cmp r14, r13
jb 0x140419c38
cmp r13, rbp
jae 0x140419c72
shl rbx, 3
sub r8, rbx
sub r11, rbx
xor ebx, ebx
mov qword [r8 + r13*8 - 8], rbx
mov qword [r11 + r13*8 - 8], rbx
inc r13
cmp r13, rbp
jb 0x140419c60
xor r14d, r14d
lea rbp, [rsi - 1]
mov r15d, ebp
xor ebx, ebx
test r15d, r15d
je 0x140419ecf
movsxd r13, ebp
mov qword [rsp + 0x450], r13
mov qword [rsp + 0x258], rcx
mov dword [rsp + 0x108], r15d
mov qword [rsp + 0x428], rax
lea r12, [rsp + r13*8 + 0x740]
mov r11, qword [r12 + 8]
lea rbp, [rsp + r13*8 + 0x6c0]
mov r9, qword [r12 + 0x10]
lea r13, [rsp + r13*8 + 0x9c0]
mov r8, qword [rbp]
mov qword [rsp + 0x448], r13
mov qword [rsp + 0x198], r10
mov qword [rsp + 0x160], rdx
mov qword [rsp + 0x158], rdi
mov qword [rsp + 0x190], rsi
mov rsi, qword [rsp + 0x448]
inc r14
mov rcx, qword [rsp + 0x440]
mov rdx, rcx
mov qword [rsp + 0x458], r14
xor r13d, r13d
mov rdi, qword [rsi + rbx*8]
mov rsi, rdi
mov edi, edi
imul rdx, rdi
mov r14, qword [rsp + 0x438]
mov r10, r14
imul r10, rdi
shr rsi, 0x20
mov rax, rdx
imul r14, rsi
imul rcx, rsi
shl rax, 0x20
mov r15, r14
add r10, rax
cmp r10, rax
mov eax, r13d
setb al
shr rdx, 0x20
add rcx, rdx
shr r14, 0x20
shl r15, 0x20
add rax, r14
add r10, r15
add rcx, rax
mov rax, qword [rsp + 0x428]
mov rdx, rax
cmp r10, r15
mov r15d, r13d
setb r15b
xor r14d, r14d
add r9, r10
imul rdx, rdi
cmp r9, r10
mov r10, qword [rsp + 0x430]
mov qword [r12 + rbx*8 + 0x10], r9
mov r9d, r13d
setb r9b
imul rdi, r10
imul r10, rsi
imul rsi, rax
xor eax, eax
add r15, r9
mov r9, rdx
add rcx, r15
add r11, rcx
cmp r11, rcx
setb r14b
shl r9, 0x20
add rdi, r9
add r8, r14
xor r14d, r14d
cmp rdi, r9
mov r9, r10
setb r14b
shl r9, 0x20
add rdi, r9
cmp rdi, r9
setb al
shr rdx, 0x20
lea r9, [rdi + r11]
xor r11d, r11d
cmp r9, rdi
setb r11b
add rsi, rdx
shr r10, 0x20
add r14, r10
add rsi, r14
add rax, r11
add rsi, rax
mov r11, qword [r12 + rbx*8]
add r11, rsi
cmp r11, rsi
nop
mov qword [rbp + rbx*8], r8
setb r13b
mov r8d, r13d
mov r14, qword [rsp + 0x458]
add r8, qword [rbp + rbx*8 - 8]
dec rbx
cmp r14, qword [rsp + 0x450]
jb 0x140419cf8
shl r14, 3
xor ebx, ebx
sub r12, r14
sub rbp, r14
mov r15d, dword [rsp + 0x108]
mov eax, r15d
mov rcx, qword [rsp + 0x258]
mov r10, qword [rsp + 0x198]
mov rdx, qword [rsp + 0x160]
mov rdi, qword [rsp + 0x158]
mov rsi, qword [rsp + 0x190]
mov qword [r12 + 8], r11
mov qword [r12 + 0x10], r9
mov qword [rbp], r8
mov ebp, 1
shr eax, 3
je 0x140419ea8
inc ebx
cmp ebx, eax
jb 0x140419e9b
lea ebp, [rbx*8 + 1]
cmp ebp, r15d
ja 0x140419ecf
dec ebp
lea rbx, [0x140000000]
sub r15d, ebp
dec r15d
movzx eax, byte [rbx + r15 + 0x5a0330]
lea rax, [rbx + rax + 0x419ecf]
jmp rax
add rcx, qword [rsp + 0x1a0]
lea r14, [rsi + 1]
mov r13d, r14d
lea rax, [rsi + 2]
mov r8, qword [rsp + rax*8 + 0x740]
lea rbp, [rsp + rsi*8 + 0x9d0]
mov qword [rbp], r8
xor ebx, ebx
test r13d, r13d
je 0x140419fec
mov r8d, r13d
xor r15d, r15d
mov r9d, 1
xor r12d, r12d
shr r8d, 1
je 0x140419fb8
movsxd r11, r14d
mov qword [rsp + 0x160], rdx
mov qword [rsp + 0x158], rdi
mov qword [rsp + 0x190], rsi
lea r9, [rsp + r11*8 + 0x9c0]
mov qword [rsp + 0x168], r9
lea r9, [rsp + r11*8 + 0x740]
mov rdx, qword [rsp + 0x168]
lea r11, [rsp + r11*8 + 0x6c0]
xor esi, esi
add rbx, qword [r12 + r11]
inc r15
mov rdi, qword [r12 + r9]
add rdi, rbx
cmp rdi, rbx
mov ebx, esi
mov qword [r12 + rdx], rdi
setb bl
add rbx, qword [r12 + r11 - 8]
mov rdi, qword [r12 + r9 - 8]
add rdi, rbx
cmp rdi, rbx
mov ebx, esi
mov qword [r12 + rdx - 8], rdi
setb bl
add r12, 0xfffffffffffffff0
cmp r15, r8
jb 0x140419f5e
mov rdx, qword [rsp + 0x160]
lea r9d, [r15 + r15 + 1]
mov rdi, qword [rsp + 0x158]
mov rsi, qword [rsp + 0x190]
lea r8d, [r9 - 1]
cmp r8d, r13d
jae 0x140419fe8
movsxd r9, r9d
movsxd r8, r14d
sub r8, r9
add rbx, qword [rsp + r8*8 + 0x6c8]
add rbx, qword [rsp + r8*8 + 0x748]
mov qword [rsp + r8*8 + 0x9c8], rbx
mov r8, qword [rbp]
jmp 0x140419fec
mov r8, qword [rbp]
test r8, r8
jne 0x14041a017
xor ebx, ebx
xor eax, eax
add rax, 0xfffffffffffffff8
inc rbx
cmp qword [rax + rbp], 0
je 0x140419ff5
neg rbx
lea rax, [rbx + rsi + 2]
lea rbp, [rsp + rax*8 + 0x9c0]
lea r14, [rax - 1]
mov r8, qword [rsp + 0x9c8]
test r8, r8
jle 0x14041a0e0
add r8, r8
dec rcx
mov qword [rsp + 0x9c8], r8
cmp rax, 2
jb 0x14041a0e0
xor esi, esi
lea r9, [rax - 1]
mov ebx, 1
shr r9, 1
je 0x14041a0b0
movsxd r13, esi
inc esi
shl r13, 4
mov r12, qword [rsp + r13 + 0x9d0]
mov rbx, r12
shr rbx, 0x3f
add r12, r12
or r8, rbx
mov qword [rsp + r13 + 0x9c8], r8
mov r8, qword [rsp + r13 + 0x9d8]
mov r11, r8
shr r11, 0x3f
add r8, r8
or r12, r11
mov qword [rsp + r13 + 0x9d0], r12
cmp rsi, r9
jb 0x14041a050
lea ebx, [rsi + rsi]
movsxd rsi, esi
shl rsi, 4
movsxd rbx, ebx
inc rbx
mov qword [rsp + rsi + 0x9c8], r8
dec rbx
lea r8, [rax - 1]
mov esi, ebx
cmp rsi, r8
jae 0x14041a0e0
mov r8, qword [rsp + rbx*8 + 0x9d0]
mov rsi, r8
shr rsi, 0x3f
add r8, r8
or qword [rsp + rbx*8 + 0x9c8], rsi
mov qword [rsp + rbx*8 + 0x9d0], r8
cmp qword [rbp], 0
mov rsi, rax
cmove rsi, r14
cmp rsi, qword [rsp + 0x288]
jb 0x14041a20a
mov rsi, qword [rsp + 0x288]
mov rax, rsi
mov rbx, qword [rsp + rax*8 + 0x9c8]
shr rbx, 0x3f
mov rbp, qword [rsp + rax*8 + 0x9c0]
add rbp, rbx
cmp rbp, rbx
jae 0x14041a199
mov rsi, qword [rsp + 0x280]
mov qword [rsp + rax*8 + 0x9c0], rbp
lea rbp, [rsp + rax*8 + 0x9b8]
mov qword [rsp + 0x9c0], 0
cmp qword [rbp], 0xffffffffffffffff
jne 0x14041a16e
xor ebx, ebx
xor eax, eax
add rax, 0xfffffffffffffff8
inc rbx
cmp qword [rax + rbp], 0xffffffffffffffff
je 0x14041a150
neg rbx
mov rax, qword [rsp + 0x288]
lea rsi, [rbx + rax - 1]
test rsi, rsi
jne 0x14041a18f
movabs rax, 0x8000000000000000
inc rcx
mov qword [rsp + 0x9c8], rax
mov esi, 1
jmp 0x14041a20a
inc qword [rsp + rsi*8 + 0x9c0]
jmp 0x14041a20a
mov qword [rsp + rax*8 + 0x9c0], rbp
test rbp, rbp
jne 0x14041a20a
xor esi, esi
mov rbx, qword [rsp + 0x278]
xor eax, eax
add rax, 0xfffffffffffffff8
inc rsi
cmp qword [rax + rbx], 0
je 0x14041a1b2
neg rsi
mov qword [rsp + 0x278], rbx
add rsi, qword [rsp + 0x288]
jmp 0x14041a20a
lea rbx, [0x140000000]
mov esi, 2
mov rax, qword [rbx + rdx + 0x5a0638]
mov rbp, qword [rbx + rdx + 0x5a0630]
movsx rcx, word [rbx + r10 + 0x5a091e]
mov qword [rsp + 0x9c8], rax
mov qword [rsp + 0x9d0], rbp
mov rbx, qword [rsp + 0x268]
mov ebp, dword [rsp + 0x270]
inc rbx
add r10, 0xfffffffffffffffe
sar ebp, 1
add rdx, 0xfffffffffffffff0
cmp rbx, 4
jae 0x14041a24c
mov eax, ebp
neg eax
movsxd rax, eax
cmp rdi, rax
jg 0x14041a219
mov qword [rsp + 0x268], rbx
mov dword [rsp + 0x270], ebp
jmp 0x140419a07
mov qword [rsp + 0x258], rcx
mov rcx, qword [rsp + 0x250]
mov rbp, qword [rsp + 0x2a0]
mov rbx, qword [rsp + 0x260]
mov r8, qword [rsp + 0x308]
mov r9, qword [rsp + 0x310]
jmp 0x14041ac5c
cmp qword [rsp + 0x2f8], 0x216
jle 0x14041ac5c
xor r11d, r11d
mov r12d, 0x1000
xor edx, edx
mov r10d, 6
xor r13d, r13d
cmp qword [rsp + 0x2f8], 0x1000
jge 0x14041a2d6
mov qword [rsp + 0x260], rbx
lea rax, [0x140000000]
mov qword [rsp + 0x310], r9
mov rbx, qword [rsp + 0x258]
jmp 0x14041a32a
mov rax, qword [rsp + 0x2f8]
mov qword [rsp + 0x260], rbx
mov qword [rsp + 0x310], r9
lea rdi, [rax - 0x1000]
lea rax, [0x140000000]
mov esi, 2
mov r9, qword [rax + r13 + 0x5a07b8]
mov r14, qword [rax + r13 + 0x5a07b0]
movsx rbx, word [rax + r10 + 0x5a093a]
mov qword [rsp + 0x9c8], r9
mov qword [rsp + 0x9d0], r14
mov r15, r8
shr r15, 6
mov qword [rsp + 0x250], rcx
mov qword [rsp + 0x1b8], r15
mov qword [rsp + 0x258], rbx
mov qword [rsp + 0x2a0], rbp
lea r14, [r15 - 1]
mov qword [rsp + 0x1b0], r14
lea r9, [rsp + r15*8 + 0x9c0]
mov qword [rsp + 0x1a8], r9
mov qword [rsp + 0x308], r8
inc r11
add r10, 0xfffffffffffffffe
sar r12, 1
add rdx, 0xfffffffffffffffe
add r13, 0xfffffffffffffff0
cmp r11, 4
jae 0x14041ac34
cmp rdi, r12
jl 0x14041a375
sub rdi, r12
test rsi, rsi
je 0x14041cec6
lea rbp, [0x140000000]
mov rcx, qword [rsp + rsi*8 + 0x9c0]
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x60], r10
movsx rax, word [rbp + rdx + 0x5a0940]
mov qword [rsp + 0x1a0], rax
mov rax, qword [rbp + r13 + 0x5a07b8]
mov rbp, qword [rbp + r13 + 0x5a07b0]
mov r10, rbp
mov edx, ecx
shr r10, 0x20
mov r15, rdx
imul r15, r10
mov r14d, ebp
mov r9, rdx
imul r9, r14
mov qword [rsp + 0x68], r13
mov r13, rcx
mov rbx, r15
lea rcx, [rsi + 1]
shr r13, 0x20
shl rbx, 0x20
mov qword [rsp + 0x360], r14
add r9, rbx
imul r14, r13
cmp r9, rbx
mov rbx, r13
movsxd r8, ecx
mov qword [rsp + 0x78], r11
mov r11d, 0
mov qword [rsp + 0x368], r10
setb r11b
imul rbx, r10
mov r10, r14
shr r15, 0x20
shl r10, 0x20
add rbx, r15
mov qword [rsp + 0x8d0], rbp
lea rbp, [rsp + r8*8 + 0x540]
add r9, r10
mov qword [rsp + 0x8c8], rax
add rbx, r11
mov qword [rbp + 8], r9
cmp r9, r10
mov r9d, eax
mov r11, rdx
mov qword [rsp + 0x358], r9
mov r10d, 0
mov qword [rsp + 0x80], r8
lea r8, [rsp + r8*8 + 0x4c0]
setb r10b
xor r15d, r15d
shr rax, 0x20
imul r11, rax
imul rdx, r9
imul r9, r13
imul r13, rax
shr r14, 0x20
add rbx, r14
mov r14, r11
shr r11, 0x20
shl r14, 0x20
add r13, r11
mov r11, r9
add rdx, r14
shl r11, 0x20
add rbx, r10
xor r10d, r10d
cmp rdx, r14
setb r10b
xor r14d, r14d
add rdx, r11
cmp rdx, r11
setb r14b
add rbx, rdx
cmp rbx, rdx
mov edx, 0
setb dl
shr r9, 0x20
add r10, r9
add r13, r10
add r14, rdx
add r13, r14
mov qword [rbp - 8], r13
add ecx, 0xfffffffe
mov qword [r8], r15
mov qword [r8 - 8], r15
mov qword [rbp], rbx
mov r10, qword [rsp + 0x60]
mov r13, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
mov r11, qword [rsp + 0x78]
js 0x14041a67f
mov rcx, qword [rsp + 0x80]
lea rbx, [rcx - 1]
movsxd r14, ebx
neg r14
dec r14
neg r14
dec r14
cmp r14, 2
jl 0x14041d243
mov r9, rcx
mov ecx, 1
sub r9, rbx
lea r9, [rsp + r9*8 + 0x538]
and r9, 0xf
cmovne r9, rcx
lea r15, [r9 + 2]
cmp r14, r15
jl 0x14041d243
mov ecx, r9d
mov r15d, r14d
neg ecx
add ecx, r15d
and ecx, 1
sub r15d, ecx
lea rcx, [rbx*8]
movsxd r15, r15d
mov qword [rsp + 0x88], r15
mov r15, r8
sub r15, rcx
neg rcx
add rcx, rbp
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], r15
test r9, r9
jbe 0x14041a610
mov qword [rsp + 0x158], rdi
xor r15d, r15d
mov qword [rsp + 0x190], rsi
mov rsi, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x98]
mov qword [rdi + rsi*8 - 8], r15
mov qword [rcx + rsi*8 - 8], r15
inc rsi
cmp rsi, r9
jb 0x14041a5ee
mov rdi, qword [rsp + 0x158]
mov rsi, qword [rsp + 0x190]
mov qword [rsp + 0x190], rsi
mov rsi, qword [rsp + 0x88]
mov r15, qword [rsp + 0x98]
movdqu xmmword [r15 + r9*8 - 8], xmm2
movdqu xmmword [rcx + r9*8 - 8], xmm2
add r9, 2
cmp r9, rsi
jb 0x14041a628
mov qword [rsp + 0x88], rsi
mov rsi, qword [rsp + 0x190]
cmp r14, qword [rsp + 0x88]
jbe 0x14041a67f
shl rbx, 3
mov rcx, qword [rsp + 0x88]
sub r8, rbx
sub rbp, rbx
xor ebx, ebx
mov qword [r8 + rcx*8 - 8], rbx
mov qword [rbp + rcx*8 - 8], rbx
inc rcx
cmp rcx, r14
jb 0x14041a66d
xor r9d, r9d
lea rcx, [rsi - 1]
mov r14d, ecx
test r14d, r14d
je 0x14041a8e4
movsxd r15, ecx
mov qword [rsp + 0x378], r15
mov qword [rsp + 0x60], r10
mov qword [rsp + 0x78], r11
mov dword [rsp + 0x20], r14d
lea r8, [rsp + r15*8 + 0x540]
mov rcx, qword [r8 + 8]
lea rbx, [rsp + r15*8 + 0x4c0]
mov qword [rsp + 0x28], rcx
lea r15, [rsp + r15*8 + 0x9c0]
mov rbp, qword [r8 + 0x10]
mov rcx, qword [rbx]
mov qword [rsp + 0x370], r15
mov qword [rsp + 0x350], rax
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x158], rdi
mov qword [rsp + 0x190], rsi
mov r11, qword [rsp + 0x28]
mov r10, r9
mov rdi, qword [rsp + 0x370]
inc r9
mov qword [rsp + 0x380], r9
xor r14d, r14d
mov rsi, qword [rsp + 0x368]
mov rdx, rsi
mov r9, qword [rdi + r10*8]
mov rdi, r9
mov r9d, r9d
imul rdx, r9
mov r13, qword [rsp + 0x360]
mov r12, r13
imul r12, r9
shr rdi, 0x20
mov rax, rdx
imul r13, rdi
imul rsi, rdi
shl rax, 0x20
mov r15, r13
add r12, rax
cmp r12, rax
mov eax, r14d
setb al
shr rdx, 0x20
add rsi, rdx
shr r13, 0x20
shl r15, 0x20
add rax, r13
add r12, r15
add rsi, rax
mov rax, qword [rsp + 0x350]
mov rdx, rax
cmp r12, r15
mov r15d, r14d
setb r15b
xor r13d, r13d
add rbp, r12
imul rdx, r9
cmp rbp, r12
mov r12, qword [rsp + 0x358]
mov qword [r8 + r10*8 + 0x10], rbp
mov ebp, r14d
setb bpl
imul r9, r12
imul r12, rdi
imul rdi, rax
xor eax, eax
add r15, rbp
mov rbp, rdx
add rsi, r15
add r11, rsi
cmp r11, rsi
setb r13b
shl rbp, 0x20
add r9, rbp
add rcx, r13
xor r13d, r13d
cmp r9, rbp
mov rbp, r12
setb r13b
shl rbp, 0x20
add r9, rbp
cmp r9, rbp
setb al
shr rdx, 0x20
lea rbp, [r9 + r11]
xor r11d, r11d
cmp rbp, r9
setb r11b
add rdi, rdx
shr r12, 0x20
add r13, r12
add rdi, r13
add rax, r11
add rdi, rax
mov r11, qword [r8 + r10*8]
add r11, rdi
cmp r11, rdi
mov qword [rbx + r10*8], rcx
setb r14b
mov ecx, r14d
mov r9, qword [rsp + 0x380]
add rcx, qword [rbx + r10*8 - 8]
dec r10
cmp r9, qword [rsp + 0x378]
jb 0x14041a70b
shl r9, 3
sub r8, r9
sub rbx, r9
mov qword [rsp + 0x28], r11
mov rax, r11
mov r14d, dword [rsp + 0x20]
mov qword [r8 + 8], rax
mov eax, r14d
mov qword [rbx], rcx
xor ecx, ecx
mov r10, qword [rsp + 0x60]
mov ebx, 1
mov r13, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
mov r11, qword [rsp + 0x78]
mov r12, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x158]
mov rsi, qword [rsp + 0x190]
mov qword [r8 + 0x10], rbp
shr eax, 3
je 0x14041a8bd
inc ecx
cmp ecx, eax
jb 0x14041a8b0
lea ebx, [rcx*8 + 1]
cmp ebx, r14d
ja 0x14041a8e4
dec ebx
lea rcx, [0x140000000]
sub r14d, ebx
dec r14d
movzx eax, byte [rcx + r14 + 0x5a0338]
lea rax, [rcx + rax + 0x41a8e4]
jmp rax
mov rax, qword [rsp + 0x258]
lea r14, [rsi + 1]
add rax, qword [rsp + 0x1a0]
mov r9d, r14d
mov qword [rsp + 0x258], rax
lea rax, [rsi + 2]
mov rbp, qword [rsp + rax*8 + 0x540]
lea rbx, [rsp + rsi*8 + 0x9d0]
mov qword [rbx], rbp
xor ecx, ecx
test r9d, r9d
je 0x14041aa25
mov r15d, r9d
xor ebp, ebp
mov r8d, 1
shr r15d, 1
je 0x14041a9f3
movsxd r8, r14d
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x78], r11
lea r15, [rsp + r8*8 + 0x9c0]
mov qword [rsp + 0x38], r15
lea r15, [rsp + r8*8 + 0x540]
lea r8, [rsp + r8*8 + 0x4c0]
mov qword [rsp + 0x158], rdi
mov qword [rsp + 0x190], rsi
mov qword [rsp + 0x30], r12
xor r12d, r12d
mov r11, r15
mov rdi, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdx, rbp
add rcx, qword [rdx + r8]
inc rbp
mov r15, qword [rdx + r11]
add r15, rcx
cmp r15, rcx
mov ecx, r12d
mov qword [rdx + rdi], r15
setb cl
add rcx, qword [rdx + r8 - 8]
mov r15, qword [rdx + r11 - 8]
add r15, rcx
cmp r15, rcx
mov ecx, r12d
mov qword [rdx + rdi - 8], r15
setb cl
add rdx, 0xfffffffffffffff0
cmp rbp, rsi
jb 0x14041a990
mov rdx, qword [rsp + 0x70]
lea r8d, [rbp + rbp + 1]
mov r11, qword [rsp + 0x78]
mov r12, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x158]
mov rsi, qword [rsp + 0x190]
lea ebp, [r8 - 1]
cmp ebp, r9d
jae 0x14041aa22
movsxd r8, r8d
movsxd rbp, r14d
sub rbp, r8
add rcx, qword [rsp + rbp*8 + 0x4c8]
add rcx, qword [rsp + rbp*8 + 0x548]
mov qword [rsp + rbp*8 + 0x9c8], rcx
mov rbp, qword [rbx]
jmp 0x14041aa25
mov rbp, qword [rbx]
test rbp, rbp
jne 0x14041aa50
xor ecx, ecx
xor eax, eax
add rax, 0xfffffffffffffff8
inc rcx
cmp qword [rax + rbx], 0
je 0x14041aa2e
neg rcx
lea rax, [rcx + rsi + 2]
lea rbx, [rsp + rax*8 + 0x9c0]
lea r14, [rax - 1]
mov rsi, qword [rsp + 0x9c8]
test rsi, rsi
jle 0x14041ab22
dec qword [rsp + 0x258]
add rsi, rsi
mov qword [rsp + 0x9c8], rsi
cmp rax, 2
jb 0x14041ab22
xor r8d, r8d
lea r9, [rax - 1]
mov ecx, 1
shr r9, 1
je 0x14041aaf2
nop
movsxd rcx, r8d
inc r8d
shl rcx, 4
mov rbp, qword [rsp + rcx + 0x9d0]
mov r15, rbp
shr r15, 0x3f
add rbp, rbp
or rsi, r15
mov qword [rsp + rcx + 0x9c8], rsi
mov rsi, qword [rsp + rcx + 0x9d8]
mov r15, rsi
shr r15, 0x3f
add rsi, rsi
or rbp, r15
mov qword [rsp + rcx + 0x9d0], rbp
cmp r8, r9
jb 0x14041aa90
lea ecx, [r8 + r8]
movsxd r8, r8d
shl r8, 4
movsxd rcx, ecx
inc rcx
mov qword [rsp + r8 + 0x9c8], rsi
dec rcx
lea rsi, [rax - 1]
mov ebp, ecx
cmp rbp, rsi
jae 0x14041ab22
mov rsi, qword [rsp + rcx*8 + 0x9d0]
mov rbp, rsi
shr rbp, 0x3f
add rsi, rsi
or qword [rsp + rcx*8 + 0x9c8], rbp
mov qword [rsp + rcx*8 + 0x9d0], rsi
cmp qword [rbx], 0
mov rsi, rax
cmove rsi, r14
cmp rsi, qword [rsp + 0x1b8]
jb 0x14041ac18
mov rsi, qword [rsp + 0x1b8]
mov rax, rsi
mov rcx, qword [rsp + rax*8 + 0x9c8]
shr rcx, 0x3f
mov rbx, qword [rsp + rax*8 + 0x9c0]
add rbx, rcx
cmp rbx, rcx
jae 0x14041abde
mov rsi, qword [rsp + 0x1b0]
mov qword [rsp + rax*8 + 0x9c0], rbx
lea rbx, [rsp + rax*8 + 0x9b8]
mov qword [rsp + 0x9c0], 0
cmp qword [rbx], 0xffffffffffffffff
jne 0x14041abae
xor ecx, ecx
xor eax, eax
add rax, 0xfffffffffffffff8
inc rcx
cmp qword [rax + rbx], 0xffffffffffffffff
je 0x14041ab90
neg rcx
mov rax, qword [rsp + 0x1b8]
lea rsi, [rcx + rax - 1]
test rsi, rsi
je 0x14041abbd
inc qword [rsp + rsi*8 + 0x9c0]
jmp 0x14041ac18
movabs rax, 0x8000000000000000
mov esi, 1
inc qword [rsp + 0x258]
mov qword [rsp + 0x9c8], rax
jmp 0x14041ac18
mov qword [rsp + rax*8 + 0x9c0], rbx
test rbx, rbx
jne 0x14041ac18
xor esi, esi
mov rcx, qword [rsp + 0x1a8]
xor eax, eax
add rax, 0xfffffffffffffff8
inc rsi
cmp qword [rax + rcx], 0
je 0x14041abf7
neg rsi
mov qword [rsp + 0x1a8], rcx
add rsi, qword [rsp + 0x1b8]
inc r11
add r10, 0xfffffffffffffffe
sar r12, 1
add rdx, 0xfffffffffffffffe
add r13, 0xfffffffffffffff0
cmp r11, 4
jb 0x14041a391
mov rcx, qword [rsp + 0x250]
mov rbp, qword [rsp + 0x2a0]
mov rbx, qword [rsp + 0x260]
mov r8, qword [rsp + 0x308]
mov r9, qword [rsp + 0x310]
lea rax, [rdi + 0x1b]
cmp rax, 0x1a
ja 0x14041acc6
lea r10, [0x140000000]
mov edx, 2
movsx rax, word [r10 + rdi*2 + 0x5a091e]
shl rdi, 4
mov rcx, qword [r10 + rdi + 0x5a05f8]
mov rdi, qword [r10 + rdi + 0x5a05f0]
mov qword [rsp + 0xbc8], rcx
mov qword [rsp + 0xbd0], rdi
test rdi, rdi
mov edi, 0x10
jne 0x14041d153
add rdi, 0xfffffffffffffff8
dec rdx
mov r11, qword [rsp + rdi + 0xbc0]
test r11, r11
je 0x14041acad
jmp 0x14041c11b
mov eax, 0x80
movdqu xmmword [rsp + rax + 0xa30], xmm2
movdqu xmmword [rsp + rax + 0xa20], xmm2
movdqu xmmword [rsp + rax + 0xa10], xmm2
movdqu xmmword [rsp + rax + 0xa00], xmm2
sub rax, 0x40
jne 0x14041accb
test rdi, rdi
jl 0x14041d1c1
cmp rdi, 0x37
jl 0x14041ad7e
mov rdx, rdi
lea rax, [0x140000000]
shr rdx, 3
movsxd r13, edx
movzx r11d, word [rax + r13*2 + 0x5a0862]
lea r12, [r13 + 1]
shr r11d, 5
cmp r11, rdi
cmovle r13, r12
movzx r15d, word [rax + r13*2 + 0x5a0860]
mov r14d, r15d
and r14d, 0x1f
movsx rdx, word [rax + r14*2 + 0x5a0942]
shl r14, 4
shr r15d, 5
sub rdi, r15
movsxd rdi, edi
mov r11, qword [rax + r14 + 0x5a07c8]
mov rax, qword [rax + r14 + 0x5a07c0]
mov qword [rsp + 0x1a0], rdx
mov qword [rsp + 0x8c8], r11
mov qword [rsp + 0x8d0], rax
jmp 0x14041ad83
movsxd rdi, edi
xor ecx, ecx
cmp rdi, 0x37
je 0x14041d18c
mov r12, rdi
add r12, 0xffffffffffffffe5
jle 0x14041addc
lea rdx, [0x140000000]
mov edi, 0x1b
mov r10d, 1
movsx rax, word [rdx + r12*2 + 0x5a0cbe]
mov r11, qword [rdx + r12*8 + 0x5a0ad8]
mov qword [rsp + 0x118], rax
mov qword [rsp + 0xa48], r11
test r11, r11
jne 0x14041addc
dec r10
cmp qword [rsp + r10*8 + 0xa40], 0
je 0x14041adce
lea r11, [0x140000000]
mov edx, 1
movsx rax, word [r11 + rdi*2 + 0x5a0cbe]
mov rdi, qword [r11 + rdi*8 + 0x5a0ad8]
mov qword [rsp + 0xbc8], rdi
test rdi, rdi
mov edi, 8
jne 0x14041d17f
add rdi, 0xfffffffffffffff8
dec rdx
mov r11, qword [rsp + rdi + 0xbc0]
test r11, r11
je 0x14041ae0f
test r12, r12
jle 0x14041b7d5
mov r14, qword [rsp + r10*8 + 0xa40]
lea r12, [r10 + rdx - 1]
mov qword [rsp + 0x2a8], rax
mov rax, r11
mov edi, r11d
mov r11, r14
shr r11, 0x20
mov r13, rdi
imul r13, r11
mov r15d, r14d
mov r14, r13
shr rax, 0x20
mov qword [rsp + 0x130], rdi
imul rdi, r15
imul r15, rax
imul r11, rax
shl r14, 0x20
shr r13, 0x20
add rdi, r14
mov qword [rsp + 0x120], rax
mov rax, r15
add r11, r13
xor r13d, r13d
cmp rdi, r14
mov r14d, 0
setb r13b
shl rax, 0x20
add rdi, rax
cmp rdi, rax
mov dword [rsp + 0x148], r12d
movsxd r12, r12d
setb r14b
shr r15, 0x20
add r11, r13
add r11, r15
mov qword [rsp + 0x140], r12
lea r15, [r10 - 1]
add r11, r14
lea r12, [rsp + r12*8 + 0xcc0]
movsxd r14, r15d
xor r13d, r13d
mov qword [r12 + 8], rdi
mov qword [r12], r11
mov r15d, dword [rsp + 0x148]
mov rdi, qword [rsp + 0x140]
mov rax, qword [rsp + 0x2a8]
test r14, r14
je 0x14041b07d
mov qword [rsp + 0x140], rdi
lea r15, [rsp + rdi*8 + 0x640]
mov qword [rsp + 0xf8], r15
lea r15, [rsp + r14*8 + 0xa40]
mov qword [rsp + 0x190], rsi
mov qword [rsp + 0x2a0], rbp
mov qword [rsp + 0x308], r8
mov qword [rsp + 0x310], r9
mov qword [rsp + 0x2a8], rax
mov qword [rsp + 0x2b0], rdx
mov qword [rsp + 0x250], rcx
mov qword [rsp + 0x100], r10
mov qword [rsp + 0x260], rbx
xor ebx, ebx
mov rdi, r15
mov r8, qword [rsp + 0xf8]
mov rsi, r13
mov r9, qword [rsp + 0x130]
mov rbp, qword [rsp + 0x120]
mov r15, qword [rdi + rsi*8]
mov r10, r15
shr r10, 0x20
mov rax, r9
imul rax, r10
imul r10, rbp
mov ecx, r15d
mov rdx, r9
imul rdx, rcx
imul rcx, rbp
mov r15, rax
inc r13
shl r15, 0x20
shr rax, 0x20
add rdx, r15
add r10, rax
cmp rdx, r15
mov r15, rcx
mov eax, ebx
setb al
shl r15, 0x20
add rdx, r15
cmp rdx, r15
mov r15d, ebx
setb r15b
add r11, rdx
cmp r11, rdx
mov edx, ebx
mov qword [r12 + rsi*8], r11
setb dl
shr rcx, 0x20
mov r11d, r15d
add rax, rcx
add r10, rax
add r11, rdx
mov qword [r8 + rsi*8], 0
add r11, r10
dec rsi
cmp r13, r14
jb 0x14041af8e
mov rdi, qword [rsp + 0x140]
mov r15d, edi
sub r15d, r13d
shl r13, 3
neg r13
mov rax, qword [rsp + 0x2a8]
mov rdx, qword [rsp + 0x2b0]
mov rcx, qword [rsp + 0x250]
mov r10, qword [rsp + 0x100]
mov rsi, qword [rsp + 0x190]
mov rbp, qword [rsp + 0x2a0]
mov rbx, qword [rsp + 0x260]
mov r8, qword [rsp + 0x308]
mov r9, qword [rsp + 0x310]
mov qword [r13 + r12], r11
movsxd rdi, r15d
mov r12, qword [rsp + 0x110]
lea r13, [rdi - 1]
movsxd r11, r13d
inc r11
dec r15d
mov qword [rsp + rdi*8 + 0x640], 0
cmovns r12, r11
mov qword [rsp + 0x110], r12
js 0x14041b1ee
movsxd r12, dword [rsp + 0x110]
neg r12
dec r12
neg r12
dec r12
cmp r12, 2
jl 0x14041d177
sub r13, qword [rsp + 0x110]
mov r11d, 1
lea r15, [rsp + r13*8 + 0xcc8]
and r15, 0xf
cmovne r15, r11
lea r13, [r15 + 2]
cmp r12, r13
jl 0x14041d177
mov r14d, r15d
mov r11d, r12d
neg r14d
mov r13, qword [rsp + 0x110]
add r14d, r11d
and r14d, 1
sub r11d, r14d
lea r14, [rsp + rdi*8 + 0x638]
movsxd r11, r11d
shl r13, 3
sub r14, r13
mov qword [rsp + 0x138], r14
lea r14, [rsp + rdi*8 + 0xcb8]
sub r14, r13
mov qword [rsp + 0x128], 0
test r15, r15
jbe 0x14041b18f
mov qword [rsp + 0x308], r8
xor r13d, r13d
mov qword [rsp + 0x310], r9
mov r8, qword [rsp + 0x128]
mov r9, qword [rsp + 0x138]
mov qword [r9 + r8*8 + 8], r13
mov qword [r14 + r8*8 + 8], r13
inc r8
cmp r8, r15
jb 0x14041b16d
mov r8, qword [rsp + 0x308]
mov r9, qword [rsp + 0x310]
mov r13, qword [rsp + 0x138]
movdqu xmmword [r13 + r15*8 + 8], xmm2
movdqu xmmword [r14 + r15*8 + 8], xmm2
add r15, 2
cmp r15, r11
jb 0x14041b197
cmp r11, r12
jae 0x14041b1ee
mov r13, qword [rsp + 0x110]
lea r14, [r13*8]
lea r13, [rsp + rdi*8 + 0x638]
sub r13, r14
lea rdi, [rsp + rdi*8 + 0xcb8]
sub rdi, r14
xor r14d, r14d
mov qword [r13 + r11*8 + 8], r14
mov qword [rdi + r11*8 + 8], r14
inc r11
cmp r11, r12
jb 0x14041b1dc
xor r11d, r11d
lea r14, [rdx - 1]
movsxd r14, r14d
xor r12d, r12d
test r14, r14
je 0x14041b481
movsxd r13, r10d
lea r15, [rsp + r14*8 + 0xbc0]
mov qword [rsp + 0x3f8], r15
lea r15, [rsp + r14*8 + 0x640]
mov qword [rsp + 0x3f0], r15
lea r15, [rsp + r14*8 + 0xcc0]
mov qword [rsp + 0x3e8], r15
mov qword [rsp + 0x2b0], rdx
lea r15, [r13*8]
mov qword [rsp + 0x3e0], r15
lea r15, [rsp + r13*8 + 0xa40]
mov qword [rsp + 0x3d8], r15
lea rdi, [r14 + r13]
mov qword [rsp + 0x250], rcx
mov qword [rsp + 0x420], r14
mov qword [rsp + 0x2a8], rax
mov qword [rsp + 0x100], r10
mov qword [rsp + 0x190], rsi
mov qword [rsp + 0x2a0], rbp
mov qword [rsp + 0x260], rbx
mov qword [rsp + 0x308], r8
mov qword [rsp + 0x310], r9
mov r15, qword [rsp + 0x3e8]
mov rcx, qword [rsp + 0x3f0]
mov rdx, qword [rsp + 0x3f8]
xor ebx, ebx
xor eax, eax
test r13, r13
je 0x14041b422
mov r14, qword [rsp + 0x3e0]
lea r8, [r11*8]
sub r14, r8
neg r8
add r8, r15
mov rbp, qword [rdx + r12*8]
mov rsi, rbp
mov r10, qword [rsp + rdi*8 + 0xcc0]
shr rsi, 0x20
lea r9, [rcx + r14]
mov ebp, ebp
lea r8, [r8 + r13*8]
mov qword [rsp + 0x410], rdi
add r14, r15
mov qword [rsp + 0x408], r12
mov qword [rsp + 0x400], r11
mov rcx, qword [rsp + 0x3d8]
mov r11, qword [rcx + rax*8]
mov rdx, r11
dec rax
mov r15, rbp
mov qword [rsp + 0x4b0], rax
mov rax, rbp
shr rdx, 0x20
imul rax, rdx
imul rdx, rsi
mov edi, r11d
mov r12, rax
imul r15, rdi
imul rdi, rsi
shl r12, 0x20
mov r11, rdi
shr rax, 0x20
add r15, r12
shl r11, 0x20
add rdx, rax
xor eax, eax
cmp r15, r12
mov r12d, eax
setb r12b
add r15, r11
cmp r15, r11
mov r11d, eax
setb r11b
add r10, r15
cmp r10, r15
mov r15d, eax
setb r15b
shr rdi, 0x20
add r12, rdi
add rdx, r12
add r11, r15
add rdx, r11
lea rdi, [rbx*8]
mov r11, r8
inc rbx
sub r11, rdi
mov qword [r11], r10
mov r10, r14
sub r10, rdi
neg rdi
add rdi, r9
mov r10, qword [r10 - 8]
add r10, rdx
cmp r10, rdx
setb al
add qword [rdi - 0x10], rax
mov rax, qword [rsp + 0x4b0]
cmp rbx, r13
jb 0x14041b329
shl rbx, 3
sub r8, rbx
mov r15, qword [rsp + 0x3e8]
mov rcx, qword [rsp + 0x3f0]
mov rdx, qword [rsp + 0x3f8]
mov rdi, qword [rsp + 0x410]
mov r12, qword [rsp + 0x408]
mov r11, qword [rsp + 0x400]
mov qword [r8], r10
inc r11
dec rdi
dec r12
cmp r11, qword [rsp + 0x420]
jb 0x14041b2c3
mov rax, qword [rsp + 0x2a8]
mov rdx, qword [rsp + 0x2b0]
mov rcx, qword [rsp + 0x250]
mov r10, qword [rsp + 0x100]
mov rsi, qword [rsp + 0x190]
mov rbp, qword [rsp + 0x2a0]
mov rbx, qword [rsp + 0x260]
mov r8, qword [rsp + 0x308]
mov r9, qword [rsp + 0x310]
add rax, qword [rsp + 0x118]
lea r11, [rdx + r10]
xor r13d, r13d
lea rdx, [rdx + r10 - 1]
mov r14d, edx
lea rdi, [rsp + r11*8 + 0xbc0]
mov r10, qword [rdi + 0x100]
mov qword [rdi], r10
test r14d, r14d
je 0x14041b5e3
mov r15d, r14d
xor r12d, r12d
mov r10d, 1
shr r15d, 1
je 0x14041b5b1
movsxd r10, edx
mov qword [rsp + 0xf0], r15
mov qword [rsp + 0x190], rsi
mov qword [rsp + 0x2a0], rbp
lea r15, [rsp + r10*8 + 0xbc0]
mov qword [rsp + 0xe8], r15
lea r15, [rsp + r10*8 + 0xcc0]
lea r10, [rsp + r10*8 + 0x640]
mov qword [rsp + 0x260], rbx
mov qword [rsp + 0x308], r8
mov qword [rsp + 0x310], r9
xor r9d, r9d
mov rbx, r15
mov r8, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0xf0]
mov rbp, r12
nop dword [rax + rax]
nop dword [rax]
add r13, qword [rbp + r10]
inc r12
mov r15, qword [rbp + rbx]
add r15, r13
cmp r15, r13
mov r13d, r9d
mov qword [rbp + r8], r15
setb r13b
add r13, qword [rbp + r10 - 8]
mov r15, qword [rbp + rbx - 8]
add r15, r13
cmp r15, r13
mov r13d, r9d
mov qword [rbp + r8 - 8], r15
setb r13b
add rbp, 0xfffffffffffffff0
cmp r12, rsi
jb 0x14041b540
mov rsi, qword [rsp + 0x190]
lea r10d, [r12 + r12 + 1]
mov rbp, qword [rsp + 0x2a0]
mov rbx, qword [rsp + 0x260]
mov r8, qword [rsp + 0x308]
mov r9, qword [rsp + 0x310]
lea r12d, [r10 - 1]
cmp r12d, r14d
jae 0x14041b5e0
movsxd r10, r10d
movsxd r12, edx
sub r12, r10
add r13, qword [rsp + r12*8 + 0x648]
add r13, qword [rsp + r12*8 + 0xcc8]
mov qword [rsp + r12*8 + 0xbc8], r13
mov r10, qword [rdi]
jmp 0x14041b5e3
mov r10, qword [rdi]
test r10, r10
jne 0x14041b5fd
dec r11
lea rdi, [rsp + r11*8 + 0xbc0]
cmp qword [rdi], 0
je 0x14041b5e8
lea rdx, [r11 - 1]
mov r10, qword [rsp + 0xbc8]
test r10, r10
jle 0x14041b6eb
add r10, r10
dec rax
mov qword [rsp + 0xbc8], r10
cmp r11, 2
jb 0x14041b6eb
xor r12d, r12d
lea r13, [r11 - 1]
mov r14d, 1
shr r13, 1
je 0x14041b6ba
mov qword [rsp + 0x310], r9
nop dword [rax + rax]
nop dword [rax]
movsxd r9, r12d
inc r12d
shl r9, 4
mov r14, qword [rsp + r9 + 0xbd0]
mov r15, r14
shr r15, 0x3f
add r14, r14
or r10, r15
mov qword [rsp + r9 + 0xbc8], r10
mov r10, qword [rsp + r9 + 0xbd8]
mov r15, r10
shr r15, 0x3f
add r10, r10
or r14, r15
mov qword [rsp + r9 + 0xbd0], r14
cmp r12, r13
jb 0x14041b650
mov r9, qword [rsp + 0x310]
lea r14d, [r12 + r12]
movsxd r12, r12d
shl r12, 4
movsxd r14, r14d
inc r14
mov qword [rsp + r12 + 0xbc8], r10
dec r14
lea r12, [r11 - 1]
mov r10d, r14d
cmp r10, r12
jae 0x14041b6eb
mov r12, qword [rsp + r14*8 + 0xbd0]
mov r10, r12
shr r10, 0x3f
add r12, r12
or qword [rsp + r14*8 + 0xbc8], r10
mov qword [rsp + r14*8 + 0xbd0], r12
cmp qword [rdi], 0
mov r12, r8
cmovne rdx, r11
shr r12, 6
cmp rdx, r12
jb 0x14041b7c5
mov rdx, r12
lea rdi, [r12*8]
mov r10, qword [rsp + r12*8 + 0xbc8]
shr r10, 0x3f
mov r11, qword [rsp + rdi + 0xbc0]
add r11, r10
cmp r11, r10
jae 0x14041b7a2
mov qword [rsp + rdi + 0xbc0], r11
lea r10, [rsp + r12*8 + 0xbb8]
mov qword [rsp + 0xbc0], 0
lea rdx, [r12 - 1]
mov r11, qword [r10]
lea rdi, [rdx*8]
cmp r11, 0xffffffffffffffff
jne 0x14041b774
add rdi, 0xfffffffffffffff8
dec rdx
lea r10, [rsp + rdi + 0xbc0]
mov r11, qword [r10]
cmp r11, 0xffffffffffffffff
je 0x14041b75c
test rdx, rdx
je 0x14041b781
inc r11
mov qword [r10], r11
jmp 0x14041b7d5
movabs r11, 0x8000000000000000
mov edx, 1
mov qword [rsp + 0xbc8], r11
inc rax
mov edi, 8
jmp 0x14041b7d5
mov qword [rsp + rdi + 0xbc0], r11
test r11, r11
jne 0x14041b7d5
add rdi, 0xfffffffffffffff8
dec rdx
mov r11, qword [rsp + rdi + 0xbc0]
test r11, r11
je 0x14041b7af
jmp 0x14041b7d5
lea rdi, [rdx*8]
mov r11, qword [rsp + rdi + 0xbc0]
test rcx, rcx
je 0x14041c11b
mov r12d, r11d
lea r10, [rdx + rcx]
mov qword [rsp + 0xb0], r10
lea r10, [rdx + rcx - 1]
mov rdi, r11
mov r13, r12
mov r11, qword [rsp + rcx*8 + 0x8c0]
movsxd r14, r10d
mov r10, r11
shr r10, 0x20
imul r13, r10
mov r15d, r11d
lea r11, [rsp + r14*8 + 0xc40]
shr rdi, 0x20
mov qword [rsp + 0xd0], r12
imul r12, r15
imul r15, rdi
imul r10, rdi
mov qword [rsp + 0xa8], r14
mov r14, r13
shl r14, 0x20
shr r13, 0x20
add r12, r14
mov qword [rsp + 0xb8], rdi
mov rdi, r15
add r10, r13
xor r13d, r13d
cmp r12, r14
mov r14d, 0
setb r13b
shl rdi, 0x20
add r12, rdi
cmp r12, rdi
lea rdi, [rcx - 1]
setb r14b
add r10, r13
shr r15, 0x20
add r10, r15
mov qword [r11 + 8], r12
add r10, r14
xor r12d, r12d
mov qword [r11], r10
mov r14, qword [rsp + 0xa8]
mov r13, qword [rsp + 0xb0]
mov qword [rsp + 0xb0], r13
lea r15, [rsp + r14*8 + 0x5c0]
mov qword [rsp + 0x48], r15
lea r15, [rsp + rcx*8 + 0x8b8]
mov qword [rsp + 0x190], rsi
mov qword [rsp + 0x2a0], rbp
mov qword [rsp + 0x308], r8
mov qword [rsp + 0x310], r9
mov qword [rsp + 0xa8], r14
mov qword [rsp + 0x2a8], rax
mov qword [rsp + 0x2b0], rdx
mov qword [rsp + 0x250], rcx
mov qword [rsp + 0x260], rbx
xor ebx, ebx
mov r8, r15
mov r9, qword [rsp + 0x48]
mov rsi, r12
mov r13, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xb8]
mov r15, qword [r8 + rsi*8]
mov r14, r15
shr r14, 0x20
mov rax, r13
imul rax, r14
imul r14, rbp
mov ecx, r15d
mov rdx, r13
imul rdx, rcx
imul rcx, rbp
mov r15, rax
inc r12
shl r15, 0x20
shr rax, 0x20
add rdx, r15
add r14, rax
cmp rdx, r15
mov r15, rcx
mov eax, ebx
setb al
shl r15, 0x20
add rdx, r15
cmp rdx, r15
mov r15d, ebx
setb r15b
add r10, rdx
cmp r10, rdx
mov edx, ebx
mov qword [r11 + rsi*8], r10
setb dl
shr rcx, 0x20
mov r10d, r15d
add rax, rcx
add r14, rax
add r10, rdx
mov qword [r9 + rsi*8], 0
add r10, r14
dec rsi
cmp r12, rdi
jb 0x14041b920
mov r14, qword [rsp + 0xa8]
mov r13, qword [rsp + 0xb0]
sub r14d, r12d
shl r12, 3
neg r12
mov rax, qword [rsp + 0x2a8]
mov rdx, qword [rsp + 0x2b0]
mov rcx, qword [rsp + 0x250]
mov rsi, qword [rsp + 0x190]
mov rbp, qword [rsp + 0x2a0]
mov rbx, qword [rsp + 0x260]
mov r8, qword [rsp + 0x308]
mov r9, qword [rsp + 0x310]
mov qword [r12 + r11], r10
movsxd rdi, r14d
mov r11, qword [rsp + 0xa0]
lea r15, [rdi - 1]
movsxd r10, r15d
inc r10
dec r14d
mov qword [rsp + rdi*8 + 0x5c0], 0
cmovns r11, r10
mov qword [rsp + 0xa0], r11
js 0x14041bb94
movsxd r12, dword [rsp + 0xa0]
neg r12
dec r12
neg r12
dec r12
cmp r12, 2
jl 0x14041d16f
sub r15, qword [rsp + 0xa0]
mov r10d, 1
lea r11, [rsp + r15*8 + 0xc48]
and r11, 0xf
cmovne r11, r10
lea r14, [r11 + 2]
cmp r12, r14
jl 0x14041d16f
mov r15d, r11d
mov r14d, r12d
neg r15d
mov r10, qword [rsp + 0xa0]
add r15d, r14d
and r15d, 1
sub r14d, r15d
lea r15, [rsp + rdi*8 + 0x5b8]
movsxd r14, r14d
shl r10, 3
sub r15, r10
mov qword [rsp + 0xd8], r15
lea r15, [rsp + rdi*8 + 0xc38]
sub r15, r10
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], r15
test r11, r11
jbe 0x14041bb2d
mov qword [rsp + 0x308], r8
xor r15d, r15d
mov qword [rsp + 0x310], r9
mov r8, qword [rsp + 0xc0]
mov r9, qword [rsp + 0xc8]
mov r10, qword [rsp + 0xd8]
mov qword [r10 + r8*8 + 8], r15
mov qword [r9 + r8*8 + 8], r15
inc r8
cmp r8, r11
jb 0x14041bb0b
mov r8, qword [rsp + 0x308]
mov r9, qword [rsp + 0x310]
mov r10, qword [rsp + 0xc8]
mov r15, qword [rsp + 0xd8]
movdqu xmmword [r15 + r11*8 + 8], xmm2
movdqu xmmword [r10 + r11*8 + 8], xmm2
add r11, 2
cmp r11, r14
jb 0x14041bb3d
cmp r14, r12
jae 0x14041bb94
mov r10, qword [rsp + 0xa0]
lea r11, [r10*8]
lea r10, [rsp + rdi*8 + 0x5b8]
sub r10, r11
lea rdi, [rsp + rdi*8 + 0xc38]
sub rdi, r11
xor r11d, r11d
mov qword [r10 + r14*8 + 8], r11
mov qword [rdi + r14*8 + 8], r11
inc r14
cmp r14, r12
jb 0x14041bb82
xor r10d, r10d
lea r14, [rdx - 1]
movsxd r14, r14d
xor r12d, r12d
test r14, r14
je 0x14041be10
mov qword [rsp + 0x3c8], r14
lea rdi, [rsp + r14*8 + 0xbc0]
mov qword [rsp + 0x3a0], rdi
lea r15, [rsp + r14*8 + 0xc40]
mov qword [rsp + 0x398], r15
lea r15, [rcx*8]
mov qword [rsp + 0x390], r15
lea r15, [rsp + rcx*8 + 0x8c0]
mov qword [rsp + 0x388], r15
lea r11, [r14 + rcx]
mov qword [rsp + 0xb0], r13
lea rdi, [rsp + r14*8 + 0x5c0]
mov qword [rsp + 0x2a8], rax
mov qword [rsp + 0x2b0], rdx
mov qword [rsp + 0x190], rsi
mov qword [rsp + 0x2a0], rbp
mov qword [rsp + 0x260], rbx
mov qword [rsp + 0x308], r8
mov qword [rsp + 0x310], r9
mov r15, qword [rsp + 0x398]
mov r14, qword [rsp + 0x3a0]
xor ebx, ebx
xor r13d, r13d
test rcx, rcx
je 0x14041bdb9
mov rdx, qword [r14 + r12*8]
lea rax, [r10*8]
mov r8d, edx
mov rbp, rdx
mov rdx, qword [rsp + 0x390]
sub rdx, rax
neg rax
add rax, r15
mov rsi, qword [rsp + r11*8 + 0xc40]
mov qword [rsp + 0x3b8], r11
shr rbp, 0x20
lea r9, [rdi + rdx]
mov qword [rsp + 0x3c0], rdi
lea rax, [rax + rcx*8]
mov qword [rsp + 0x3b0], r12
add rdx, r15
mov qword [rsp + 0x3a8], r10
mov r11, qword [rsp + 0x388]
mov rdi, qword [r11 + r13*8]
mov r10, rdi
shr r10, 0x20
mov r12, r8
imul r12, r10
imul r10, rbp
dec r13
mov r15, r8
mov qword [rsp + 0x4a8], r13
mov r14, r12
mov r13d, edi
xor edi, edi
imul r15, r13
imul r13, rbp
shr r12, 0x20
shl r14, 0x20
add r10, r12
mov r12, r13
add r15, r14
shl r12, 0x20
cmp r15, r14
mov r14d, edi
setb r14b
add r15, r12
cmp r15, r12
mov r12d, edi
setb r12b
add rsi, r15
cmp rsi, r15
mov r15d, edi
setb r15b
shr r13, 0x20
add r14, r13
add r10, r14
add r12, r15
add r10, r12
lea r13, [rbx*8]
mov r12, rax
inc rbx
sub r12, r13
mov qword [r12], rsi
mov rsi, rdx
sub rsi, r13
neg r13
add r13, r9
mov rsi, qword [rsi - 8]
add rsi, r10
cmp rsi, r10
setb dil
add qword [r13 - 0x10], rdi
mov r13, qword [rsp + 0x4a8]
cmp rbx, rcx
jb 0x14041bcbe
shl rbx, 3
sub rax, rbx
mov r15, qword [rsp + 0x398]
mov rdi, qword [rsp + 0x3c0]
mov r14, qword [rsp + 0x3a0]
mov r11, qword [rsp + 0x3b8]
mov r12, qword [rsp + 0x3b0]
mov r10, qword [rsp + 0x3a8]
mov qword [rax], rsi
inc r10
dec r11
dec r12
cmp r10, qword [rsp + 0x3c8]
jb 0x14041bc4e
mov r13, qword [rsp + 0xb0]
mov rax, qword [rsp + 0x2a8]
mov rdx, qword [rsp + 0x2b0]
mov rsi, qword [rsp + 0x190]
mov rbp, qword [rsp + 0x2a0]
mov rbx, qword [rsp + 0x260]
mov r8, qword [rsp + 0x308]
mov r9, qword [rsp + 0x310]
add rax, qword [rsp + 0x1a0]
lea rdx, [rdx + rcx - 1]
mov r12d, edx
lea r14, [rsp + r13*8 + 0xbc0]
mov rcx, qword [r14 + 0x80]
xor r10d, r10d
mov qword [r14], rcx
test r12d, r12d
je 0x14041bf4a
mov edi, r12d
xor r11d, r11d
mov ecx, 1
shr edi, 1
je 0x14041bf19
movsxd r15, edx
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x2a0], rbp
mov qword [rsp + 0x260], rbx
lea rcx, [rsp + r15*8 + 0xc40]
mov qword [rsp + 0x50], rcx
lea rdi, [rsp + r15*8 + 0xbc0]
mov qword [rsp + 0x308], r8
lea rcx, [rsp + r15*8 + 0x5c0]
mov qword [rsp + 0x310], r9
xor r9d, r9d
mov rbx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
mov rbp, r11
nop dword [rax]
nop dword [rax]
add r10, qword [rbp + rcx]
inc r11
mov r15, qword [rbp + rbx]
add r15, r10
cmp r15, r10
mov r10d, r9d
mov qword [rbp + rdi], r15
setb r10b
add r10, qword [rbp + rcx - 8]
mov r15, qword [rbp + rbx - 8]
add r15, r10
cmp r15, r10
mov r10d, r9d
mov qword [rbp + rdi - 8], r15
setb r10b
add rbp, 0xfffffffffffffff0
cmp r11, r8
jb 0x14041beb0
mov rbp, qword [rsp + 0x2a0]
lea ecx, [r11 + r11 + 1]
mov rbx, qword [rsp + 0x260]
mov r8, qword [rsp + 0x308]
mov r9, qword [rsp + 0x310]
lea edi, [rcx - 1]
cmp edi, r12d
jae 0x14041bf47
movsxd rcx, ecx
movsxd rdi, edx
sub rdi, rcx
add r10, qword [rsp + rdi*8 + 0x5c8]
add r10, qword [rsp + rdi*8 + 0xc48]
mov qword [rsp + rdi*8 + 0xbc8], r10
mov rcx, qword [r14]
jmp 0x14041bf4a
mov rcx, qword [r14]
test rcx, rcx
jne 0x14041bf64
dec r13
lea r14, [rsp + r13*8 + 0xbc0]
cmp qword [r14], 0
je 0x14041bf4f
lea rdx, [r13 - 1]
mov r11, qword [rsp + 0xbc8]
test r11, r11
jle 0x14041c032
add r11, r11
dec rax
mov qword [rsp + 0xbc8], r11
cmp r13, 2
jb 0x14041c032
xor r12d, r12d
lea r10, [r13 - 1]
mov ecx, 1
shr r10, 1
je 0x14041c002
nop
movsxd rcx, r12d
inc r12d
shl rcx, 4
mov rdi, qword [rsp + rcx + 0xbd0]
mov r15, rdi
shr r15, 0x3f
add rdi, rdi
or r11, r15
mov qword [rsp + rcx + 0xbc8], r11
mov r11, qword [rsp + rcx + 0xbd8]
mov r15, r11
shr r15, 0x3f
add r11, r11
or rdi, r15
mov qword [rsp + rcx + 0xbd0], rdi
cmp r12, r10
jb 0x14041bfa0
lea ecx, [r12 + r12]
movsxd r12, r12d
shl r12, 4
movsxd rcx, ecx
inc rcx
mov qword [rsp + r12 + 0xbc8], r11
dec rcx
lea r10, [r13 - 1]
mov edi, ecx
cmp rdi, r10
jae 0x14041c032
mov r10, qword [rsp + rcx*8 + 0xbd0]
mov rdi, r10
shr rdi, 0x3f
add r10, r10
or qword [rsp + rcx*8 + 0xbc8], rdi
mov qword [rsp + rcx*8 + 0xbd0], r10
cmp qword [r14], 0
mov r10, r8
cmovne rdx, r13
shr r10, 6
cmp rdx, r10
jb 0x14041c10b
mov rdx, r10
lea rdi, [r10*8]
mov rcx, qword [rsp + r10*8 + 0xbc8]
shr rcx, 0x3f
mov r11, qword [rsp + rdi + 0xbc0]
add r11, rcx
cmp r11, rcx
jae 0x14041c0e8
mov qword [rsp + rdi + 0xbc0], r11
lea rcx, [rsp + r10*8 + 0xbb8]
mov qword [rsp + 0xbc0], 0
lea rdx, [r10 - 1]
mov r11, qword [rcx]
lea rdi, [rdx*8]
cmp r11, 0xffffffffffffffff
jne 0x14041c0ba
add rdi, 0xfffffffffffffff8
dec rdx
lea rcx, [rsp + rdi + 0xbc0]
mov r11, qword [rcx]
cmp r11, 0xffffffffffffffff
je 0x14041c0a2
test rdx, rdx
je 0x14041c0c7
inc r11
mov qword [rcx], r11
jmp 0x14041c11b
movabs r11, 0x8000000000000000
inc rax
mov qword [rsp + 0xbc8], r11
mov edx, 1
mov edi, 8
jmp 0x14041c11b
mov qword [rsp + rdi + 0xbc0], r11
test r11, r11
jne 0x14041c11b
add rdi, 0xfffffffffffffff8
dec rdx
mov r11, qword [rsp + rdi + 0xbc0]
test r11, r11
je 0x14041c0f5
jmp 0x14041c11b
lea rdi, [rdx*8]
mov r11, qword [rsp + rdi + 0xbc0]
test rsi, rsi
je 0x14041c9bb
mov r15, qword [rsp + rsi*8 + 0x9c0]
mov rcx, r15
mov r14d, r11d
mov r12, r11
shr rcx, 0x20
mov r11, r14
imul r11, rcx
mov r15d, r15d
mov r13, r11
shr r12, 0x20
lea r10, [rsi + rdx - 1]
mov qword [rsp + 0x1e8], r14
imul r14, r15
imul r15, r12
imul rcx, r12
shl r13, 0x20
shr r11, 0x20
add r14, r13
mov qword [rsp + 0x1e0], r12
mov r12, r15
movsxd rdi, r10d
add rcx, r11
xor r11d, r11d
cmp r14, r13
mov r13d, 0
setb r11b
shl r12, 0x20
add r14, r12
cmp r14, r12
mov qword [rsp + 0x1d8], rdi
lea rdi, [rsp + rdi*8 + 0xd40]
setb r13b
xor r12d, r12d
add rcx, r11
shr r15, 0x20
mov qword [rdi + 8], r14
lea r14, [rsi - 1]
add rcx, r15
movsxd r14, r14d
add rcx, r13
mov qword [rdi], rcx
xor r15d, r15d
mov r11, qword [rsp + 0x1d8]
mov r13, qword [rsp + 0x1e8]
test r14, r14
je 0x14041c32f
mov qword [rsp + 0x190], rsi
lea r10, [rsp + r11*8 + 0x840]
mov qword [rsp + 0x170], r10
lea r10, [rsp + r14*8 + 0x9c0]
mov qword [rsp + 0x308], r8
mov qword [rsp + 0x1d8], r11
mov qword [rsp + 0x2a8], rax
mov qword [rsp + 0x2b0], rdx
mov qword [rsp + 0x2a0], rbp
xor ebp, ebp
mov qword [rsp + 0x260], rbx
mov qword [rsp + 0x310], r9
mov r8, qword [rsp + 0x170]
mov rsi, qword [rsp + 0x1e0]
mov r11, qword [r10 + r15*8]
mov r9, r11
shr r9, 0x20
mov rax, r13
imul rax, r9
imul r9, rsi
mov ebx, r11d
mov rdx, r13
imul rdx, rbx
imul rbx, rsi
mov r11, rax
inc r12
shl r11, 0x20
shr rax, 0x20
add rdx, r11
add r9, rax
cmp rdx, r11
mov r11, rbx
mov eax, ebp
setb al
shl r11, 0x20
add rdx, r11
cmp rdx, r11
mov r11d, ebp
setb r11b
add rcx, rdx
cmp rcx, rdx
mov edx, ebp
mov qword [rdi + r15*8], rcx
setb dl
shr rbx, 0x20
mov ecx, r11d
add rax, rbx
add r9, rax
add rcx, rdx
mov qword [r8 + r15*8], 0
add rcx, r9
dec r15
cmp r12, r14
jb 0x14041c251
mov r11, qword [rsp + 0x1d8]
mov r10d, r11d
sub r10d, r12d
shl r12, 3
neg r12
mov rax, qword [rsp + 0x2a8]
mov rdx, qword [rsp + 0x2b0]
mov rsi, qword [rsp + 0x190]
mov rbp, qword [rsp + 0x2a0]
mov rbx, qword [rsp + 0x260]
mov r8, qword [rsp + 0x308]
mov r9, qword [rsp + 0x310]
mov qword [r12 + rdi], rcx
movsxd r11, r10d
mov rdi, qword [rsp + 0x218]
lea r12, [r11 - 1]
movsxd rcx, r12d
inc rcx
dec r10d
mov qword [rsp + r11*8 + 0x840], 0
cmovns rdi, rcx
mov qword [rsp + 0x218], rdi
js 0x14041c45b
movsxd r14, dword [rsp + 0x218]
neg r14
dec r14
neg r14
dec r14
cmp r14, 2
jl 0x14041d167
sub r12, qword [rsp + 0x218]
mov ecx, 1
lea r12, [rsp + r12*8 + 0xd48]
and r12, 0xf
cmovne r12, rcx
lea rdi, [r12 + 2]
cmp r14, rdi
jl 0x14041d167
mov r10d, r12d
mov r13d, r14d
mov rcx, qword [rsp + 0x218]
neg r10d
add r10d, r13d
lea rdi, [rsp + r11*8 + 0xd38]
and r10d, 1
sub r13d, r10d
lea r15, [rcx*8]
sub rdi, r15
lea rcx, [rsp + r11*8 + 0x838]
sub rcx, r15
xor r10d, r10d
movsxd r13, r13d
test r12, r12
jbe 0x14041c404
xor r15d, r15d
mov qword [rcx + r10*8 + 8], r15
mov qword [rdi + r10*8 + 8], r15
inc r10
cmp r10, r12
jb 0x14041c3f2
movdqu xmmword [rcx + r12*8 + 8], xmm2
movdqu xmmword [rdi + r12*8 + 8], xmm2
add r12, 2
cmp r12, r13
jb 0x14041c404
cmp r13, r14
jae 0x14041c45b
mov rcx, qword [rsp + 0x218]
lea rdi, [rsp + r11*8 + 0x838]
lea r10, [rcx*8]
sub rdi, r10
lea rcx, [rsp + r11*8 + 0xd38]
sub rcx, r10
xor r10d, r10d
mov qword [rdi + r13*8 + 8], r10
mov qword [rcx + r13*8 + 8], r10
inc r13
cmp r13, r14
jb 0x14041c449
xor edi, edi
lea r14, [rdx - 1]
movsxd r14, r14d
xor r12d, r12d
test r14, r14
je 0x14041c6bf
movsxd r13, esi
lea rcx, [rsp + r14*8 + 0x840]
mov qword [rsp + 0x470], rcx
lea r11, [rsp + r14*8 + 0xbc0]
mov qword [rsp + 0x4a0], r14
lea rcx, [rsp + r14*8 + 0xd40]
mov qword [rsp + 0x2a8], rax
mov qword [rsp + 0x2b0], rdx
lea r15, [r13*8]
mov qword [rsp + 0x460], r15
lea r15, [rsp + r13*8 + 0x9c0]
mov qword [rsp + 0x468], r15
lea r10, [r14 + r13]
mov qword [rsp + 0x190], rsi
mov qword [rsp + 0x2a0], rbp
mov qword [rsp + 0x260], rbx
mov qword [rsp + 0x308], r8
mov qword [rsp + 0x310], r9
mov r15, qword [rsp + 0x470]
xor r8d, r8d
xor r14d, r14d
test r13, r13
je 0x14041c670
mov rsi, qword [rsp + 0x460]
lea rax, [rdi*8]
sub rsi, rax
neg rax
add rax, rcx
mov rdx, qword [r11 + r12*8]
mov rbx, rdx
mov rbp, qword [rsp + r10*8 + 0xd40]
mov qword [rsp + 0x488], r10
shr rbx, 0x20
lea r9, [rax + r13*8]
mov edx, edx
lea rax, [r15 + rsi]
mov qword [rsp + 0x498], rcx
add rsi, rcx
mov qword [rsp + 0x490], r11
mov qword [rsp + 0x480], r12
mov qword [rsp + 0x478], rdi
mov r10, qword [rsp + 0x468]
mov rcx, qword [r10 + r14*8]
mov rdi, rcx
shr rdi, 0x20
mov r11, rdx
imul r11, rdi
imul rdi, rbx
dec r14
mov r15, rdx
mov qword [rsp + 0x4b8], r14
mov r12, r11
mov r14d, ecx
xor ecx, ecx
imul r15, r14
imul r14, rbx
shr r11, 0x20
shl r12, 0x20
add rdi, r11
mov r11, r14
add r15, r12
shl r11, 0x20
cmp r15, r12
mov r12d, ecx
setb r12b
add r15, r11
cmp r15, r11
mov r11d, ecx
setb r11b
add rbp, r15
cmp rbp, r15
mov r15d, ecx
setb r15b
shr r14, 0x20
add r12, r14
add rdi, r12
add r11, r15
add rdi, r11
lea r14, [r8*8]
mov r11, r9
inc r8
sub r11, r14
mov qword [r11], rbp
mov rbp, rsi
sub rbp, r14
neg r14
add r14, rax
mov rbp, qword [rbp - 8]
add rbp, rdi
cmp rbp, rdi
setb cl
add qword [r14 - 0x10], rcx
mov r14, qword [rsp + 0x4b8]
cmp r8, r13
jb 0x14041c577
shl r8, 3
sub r9, r8
mov rcx, qword [rsp + 0x498]
mov r15, qword [rsp + 0x470]
mov r11, qword [rsp + 0x490]
mov r10, qword [rsp + 0x488]
mov r12, qword [rsp + 0x480]
mov rdi, qword [rsp + 0x478]
mov qword [r9], rbp
inc rdi
dec r10
dec r12
cmp rdi, qword [rsp + 0x4a0]
jb 0x14041c4ff
mov rax, qword [rsp + 0x2a8]
mov rdx, qword [rsp + 0x2b0]
mov rsi, qword [rsp + 0x190]
mov rbp, qword [rsp + 0x2a0]
mov rbx, qword [rsp + 0x260]
mov r8, qword [rsp + 0x308]
mov r9, qword [rsp + 0x310]
add rax, qword [rsp + 0x258]
lea rcx, [rdx + rsi]
xor r12d, r12d
lea rdx, [rdx + rsi - 1]
mov r14d, edx
lea r15, [rsp + rcx*8 + 0xbc0]
mov rsi, qword [r15 + 0x180]
mov qword [r15], rsi
test r14d, r14d
je 0x14041c7df
mov edi, r14d
xor r13d, r13d
mov esi, 1
xor r11d, r11d
shr edi, 1
je 0x14041c7ae
movsxd r10, edx
mov qword [rsp + 0x178], rdi
mov qword [rsp + 0x260], rbx
mov qword [rsp + 0x308], r8
lea rsi, [rsp + r10*8 + 0xbc0]
mov qword [rsp + 0x310], r9
lea rdi, [rsp + r10*8 + 0xd40]
mov rbx, qword [rsp + 0x178]
lea r10, [rsp + r10*8 + 0x840]
xor r8d, r8d
nop dword [rax]
add r12, qword [r11 + r10]
inc r13
mov r9, qword [r11 + rdi]
add r9, r12
cmp r9, r12
mov r12d, r8d
mov qword [r11 + rsi], r9
setb r12b
add r12, qword [r11 + r10 - 8]
mov r9, qword [r11 + rdi - 8]
add r9, r12
cmp r9, r12
mov r12d, r8d
mov qword [r11 + rsi - 8], r9
setb r12b
add r11, 0xfffffffffffffff0
cmp r13, rbx
jb 0x14041c750
mov rbx, qword [rsp + 0x260]
lea esi, [r13 + r13 + 1]
mov r8, qword [rsp + 0x308]
mov r9, qword [rsp + 0x310]
lea edi, [rsi - 1]
cmp edi, r14d
jae 0x14041c7dc
movsxd rsi, esi
movsxd rdi, edx
sub rdi, rsi
add r12, qword [rsp + rdi*8 + 0x848]
add r12, qword [rsp + rdi*8 + 0xd48]
mov qword [rsp + rdi*8 + 0xbc8], r12
mov rsi, qword [r15]
jmp 0x14041c7df
mov rsi, qword [r15]
test rsi, rsi
jne 0x14041c7f9
dec rcx
lea r15, [rsp + rcx*8 + 0xbc0]
cmp qword [r15], 0
je 0x14041c7e4
lea rdx, [rcx - 1]
mov r11, qword [rsp + 0xbc8]
test r11, r11
jle 0x14041c8d2
add r11, r11
dec rax
mov qword [rsp + 0xbc8], r11
cmp rcx, 2
jb 0x14041c8d2
xor r10d, r10d
lea rdi, [rcx - 1]
mov esi, 1
shr rdi, 1
je 0x14041c8a2
nop dword [rax + rax]
nop dword [rax + rax]
movsxd r14, r10d
inc r10d
shl r14, 4
mov r13, qword [rsp + r14 + 0xbd0]
mov rsi, r13
shr rsi, 0x3f
add r13, r13
or r11, rsi
mov qword [rsp + r14 + 0xbc8], r11
mov r11, qword [rsp + r14 + 0xbd8]
mov r12, r11
shr r12, 0x3f
add r11, r11
or r13, r12
mov qword [rsp + r14 + 0xbd0], r13
cmp r10, rdi
jb 0x14041c840
lea esi, [r10 + r10]
movsxd r10, r10d
shl r10, 4
movsxd rsi, esi
inc rsi
mov qword [rsp + r10 + 0xbc8], r11
dec rsi
lea r10, [rcx - 1]
mov edi, esi
cmp rdi, r10
jae 0x14041c8d2
mov r10, qword [rsp + rsi*8 + 0xbd0]
mov rdi, r10
shr rdi, 0x3f
add r10, r10
or qword [rsp + rsi*8 + 0xbc8], rdi
mov qword [rsp + rsi*8 + 0xbd0], r10
cmp qword [r15], 0
mov rsi, r8
cmovne rdx, rcx
shr rsi, 6
cmp rdx, rsi
jb 0x14041c9ab
mov rdx, rsi
lea rdi, [rsi*8]
mov rcx, qword [rsp + rsi*8 + 0xbc8]
shr rcx, 0x3f
mov r11, qword [rsp + rdi + 0xbc0]
add r11, rcx
cmp r11, rcx
jae 0x14041c988
mov qword [rsp + rdi + 0xbc0], r11
lea rcx, [rsp + rsi*8 + 0xbb8]
mov qword [rsp + 0xbc0], 0
lea rdx, [rsi - 1]
mov r11, qword [rcx]
lea rdi, [rdx*8]
cmp r11, 0xffffffffffffffff
jne 0x14041c95a
add rdi, 0xfffffffffffffff8
dec rdx
lea rcx, [rsp + rdi + 0xbc0]
mov r11, qword [rcx]
cmp r11, 0xffffffffffffffff
je 0x14041c942
test rdx, rdx
je 0x14041c967
inc r11
mov qword [rcx], r11
jmp 0x14041c9bb
movabs r11, 0x8000000000000000
inc rax
mov qword [rsp + 0xbc8], r11
mov edx, 1
mov edi, 8
jmp 0x14041c9bb
mov qword [rsp + rdi + 0xbc0], r11
test r11, r11
jne 0x14041c9bb
add rdi, 0xfffffffffffffff8
dec rdx
mov r11, qword [rsp + rdi + 0xbc0]
test r11, r11
je 0x14041c995
jmp 0x14041c9bb
lea rdi, [rdx*8]
mov r11, qword [rsp + rdi + 0xbc0]
mov rsi, r11
mov r10, rbx
mov ebx, ebx
mov r12d, edx
mov qword [rsp + 0x2d0], rbx
mov ecx, r12d
shr rsi, 0x20
mov r15d, r11d
mov r11, rbx
shr r10, 0x20
imul r11, rsi
imul rsi, r10
mov r14, r11
shr r11, 0x20
add rsi, r11
mov r11, rbx
imul r11, r15
imul r15, r10
shl r14, 0x20
add r11, r14
mov qword [rsp + 0x2d8], r10
mov r10, r15
cmp r11, r14
mov r14d, 0
movsxd r13, edx
setb r14b
shl r10, 0x20
add r11, r10
cmp r11, r10
mov r10d, 0
lea rbx, [rsp + r13*8 + 0xac0]
mov qword [rbx + 8], r11
setb r10b
add rsi, r14
shr r15, 0x20
add rsi, r15
lea r15, [rdx - 1]
movsxd r14, r15d
add rsi, r10
mov qword [rbx], rsi
test r14, r14
je 0x14041cbb0
xor r11d, r11d
lea rcx, [rsp + r14*8 + 0xbc0]
mov qword [rsp + 0x298], rcx
lea r10, [rsp + r13*8 + 0xb40]
mov dword [rsp + 0x2c8], r12d
xor ecx, ecx
mov qword [rsp + 0x308], r8
mov qword [rsp + 0x310], r9
mov qword [rsp + 0x2b8], rdi
xor edi, edi
mov qword [rsp + 0x2c0], r13
mov qword [rsp + 0x2a8], rax
mov qword [rsp + 0x2b0], rdx
mov qword [rsp + 0x2a0], rbp
mov r9, qword [rsp + 0x298]
mov r12, qword [rsp + 0x2d0]
mov r8, qword [rsp + 0x2d8]
mov r15, qword [r9 + rcx*8]
mov r13, r15
shr r13, 0x20
mov rax, r12
imul rax, r13
imul r13, r8
mov ebp, r15d
mov rdx, r12
imul rdx, rbp
imul rbp, r8
mov r15, rax
inc r11
shl r15, 0x20
shr rax, 0x20
add rdx, r15
add r13, rax
cmp rdx, r15
mov r15, rbp
mov eax, edi
setb al
shl r15, 0x20
add rdx, r15
cmp rdx, r15
mov r15d, edi
setb r15b
add rsi, rdx
cmp rsi, rdx
mov edx, edi
mov qword [rbx + rcx*8], rsi
setb dl
shr rbp, 0x20
mov esi, r15d
add rax, rbp
add r13, rax
add rsi, rdx
mov qword [r10 + rcx*8], 0
add rsi, r13
dec rcx
cmp r11, r14
jb 0x14041cad5
mov r13, qword [rsp + 0x2c0]
mov ecx, r13d
sub ecx, r11d
shl r11, 3
neg r11
mov rdi, qword [rsp + 0x2b8]
mov r12d, dword [rsp + 0x2c8]
mov rax, qword [rsp + 0x2a8]
mov rdx, qword [rsp + 0x2b0]
mov rbp, qword [rsp + 0x2a0]
mov r8, qword [rsp + 0x308]
mov r9, qword [rsp + 0x310]
mov qword [r11 + rbx], rsi
movsxd r10, ecx
mov qword [rsp + r10*8 + 0xb40], 0
lea r11, [r10 - 1]
movsxd rsi, r11d
inc rsi
dec ecx
cmovns r9, rsi
js 0x14041ccfb
movsxd rsi, r9d
neg rsi
dec rsi
neg rsi
dec rsi
cmp rsi, 2
jl 0x14041d160
sub r11, r9
mov ecx, 1
lea r15, [rsp + r11*8 + 0xac8]
and r15, 0xf
cmovne r15, rcx
lea r11, [r15 + 2]
cmp rsi, r11
jl 0x14041d160
mov r14d, r15d
mov ecx, esi
neg r14d
lea r11, [r9*8]
add r14d, ecx
and r14d, 1
sub ecx, r14d
lea r14, [rsp + r10*8 + 0xb38]
sub r14, r11
mov qword [rsp + 0x2e8], r14
lea r14, [rsp + r10*8 + 0xab8]
sub r14, r11
movsxd rcx, ecx
mov qword [rsp + 0x2e0], 0
test r15, r15
jbe 0x14041cca4
mov qword [rsp + 0x308], r8
xor r11d, r11d
mov qword [rsp + 0x310], r9
mov r8, qword [rsp + 0x2e0]
mov r9, qword [rsp + 0x2e8]
mov qword [r9 + r8*8 + 8], r11
mov qword [r14 + r8*8 + 8], r11
inc r8
cmp r8, r15
jb 0x14041cc82
mov r8, qword [rsp + 0x308]
mov r9, qword [rsp + 0x310]
mov r11, qword [rsp + 0x2e8]
movdqu xmmword [r11 + r15*8 + 8], xmm2
movdqu xmmword [r14 + r15*8 + 8], xmm2
add r15, 2
cmp r15, rcx
jb 0x14041ccac
cmp rcx, rsi
jae 0x14041ccfb
lea r14, [r9*8]
lea r11, [rsp + r10*8 + 0xb38]
sub r11, r14
lea r10, [rsp + r10*8 + 0xab8]
sub r10, r14
xor r14d, r14d
mov qword [r11 + rcx*8 + 8], r14
mov qword [r10 + rcx*8 + 8], r14
inc rcx
cmp rcx, rsi
jb 0x14041cce9
xor r15d, r15d
lea rcx, [rax + rbp - 0x7e]
mov rax, qword [rsp + rdi + 0xac8]
lea r10, [rdx + 1]
mov qword [rsp + rdi + 0xdc8], rax
test r12d, r12d
je 0x14041cdc4
mov ebp, r12d
xor r14d, r14d
mov edi, 1
xor r11d, r11d
shr ebp, 1
je 0x14041cd9e
lea rdi, [rsp + r13*8 + 0xdc0]
mov qword [rsp + 0x310], r9
lea rsi, [rsp + r13*8 + 0xb40]
xor eax, eax
nop dword [rax]
add r15, qword [r11 + rsi]
inc r14
mov r9, qword [r11 + rbx]
add r9, r15
cmp r9, r15
mov r15d, eax
mov qword [r11 + rdi], r9
setb r15b
add r15, qword [r11 + rsi - 8]
mov r9, qword [r11 + rbx - 8]
add r9, r15
cmp r9, r15
mov r15d, eax
mov qword [r11 + rdi - 8], r9
setb r15b
add r11, 0xfffffffffffffff0
cmp r14, rbp
jb 0x14041cd50
mov r9, qword [rsp + 0x310]
lea edi, [r14 + r14 + 1]
lea eax, [rdi - 1]
cmp eax, r12d
jae 0x14041cdc4
movsxd rdi, edi
sub r13, rdi
add r15, qword [rsp + r13*8 + 0xb48]
add r15, qword [rsp + r13*8 + 0xac8]
mov qword [rsp + r13*8 + 0xdc8], r15
lea rdx, [rsp + rdx*8 + 0xdc8]
mov rbx, qword [rdx]
test rbx, rbx
jne 0x14041cde7
dec r10
lea rdx, [rsp + r10*8 + 0xdc0]
mov rbx, qword [rdx]
test rbx, rbx
je 0x14041cdd4
mov rax, qword [rsp + 0xdc8]
test rax, rax
jle 0x14041ceb9
add rax, rax
dec rcx
mov qword [rsp + 0xdc8], rax
cmp r10, 2
jb 0x14041ceb6
xor ebp, ebp
lea rbx, [r10 - 1]
mov edi, 1
shr rbx, 1
je 0x14041ce81
movsxd r13, ebp
inc ebp
shl r13, 4
mov r12, qword [rsp + r13 + 0xdd0]
mov rdi, r12
shr rdi, 0x3f
add r12, r12
or rax, rdi
mov qword [rsp + r13 + 0xdc8], rax
mov rax, qword [rsp + r13 + 0xdd8]
mov r11, rax
shr r11, 0x3f
add rax, rax
or r12, r11
mov qword [rsp + r13 + 0xdd0], r12
cmp rbp, rbx
jb 0x14041ce20
lea edi, [rbp + rbp]
movsxd rbp, ebp
shl rbp, 4
movsxd rdi, edi
inc rdi
mov qword [rsp + rbp + 0xdc8], rax
dec rdi
lea rbx, [r10 - 1]
mov eax, edi
cmp rax, rbx
jae 0x14041ceb6
mov rbx, qword [rsp + rdi*8 + 0xdd0]
mov rax, rbx
shr rax, 0x3f
add rbx, rbx
or qword [rsp + rdi*8 + 0xdc8], rax
mov qword [rsp + rdi*8 + 0xdd0], rbx
mov rbx, qword [rdx]
jmp 0x14041ceb9
mov rbx, qword [rdx]
cmp rbx, 1
sbb r10, 0
jmp 0x140418ba1
mov rcx, qword [rsp + 0x250]
lea rax, [0x140000000]
mov rbp, qword [rsp + 0x2a0]
mov r8, qword [rsp + 0x308]
jmp 0x14041a2fc
cmp r8, 0x10
jl 0x14041cf29
mov rdx, r8
xor eax, eax
movdqu xmm0, xmmword [str.0000000000000000]
and rdx, 0xfffffffffffffff0
movdqu xmmword [rax + rdi], xmm0
add rax, 0x10
cmp rax, rdx
jb 0x14041cf01
cmp rdx, r8
jae 0x1404182a9
mov byte [rdx + rdi], 0x30
inc rdx
cmp rdx, r8
jb 0x14041cf18
jmp 0x1404182a9
xor edx, edx
jmp 0x14041cf0f
call fcn.14043dac0
cmp r8, 0x10
jl 0x14041cf75
mov edx, r8d
xor r9d, r9d
and edx, 0xfffffff0
movsxd rdx, edx
movdqu xmm0, xmmword [str.0000000000000000]
movdqu xmmword [r9 + rbp], xmm0
add r9, 0x10
cmp r9, rdx
jb 0x14041cf4c
cmp rdx, r8
jae 0x140418796
mov byte [rdx + rbp], 0x30
inc rdx
cmp rdx, r8
jb 0x14041cf64
jmp 0x140418796
xor edx, edx
jmp 0x14041cf5b
mov rdx, qword [rsp + 0xec8]
dec rbx
inc dword [rdx]
cmp dword [rsp + 0x290], 0
je 0x14041cf93
mov byte [rbx], 0x38
test r12d, 2
je 0x140418751
inc rsi
mov rdx, qword [rsp + 0x3d0]
cmp rsi, rdx
cmovge rsi, rdx
jmp 0x140418751
mov rdi, qword [rsp + 0x418]
mov r12d, dword [rsp + 0x300]
test r15, r15
je 0x1404186da
jmp 0x1404186dd
cmp dword [rsp + 0x210], 0
jne 0x14041d009
cmp dword [rsp + 0x208], 0
je 0x14041cfee
test rsi, rsi
js 0x14041d009
cmp dword [rsp + 0x200], 0
jne 0x14041d038
mov dword [r14], ebp
neg rax
je 0x1404189b8
jmp 0x140418a56
mov rax, qword [rsp + 0xec8]
mov qword [rsp + 0x240], rdi
mov r10, qword [rsp + 0x220]
mov rdi, qword [rsp + 0x418]
mov r12d, dword [rsp + 0x300]
mov dword [rax], ebp
jmp 0x140418217
mov ecx, dword [rsp + 0x338]
mov edx, dword [rsp + 0x340]
lea ecx, [rcx*8 + 4]
shr edx, cl
mov qword [rsp + 0x240], rdi
mov r10, qword [rsp + 0x220]
mov rdi, qword [rsp + 0x418]
mov r12d, dword [rsp + 0x300]
test dl, 1
je 0x14041d0b0
mov rdx, qword [rsp + 0x240]
mov rbx, rdi
mov r8d, edx
xor esi, esi
test edx, edx
mov edx, 0
mov r9, qword [rsp + 0xec8]
sete sil
neg r8d
mov byte [rdi], 0x31
add r8d, esi
mov rbp, qword [rsp + 0x330]
mov dword [r9], r8d
jmp 0x14041879d
mov rax, qword [rsp + 0xec8]
mov dword [rax], ebp
jmp 0x140418217
mov r11, qword [rsp + 0xbc8]
jmp 0x14041c9bb
xor r12d, r12d
jmp 0x1404194ab
mov rax, qword [rsp + 0xbc8]
jmp 0x140419322
mov rcx, rax
mov r10, rcx
neg r10
lea rax, [0x140000000]
mov rsi, r10
shr rsi, 3
movsxd r12, esi
movzx edi, word [rax + r12*2 + 0x5a0da0]
lea r11, [r12 + 1]
shr edi, 5
cmp rdi, r10
cmovl r12, r11
movzx r14d, word [rax + r12*2 + 0x5a0da0]
mov r13d, r14d
shr r14d, 5
and r13d, 0x1f
movsx r15, word [rax + r13*2 + 0x5a0efa]
add r14, rcx
movsxd rdi, r14d
mov qword [rsp + 0x1f8], r15
mov rsi, qword [rax + r13*8 + 0x5a0d20]
jmp 0x1404192e1
xor r13d, r13d
jmp 0x140419c4f
mov r11, qword [rsp + 0xbd0]
jmp 0x14041c11b
xor ecx, ecx
jmp 0x14041ccc3
xor r13d, r13d
jmp 0x14041c41b
xor r14d, r14d
jmp 0x14041bb54
xor r11d, r11d
jmp 0x14041b1ae
mov r11, qword [rsp + 0xbc8]
jmp 0x14041ae23
mov rdi, qword [0x1405a07c8]
mov edx, 2
mov r11, qword [0x1405a07c0]
movsx rax, word [0x1405a0942]
mov qword [rsp + 0xbc8], rdi
mov edi, 0x10
mov qword [rsp + 0xbd0], r11
jmp 0x14041b7d5
mov r12, rdi
lea rax, [0x140000000]
neg r12
mov rdx, r12
shr rdx, 3
movsxd r14, edx
movzx r11d, word [rax + r14*2 + 0x5a06e0]
lea r13, [r14 + 1]
shr r11d, 5
cmp r11, r12
cmovl r14, r13
movzx edx, word [rax + r14*2 + 0x5a06e0]
mov r15d, edx
and r15d, 0x1f
movsx r11, word [rax + r15*2 + 0x5a0926]
shl r15, 4
shr edx, 5
add rdi, rdx
movsxd rdi, edi
mov r12, qword [rax + r15 + 0x5a0648]
mov rax, qword [rax + r15 + 0x5a0640]
mov qword [rsp + 0x1a0], r11
mov qword [rsp + 0x8c8], r12
mov qword [rsp + 0x8d0], rax
jmp 0x14041ad83
mov qword [rsp + 0x88], 0
jmp 0x14041a64f
mov ecx, dword [rsp + 0x338]
mov edx, dword [rsp + 0x340]
lea ecx, [r11 + rcx*8 + 1]
shr edx, cl
mov r10, qword [rsp + 0x220]
mov rsi, qword [rsp + 0x348]
and edx, 1
mov r9d, dword [rsp + 0x228]
mov r8d, dword [rsp + 0x230]
mov rdi, qword [rsp + 0x418]
mov r12d, dword [rsp + 0x300]
test edx, edx
jne 0x140418720
test rsi, rsi
jle 0x140418217
jmp 0x140418751
mov r10, qword [rsp + 0x220]
mov rsi, qword [rsp + 0x348]
mov r9d, dword [rsp + 0x228]
mov r8d, dword [rsp + 0x230]
mov rdi, qword [rsp + 0x418]
mov r12d, dword [rsp + 0x300]
jmp 0x14041d29c
xor edi, edi
test rsi, rsi
setge dil
jmp 0x1404190fa