Function at 0x14040fe40
Capabilities:
Encrypt data using speck

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
push rbp
sub rsp, 0xe38
xor r10d, r10d
mov rax, qword [0x14194d6d8]
mov esi, r9d
xor rax, rsp
pxor xmm1, xmm1
mov qword [rsp + 0xe30], rax
mov eax, 0x80
movsxd rdx, edx
movsxd r8, r8d
mov qword [rsp + 0x400], rdx
mov qword [rsp + 0x240], r8
mov dword [rsp + 0x2f8], r10d
mov dword [rsp + 0xf8], r10d
movdqu xmmword [rsp + rax + 0xda0], xmm1
movdqu xmmword [rsp + rax + 0xd90], xmm1
movdqu xmmword [rsp + rax + 0xd80], xmm1
movdqu xmmword [rsp + rax + 0xd70], xmm1
sub rax, 0x40
jne 0x14040fe9a
mov r12, qword [rsp + 0x400]
mov r8d, 0x39
mov rdi, qword [rsp + 0xea0]
mov r9d, 1
mov r11, r12
test r12, r12
jle 0x140410111
movsxd r10, esi
shr r10, 0x16
and r10, 7
test esi, 0x80000000
jne 0x14040ff0b
test r10, 1
jne 0x14040ff0b
xor r10d, r10d
mov r13d, esi
xor ebp, ebp
and r13d, 0x80002000
mov eax, esi
cmp r13d, 0x80002000
mov r13d, ebp
mov ebx, esi
sete r13b
xor edx, edx
and eax, 0x80001000
cmp eax, 0x80001000
mov rax, r10
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, r10d
test r10, 4
je 0x14040ff80
mov r10d, 0xfa
test rax, rax
mov eax, 0xaaaa
cmovne r10d, eax
jmp 0x14040ffa0
test rax, rax
je 0x14040ff8d
mov r10d, 0xfa00
jmp 0x14040ffa0
xor eax, eax
test r10, 1
mov r10d, 0xa8a8
cmovne r10d, eax
movq rdx, xmm0
movabs rcx, 0x8000000000000000
and rcx, rdx
movabs r15, 0x7ff0000000000000
mov rbx, rcx
xor rbx, rdx
mov rax, rbx
mov rbp, rbx
shr rax, 0x24
mov qword [rsp + 0x20], rbx
add rax, 0xfffffffffc010000
movsd xmm0, qword [rsp + 0x20]
mov qword [rsp + 0x3b0], rbx
and r15, rdx
jne 0x140410197
test rbx, rbx
jne 0x14041001a
bt rdx, 0x3f
jae 0x14041000a
mov rax, qword [rsp + 0xec0]
mov dword [rax], 0xffffffff
jmp 0x14041004b
mov rax, qword [rsp + 0xec0]
mov dword [rax], 1
jmp 0x14041004b
bt rdx, 0x3f
jae 0x140410031
mov rax, qword [rsp + 0xec0]
mov dword [rax], 0xfffffffe
jmp 0x14041003f
mov rax, qword [rsp + 0xec0]
mov dword [rax], 2
test esi, 0x10000000
je 0x140410133
test esi, 0x80
je 0x140410061
mov qword [rsp + 0x240], 1
jmp 0x1404100ae
test esi, 2
je 0x140410089
mov rax, qword [rsp + 0x240]
inc rax
mov qword [rsp + 0x240], rax
cmp rax, qword [rsp + 0x400]
jle 0x1404100a3
mov r12, r11
mov rbx, rdi
lea rax, [r12 - 1]
mov qword [rsp + 0x240], rax
mov rbp, rbx
test r12, r12
jne 0x1404100b9
jmp 0x1404100e9
cmp qword [rsp + 0x240], 0
jle 0x140410111
dec qword [rsp + 0x240]
mov rbp, rdi
mov rax, qword [rsp + 0x240]
lea r8, [rax + 1]
cmp rax, 0x60
jle 0x140414e2c
mov rcx, rdi
mov edx, 0x30
call fcn.14042ad60
mov rax, qword [rsp + 0x240]
lea rbx, [rdi + rax + 1]
mov rdx, qword [rsp + 0xeb8]
mov r8d, 0xb
test esi, 0x40000000
mov dword [rdx], 1
mov edx, 0
cmovne edx, r8d
jmp 0x140410600
mov rdx, qword [rsp + 0xeb8]
mov rbp, rdi
mov byte [rdi], 0x30
lea rbx, [rdi + 1]
mov dword [rdx], 1
mov edx, 6
jmp 0x140410600
movabs rax, 0x7ff0000000000000
and rax, rbx
shr rax, 0x34
je 0x140410159
movabs r14, 0x10000000000000
or r14, rbx
shl r14, 0xb
jmp 0x140410175
mov r14, rbx
xor eax, eax
shl r14, 0xc
test r14, r14
jle 0x140410172
add r14, r14
inc rax
test r14, r14
jg 0x140410167
neg rax
shr r14, 0x2f
shl rax, 0x10
movzx r14d, r14w
add rax, 0xfffffffffc010000
mov qword [rsp + 0xdb8], r14
or rax, r14
jmp 0x14041043f
movabs r14, 0x7ff0000000000000
cmp r14, r15
jne 0x140410418
cmp r15, rbx
jne 0x1404102d7
bt rdx, 0x3f
jae 0x1404101ca
mov rax, qword [rsp + 0xec0]
mov dword [rax], 0xfffffffc
jmp 0x1404101d8
mov rax, qword [rsp + 0xec0]
mov dword [rax], 4
test r13d, 0x400
je 0x1404101fc
test r13d, 0x200
lea rax, str.INFINITY
lea r8, str.infinity
cmovne r8, rax
jmp 0x140410203
lea r8, str.Infinity
mov rbx, rdi
mov dl, byte [r8]
test dl, dl
je 0x1404102a4
xor eax, eax
inc rax
lea r9, [rdi + rax*8]
mov byte [r9 - 8], dl
lea rbx, [r9 - 7]
mov dl, byte [r8 + rax*8 - 7]
test dl, dl
je 0x1404102a4
mov byte [r9 - 7], dl
lea rbx, [r9 - 6]
mov dl, byte [r8 + rax*8 - 6]
test dl, dl
je 0x1404102a4
mov byte [r9 - 6], dl
lea rbx, [r9 - 5]
mov dl, byte [r8 + rax*8 - 5]
test dl, dl
je 0x1404102a4
mov byte [r9 - 5], dl
lea rbx, [r9 - 4]
mov dl, byte [r8 + rax*8 - 4]
test dl, dl
je 0x1404102a4
mov byte [r9 - 4], dl
lea rbx, [r9 - 3]
mov dl, byte [r8 + rax*8 - 3]
test dl, dl
je 0x1404102a4
mov byte [r9 - 3], dl
lea rbx, [r9 - 2]
mov dl, byte [r8 + rax*8 - 2]
test dl, dl
je 0x1404102a4
mov byte [r9 - 2], dl
lea rbx, [r9 - 1]
mov dl, byte [r8 + rax*8 - 1]
test dl, dl
je 0x1404102a4
mov byte [r9 - 1], dl
mov rbx, r9
mov dl, byte [r8 + rax*8]
test dl, dl
jne 0x140410213
mov r8, qword [rsp + 0xeb8]
and esi, 0x40000000
mov rdx, rbx
shr esi, 0x1d
sub rdx, rdi
mov dword [r8], edx
mov ecx, esi
mov edx, 4
shl edx, cl
mov rbp, qword [rsp + 0xea0]
add edx, 0xfffffffc
jmp 0x140410600
test r13d, 0x400
je 0x14041032f
bt rbx, 0x33
jb 0x1404102f7
shr rcx, 0x3e
mov edx, 0x10
shr edx, cl
add edx, 0xfffffff6
jmp 0x140410309
mov eax, 0xfffffffb
bt rdx, 0x3f
mov edx, 5
cmovb edx, eax
mov r8, qword [rsp + 0xec0]
test r13d, 0x200
lea rax, [0x1405a0100]
mov dword [r8], edx
lea r8, [0x1405a0104]
cmovne r8, rax
jmp 0x140410344
mov rax, qword [rsp + 0xec0]
lea r8, [0x1405a0108]
mov dword [rax], 0
mov rbx, rdi
mov dl, byte [r8]
test dl, dl
je 0x1404103e5
xor eax, eax
inc rax
lea r9, [rdi + rax*8]
mov byte [r9 - 8], dl
lea rbx, [r9 - 7]
mov dl, byte [r8 + rax*8 - 7]
test dl, dl
je 0x1404103e5
mov byte [r9 - 7], dl
lea rbx, [r9 - 6]
mov dl, byte [r8 + rax*8 - 6]
test dl, dl
je 0x1404103e5
mov byte [r9 - 6], dl
lea rbx, [r9 - 5]
mov dl, byte [r8 + rax*8 - 5]
test dl, dl
je 0x1404103e5
mov byte [r9 - 5], dl
lea rbx, [r9 - 4]
mov dl, byte [r8 + rax*8 - 4]
test dl, dl
je 0x1404103e5
mov byte [r9 - 4], dl
lea rbx, [r9 - 3]
mov dl, byte [r8 + rax*8 - 3]
test dl, dl
je 0x1404103e5
mov byte [r9 - 3], dl
lea rbx, [r9 - 2]
mov dl, byte [r8 + rax*8 - 2]
test dl, dl
je 0x1404103e5
mov byte [r9 - 2], dl
lea rbx, [r9 - 1]
mov dl, byte [r8 + rax*8 - 1]
test dl, dl
je 0x1404103e5
mov byte [r9 - 1], dl
mov rbx, r9
mov dl, byte [r8 + rax*8]
test dl, dl
jne 0x140410354
mov r8, qword [rsp + 0xeb8]
mov rdx, rbx
sub rdx, rdi
mov r9d, 0xa
test esi, 0x40000000
mov dword [r8], edx
mov edx, 0
mov rbp, qword [rsp + 0xea0]
cmovne edx, r9d
jmp 0x140410600
bt rdx, 0x3f
jae 0x140410430
mov r14, qword [rsp + 0xec0]
mov dword [r14], 0xfffffffd
jmp 0x14041043f
mov r14, qword [rsp + 0xec0]
mov dword [r14], 3
mov r14d, r13d
shr rdx, 0x3f
and r14d, 0x100
mov dword [rsp + 0x2d8], r14d
je 0x14041069b
and r13d, 0x200
movabs r11, 0x7ff0000000000000
mov r9d, r13d
and r11, rbx
xor r9d, 0x200
shr r9d, 4
lea r8d, [r9 + 0x46]
add r9d, 8
shr r11, 0x34
je 0x14041049e
movabs r14, 0x10000000000000
or r14, rbx
shl r14, 0xb
jmp 0x1404104bb
mov r14, rbx
xor r11d, r11d
shl r14, 0xc
test r14, r14
jle 0x1404104b8
add r14, r14
inc r11
test r14, r14
jg 0x1404104ad
neg r11
mov r15, qword [rsp + 0x400]
lea rbx, [rdi + 1]
mov qword [rsp + 0xdb8], r14
mov ecx, 0x10
mov byte [rdi], 0x30
mov rbp, rbx
mov qword [rsp + 0x3f8], rdi
lea r15, [r15 - 1]
mov dword [rsp + 0x328], esi
mov rax, r14
dec rcx
shr rax, 0x3c
shl r14, 4
cmp eax, 0xa
jge 0x140410505
lea edi, [rax + 0x30]
jmp 0x140410511
test r13d, r13d
lea esi, [rax + 0x37]
lea edi, [rax + 0x57]
cmovne edi, esi
mov byte [rbx], dil
inc rbx
test r15, r15
jle 0x140414ef7
dec r15
test rcx, rcx
jne 0x1404104ed
mov rdi, qword [rsp + 0x3f8]
mov esi, dword [rsp + 0x328]
xor r14d, r14d
and eax, 1
xor r15d, r15d
add eax, eax
add r11, 0xfffffffffffffc02
mov r13, qword [rsp + 0xeb8]
mov dword [r13], r11d
lea ecx, [rax + rdx*8]
mov rdx, r14
xor r11d, r11d
add rdx, r14
setne r11b
test r11d, r11d
setne r15b
shr r14, 0x3f
lea edx, [r14 + r15*4]
add ecx, edx
shr r10d, cl
test r10d, 1
je 0x1404105b3
movsx edx, byte [rbx - 1]
cmp edx, r8d
jne 0x140410597
dec rbx
movsx edx, byte [rbx - 1]
cmp edx, r8d
je 0x14041058b
mov r8d, 1
cmp edx, 0x39
cmove r8d, r9d
add edx, r8d
mov byte [rbx - 1], dl
cmp rbx, rbp
je 0x140414eb9
test esi, 0x80
je 0x1404105cc
cmp byte [rbx - 1], 0x30
jne 0x1404105fe
dec rbx
cmp byte [rbx - 1], 0x30
je 0x1404105c1
jmp 0x1404105fe
sub r12, rbx
add r12, rbp
dec r12d
movsxd r12, r12d
test r12, r12
jl 0x1404105fe
lea r8, [r12 + 1]
cmp r12, 0x60
jle 0x140414e74
mov rcx, rbx
mov edx, 0x30
call fcn.14042ad60
lea rbx, [rbx + r12 + 1]
xor edx, edx
mov r8, qword [rsp + 0xea8]
mov byte [rbx], 0
test r8, r8
je 0x140410619
mov rsi, rbp
sub rsi, rdi
mov dword [r8], esi
mov rsi, qword [rsp + 0xeb0]
test rsi, rsi
je 0x14041062e
neg rdi
add rdi, rbx
mov dword [rsi], edi
mov rsi, rbp
test rbp, rbp
je 0x14041064c
cmp rsi, rbx
jae 0x14041064c
mov dil, byte [rsi]
inc rsi
cmp dil, 0x30
jne 0x140410651
test rsi, rsi
jne 0x140410636
mov edx, 0xb
mov rcx, qword [rsp + 0xec8]
test rcx, rcx
je 0x140410660
mov dword [rcx], edx
mov rcx, qword [rsp + 0xe30]
mov qword [rsp + 0xe30], 0
xor rcx, rsp
cmp rcx, qword [0x14194d6d8]
jne 0x140414e6f
mov rax, rbp
add rsp, 0xe38
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
xor r14d, r14d
test rax, rax
mov r15d, r13d
lea rbx, [rdi + 1]
setl r14b
and r15d, 2
add r14, 0x4d104d42
imul rax, r14
sar rax, 0x30
mov r14d, esi
mov qword [rsp + 0x308], rbx
mov ebx, r13d
mov dword [rsp + 0x310], edx
inc rax
mov dword [rsp + 0x318], r10d
and r14d, 2
mov dword [rsp + 0x230], r9d
and ebx, 0x41
mov qword [rsp + 0x228], rcx
and r13d, 0x14
mov dword [rsp + 0x238], r8d
mov qword [rsp + 0x3f8], rdi
mov dword [rsp + 0x328], esi
mov rdx, qword [rsp + 0x240]
mov r10d, dword [rsp + 0x2f8]
mov r9, qword [rsp + 0xeb8]
jmp 0x140410790
mov rax, qword [rsp + 0x2d0]
neg rax
mov qword [rsp + 0x2e8], rdx
inc rax
mov r13d, dword [rsp + 0x1f0]
mov ebx, dword [rsp + 0x1f8]
mov r15d, dword [rsp + 0x200]
mov r14d, dword [rsp + 0x208]
mov rdx, qword [rsp + 0x240]
mov rbp, qword [rsp + 0x210]
mov r11, qword [rsp + 0x218]
mov r12, qword [rsp + 0x320]
mov r10d, dword [rsp + 0x2f8]
mov r9, qword [rsp + 0xeb8]
mov r8d, eax
test r14d, r14d
je 0x1404107e4
test rdx, rdx
jge 0x1404107ab
neg edx
mov dword [rsp + 0xf8], edx
mov r10d, edx
xor edx, edx
lea r12, [rax + rdx]
cmp r12, qword [rsp + 0x400]
jle 0x1404107db
sub r12, qword [rsp + 0x400]
mov dword [r9], r8d
neg r12d
add r12d, dword [rsp + 0xf8]
test r10d, r10d
cmovne r10d, r12d
mov r12, r11
jmp 0x1404107e7
test r12, r12
jle 0x140414f14
mov dword [r9], r8d
neg rax
jne 0x140410839
movabs rcx, 0x7ff0000000000000
xor r8d, r8d
and rcx, rbp
shr rcx, 0x34
je 0x140410818
movabs rsi, 0x10000000000000
or rsi, rbp
shl rsi, 0xb
jmp 0x140410a86
mov rsi, rbp
xor ecx, ecx
shl rsi, 0xc
test rsi, rsi
jle 0x140410831
add rsi, rsi
inc rcx
test rsi, rsi
jg 0x140410826
neg rcx
jmp 0x140410a86
cmp r12, 0xf
jge 0x14041084d
mov r8d, 1
cmp rax, 0xfffffffffffffece
jge 0x140410881
mov ecx, 0x80
lea rsi, [rsp + rcx + 0xba0]
movdqu xmmword [rsi], xmm1
movdqu xmmword [rsi - 0x10], xmm1
movdqu xmmword [rsi - 0x20], xmm1
movdqu xmmword [rsi - 0x30], xmm1
sub rcx, 0x40
jne 0x140410852
cmp rax, 0xfffffffffffffeaa
jl 0x14041094c
jmp 0x1404108bc
cmp rax, 0x132
jle 0x140410956
mov ecx, 0x80
movdqu xmmword [rsp + rcx + 0xba0], xmm1
movdqu xmmword [rsp + rcx + 0xb90], xmm1
movdqu xmmword [rsp + rcx + 0xb80], xmm1
movdqu xmmword [rsp + rcx + 0xb70], xmm1
sub rcx, 0x40
jne 0x140410892
cmp rax, 0x159
jg 0x14041094c
mov edi, 0x40
mov ecx, 0x80
cmp r12, 0x11
cmovg rdi, rcx
xor r8d, r8d
cmp rdi, 0x80
setne r8b
mov qword [rsp + 0x240], rdx
mov qword [rsp + 0x300], r8
mov qword [rsp + 0x2d0], rax
mov dword [rsp + 0x1f0], r13d
mov dword [rsp + 0x1f8], ebx
mov dword [rsp + 0x200], r15d
mov dword [rsp + 0x208], r14d
mov qword [rsp + 0x210], rbp
mov qword [rsp + 0x218], r11
mov qword [rsp + 0x320], r12
mov dword [rsp + 0x2f8], r10d
mov rdx, qword [rsp + 0x2e8]
jmp 0x1404110f8
mov edi, 0x80
xor r8d, r8d
jmp 0x1404108e8
cmp rax, 0xffffffffffffffd1
jge 0x1404109ca
mov qword [rsp + 0x300], r8
mov r8, rax
neg r8
lea rcx, [0x140000000]
mov r9, r8
shr r9, 3
movsxd rdi, r9d
movzx r9d, word [rcx + rdi*2 + 0x5a1540]
lea rsi, [rdi + 1]
shr r9d, 5
cmp r9, r8
mov r9, qword [rsp + 0xeb8]
cmovl rdi, rsi
mov r8, qword [rsp + 0x300]
movzx edi, word [rcx + rdi*2 + 0x5a1540]
mov esi, edi
shr edi, 5
and esi, 0x1f
movsd xmm2, qword [rcx + rsi*8 + 0x5a14a0]
add rdi, rax
mulsd xmm2, qword [rcx + rdi*8 + 0x5a1318]
jmp 0x140410a3b
cmp rax, 0x2f
jle 0x140410a2b
mov r9, rax
lea rcx, [0x140000000]
shr r9, 3
movsxd rdi, r9d
movzx r9d, word [rcx + rdi*2 + 0x5a1622]
lea rsi, [rdi + 1]
shr r9d, 5
cmp r9, rax
mov r9, qword [rsp + 0xeb8]
cmovle rdi, rsi
movzx edi, word [rcx + rdi*2 + 0x5a1620]
mov esi, edi
shr edi, 5
and esi, 0x1f
movsd xmm2, qword [rcx + rsi*8 + 0x5a15a0]
neg rdi
add rdi, rax
mulsd xmm2, qword [rcx + rdi*8 + 0x5a1318]
jmp 0x140410a3b
lea rcx, [0x140000000]
movsd xmm2, qword [rcx + rax*8 + 0x5a1318]
mulsd xmm2, xmm0
movabs rcx, 0x7ff0000000000000
movq rdi, xmm2
and rcx, rdi
shr rcx, 0x34
je 0x140410a6a
movabs rsi, 0x10000000000000
or rsi, rdi
shl rsi, 0xb
jmp 0x140410a86
mov rsi, rdi
xor ecx, ecx
shl rsi, 0xc
test rsi, rsi
jle 0x140410a83
add rsi, rsi
inc rcx
test rsi, rsi
jg 0x140410a78
neg rcx
mov qword [rsp + 0xdb8], rsi
add rcx, 0xfffffffffffffc02
mov qword [rsp + 0x240], rdx
mov esi, 1
mov qword [rsp + 0x300], r8
mov edi, 0x35
mov qword [rsp + 0x2d0], rax
mov dword [rsp + 0x1f0], r13d
mov dword [rsp + 0x1f8], ebx
mov dword [rsp + 0x200], r15d
mov dword [rsp + 0x208], r14d
mov qword [rsp + 0x210], rbp
mov qword [rsp + 0x218], r11
mov qword [rsp + 0x320], r12
mov dword [rsp + 0x2f8], r10d
mov rdx, qword [rsp + 0x2e8]
test rcx, rcx
jg 0x14041072b
neg rcx
mov r9d, ecx
test r9d, r9d
je 0x140410c15
mov ebp, r9d
lea r8, [rsi - 1]
neg ebp
mov r10d, r8d
mov rax, qword [rsp + rsi*8 + 0xdb0]
mov ecx, ebp
mov rbx, rax
shl rbx, cl
mov ecx, r9d
shr rax, cl
mov qword [rsp + rsi*8 + 0xdb8], rbx
mov qword [rsp + rsi*8 + 0xdb0], rax
test r10d, r10d
je 0x140410c0c
mov ebx, r10d
xor r11d, r11d
mov eax, 1
xor r12d, r12d
shr ebx, 1
je 0x140410bc3
movsxd rax, r8d
lea r14, [rsp + rax*8 + 0xdb0]
mov r13, qword [r14 + 8]
mov rax, qword [r12 + r14]
mov ecx, ebp
mov r15, rax
inc r11
shl r15, cl
mov ecx, r9d
or r13, r15
mov qword [r12 + r14 + 8], r13
mov r13, qword [r12 + r14 - 8]
mov r15, r13
shr rax, cl
mov ecx, ebp
shl r15, cl
mov ecx, r9d
or rax, r15
mov qword [r12 + r14], rax
add r12, 0xfffffffffffffff0
shr r13, cl
cmp r11, rbx
jb 0x140410b72
lea eax, [r11 + r11 + 1]
shl r11, 4
neg r11
mov qword [r14 + r11 + 8], r13
lea ebx, [rax - 1]
cmp ebx, r10d
jae 0x140410c04
movsxd r10, r8d
mov ecx, ebp
movsxd rax, eax
sub r10, rax
mov r8, qword [rsp + r10*8 + 0xdb8]
mov rbx, r8
shl rbx, cl
mov ecx, r9d
shr r8, cl
or qword [rsp + r10*8 + 0xdc0], rbx
mov qword [rsp + r10*8 + 0xdb8], r8
mov rbx, qword [rsp + rsi*8 + 0xdb8]
jmp 0x140410c0c
mov rbx, qword [rsp + rsi*8 + 0xdb8]
xor eax, eax
cmp rax, rbx
adc rsi, 0
mov r8, qword [rsp + 0x320]
mov r10d, 0x27
cmp r8, 0x27
mov r11, qword [rsp + 0x3f8]
cmovle r10, r8
mov rbx, qword [rsp + 0x308]
mov rbp, rbx
mov byte [r11], 0x30
xor r11d, r11d
cmp r10d, dword [rsp + 0x2f8]
jle 0x140410e46
sub r10d, dword [rsp + 0x2f8]
movsxd r10, r10d
je 0x140410e46
xor r9d, r9d
mov qword [rsp + 0x2e0], rdi
xor edi, edi
mov qword [rsp + 0x2e8], rdx
xor edx, edx
mov qword [rsp + 0x2f0], rbp
mov rax, qword [rsp + 0x3f8]
mov qword [rsp + 0xdb0], 0
mov r8d, edx
test rsi, rsi
je 0x140410e0b
mov ebx, esi
mov rcx, rdi
mov r14, qword [rsp + rsi*8 + 0xdb0]
mov qword [rsp + rsi*8 + 0xdb0], 0
test ebx, ebx
je 0x140410dfb
mov ecx, ebx
mov r8, rdi
mov r15d, 1
mov rbp, r8
shr ecx, 1
je 0x140410d8e
movsxd r12, esi
lea r13, [rsp + r12*8 + 0xdb0]
mov r12, qword [r13]
mov eax, edx
lea r15, [r14 + r14*4]
cmp r15, r14
lea r12, [r12 + r15*2]
mov qword [rbp + r13], r12
setb al
inc r8
shr r14, 0x3e
add r14, rax
mov rax, r15
add r15, r15
add r14, r14
cmp r12, r15
mov r15d, edx
mov r12, qword [rbp + r13 - 8]
setb r15b
shr rax, 0x3f
or r14, rax
add r14, r15
lea rax, [r12 + r12*4]
cmp rax, r12
mov r15d, edx
setb r15b
shr r12, 0x3e
lea r14, [r14 + rax*2]
add r12, r15
mov r15, rax
add rax, rax
add r12, r12
cmp r14, rax
mov eax, edx
mov qword [rbp + r13 - 8], r14
setb al
shr r15, 0x3f
or r12, r15
mov r14, qword [rbp + r13 - 0x10]
add r12, rax
add rbp, 0xfffffffffffffff0
cmp r8, rcx
jb 0x140410ce9
mov rax, qword [rsp + 0x3f8]
lea r15d, [r8 + r8 + 1]
shl r8, 4
neg r8
mov qword [r13 + r8], r12
lea ecx, [r15 - 1]
cmp ecx, ebx
jae 0x140410df3
movsxd r15, r15d
lea rbx, [r14 + r14*4]
movsxd rcx, esi
cmp rbx, r14
mov ebp, edx
lea r12, [rbx + rbx]
setb bpl
sub rcx, r15
shr r14, 0x3e
add r14, rbp
mov ebp, edx
mov r8, qword [rsp + rcx*8 + 0xdb8]
add r14, r14
lea r13, [r8 + rbx*2]
shr rbx, 0x3f
cmp r13, r12
mov qword [rsp + rcx*8 + 0xdb8], r13
setb bpl
or r14, rbx
add r14, rbp
mov qword [rsp + rcx*8 + 0xdb0], r14
mov rcx, qword [rsp + rsi*8 + 0xdb0]
jmp 0x140410dfb
mov rcx, qword [rsp + rsi*8 + 0xdb0]
cmp rcx, 1
mov r8d, dword [rsp + 0xdb0]
sbb rsi, 0
add r11, 0x35269
lea ecx, [r8 + 0x30]
mov byte [r9 + rax + 1], cl
lea rbx, [r9 + rax + 2]
inc r9
cmp r9, r10
jb 0x140410c8b
mov rdi, qword [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2e8]
mov rbp, qword [rsp + 0x2f0]
jmp 0x140410e4e
mov r8d, dword [rsp + 0xdb0]
add r11, 0xffff
lea r14, [rdi + 0x3f]
and r14, 0xffffffffffffffc0
movabs r9, 0x8000000000000000
mov r15, r14
shr r11, 0x10
sub r15, rdi
add r15, r11
mov eax, r15d
mov ecx, eax
mov r11, qword [rsp + 0x300]
mov rsi, qword [rsp + 0xdb8]
shl r11, cl
mov byte [rbx], 0
sub rsi, r9
je 0x140410ea0
xor r10d, r10d
cmp r9, rsi
setne r10b
jmp 0x140410ea3
xor r10d, r10d
xor r12d, r12d
xor r9d, r9d
test rsi, rsi
setns r9b
and r8d, 1
mov ecx, dword [rsp + 0x310]
lea ecx, [r9 + rcx*8]
lea r13d, [r8 + r8]
lea r8d, [rcx + r8*2]
lea ecx, [r8 + r10*4]
mov r10d, dword [rsp + 0x318]
shr r10d, cl
lea r8, [rsi + r11]
and r10d, 1
lea rcx, [r11 + r11]
cmp r8, rcx
mov r8, r14
setbe r12b
sub r8, r15
cmp r8, 0x40
jb 0x1404110c7
lea r8, [rsi + 1]
cmp r8, 1
ja 0x1404151dc
shr r15, 6
mov ecx, eax
shr r14, 6
mov r11, qword [rsp + 0x300]
sub r14d, r15d
shl r11, cl
mov r10d, r14d
mov r12, r11
mov r8, r11
cmp r14d, 1
jle 0x14041106d
xor eax, eax
lea r15d, [r14 - 1]
mov ecx, 1
xor r9d, r9d
shr r15d, 1
je 0x140411014
movsxd r14, r14d
mov qword [rsp + 0x2e0], rdi
mov qword [rsp + 0x2e8], rdx
mov qword [rsp + 0x2f0], rbp
xor ebp, ebp
mov qword [rsp + 0x220], rbx
lea rcx, [rsp + r14*8 + 0xdb0]
nop dword [rax]
nop dword [rax]
mov rbx, qword [r9 + rcx]
test rbx, rbx
mov edi, ebp
setne dil
add r12, rbx
neg r8
mov rdx, qword [r9 + rcx - 8]
or rsi, rdi
test rdx, rdx
mov edi, ebp
setne dil
cmp r12, rbx
mov r12d, ebp
setb r12b
add r8, rbx
inc eax
add r12, rdx
add r9, 0xfffffffffffffff0
cmp r12, rdx
mov r12d, ebp
setb r12b
cmp r8, rbx
mov r8d, ebp
seta r8b
or rsi, rdi
neg r8
add r8, rdx
cmp r8, rdx
mov r8d, ebp
seta r8b
cmp eax, r15d
jb 0x140410f80
mov rdi, qword [rsp + 0x2e0]
lea r9d, [rax + rax]
neg r9d
lea ecx, [rax + rax + 1]
mov rdx, qword [rsp + 0x2e8]
add r14d, r9d
mov rbp, qword [rsp + 0x2f0]
mov rbx, qword [rsp + 0x220]
lea r9d, [rcx - 1]
lea r15d, [r10 - 1]
cmp r9d, r15d
jae 0x14041520d
movsxd r10, r10d
xor r9d, r9d
mov r14d, r10d
xor r15d, r15d
sub r14d, ecx
neg r8
movsxd rcx, ecx
sub r10, rcx
mov r10, qword [rsp + r10*8 + 0xdb8]
test r10, r10
setne r15b
add r12, r10
cmp r12, r10
mov r12d, r9d
setb r12b
add r8, r10
cmp r8, r10
mov r8d, r9d
seta r8b
or rsi, r15
setge r9b
movsxd r14, r14d
mov r10, qword [rsp + r14*8 + 0xdb0]
add r12, r10
sub r10, r8
xor r12, r10
shr r12, 0x3f
test rsi, rsi
je 0x1404110a2
movabs r8, 0x8000000000000000
cmp r8, rsi
mov esi, 0
setne sil
jmp 0x1404110a4
xor esi, esi
mov r8d, dword [rsp + 0x310]
lea r10d, [r13 + r8*8]
add r10d, r9d
lea ecx, [r10 + rsi*4]
mov r10d, dword [rsp + 0x318]
shr r10d, cl
and r10d, 1
test r12d, r12d
je 0x1404151dc
test r11, r11
je 0x1404151dc
cmp rdi, 0x80
jae 0x14041517b
mov eax, 0x80
cmp rdi, 0x40
mov edi, 0x40
cmovae rdi, rax
movabs rsi, 0x7ff0000000000000
and rsi, qword [rsp + 0x3b0]
shr rsi, 0x34
je 0x140411128
movabs r8, 0x10000000000000
or r8, qword [rsp + 0x3b0]
shl r8, 0xb
jmp 0x140411149
mov r8, qword [rsp + 0x3b0]
xor esi, esi
shl r8, 0xc
test r8, r8
jle 0x140411146
add r8, r8
inc rsi
test r8, r8
jg 0x14041113b
neg rsi
mov qword [rsp + 0xdb8], r8
mov eax, 0x80
movdqu xmmword [rsp + rax + 0x8a0], xmm1
movdqu xmmword [rsp + rax + 0x890], xmm1
movdqu xmmword [rsp + rax + 0x880], xmm1
movdqu xmmword [rsp + rax + 0x870], xmm1
sub rax, 0x40
jne 0x140411156
mov rcx, qword [rsp + 0x2d0]
cmp rdi, 0x40
jne 0x14041184a
mov rax, rcx
mov r10d, 1
mov ebp, 8
lea rcx, [rax + 0x2f]
cmp rcx, 0x5e
ja 0x1404111ef
mov rcx, rax
lea rax, [0x140000000]
mov rbx, qword [rax + rcx*8 + 0x5a0ad8]
movsx r9, word [rax + rcx*2 + 0x5a0cbe]
mov qword [rsp + 0xbb8], rbx
test rbx, rbx
jne 0x140414fe4
add rbp, 0xfffffffffffffff8
dec r10
mov rcx, qword [rsp + rbp + 0xbb0]
test rcx, rcx
je 0x1404111d6
jmp 0x14041491a
cmp qword [rsp + 0x2d0], 0
jl 0x140415006
mov rcx, rax
mov rbx, rcx
shr rbx, 3
lea rax, [0x140000000]
movsxd r11, ebx
movzx ebp, word [rax + r11*2 + 0x5a0ea2]
lea r9, [r11 + 1]
shr ebp, 5
cmp rbp, rcx
cmovle r11, r9
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 rbp, r13d
mov qword [rsp + 0x1e8], r14
mov rbx, qword [rax + r12*8 + 0x5a0e20]
lea rax, [0x140000000]
mov qword [rsp + 0x8b8], rbx
movsx rcx, word [rax + rbp*2 + 0x5a0cbe]
mov rbp, qword [rax + rbp*8 + 0x5a0ad8]
mov qword [rsp + 0xbb8], rbp
test rbp, rbp
jne 0x140414ff9
dec r10
mov rax, qword [rsp + r10*8 + 0xbb0]
test rax, rax
je 0x140411290
mov r12d, eax
mov r13, rbx
shr r13, 0x20
mov r9, r12
imul r9, r13
mov ebp, ebx
mov r15, rax
imul r12, rbp
mov rax, r9
mov r14d, r10d
shl rax, 0x20
add r12, rax
cmp r12, rax
mov eax, 0
mov qword [rsp + 0x1b8], rbp
setb al
shr r15, 0x20
mov qword [rsp + 0x1c0], rax
mov rax, r15
imul r15, rbp
imul rax, r13
mov rbp, r15
shl rbp, 0x20
shr r9, 0x20
add r12, rbp
movsxd rbx, r10d
add rax, r9
xor r9d, r9d
cmp r12, rbp
setb r9b
dec r14d
lea r11, [rsp + rbx*8 + 0x930]
mov qword [r11 + 8], r12
mov r12, qword [rsp + 0x1e0]
cmovns r12, rbx
add rax, qword [rsp + 0x1c0]
shr r15, 0x20
add rax, r15
add rax, r9
lea r9, [rsp + rbx*8 + 0x7b0]
mov qword [r11], rax
mov qword [rsp + 0x1e0], r12
mov qword [r9], 0
mov rax, r13
test r14d, r14d
js 0x140411445
movsxd rbp, dword [rsp + 0x1e0]
neg rbp
dec rbp
neg rbp
dec rbp
cmp rbp, 2
jl 0x140414ff1
sub rbx, qword [rsp + 0x1e0]
lea r14, [rsp + rbx*8 + 0x930]
mov ebx, 1
and r14, 0xf
cmovne r14, rbx
lea r12, [r14 + 2]
cmp rbp, r12
jl 0x140414ff1
mov r12, qword [rsp + 0x1e0]
mov ebx, r14d
mov r13d, ebp
neg ebx
add ebx, r13d
and ebx, 1
lea r15, [r12*8]
mov r12, r9
sub r13d, ebx
sub r12, r15
neg r15
add r15, r11
xor ebx, ebx
movsxd r13, r13d
test r14, r14
jbe 0x140411403
mov qword [rsp + 0x2e8], rdx
xor edx, edx
mov qword [r12 + rbx*8], rdx
mov qword [r15 + rbx*8], rdx
inc rbx
cmp rbx, r14
jb 0x1404113eb
mov rdx, qword [rsp + 0x2e8]
movdqu xmmword [r12 + r14*8], xmm1
movdqu xmmword [r15 + r14*8], xmm1
add r14, 2
cmp r14, r13
jb 0x140411403
cmp r13, rbp
jae 0x140411445
mov rbx, qword [rsp + 0x1e0]
lea r12, [rbx*8]
xor ebx, ebx
sub r9, r12
sub r11, r12
mov qword [r9 + r13*8], rbx
mov qword [r11 + r13*8], rbx
inc r13
cmp r13, rbp
jb 0x140411435
xor r9d, r9d
lea r13, [r10 - 1]
movsxd r13, r13d
xor ebp, ebp
test r13, r13
je 0x140411585
mov qword [rsp + 0x258], r8
lea r14, [rsp + r13*8 + 0x930]
mov r12, qword [r14 + 8]
lea r11, [rsp + r13*8 + 0xbb0]
mov qword [rsp + 0x298], r10
lea rbx, [rsp + r13*8 + 0x7b0]
mov qword [rsp + 0x148], rcx
xor r10d, r10d
mov qword [rsp + 0x288], rsi
mov qword [rsp + 0x2e0], rdi
mov qword [rsp + 0x2e8], rdx
mov r8, qword [rsp + 0x1b8]
mov rdx, qword [r11 + rbp*8]
mov rsi, rax
mov edi, edx
mov r15, rdx
imul rsi, rdi
imul rdi, r8
mov rcx, rsi
mov edx, r10d
shl rcx, 0x20
inc r9
add rdi, rcx
shr r15, 0x20
cmp rdi, rcx
mov rcx, r8
setb dl
imul rcx, r15
imul r15, rax
shr rsi, 0x20
add r15, rsi
mov rsi, rcx
shl rsi, 0x20
add rdi, rsi
cmp rdi, rsi
mov esi, r10d
setb sil
add r12, rdi
cmp r12, rdi
mov edi, r10d
mov qword [r14 + rbp*8 + 8], r12
mov r12d, r10d
setb r12b
shr rcx, 0x20
add rdx, rcx
add r15, rdx
add rsi, r12
add r15, rsi
mov r12, qword [r14 + rbp*8]
add r12, r15
cmp r12, r15
setb dil
add qword [rbx + rbp*8 - 8], rdi
dec rbp
cmp r9, r13
jb 0x1404114b1
shl r9, 3
neg r9
mov r10, qword [rsp + 0x298]
mov rcx, qword [rsp + 0x148]
mov rsi, qword [rsp + 0x288]
mov r8, qword [rsp + 0x258]
mov rdi, qword [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2e8]
mov qword [r9 + r14 + 8], r12
mov r9, qword [rsp + 0x1e8]
lea r14, [r10 + 1]
mov r11d, r10d
lea r13, [rsp + r10*8 + 0xbb8]
mov rbx, qword [rsp + r14*8 + 0x930]
xor eax, eax
mov qword [r13], rbx
add r9, rcx
test r11d, r11d
je 0x1404116ca
mov r15d, r11d
xor r12d, r12d
mov ebx, 1
xor ebp, ebp
shr r15d, 1
je 0x140411697
movsxd rbx, r10d
mov qword [rsp + 0x180], r15
mov qword [rsp + 0x288], rsi
mov qword [rsp + 0x2e0], rdi
lea r15, [rsp + rbx*8 + 0xbb0]
mov qword [rsp + 0x178], r15
lea r15, [rsp + rbx*8 + 0x930]
lea rbx, [rsp + rbx*8 + 0x7b0]
mov qword [rsp + 0x2e8], rdx
mov qword [rsp + 0x258], r8
xor r8d, r8d
mov rdi, r15
mov rsi, qword [rsp + 0x178]
mov rdx, qword [rsp + 0x180]
nop dword [rax]
add rax, qword [rbp + rbx]
inc r12
mov r15, qword [rbp + rdi]
add r15, rax
cmp r15, rax
mov eax, r8d
mov qword [rbp + rsi], r15
setb al
add rax, qword [rbp + rbx - 8]
mov r15, qword [rbp + rdi - 8]
add r15, rax
cmp r15, rax
mov eax, r8d
mov qword [rbp + rsi - 8], r15
setb al
add rbp, 0xfffffffffffffff0
cmp r12, rdx
jb 0x140411630
mov rsi, qword [rsp + 0x288]
lea ebx, [r12 + r12 + 1]
mov r8, qword [rsp + 0x258]
mov rdi, qword [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2e8]
lea ebp, [rbx - 1]
cmp ebp, r11d
jae 0x1404116c6
movsxd rbx, ebx
movsxd rbp, r10d
sub rbp, rbx
add rax, qword [rsp + rbp*8 + 0x7b8]
add rax, qword [rsp + rbp*8 + 0x938]
mov qword [rsp + rbp*8 + 0xbb8], rax
mov rbx, qword [r13]
jmp 0x1404116ca
mov rbx, qword [r13]
test rbx, rbx
jne 0x1404116e5
dec r14
lea r13, [rsp + r14*8 + 0xbb0]
cmp qword [r13], 0
je 0x1404116cf
lea r10, [r14 - 1]
mov rbp, qword [rsp + 0xbb8]
test rbp, rbp
jle 0x1404117c0
mov rax, qword [rsp + 0x1e8]
add rbp, rbp
mov qword [rsp + 0xbb8], rbp
lea r9, [rax + rcx - 1]
cmp r14, 2
jb 0x1404117c0
xor ecx, ecx
lea rax, [r14 - 1]
mov ebx, 1
shr rax, 1
je 0x140411790
nop dword [rax + rax]
movsxd r15, ecx
inc ecx
shl r15, 4
mov r12, qword [rsp + r15 + 0xbc0]
mov rbx, r12
shr rbx, 0x3f
add r12, r12
or rbp, rbx
mov qword [rsp + r15 + 0xbb8], rbp
mov rbp, qword [rsp + r15 + 0xbc8]
mov r11, rbp
shr r11, 0x3f
add rbp, rbp
or r12, r11
mov qword [rsp + r15 + 0xbc0], r12
cmp rcx, rax
jb 0x140411730
lea ebx, [rcx + rcx]
movsxd rcx, ecx
shl rcx, 4
movsxd rbx, ebx
inc rbx
mov qword [rsp + rcx + 0xbb8], rbp
dec rbx
lea rcx, [r14 - 1]
mov eax, ebx
cmp rax, rcx
jae 0x1404117c0
mov rcx, qword [rsp + rbx*8 + 0xbc0]
mov rax, rcx
shr rax, 0x3f
add rcx, rcx
or qword [rsp + rbx*8 + 0xbb8], rax
mov qword [rsp + rbx*8 + 0xbc0], rcx
cmp qword [r13], 0
cmovne r10, r14
cmp r10, 1
jb 0x14041490a
mov rax, qword [rsp + 0xbc0]
mov r10d, 1
shr rax, 0x3f
mov ebp, 8
mov rcx, qword [rsp + 0xbb8]
add rcx, rax
cmp rcx, rax
jae 0x140411820
movabs rcx, 0x8000000000000000
mov qword [rsp + 0xbb0], 0
inc r9
mov qword [rsp + 0xbb8], rcx
jmp 0x14041491a
mov qword [rsp + 0xbb8], rcx
test rcx, rcx
jne 0x140414fe4
add rbp, 0xfffffffffffffff8
dec r10
mov rcx, qword [rsp + rbp + 0xbb0]
test rcx, rcx
je 0x140411831
jmp 0x14041491a
mov eax, 0x80
movdqu xmmword [rsp + rax + 0x9a0], xmm1
movdqu xmmword [rsp + rax + 0x990], xmm1
movdqu xmmword [rsp + rax + 0x980], xmm1
movdqu xmmword [rsp + rax + 0x970], xmm1
sub rax, 0x40
jne 0x14041184f
xor ebx, ebx
mov eax, 2
cmp qword [rsp + 0x2d0], 0xfffffffffffffdea
jge 0x1404121ff
mov r14, rdi
xor r10d, r10d
shr r14, 6
mov r11d, 0x1000
xor ebp, ebp
mov r9d, 6
cmp qword [rsp + 0x2d0], 0xfffffffffffff000
lea r13, [r14 - 1]
lea r12, [rsp + r14*8 + 0x9b0]
jle 0x140411921
mov dword [rsp + 0x268], r11d
mov qword [rsp + 0x250], rax
mov qword [rsp + 0x260], r10
mov qword [rsp + 0x270], r12
mov qword [rsp + 0x278], r13
mov qword [rsp + 0x280], r14
mov qword [rsp + 0x288], rsi
mov qword [rsp + 0x258], r8
mov qword [rsp + 0x2e0], rdi
mov qword [rsp + 0x2e8], rdx
mov r11, qword [rsp + 0x248]
jmp 0x140412188
mov dword [rsp + 0x268], r11d
mov qword [rsp + 0x250], rax
mov qword [rsp + 0x260], r10
mov qword [rsp + 0x270], r12
mov qword [rsp + 0x278], r13
mov qword [rsp + 0x280], r14
mov qword [rsp + 0x288], rsi
mov qword [rsp + 0x258], r8
mov qword [rsp + 0x2e0], rdi
mov qword [rsp + 0x2e8], rdx
mov r11, qword [rsp + 0x248]
movsxd rax, dword [rsp + 0x268]
add rcx, rax
test rbx, rbx
je 0x140412153
lea rdi, [0x140000000]
xor r14d, r14d
mov r8, qword [rsp + rbx*8 + 0x9b0]
mov rdx, r8
mov eax, r8d
mov r10, rax
movsx r12, word [rdi + r9 + 0x5a091e]
mov qword [rsp + 0x198], r12
mov r12, qword [rdi + rbp + 0x5a0638]
mov rdi, qword [rdi + rbp + 0x5a0630]
mov r13, rdi
shr r13, 0x20
imul r10, r13
mov qword [rsp + 0x248], r11
mov r11, rax
mov r15d, edi
mov rsi, r10
imul r11, r15
shl rsi, 0x20
shr rdx, 0x20
add r11, rsi
cmp r11, rsi
mov rsi, rdx
mov qword [rsp + 0x410], r15
mov qword [rsp + 0x190], r9
lea r9, [rbx + 1]
mov qword [rsp + 0x8c0], rdi
setb r14b
imul rsi, r13
imul r15, rdx
shr r10, 0x20
movsxd rdi, r9d
add rsi, r10
mov r10, r15
shl r10, 0x20
add r11, r10
lea r8, [rsp + rdi*8 + 0x730]
cmp r11, r10
lea r10, [rsp + rdi*8 + 0x6b0]
mov qword [r8 + 8], r11
mov r11d, 0
mov qword [rsp + 0x8b8], r12
mov qword [r10], r11
mov qword [r10 - 8], r11
mov r11d, r12d
mov qword [rsp + 0x420], r11
mov qword [rsp + 0x418], r13
mov r13d, 0
setb r13b
add rsi, r14
shr r12, 0x20
mov r14, rax
imul r14, r12
imul rax, r11
imul r11, rdx
imul rdx, r12
shr r15, 0x20
add rsi, r15
mov r15, r14
shr r14, 0x20
shl r15, 0x20
add rdx, r14
mov r14, r11
add rax, r15
shl r14, 0x20
add rsi, r13
xor r13d, r13d
cmp rax, r15
setb r13b
xor r15d, r15d
add rax, r14
cmp rax, r14
setb r15b
add rsi, rax
cmp rsi, rax
mov eax, 0
setb al
shr r11, 0x20
add r13, r11
add rdx, r13
add r15, rax
add rdx, r15
mov qword [r8], rsi
add r9d, 0xfffffffe
mov qword [r8 - 8], rdx
mov r11, qword [rsp + 0x248]
mov r9, qword [rsp + 0x190]
js 0x140411be0
lea rax, [rdi - 1]
movsxd rdx, eax
neg rdx
dec rdx
neg rdx
dec rdx
cmp rdx, 2
jl 0x140415070
sub rdi, rax
mov esi, 1
lea r15, [rsp + rdi*8 + 0x728]
and r15, 0xf
cmovne r15, rsi
lea rdi, [r15 + 2]
cmp rdx, rdi
jl 0x140415070
mov esi, r15d
mov r14d, edx
neg esi
lea r13, [rax*8]
add esi, r14d
mov rdi, r10
and esi, 1
sub rdi, r13
neg r13
sub r14d, esi
add r13, r8
xor esi, esi
movsxd r14, r14d
test r15, r15
jbe 0x140411ba6
mov qword [rsp + 0x188], rbx
xor ebx, ebx
mov qword [rdi + rsi*8 - 8], rbx
mov qword [r13 + rsi*8 - 8], rbx
inc rsi
cmp rsi, r15
jb 0x140411b8c
mov rbx, qword [rsp + 0x188]
movdqu xmmword [rdi + r15*8 - 8], xmm1
movdqu xmmword [r13 + r15*8 - 8], xmm1
add r15, 2
cmp r15, r14
jb 0x140411ba6
cmp r14, rdx
jae 0x140411be0
shl rax, 3
sub r10, rax
sub r8, rax
xor eax, eax
mov qword [r10 + r14*8 - 8], rax
mov qword [r8 + r14*8 - 8], rax
inc r14
cmp r14, rdx
jb 0x140411bce
xor r14d, r14d
lea rax, [rbx - 1]
mov r15d, eax
xor r8d, r8d
test r15d, r15d
je 0x140411e37
movsxd r13, eax
mov qword [rsp + 0x430], r13
mov qword [rsp + 0x248], r11
mov dword [rsp + 0x100], r15d
mov qword [rsp + 0x438], r12
lea r10, [rsp + r13*8 + 0x730]
mov rdi, qword [r10 + 8]
lea rdx, [rsp + r13*8 + 0x6b0]
mov rsi, qword [r10 + 0x10]
lea r13, [rsp + r13*8 + 0x9b0]
mov rax, qword [rdx]
mov qword [rsp + 0x428], r13
mov qword [rsp + 0x190], r9
mov qword [rsp + 0x160], rbp
mov qword [rsp + 0x158], rcx
mov qword [rsp + 0x188], rbx
mov r9, qword [rsp + 0x428]
inc r14
mov rbp, qword [rsp + 0x418]
mov rbx, rbp
mov qword [rsp + 0x440], r14
xor r13d, r13d
mov r11, qword [r9 + r8*8]
mov r9, r11
mov r11d, r11d
imul rbx, r11
mov r14, qword [rsp + 0x410]
mov r12, r14
imul r12, r11
shr r9, 0x20
mov rcx, rbx
imul r14, r9
imul rbp, r9
shl rcx, 0x20
mov r15, r14
add r12, rcx
cmp r12, rcx
mov ecx, r13d
setb cl
shr rbx, 0x20
add rbp, rbx
shr r14, 0x20
shl r15, 0x20
add rcx, r14
add r12, r15
add rbp, rcx
mov rcx, qword [rsp + 0x438]
mov rbx, rcx
cmp r12, r15
mov r15d, r13d
setb r15b
xor r14d, r14d
add rsi, r12
imul rbx, r11
cmp rsi, r12
mov r12, qword [rsp + 0x420]
mov qword [r10 + r8*8 + 0x10], rsi
mov esi, r13d
setb sil
imul r11, r12
imul r12, r9
imul r9, rcx
xor ecx, ecx
add r15, rsi
mov rsi, rbx
add rbp, r15
add rdi, rbp
cmp rdi, rbp
setb r14b
shl rsi, 0x20
add r11, rsi
add rax, r14
xor r14d, r14d
cmp r11, rsi
mov rsi, r12
setb r14b
shl rsi, 0x20
add r11, rsi
cmp r11, rsi
setb cl
shr rbx, 0x20
lea rsi, [r11 + rdi]
xor edi, edi
cmp rsi, r11
setb dil
add r9, rbx
shr r12, 0x20
add r14, r12
add r9, r14
add rcx, rdi
add r9, rcx
mov rdi, qword [r10 + r8*8]
add rdi, r9
cmp rdi, r9
nop
mov qword [rdx + r8*8], rax
setb r13b
mov eax, r13d
mov r14, qword [rsp + 0x440]
add rax, qword [rdx + r8*8 - 8]
dec r8
cmp r14, qword [rsp + 0x430]
jb 0x140411c64
shl r14, 3
sub rdx, r14
sub r10, r14
mov r15d, dword [rsp + 0x100]
mov r11, qword [rsp + 0x248]
mov r9, qword [rsp + 0x190]
mov qword [rdx], rax
mov eax, r15d
xor edx, edx
mov rbp, qword [rsp + 0x160]
mov rcx, qword [rsp + 0x158]
mov rbx, qword [rsp + 0x188]
mov qword [r10 + 8], rdi
mov qword [r10 + 0x10], rsi
mov esi, 1
shr eax, 3
je 0x140411e10
inc edx
cmp edx, eax
jb 0x140411e03
lea esi, [rdx*8 + 1]
cmp esi, r15d
ja 0x140411e37
dec esi
lea rdx, [0x140000000]
sub r15d, esi
dec r15d
movzx eax, byte [rdx + r15 + 0x5a0220]
lea rax, [rdx + rax + 0x411e37]
jmp rax
add r11, qword [rsp + 0x198]
lea r14, [rbx + 1]
mov r12d, r14d
lea r13, [rbx + 2]
mov rax, qword [rsp + r13*8 + 0x730]
lea r15, [rsp + rbx*8 + 0x9c0]
mov qword [r15], rax
xor r8d, r8d
test r12d, r12d
je 0x140411f5f
mov esi, r12d
xor r10d, r10d
mov eax, 1
xor edi, edi
shr esi, 1
je 0x140411f2e
movsxd rax, r14d
mov qword [rsp + 0x158], rcx
mov qword [rsp + 0x160], rbp
mov qword [rsp + 0x188], rbx
lea rdx, [rsp + rax*8 + 0x9b0]
mov qword [rsp + 0x150], rdx
lea rdx, [rsp + rax*8 + 0x730]
mov rcx, qword [rsp + 0x150]
lea rax, [rsp + rax*8 + 0x6b0]
xor ebx, ebx
nop dword [rax + rax]
nop dword [rax + rax]
add r8, qword [rdi + rax]
inc r10
mov rbp, qword [rdi + rdx]
add rbp, r8
cmp rbp, r8
mov r8d, ebx
mov qword [rdi + rcx], rbp
setb r8b
add r8, qword [rdi + rax - 8]
mov rbp, qword [rdi + rdx - 8]
add rbp, r8
cmp rbp, r8
mov r8d, ebx
mov qword [rdi + rcx - 8], rbp
setb r8b
add rdi, 0xfffffffffffffff0
cmp r10, rsi
jb 0x140411ed0
mov rbp, qword [rsp + 0x160]
lea eax, [r10 + r10 + 1]
mov rcx, qword [rsp + 0x158]
mov rbx, qword [rsp + 0x188]
lea edx, [rax - 1]
cmp edx, r12d
jae 0x140411f5c
movsxd rax, eax
movsxd rdx, r14d
sub rdx, rax
add r8, qword [rsp + rdx*8 + 0x6b8]
add r8, qword [rsp + rdx*8 + 0x738]
mov qword [rsp + rdx*8 + 0x9b8], r8
mov rax, qword [r15]
jmp 0x140411f5f
mov rax, qword [r15]
test rax, rax
jne 0x140411f8a
xor edx, edx
xor eax, eax
add rax, 0xfffffffffffffff8
inc rdx
cmp qword [rax + r15], 0
je 0x140411f68
neg rdx
lea r13, [rdx + rbx + 2]
lea r15, [rsp + r13*8 + 0x9b0]
lea r14, [r13 - 1]
mov rbx, qword [rsp + 0x9b8]
test rbx, rbx
jle 0x140412060
add rbx, rbx
dec r11
mov qword [rsp + 0x9b8], rbx
cmp r13, 2
jb 0x140412060
xor edx, edx
lea rax, [r13 - 1]
mov esi, 1
shr rax, 1
je 0x140412030
nop dword [rax + rax]
nop dword [rax + rax]
movsxd r10, edx
inc edx
shl r10, 4
mov r8, qword [rsp + r10 + 0x9c0]
mov rsi, r8
shr rsi, 0x3f
add r8, r8
or rbx, rsi
mov qword [rsp + r10 + 0x9b8], rbx
mov rbx, qword [rsp + r10 + 0x9c8]
mov rdi, rbx
shr rdi, 0x3f
add rbx, rbx
or r8, rdi
mov qword [rsp + r10 + 0x9c0], r8
cmp rdx, rax
jb 0x140411fd0
lea esi, [rdx + rdx]
movsxd rdx, edx
shl rdx, 4
movsxd rsi, esi
inc rsi
mov qword [rsp + rdx + 0x9b8], rbx
dec rsi
lea rdx, [r13 - 1]
mov eax, esi
cmp rax, rdx
jae 0x140412060
mov rdx, qword [rsp + rsi*8 + 0x9c0]
mov rax, rdx
shr rax, 0x3f
add rdx, rdx
or qword [rsp + rsi*8 + 0x9b8], rax
mov qword [rsp + rsi*8 + 0x9c0], rdx
cmp qword [r15], 0
mov rbx, r13
cmove rbx, r14
cmp rbx, qword [rsp + 0x280]
jb 0x140412188
mov rbx, qword [rsp + 0x280]
mov rax, rbx
mov rdx, qword [rsp + rax*8 + 0x9b8]
shr rdx, 0x3f
mov rsi, qword [rsp + rax*8 + 0x9b0]
add rsi, rdx
cmp rsi, rdx
jae 0x140412117
mov rbx, qword [rsp + 0x278]
mov qword [rsp + rax*8 + 0x9b0], rsi
lea rsi, [rsp + rax*8 + 0x9a8]
mov qword [rsp + 0x9b0], 0
cmp qword [rsi], 0xffffffffffffffff
jne 0x1404120ec
xor edx, edx
xor eax, eax
add rax, 0xfffffffffffffff8
inc rdx
cmp qword [rax + rsi], 0xffffffffffffffff
je 0x1404120ce
neg rdx
mov rax, qword [rsp + 0x280]
lea rbx, [rdx + rax - 1]
test rbx, rbx
jne 0x14041210d
movabs rax, 0x8000000000000000
inc r11
mov qword [rsp + 0x9b8], rax
mov ebx, 1
jmp 0x140412188
inc qword [rsp + rbx*8 + 0x9b0]
jmp 0x140412188
mov qword [rsp + rax*8 + 0x9b0], rsi
test rsi, rsi
jne 0x140412188
xor ebx, ebx
mov rdx, qword [rsp + 0x270]
xor eax, eax
add rax, 0xfffffffffffffff8
inc rbx
cmp qword [rax + rdx], 0
je 0x140412130
neg rbx
mov qword [rsp + 0x270], rdx
add rbx, qword [rsp + 0x280]
jmp 0x140412188
lea rdx, [0x140000000]
mov ebx, 2
mov rax, qword [rdx + rbp + 0x5a0638]
mov rsi, qword [rdx + rbp + 0x5a0630]
movsx r11, word [rdx + r9 + 0x5a091e]
mov qword [rsp + 0x9b8], rax
mov qword [rsp + 0x9c0], rsi
mov rdx, qword [rsp + 0x260]
mov esi, dword [rsp + 0x268]
inc rdx
add r9, 0xfffffffffffffffe
sar esi, 1
add rbp, 0xfffffffffffffff0
cmp rdx, 4
jae 0x1404121ca
mov eax, esi
neg eax
movsxd rax, eax
cmp rcx, rax
jg 0x140412197
mov qword [rsp + 0x260], rdx
mov dword [rsp + 0x268], esi
jmp 0x140411979
mov qword [rsp + 0x248], r11
mov rax, qword [rsp + 0x250]
mov rsi, qword [rsp + 0x288]
mov r8, qword [rsp + 0x258]
mov rdi, qword [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2e8]
jmp 0x140412bdb
cmp qword [rsp + 0x2d0], 0x216
jle 0x140412bdb
xor r10d, r10d
mov ebp, 0x1000
xor r12d, r12d
mov r11d, 6
xor r9d, r9d
cmp qword [rsp + 0x2d0], 0x1000
jge 0x140412254
mov qword [rsp + 0x258], r8
mov qword [rsp + 0x2e8], rdx
lea rdx, [0x140000000]
mov r8, qword [rsp + 0x248]
jmp 0x1404122a8
mov rcx, qword [rsp + 0x2d0]
mov qword [rsp + 0x258], r8
mov qword [rsp + 0x2e8], rdx
lea rdx, [0x140000000]
lea rcx, [rcx - 0x1000]
mov ebx, 2
mov r13, qword [rdx + r9 + 0x5a07b8]
mov r14, qword [rdx + r9 + 0x5a07b0]
movsx r8, word [rdx + r11 + 0x5a093a]
mov qword [rsp + 0x9b8], r13
mov qword [rsp + 0x9c0], r14
mov r15, rdi
shr r15, 6
mov qword [rsp + 0x250], rax
mov qword [rsp + 0x1b0], r15
mov qword [rsp + 0x248], r8
mov qword [rsp + 0x288], rsi
lea r14, [r15 - 1]
mov qword [rsp + 0x1a8], r14
lea r13, [rsp + r15*8 + 0x9b0]
mov qword [rsp + 0x1a0], r13
mov qword [rsp + 0x2e0], rdi
inc r10
add r11, 0xfffffffffffffffe
sar rbp, 1
add r12, 0xfffffffffffffffe
add r9, 0xfffffffffffffff0
cmp r10, 4
jae 0x140412bb3
cmp rcx, rbp
jl 0x1404122f3
sub rcx, rbp
test rbx, rbx
je 0x140414e08
lea rdi, [0x140000000]
xor r13d, r13d
mov rax, qword [rsp + rbx*8 + 0x9b0]
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x70], r11
mov rsi, qword [rdi + r9 + 0x5a07b0]
mov r11, rsi
movsx r8, word [rdi + r12 + 0x5a0940]
mov r12d, eax
shr r11, 0x20
mov r15, r12
imul r15, r11
mov qword [rsp + 0x60], r10
mov r10, r12
mov r14d, esi
mov rdx, r15
imul r10, r14
mov qword [rsp + 0x198], r8
mov qword [rsp + 0x78], r9
mov r8, qword [rdi + r9 + 0x5a07b8]
mov r9, rax
shr r9, 0x20
lea rax, [rbx + 1]
shl rdx, 0x20
mov qword [rsp + 0x330], r14
add r10, rdx
imul r14, r9
cmp r10, rdx
mov rdx, r9
mov qword [rsp + 0x8c0], rsi
movsxd rsi, eax
setb r13b
imul rdx, r11
mov qword [rsp + 0x340], r11
mov r11, r14
shr r15, 0x20
lea rdi, [rsp + rsi*8 + 0x530]
shl r11, 0x20
add rdx, r15
add r10, r11
mov qword [rsp + 0x8b8], r8
add rdx, r13
mov qword [rdi + 8], r10
cmp r10, r11
mov r10d, r8d
mov r13, r12
mov qword [rsp + 0x338], r10
mov r11d, 0
mov qword [rsp + 0x68], rsi
lea rsi, [rsp + rsi*8 + 0x4b0]
setb r11b
xor r15d, r15d
shr r8, 0x20
imul r13, r8
imul r12, r10
imul r10, r9
imul r9, r8
shr r14, 0x20
add rdx, r14
mov r14, r13
shr r13, 0x20
shl r14, 0x20
add r9, r13
mov r13, r10
add r12, r14
shl r13, 0x20
add rdx, r11
xor r11d, r11d
cmp r12, r14
setb r11b
xor r14d, r14d
add r12, r13
cmp r12, r13
setb r14b
add rdx, r12
cmp rdx, r12
mov r12d, 0
setb r12b
shr r10, 0x20
add r11, r10
add r9, r11
add r14, r12
add r9, r14
mov qword [rdi - 8], r9
add eax, 0xfffffffe
mov qword [rsi], r15
mov qword [rsi - 8], r15
mov qword [rdi], rdx
mov r11, qword [rsp + 0x70]
mov r9, qword [rsp + 0x78]
mov r12, qword [rsp + 0x58]
mov r10, qword [rsp + 0x60]
js 0x1404125f4
mov rax, qword [rsp + 0x68]
lea r14, [rax - 1]
movsxd r13, r14d
neg r13
dec r13
neg r13
dec r13
cmp r13, 2
jl 0x14041516a
mov rdx, rax
mov eax, 1
sub rdx, r14
lea rdx, [rsp + rdx*8 + 0x528]
and rdx, 0xf
cmovne rdx, rax
lea r15, [rdx + 2]
cmp r13, r15
jl 0x14041516a
mov eax, edx
mov r15d, r13d
neg eax
add eax, r15d
and eax, 1
sub r15d, eax
lea rax, [r14*8]
movsxd r15, r15d
mov qword [rsp + 0x90], r15
mov r15, rsi
sub r15, rax
neg rax
add rax, rdi
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], r15
test rdx, rdx
jbe 0x140412586
mov qword [rsp + 0x158], rcx
xor r15d, r15d
mov qword [rsp + 0x188], rbx
mov rcx, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x88]
mov qword [rbx + rcx*8 - 8], r15
mov qword [rax + rcx*8 - 8], r15
inc rcx
cmp rcx, rdx
jb 0x140412564
mov rcx, qword [rsp + 0x158]
mov rbx, qword [rsp + 0x188]
mov qword [rsp + 0x188], rbx
mov rbx, qword [rsp + 0x90]
mov r15, qword [rsp + 0x88]
movdqu xmmword [r15 + rdx*8 - 8], xmm1
movdqu xmmword [rax + rdx*8 - 8], xmm1
add rdx, 2
cmp rdx, rbx
jb 0x14041259e
mov qword [rsp + 0x90], rbx
mov rbx, qword [rsp + 0x188]
cmp r13, qword [rsp + 0x90]
jbe 0x1404125f4
shl r14, 3
xor edx, edx
mov rax, qword [rsp + 0x90]
sub rsi, r14
sub rdi, r14
mov qword [rsi + rax*8 - 8], rdx
mov qword [rdi + rax*8 - 8], rdx
inc rax
cmp rax, r13
jb 0x1404125e2
xor r13d, r13d
lea rax, [rbx - 1]
mov r14d, eax
test r14d, r14d
je 0x140412859
movsxd r15, eax
mov qword [rsp + 0x350], r15
mov qword [rsp + 0x70], r11
mov qword [rsp + 0x60], r10
mov dword [rsp + 0x28], r14d
lea rdi, [rsp + r15*8 + 0x530]
mov rax, qword [rdi + 8]
lea rdx, [rsp + r15*8 + 0x4b0]
mov qword [rsp + 0x20], rax
lea r15, [rsp + r15*8 + 0x9b0]
mov rsi, qword [rdi + 0x10]
mov rax, qword [rdx]
mov qword [rsp + 0x348], r15
mov qword [rsp + 0x358], r8
mov qword [rsp + 0x78], r9
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x158], rcx
mov qword [rsp + 0x188], rbx
mov r11, qword [rsp + 0x20]
mov r10, r13
mov r8, qword [rsp + 0x348]
inc r13
mov rbp, qword [rsp + 0x340]
mov rbx, rbp
mov qword [rsp + 0x360], r13
xor r14d, r14d
mov r9, qword [r8 + r10*8]
mov r8, r9
mov r9d, r9d
imul rbx, r9
mov r13, qword [rsp + 0x330]
mov r12, r13
imul r12, r9
shr r8, 0x20
mov rcx, rbx
imul r13, r8
imul rbp, r8
shl rcx, 0x20
mov r15, r13
add r12, rcx
cmp r12, rcx
mov ecx, r14d
setb cl
shr rbx, 0x20
add rbp, rbx
shr r13, 0x20
shl r15, 0x20
add rcx, r13
add r12, r15
add rbp, rcx
mov rcx, qword [rsp + 0x358]
mov rbx, rcx
cmp r12, r15
mov r15d, r14d
setb r15b
xor r13d, r13d
add rsi, r12
imul rbx, r9
cmp rsi, r12
mov r12, qword [rsp + 0x338]
mov qword [rdi + r10*8 + 0x10], rsi
mov esi, r14d
setb sil
imul r9, r12
imul r12, r8
imul r8, rcx
xor ecx, ecx
add r15, rsi
mov rsi, rbx
add rbp, r15
add r11, rbp
cmp r11, rbp
setb r13b
shl rsi, 0x20
add r9, rsi
add rax, r13
xor r13d, r13d
cmp r9, rsi
mov rsi, r12
setb r13b
shl rsi, 0x20
add r9, rsi
cmp r9, rsi
setb cl
shr rbx, 0x20
lea rsi, [r9 + r11]
xor r11d, r11d
cmp rsi, r9
setb r11b
add r8, rbx
shr r12, 0x20
add r13, r12
add r8, r13
add rcx, r11
add r8, rcx
mov r11, qword [rdi + r10*8]
add r11, r8
cmp r11, r8
mov qword [rdx + r10*8], rax
setb r14b
mov eax, r14d
mov r13, qword [rsp + 0x360]
add rax, qword [rdx + r10*8 - 8]
dec r10
cmp r13, qword [rsp + 0x350]
jb 0x140412680
shl r13, 3
sub rdx, r13
sub rdi, r13
mov qword [rsp + 0x20], r11
mov r14d, dword [rsp + 0x28]
mov r8, r11
mov qword [rdx], rax
mov eax, r14d
xor edx, edx
mov r11, qword [rsp + 0x70]
mov r9, qword [rsp + 0x78]
mov r12, qword [rsp + 0x58]
mov r10, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x158]
mov rbx, qword [rsp + 0x188]
mov qword [rdi + 8], r8
mov qword [rdi + 0x10], rsi
mov esi, 1
shr eax, 3
je 0x140412832
inc edx
cmp edx, eax
jb 0x140412825
lea esi, [rdx*8 + 1]
cmp esi, r14d
ja 0x140412859
dec esi
lea rdx, [0x140000000]
sub r14d, esi
dec r14d
movzx eax, byte [rdx + r14 + 0x5a0228]
lea rax, [rdx + rax + 0x412859]
jmp rax
mov r8, qword [rsp + 0x248]
lea r14, [rbx + 1]
add r8, qword [rsp + 0x198]
mov edi, r14d
mov qword [rsp + 0x248], r8
lea r8, [rbx + 2]
mov rax, qword [rsp + r8*8 + 0x530]
lea r13, [rsp + rbx*8 + 0x9c0]
mov qword [r13], rax
xor esi, esi
test edi, edi
je 0x1404129a6
mov r15d, edi
xor edx, edx
mov eax, 1
shr r15d, 1
je 0x140412974
movsxd rax, r14d
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x60], r10
mov qword [rsp + 0x40], rbp
lea r15, [rsp + rax*8 + 0x9b0]
mov qword [rsp + 0x30], r15
lea r15, [rsp + rax*8 + 0x530]
lea rax, [rsp + rax*8 + 0x4b0]
mov qword [rsp + 0x158], rcx
mov qword [rsp + 0x188], rbx
mov qword [rsp + 0x58], r12
xor r12d, r12d
mov r10, r15
mov rbp, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
mov rcx, rdx
nop dword [rax + rax]
nop dword [rax]
add rsi, qword [rcx + rax]
inc rdx
mov r15, qword [rcx + r10]
add r15, rsi
cmp r15, rsi
mov esi, r12d
mov qword [rcx + rbp], r15
setb sil
add rsi, qword [rcx + rax - 8]
mov r15, qword [rcx + r10 - 8]
add r15, rsi
cmp r15, rsi
mov esi, r12d
mov qword [rcx + rbp - 8], r15
setb sil
add rcx, 0xfffffffffffffff0
cmp rdx, rbx
jb 0x140412910
mov r12, qword [rsp + 0x58]
lea eax, [rdx + rdx + 1]
mov r10, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x158]
mov rbx, qword [rsp + 0x188]
lea edx, [rax - 1]
cmp edx, edi
jae 0x1404129a2
movsxd rax, eax
movsxd rdx, r14d
sub rdx, rax
add rsi, qword [rsp + rdx*8 + 0x4b8]
add rsi, qword [rsp + rdx*8 + 0x538]
mov qword [rsp + rdx*8 + 0x9b8], rsi
mov rax, qword [r13]
jmp 0x1404129a6
mov rax, qword [r13]
test rax, rax
jne 0x1404129d1
xor edx, edx
xor eax, eax
add rax, 0xfffffffffffffff8
inc rdx
cmp qword [rax + r13], 0
je 0x1404129af
neg rdx
lea r8, [rdx + rbx + 2]
lea r13, [rsp + r8*8 + 0x9b0]
lea r14, [r8 - 1]
mov rdi, qword [rsp + 0x9b8]
test rdi, rdi
jle 0x140412aa0
dec qword [rsp + 0x248]
add rdi, rdi
mov qword [rsp + 0x9b8], rdi
cmp r8, 2
jb 0x140412aa0
xor esi, esi
lea rbx, [r8 - 1]
mov eax, 1
shr rbx, 1
je 0x140412a70
nop
movsxd rax, esi
inc esi
shl rax, 4
mov rdx, qword [rsp + rax + 0x9c0]
mov r15, rdx
shr r15, 0x3f
add rdx, rdx
or rdi, r15
mov qword [rsp + rax + 0x9b8], rdi
mov rdi, qword [rsp + rax + 0x9c8]
mov r15, rdi
shr r15, 0x3f
add rdi, rdi
or rdx, r15
mov qword [rsp + rax + 0x9c0], rdx
cmp rsi, rbx
jb 0x140412a10
lea eax, [rsi + rsi]
movsxd rsi, esi
shl rsi, 4
movsxd rax, eax
inc rax
mov qword [rsp + rsi + 0x9b8], rdi
dec rax
lea rbx, [r8 - 1]
mov edx, eax
cmp rdx, rbx
jae 0x140412aa0
mov rbx, qword [rsp + rax*8 + 0x9c0]
mov rdx, rbx
shr rdx, 0x3f
add rbx, rbx
or qword [rsp + rax*8 + 0x9b8], rdx
mov qword [rsp + rax*8 + 0x9c0], rbx
cmp qword [r13], 0
mov rbx, r8
cmove rbx, r14
cmp rbx, qword [rsp + 0x1b0]
jb 0x140412b97
mov rbx, qword [rsp + 0x1b0]
mov rax, rbx
mov rdx, qword [rsp + rax*8 + 0x9b8]
shr rdx, 0x3f
mov rsi, qword [rsp + rax*8 + 0x9b0]
add rsi, rdx
cmp rsi, rdx
jae 0x140412b5d
mov rbx, qword [rsp + 0x1a8]
mov qword [rsp + rax*8 + 0x9b0], rsi
lea rsi, [rsp + rax*8 + 0x9a8]
mov qword [rsp + 0x9b0], 0
cmp qword [rsi], 0xffffffffffffffff
jne 0x140412b2d
xor edx, edx
xor eax, eax
add rax, 0xfffffffffffffff8
inc rdx
cmp qword [rax + rsi], 0xffffffffffffffff
je 0x140412b0f
neg rdx
mov rax, qword [rsp + 0x1b0]
lea rbx, [rdx + rax - 1]
test rbx, rbx
je 0x140412b3c
inc qword [rsp + rbx*8 + 0x9b0]
jmp 0x140412b97
movabs rax, 0x8000000000000000
mov ebx, 1
inc qword [rsp + 0x248]
mov qword [rsp + 0x9b8], rax
jmp 0x140412b97
mov qword [rsp + rax*8 + 0x9b0], rsi
test rsi, rsi
jne 0x140412b97
xor ebx, ebx
mov rdx, qword [rsp + 0x1a0]
xor eax, eax
add rax, 0xfffffffffffffff8
inc rbx
cmp qword [rax + rdx], 0
je 0x140412b76
neg rbx
mov qword [rsp + 0x1a0], rdx
add rbx, qword [rsp + 0x1b0]
inc r10
add r11, 0xfffffffffffffffe
sar rbp, 1
add r12, 0xfffffffffffffffe
add r9, 0xfffffffffffffff0
cmp r10, 4
jb 0x14041230f
mov rax, qword [rsp + 0x250]
mov rsi, qword [rsp + 0x288]
mov r8, qword [rsp + 0x258]
mov rdi, qword [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2e8]
lea rbp, [rcx + 0x1b]
cmp rbp, 0x1a
ja 0x140412c46
lea rbp, [0x140000000]
mov r10d, 2
movsx r9, word [rbp + rcx*2 + 0x5a091e]
shl rcx, 4
mov rax, qword [rbp + rcx + 0x5a05f8]
mov rcx, qword [rbp + rcx + 0x5a05f0]
mov ebp, 0x10
mov qword [rsp + 0xbb8], rax
mov qword [rsp + 0xbc0], rcx
test rcx, rcx
jne 0x140415078
add rbp, 0xfffffffffffffff8
dec r10
mov rcx, qword [rsp + rbp + 0xbb0]
test rcx, rcx
je 0x140412c2d
jmp 0x14041407d
mov ebp, 0x80
movdqu xmmword [rsp + rbp + 0xa20], xmm1
movdqu xmmword [rsp + rbp + 0xa10], xmm1
movdqu xmmword [rsp + rbp + 0xa00], xmm1
movdqu xmmword [rsp + rbp + 0x9f0], xmm1
sub rbp, 0x40
jne 0x140412c4b
test rcx, rcx
jl 0x1404150e7
cmp rcx, 0x37
jl 0x140412cfe
mov r9, rcx
lea rbp, [0x140000000]
shr r9, 3
movsxd r13, r9d
movzx r10d, word [rbp + r13*2 + 0x5a0862]
lea r12, [r13 + 1]
shr r10d, 5
cmp r10, rcx
cmovle r13, r12
movzx r15d, word [rbp + r13*2 + 0x5a0860]
mov r14d, r15d
and r14d, 0x1f
movsx r9, word [rbp + r14*2 + 0x5a0942]
shl r14, 4
shr r15d, 5
sub rcx, r15
movsxd rcx, ecx
mov r10, qword [rbp + r14 + 0x5a07c8]
mov rbp, qword [rbp + r14 + 0x5a07c0]
mov qword [rsp + 0x198], r9
mov qword [rsp + 0x8b8], r10
mov qword [rsp + 0x8c0], rbp
jmp 0x140412d03
movsxd rcx, ecx
xor eax, eax
cmp rcx, 0x37
je 0x1404150b1
mov r12, rcx
add r12, 0xffffffffffffffe5
jle 0x140412d5c
lea r9, [0x140000000]
mov ecx, 0x1b
mov r11d, 1
movsx rbp, word [r9 + r12*2 + 0x5a0cbe]
mov r10, qword [r9 + r12*8 + 0x5a0ad8]
mov qword [rsp + 0x110], rbp
mov qword [rsp + 0xa38], r10
test r10, r10
jne 0x140412d5c
dec r11
cmp qword [rsp + r11*8 + 0xa30], 0
je 0x140412d4e
lea rbp, [0x140000000]
mov r10d, 1
movsx r9, word [rbp + rcx*2 + 0x5a0cbe]
mov rcx, qword [rbp + rcx*8 + 0x5a0ad8]
mov ebp, 8
mov qword [rsp + 0xbb8], rcx
test rcx, rcx
jne 0x1404150a4
add rbp, 0xfffffffffffffff8
dec r10
mov rcx, qword [rsp + rbp + 0xbb0]
test rcx, rcx
je 0x140412d90
test r12, r12
jle 0x140413746
mov r14, qword [rsp + r11*8 + 0xa30]
lea r12, [r11 + r10 - 1]
mov dword [rsp + 0x140], r12d
mov rbp, rcx
movsxd r13, r12d
mov r12, r14
mov ecx, ecx
mov qword [rsp + 0x290], r9
mov r9, rcx
shr r12, 0x20
imul r9, r12
mov r15d, r14d
mov r14, r9
shr rbp, 0x20
mov qword [rsp + 0x128], rcx
imul rcx, r15
imul r15, rbp
imul r12, rbp
shl r14, 0x20
shr r9, 0x20
add rcx, r14
mov qword [rsp + 0x118], rbp
mov rbp, r15
add r12, r9
xor r9d, r9d
cmp rcx, r14
mov r14d, 0
setb r9b
shl rbp, 0x20
add rcx, rbp
cmp rcx, rbp
setb r14b
xor ebp, ebp
add r12, r9
shr r15, 0x20
add r12, r15
mov qword [rsp + 0x138], r13
lea r15, [r11 - 1]
add r12, r14
lea r13, [rsp + r13*8 + 0xcb0]
movsxd r14, r15d
mov qword [r13 + 8], rcx
mov qword [r13], r12
mov r15d, dword [rsp + 0x140]
mov rcx, qword [rsp + 0x138]
mov r9, qword [rsp + 0x290]
test r14, r14
je 0x140412ffc
mov qword [rsp + 0x290], r9
lea r15, [rsp + rcx*8 + 0x630]
mov qword [rsp + 0xf0], r15
lea r15, [rsp + r14*8 + 0xa30]
mov qword [rsp + 0x298], r10
mov qword [rsp + 0x288], rsi
mov qword [rsp + 0x258], r8
mov qword [rsp + 0x2e0], rdi
mov qword [rsp + 0x138], rcx
mov qword [rsp + 0x250], rax
mov qword [rsp + 0xe8], r11
mov qword [rsp + 0x188], rbx
xor ebx, ebx
mov qword [rsp + 0x2e8], rdx
mov r8, r15
mov r9, qword [rsp + 0xf0]
mov rdi, rbp
mov r10, qword [rsp + 0x128]
mov rsi, qword [rsp + 0x118]
mov r15, qword [r8 + rdi*8]
mov r11, r15
shr r11, 0x20
mov rax, r10
imul rax, r11
imul r11, rsi
mov ecx, r15d
mov rdx, r10
imul rdx, rcx
imul rcx, rsi
mov r15, rax
inc rbp
shl r15, 0x20
shr rax, 0x20
add rdx, r15
add r11, 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 r12, rdx
cmp r12, rdx
mov edx, ebx
mov qword [r13 + rdi*8], r12
setb dl
shr rcx, 0x20
mov r12d, r15d
add rax, rcx
add r11, rax
add r12, rdx
mov qword [r9 + rdi*8], 0
add r12, r11
dec rdi
cmp rbp, r14
jb 0x140412f0c
mov rcx, qword [rsp + 0x138]
mov r15d, ecx
sub r15d, ebp
shl rbp, 3
neg rbp
mov r9, qword [rsp + 0x290]
mov r10, qword [rsp + 0x298]
mov rax, qword [rsp + 0x250]
mov r11, qword [rsp + 0xe8]
mov rbx, qword [rsp + 0x188]
mov rsi, qword [rsp + 0x288]
mov r8, qword [rsp + 0x258]
mov rdi, qword [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2e8]
mov qword [rbp + r13], r12
movsxd rcx, r15d
mov r12, qword [rsp + 0x108]
lea r13, [rcx - 1]
movsxd rbp, r13d
inc rbp
dec r15d
mov qword [rsp + rcx*8 + 0x630], 0
cmovns r12, rbp
mov qword [rsp + 0x108], r12
js 0x14041316d
movsxd rbp, dword [rsp + 0x108]
neg rbp
dec rbp
neg rbp
dec rbp
cmp rbp, 2
jl 0x14041509c
sub r13, qword [rsp + 0x108]
mov r12d, 1
lea r15, [rsp + r13*8 + 0xcb8]
and r15, 0xf
cmovne r15, r12
lea r13, [r15 + 2]
cmp rbp, r13
jl 0x14041509c
mov r13d, r15d
mov r12d, ebp
neg r13d
mov r14, qword [rsp + 0x108]
add r13d, r12d
and r13d, 1
sub r12d, r13d
lea r13, [rsp + rcx*8 + 0x628]
movsxd r12, r12d
shl r14, 3
sub r13, r14
mov qword [rsp + 0x130], r13
lea r13, [rsp + rcx*8 + 0xca8]
sub r13, r14
mov qword [rsp + 0x120], 0
test r15, r15
jbe 0x14041310e
mov qword [rsp + 0x2e0], rdi
xor r14d, r14d
mov qword [rsp + 0x2e8], rdx
mov rdx, qword [rsp + 0x120]
mov rdi, qword [rsp + 0x130]
mov qword [rdi + rdx*8 + 8], r14
mov qword [r13 + rdx*8 + 8], r14
inc rdx
cmp rdx, r15
jb 0x1404130ec
mov rdi, qword [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2e8]
mov r14, qword [rsp + 0x130]
movdqu xmmword [r14 + r15*8 + 8], xmm1
movdqu xmmword [r13 + r15*8 + 8], xmm1
add r15, 2
cmp r15, r12
jb 0x140413116
cmp r12, rbp
jae 0x14041316d
mov r13, qword [rsp + 0x108]
lea r14, [r13*8]
lea r13, [rsp + rcx*8 + 0x628]
sub r13, r14
lea rcx, [rsp + rcx*8 + 0xca8]
sub rcx, r14
xor r14d, r14d
mov qword [r13 + r12*8 + 8], r14
mov qword [rcx + r12*8 + 8], r14
inc r12
cmp r12, rbp
jb 0x14041315b
xor r12d, r12d
lea r14, [r10 - 1]
movsxd r14, r14d
xor ebp, ebp
test r14, r14
je 0x1404133f8
movsxd r13, r11d
lea r15, [rsp + r14*8 + 0xbb0]
mov qword [rsp + 0x3b8], r15
lea r15, [rsp + r14*8 + 0x630]
mov qword [rsp + 0x3f0], r15
lea r15, [rsp + r14*8 + 0xcb0]
mov qword [rsp + 0x3e8], r15
mov qword [rsp + 0x408], r14
lea r15, [r13*8]
mov qword [rsp + 0x3e0], r15
lea r15, [rsp + r13*8 + 0xa30]
mov qword [rsp + 0x3d8], r15
lea rcx, [r14 + r13]
mov qword [rsp + 0x290], r9
xor r15d, r15d
mov qword [rsp + 0x298], r10
mov qword [rsp + 0x250], rax
mov qword [rsp + 0xe8], r11
mov qword [rsp + 0x188], rbx
mov qword [rsp + 0x288], rsi
mov qword [rsp + 0x258], r8
mov qword [rsp + 0x2e0], rdi
mov qword [rsp + 0x2e8], rdx
mov r14, qword [rsp + 0x3b8]
mov rdi, r15
mov rax, rdi
test r13, r13
je 0x140413399
mov rbx, qword [r14 + rbp*8]
lea rsi, [r12*8]
mov r10d, ebx
mov r9, rbx
mov rbx, qword [rsp + 0x3e0]
sub rbx, rsi
neg rsi
mov rdx, qword [rsp + 0x3e8]
add rsi, rdx
mov r11, qword [rsp + 0x3f0]
mov r8, qword [rsp + rcx*8 + 0xcb0]
mov qword [rsp + 0x3d0], rcx
shr r9, 0x20
lea rsi, [rsi + r13*8]
mov qword [rsp + 0x3c8], rbp
add r11, rbx
mov qword [rsp + 0x3c0], r12
add rbx, rdx
mov rcx, qword [rsp + 0x3d8]
mov r12, qword [rcx + rax*8]
mov rdx, r12
dec rax
mov r15, r10
mov qword [rsp + 0x498], rax
mov rax, r10
shr rdx, 0x20
imul rax, rdx
imul rdx, r9
mov ebp, r12d
mov r14, rax
imul r15, rbp
imul rbp, r9
shl r14, 0x20
mov r12, rbp
shr rax, 0x20
add r15, r14
shl r12, 0x20
add rdx, rax
xor eax, eax
cmp r15, r14
mov r14d, eax
setb r14b
add r15, r12
cmp r15, r12
mov r12d, eax
setb r12b
add r8, r15
cmp r8, r15
mov r15d, eax
setb r15b
shr rbp, 0x20
add r14, rbp
add rdx, r14
add r12, r15
add rdx, r12
lea rbp, [rdi*8]
mov r12, rsi
inc rdi
sub r12, rbp
mov qword [r12], r8
mov r8, rbx
sub r8, rbp
neg rbp
add rbp, r11
mov r8, qword [r8 - 8]
add r8, rdx
cmp r8, rdx
setb al
add qword [rbp - 0x10], rax
mov rax, qword [rsp + 0x498]
cmp rdi, r13
jb 0x1404132ac
shl rdi, 3
xor r15d, r15d
sub rsi, rdi
mov r14, qword [rsp + 0x3b8]
mov rcx, qword [rsp + 0x3d0]
mov rbp, qword [rsp + 0x3c8]
mov r12, qword [rsp + 0x3c0]
mov qword [rsi], r8
inc r12
dec rcx
dec rbp
cmp r12, qword [rsp + 0x408]
jb 0x140413234
mov r9, qword [rsp + 0x290]
mov r10, qword [rsp + 0x298]
mov rax, qword [rsp + 0x250]
mov r11, qword [rsp + 0xe8]
mov rbx, qword [rsp + 0x188]
mov rsi, qword [rsp + 0x288]
mov r8, qword [rsp + 0x258]
mov rdi, qword [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2e8]
add r9, qword [rsp + 0x110]
lea rbp, [r10 + r11]
xor r13d, r13d
lea r10, [r10 + r11 - 1]
mov r14d, r10d
lea rcx, [rsp + rbp*8 + 0xbb0]
mov r11, qword [rcx + 0x100]
mov qword [rcx], r11
test r14d, r14d
je 0x140413550
mov r15d, r14d
xor r12d, r12d
mov r11d, 1
shr r15d, 1
je 0x14041351e
movsxd r11, r10d
mov qword [rsp + 0xd8], r15
mov qword [rsp + 0x188], rbx
mov qword [rsp + 0x288], rsi
lea r15, [rsp + r11*8 + 0xbb0]
mov qword [rsp + 0xe0], r15
lea r15, [rsp + r11*8 + 0xcb0]
lea r11, [rsp + r11*8 + 0x630]
mov qword [rsp + 0x2e0], rdi
mov qword [rsp + 0x2e8], rdx
mov qword [rsp + 0x258], r8
xor r8d, r8d
mov rdx, r15
mov rdi, qword [rsp + 0xe0]
mov rsi, qword [rsp + 0xd8]
mov rbx, r12
nop dword [rax + rax]
add r13, qword [rbx + r11]
inc r12
mov r15, qword [rbx + rdx]
add r15, r13
cmp r15, r13
mov r13d, r8d
mov qword [rbx + rdi], r15
setb r13b
add r13, qword [rbx + r11 - 8]
mov r15, qword [rbx + rdx - 8]
add r15, r13
cmp r15, r13
mov r13d, r8d
mov qword [rbx + rdi - 8], r15
setb r13b
add rbx, 0xfffffffffffffff0
cmp r12, rsi
jb 0x1404134b0
mov rbx, qword [rsp + 0x188]
lea r11d, [r12 + r12 + 1]
mov rsi, qword [rsp + 0x288]
mov r8, qword [rsp + 0x258]
mov rdi, qword [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2e8]
lea r12d, [r11 - 1]
cmp r12d, r14d
jae 0x14041354d
movsxd r11, r11d
movsxd r12, r10d
sub r12, r11
add r13, qword [rsp + r12*8 + 0x638]
add r13, qword [rsp + r12*8 + 0xcb8]
mov qword [rsp + r12*8 + 0xbb8], r13
mov r11, qword [rcx]
jmp 0x140413550
mov r11, qword [rcx]
test r11, r11
jne 0x14041356a
dec rbp
lea rcx, [rsp + rbp*8 + 0xbb0]
cmp qword [rcx], 0
je 0x140413555
lea r10, [rbp - 1]
mov r11, qword [rsp + 0xbb8]
test r11, r11
jle 0x14041365b
add r11, r11
dec r9
mov qword [rsp + 0xbb8], r11
cmp rbp, 2
jb 0x14041365b
xor r12d, r12d
lea r13, [rbp - 1]
mov r14d, 1
shr r13, 1
je 0x14041362a
mov qword [rsp + 0x2e8], rdx
nop dword [rax + rax]
nop dword [rax]
movsxd rdx, r12d
inc r12d
shl rdx, 4
mov r14, qword [rsp + rdx + 0xbc0]
mov r15, r14
shr r15, 0x3f
add r14, r14
or r11, r15
mov qword [rsp + rdx + 0xbb8], r11
mov r11, qword [rsp + rdx + 0xbc8]
mov r15, r11
shr r15, 0x3f
add r11, r11
or r14, r15
mov qword [rsp + rdx + 0xbc0], r14
cmp r12, r13
jb 0x1404135c0
mov rdx, qword [rsp + 0x2e8]
lea r14d, [r12 + r12]
movsxd r12, r12d
shl r12, 4
movsxd r14, r14d
inc r14
mov qword [rsp + r12 + 0xbb8], r11
dec r14
lea r12, [rbp - 1]
mov r11d, r14d
cmp r11, r12
jae 0x14041365b
mov r12, qword [rsp + r14*8 + 0xbc0]
mov r11, r12
shr r11, 0x3f
add r12, r12
or qword [rsp + r14*8 + 0xbb8], r11
mov qword [rsp + r14*8 + 0xbc0], r12
cmp qword [rcx], 0
mov r12, rdi
cmovne r10, rbp
shr r12, 6
cmp r10, r12
jb 0x140413736
mov r10, r12
lea rbp, [r12*8]
mov r11, qword [rsp + r12*8 + 0xbb8]
shr r11, 0x3f
mov rcx, qword [rsp + rbp + 0xbb0]
add rcx, r11
cmp rcx, r11
jae 0x140413713
mov qword [rsp + rbp + 0xbb0], rcx
lea r11, [rsp + r12*8 + 0xba8]
mov qword [rsp + 0xbb0], 0
lea r10, [r12 - 1]
mov rcx, qword [r11]
lea rbp, [r10*8]
cmp rcx, 0xffffffffffffffff
jne 0x1404136e4
add rbp, 0xfffffffffffffff8
dec r10
lea r11, [rsp + rbp + 0xbb0]
mov rcx, qword [r11]
cmp rcx, 0xffffffffffffffff
je 0x1404136cc
test r10, r10
je 0x1404136f1
inc rcx
mov qword [r11], rcx
jmp 0x140413746
movabs rcx, 0x8000000000000000
mov r10d, 1
mov qword [rsp + 0xbb8], rcx
inc r9
mov ebp, 8
jmp 0x140413746
mov qword [rsp + rbp + 0xbb0], rcx
test rcx, rcx
jne 0x140413746
add rbp, 0xfffffffffffffff8
dec r10
mov rcx, qword [rsp + rbp + 0xbb0]
test rcx, rcx
je 0x140413720
jmp 0x140413746
lea rbp, [r10*8]
mov rcx, qword [rsp + rbp + 0xbb0]
test rax, rax
je 0x14041407d
mov r15, qword [rsp + rax*8 + 0x8b0]
lea rbp, [r10 + rax - 1]
mov r12d, ecx
lea r11, [r10 + rax]
mov qword [rsp + 0xa8], r11
mov r13, r12
movsxd r11, ebp
mov rbp, rcx
mov rcx, r15
shr rcx, 0x20
imul r13, rcx
mov r15d, r15d
mov r14, r13
shr rbp, 0x20
mov qword [rsp + 0xc8], r12
imul r12, r15
imul r15, rbp
imul rcx, rbp
shl r14, 0x20
shr r13, 0x20
add r12, r14
mov qword [rsp + 0xb0], rbp
mov rbp, r15
add rcx, r13
xor r13d, r13d
cmp r12, r14
mov r14d, 0
setb r13b
shl rbp, 0x20
add r12, rbp
cmp r12, rbp
lea rbp, [rax - 1]
setb r14b
add rcx, r13
shr r15, 0x20
xor r13d, r13d
mov qword [rsp + 0xa0], r11
lea r11, [rsp + r11*8 + 0xc30]
add rcx, r15
mov qword [r11 + 8], r12
add rcx, r14
mov qword [r11], rcx
mov r14, qword [rsp + 0xa0]
mov r12, qword [rsp + 0xa8]
mov qword [rsp + 0xa8], r12
lea r15, [rsp + r14*8 + 0x5b0]
mov qword [rsp + 0x48], r15
lea r15, [rsp + rax*8 + 0x8a8]
mov qword [rsp + 0x290], r9
mov qword [rsp + 0x298], r10
mov qword [rsp + 0x258], r8
mov qword [rsp + 0x2e0], rdi
mov qword [rsp + 0xa0], r14
mov qword [rsp + 0x250], rax
mov qword [rsp + 0x188], rbx
mov qword [rsp + 0x288], rsi
xor esi, esi
mov qword [rsp + 0x2e8], rdx
mov r9, r15
mov r10, qword [rsp + 0x48]
mov r8, r13
mov r12, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xb0]
mov r15, qword [r9 + r8*8]
mov r14, r15
shr r14, 0x20
mov rax, r12
imul rax, r14
imul r14, rdi
mov ebx, r15d
mov rdx, r12
imul rdx, rbx
imul rbx, rdi
mov r15, rax
inc r13
shl r15, 0x20
shr rax, 0x20
add rdx, r15
add r14, rax
cmp rdx, r15
mov r15, rbx
mov eax, esi
setb al
shl r15, 0x20
add rdx, r15
cmp rdx, r15
mov r15d, esi
setb r15b
add rcx, rdx
cmp rcx, rdx
mov edx, esi
mov qword [r11 + r8*8], rcx
setb dl
shr rbx, 0x20
mov ecx, r15d
add rax, rbx
add r14, rax
add rcx, rdx
mov qword [r10 + r8*8], 0
add rcx, r14
dec r8
cmp r13, rbp
jb 0x140413891
mov r14, qword [rsp + 0xa0]
mov r12, qword [rsp + 0xa8]
sub r14d, r13d
shl r13, 3
neg r13
mov r9, qword [rsp + 0x290]
mov r10, qword [rsp + 0x298]
mov rax, qword [rsp + 0x250]
mov rbx, qword [rsp + 0x188]
mov rsi, qword [rsp + 0x288]
mov r8, qword [rsp + 0x258]
mov rdi, qword [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2e8]
mov qword [r13 + r11], rcx
movsxd rcx, r14d
mov r11, qword [rsp + 0x98]
lea r15, [rcx - 1]
movsxd rbp, r15d
inc rbp
dec r14d
mov qword [rsp + rcx*8 + 0x5b0], 0
cmovns r11, rbp
mov qword [rsp + 0x98], r11
js 0x140413b00
movsxd r13, dword [rsp + 0x98]
neg r13
dec r13
neg r13
dec r13
cmp r13, 2
jl 0x140415094
sub r15, qword [rsp + 0x98]
mov ebp, 1
lea r11, [rsp + r15*8 + 0xc38]
and r11, 0xf
cmovne r11, rbp
lea r14, [r11 + 2]
cmp r13, r14
jl 0x140415094
mov r15d, r11d
mov r14d, r13d
neg r15d
mov rbp, qword [rsp + 0x98]
add r15d, r14d
and r15d, 1
sub r14d, r15d
lea r15, [rsp + rcx*8 + 0x5a8]
movsxd r14, r14d
shl rbp, 3
sub r15, rbp
mov qword [rsp + 0xd0], r15
lea r15, [rsp + rcx*8 + 0xc28]
sub r15, rbp
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0xc0], r15
test r11, r11
jbe 0x140413a99
mov rbp, r15
mov qword [rsp + 0x2e0], rdi
xor r15d, r15d
mov qword [rsp + 0x2e8], rdx
mov rdx, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0xd0]
mov qword [rdi + rdx*8 + 8], r15
mov qword [rbp + rdx*8 + 8], r15
inc rdx
cmp rdx, r11
jb 0x140413a77
mov rdi, qword [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2e8]
mov rbp, qword [rsp + 0xc0]
mov r15, qword [rsp + 0xd0]
movdqu xmmword [r15 + r11*8 + 8], xmm1
movdqu xmmword [rbp + r11*8 + 8], xmm1
add r11, 2
cmp r11, r14
jb 0x140413aa9
cmp r14, r13
jae 0x140413b00
mov rbp, qword [rsp + 0x98]
lea r11, [rbp*8]
lea rbp, [rsp + rcx*8 + 0x5a8]
sub rbp, r11
lea rcx, [rsp + rcx*8 + 0xc28]
sub rcx, r11
xor r11d, r11d
mov qword [rbp + r14*8 + 8], r11
mov qword [rcx + r14*8 + 8], r11
inc r14
cmp r14, r13
jb 0x140413aee
xor ebp, ebp
lea r14, [r10 - 1]
movsxd r14, r14d
xor ecx, ecx
test r14, r14
je 0x140413d76
mov qword [rsp + 0x3a8], r14
lea r13, [rsp + r14*8 + 0xbb0]
mov qword [rsp + 0x368], r13
lea r13, [rsp + r14*8 + 0x5b0]
mov qword [rsp + 0x388], r13
lea r15, [rsp + r14*8 + 0xc30]
mov qword [rsp + 0x380], r15
lea r15, [rax*8]
mov qword [rsp + 0x378], r15
lea r15, [rsp + rax*8 + 0x8b0]
mov qword [rsp + 0x370], r15
lea r11, [r14 + rax]
mov qword [rsp + 0xa8], r12
xor r15d, r15d
mov qword [rsp + 0x290], r9
mov qword [rsp + 0x298], r10
mov qword [rsp + 0x188], rbx
mov qword [rsp + 0x288], rsi
mov qword [rsp + 0x258], r8
mov qword [rsp + 0x2e0], rdi
mov qword [rsp + 0x2e8], rdx
mov r14, qword [rsp + 0x368]
mov r8, r15
mov rdx, r8
test rax, rax
je 0x140413d1f
mov rsi, qword [r14 + rcx*8]
lea rdi, [rbp*8]
mov r12d, esi
mov r10, rsi
mov rsi, qword [rsp + 0x378]
sub rsi, rdi
neg rdi
mov rbx, qword [rsp + 0x380]
add rdi, rbx
mov r13, qword [rsp + 0x388]
mov r9, qword [rsp + r11*8 + 0xc30]
shr r10, 0x20
mov qword [rsp + 0x3a0], r11
lea rdi, [rdi + rax*8]
mov qword [rsp + 0x398], rcx
add r13, rsi
mov qword [rsp + 0x390], rbp
add rsi, rbx
mov rbx, qword [rsp + 0x370]
mov r11, qword [rbx + rdx*8]
mov rcx, r11
dec rdx
mov r15, r12
mov qword [rsp + 0x490], rdx
mov rdx, r12
shr rcx, 0x20
imul rdx, rcx
imul rcx, r10
mov ebp, r11d
mov r14, rdx
imul r15, rbp
imul rbp, r10
shl r14, 0x20
mov r11, rbp
shr rdx, 0x20
add r15, r14
shl r11, 0x20
add rcx, rdx
xor edx, edx
cmp r15, r14
mov r14d, edx
setb r14b
add r15, r11
cmp r15, r11
mov r11d, edx
setb r11b
add r9, r15
cmp r9, r15
mov r15d, edx
setb r15b
shr rbp, 0x20
add r14, rbp
add rcx, r14
add r11, r15
add rcx, r11
lea rbp, [r8*8]
mov r11, rdi
inc r8
sub r11, rbp
mov qword [r11], r9
mov r9, rsi
sub r9, rbp
neg rbp
add rbp, r13
mov r9, qword [r9 - 8]
add r9, rcx
cmp r9, rcx
setb dl
add qword [rbp - 0x10], rdx
mov rdx, qword [rsp + 0x490]
cmp r8, rax
jb 0x140413c33
shl r8, 3
xor r15d, r15d
sub rdi, r8
mov r14, qword [rsp + 0x368]
mov r11, qword [rsp + 0x3a0]
mov rcx, qword [rsp + 0x398]
mov rbp, qword [rsp + 0x390]
mov qword [rdi], r9
inc rbp
dec r11
dec rcx
cmp rbp, qword [rsp + 0x3a8]
jb 0x140413bbb
mov r12, qword [rsp + 0xa8]
mov r9, qword [rsp + 0x290]
mov r10, qword [rsp + 0x298]
mov rbx, qword [rsp + 0x188]
mov rsi, qword [rsp + 0x288]
mov r8, qword [rsp + 0x258]
mov rdi, qword [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2e8]
add r9, qword [rsp + 0x198]
lea r10, [r10 + rax - 1]
mov r11d, r10d
lea r14, [rsp + r12*8 + 0xbb0]
mov rax, qword [r14 + 0x80]
xor ebp, ebp
mov qword [r14], rax
test r11d, r11d
je 0x140413ea7
mov ecx, r11d
xor r13d, r13d
mov eax, 1
shr ecx, 1
je 0x140413e76
movsxd rax, r10d
mov qword [rsp + 0x288], rsi
mov qword [rsp + 0x2e0], rdi
mov qword [rsp + 0x2e8], rdx
lea r15, [rsp + rax*8 + 0xbb0]
mov qword [rsp + 0x50], r15
lea r15, [rsp + rax*8 + 0xc30]
lea rax, [rsp + rax*8 + 0x5b0]
mov qword [rsp + 0x258], r8
xor r8d, r8d
mov rdx, r15
mov rdi, qword [rsp + 0x50]
mov rsi, r13
nop dword [rax + rax]
nop dword [rax]
add rbp, qword [rsi + rax]
inc r13
mov r15, qword [rsi + rdx]
add r15, rbp
cmp r15, rbp
mov ebp, r8d
mov qword [rsi + rdi], r15
setb bpl
add rbp, qword [rsi + rax - 8]
mov r15, qword [rsi + rdx - 8]
add r15, rbp
cmp r15, rbp
mov ebp, r8d
mov qword [rsi + rdi - 8], r15
setb bpl
add rsi, 0xfffffffffffffff0
cmp r13, rcx
jb 0x140413e10
mov rsi, qword [rsp + 0x288]
lea eax, [r13 + r13 + 1]
mov r8, qword [rsp + 0x258]
mov rdi, qword [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2e8]
lea ecx, [rax - 1]
cmp ecx, r11d
jae 0x140413ea4
movsxd rax, eax
movsxd rcx, r10d
sub rcx, rax
add rbp, qword [rsp + rcx*8 + 0x5b8]
add rbp, qword [rsp + rcx*8 + 0xc38]
mov qword [rsp + rcx*8 + 0xbb8], rbp
mov rax, qword [r14]
jmp 0x140413ea7
mov rax, qword [r14]
test rax, rax
jne 0x140413ec2
dec r12
lea r14, [rsp + r12*8 + 0xbb0]
cmp qword [r14], 0
je 0x140413eac
lea r10, [r12 - 1]
mov rbp, qword [rsp + 0xbb8]
test rbp, rbp
jle 0x140413f93
add rbp, rbp
dec r9
mov qword [rsp + 0xbb8], rbp
cmp r12, 2
jb 0x140413f93
xor r11d, r11d
lea r13, [r12 - 1]
mov eax, 1
shr r13, 1
je 0x140413f62
nop dword [rax]
movsxd rax, r11d
inc r11d
shl rax, 4
mov rcx, qword [rsp + rax + 0xbc0]
mov r15, rcx
shr r15, 0x3f
add rcx, rcx
or rbp, r15
mov qword [rsp + rax + 0xbb8], rbp
mov rbp, qword [rsp + rax + 0xbc8]
mov r15, rbp
shr r15, 0x3f
add rbp, rbp
or rcx, r15
mov qword [rsp + rax + 0xbc0], rcx
cmp r11, r13
jb 0x140413f00
lea eax, [r11 + r11]
movsxd r11, r11d
shl r11, 4
movsxd rax, eax
inc rax
mov qword [rsp + r11 + 0xbb8], rbp
dec rax
lea rbp, [r12 - 1]
mov ecx, eax
cmp rcx, rbp
jae 0x140413f93
mov rbp, qword [rsp + rax*8 + 0xbc0]
mov rcx, rbp
shr rcx, 0x3f
add rbp, rbp
or qword [rsp + rax*8 + 0xbb8], rcx
mov qword [rsp + rax*8 + 0xbc0], rbp
cmp qword [r14], 0
mov r11, rdi
cmovne r10, r12
shr r11, 6
cmp r10, r11
jb 0x14041406d
mov r10, r11
lea rbp, [r11*8]
mov rax, qword [rsp + r11*8 + 0xbb8]
shr rax, 0x3f
mov rcx, qword [rsp + rbp + 0xbb0]
add rcx, rax
cmp rcx, rax
jae 0x14041404a
mov qword [rsp + rbp + 0xbb0], rcx
lea rax, [rsp + r11*8 + 0xba8]
mov qword [rsp + 0xbb0], 0
lea r10, [r11 - 1]
mov rcx, qword [rax]
lea rbp, [r10*8]
cmp rcx, 0xffffffffffffffff
jne 0x14041401b
add rbp, 0xfffffffffffffff8
dec r10
lea rax, [rsp + rbp + 0xbb0]
mov rcx, qword [rax]
cmp rcx, 0xffffffffffffffff
je 0x140414003
test r10, r10
je 0x140414028
inc rcx
mov qword [rax], rcx
jmp 0x14041407d
movabs rcx, 0x8000000000000000
inc r9
mov qword [rsp + 0xbb8], rcx
mov r10d, 1
mov ebp, 8
jmp 0x14041407d
mov qword [rsp + rbp + 0xbb0], rcx
test rcx, rcx
jne 0x14041407d
add rbp, 0xfffffffffffffff8
dec r10
mov rcx, qword [rsp + rbp + 0xbb0]
test rcx, rcx
je 0x140414057
jmp 0x14041407d
lea rbp, [r10*8]
mov rcx, qword [rsp + rbp + 0xbb0]
test rbx, rbx
je 0x14041491a
mov r14d, ecx
mov r11, rcx
mov rcx, qword [rsp + rbx*8 + 0x9b0]
mov rax, rcx
shr rax, 0x20
mov r12, r14
imul r12, rax
mov r15d, ecx
lea rbp, [rbx + r10 - 1]
shr r11, 0x20
mov qword [rsp + 0x1d8], r14
imul r14, r15
imul rax, r11
imul r15, r11
movsxd r13, ebp
mov qword [rsp + 0x1c8], r13
mov qword [rsp + 0x1d0], r11
mov r11, r15
shl r11, 0x20
shr r15, 0x20
lea rcx, [rsp + r13*8 + 0xd30]
mov r13, r12
shl r13, 0x20
shr r12, 0x20
add r14, r13
add rax, r12
xor r12d, r12d
cmp r14, r13
mov r13d, 0
setb r12b
add r14, r11
cmp r14, r11
mov qword [rcx + 8], r14
setb r13b
add rax, r12
add rax, r15
lea r15, [rbx - 1]
xor r12d, r12d
movsxd r14, r15d
add rax, r13
mov qword [rcx], rax
xor r15d, r15d
mov r11, qword [rsp + 0x1c8]
mov r13, qword [rsp + 0x1d8]
test r14, r14
je 0x140414292
mov qword [rsp + 0x290], r9
lea rbp, [rsp + r11*8 + 0x830]
mov qword [rsp + 0x168], rbp
lea rbp, [rsp + r14*8 + 0x9b0]
mov qword [rsp + 0x258], r8
mov qword [rsp + 0x1c8], r11
mov qword [rsp + 0x298], r10
mov qword [rsp + 0x188], rbx
mov qword [rsp + 0x288], rsi
mov qword [rsp + 0x2e0], rdi
xor edi, edi
mov qword [rsp + 0x2e8], rdx
mov r9, qword [rsp + 0x168]
mov r8, qword [rsp + 0x1d0]
mov r11, qword [rbp + r15*8]
mov r10, r11
shr r10, 0x20
mov rdx, r13
imul rdx, r10
imul r10, r8
mov esi, r11d
mov rbx, r13
imul rbx, rsi
imul rsi, r8
mov r11, rdx
inc r12
shl r11, 0x20
shr rdx, 0x20
add rbx, r11
add r10, rdx
cmp rbx, r11
mov r11, rsi
mov edx, edi
setb dl
shl r11, 0x20
add rbx, r11
cmp rbx, r11
mov r11d, edi
setb r11b
add rax, rbx
cmp rax, rbx
mov ebx, edi
mov qword [rcx + r15*8], rax
setb bl
shr rsi, 0x20
mov eax, r11d
add rdx, rsi
add r10, rdx
add rax, rbx
mov qword [r9 + r15*8], 0
add rax, r10
dec r15
cmp r12, r14
jb 0x1404141b3
mov r11, qword [rsp + 0x1c8]
mov ebp, r11d
sub ebp, r12d
shl r12, 3
neg r12
mov r9, qword [rsp + 0x290]
mov r10, qword [rsp + 0x298]
mov rbx, qword [rsp + 0x188]
mov rsi, qword [rsp + 0x288]
mov r8, qword [rsp + 0x258]
mov rdi, qword [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2e8]
mov qword [r12 + rcx], rax
movsxd r11, ebp
mov rcx, qword [rsp + 0x228]
lea r12, [r11 - 1]
movsxd rax, r12d
inc rax
dec ebp
mov qword [rsp + r11*8 + 0x830], 0
cmovns rcx, rax
mov qword [rsp + 0x228], rcx
js 0x1404143b9
movsxd r14, dword [rsp + 0x228]
neg r14
dec r14
neg r14
dec r14
cmp r14, 2
jl 0x14041508c
sub r12, qword [rsp + 0x228]
mov eax, 1
lea r12, [rsp + r12*8 + 0xd38]
and r12, 0xf
cmovne r12, rax
lea rcx, [r12 + 2]
cmp r14, rcx
jl 0x14041508c
mov ebp, r12d
mov r13d, r14d
mov rax, qword [rsp + 0x228]
neg ebp
add ebp, r13d
lea rcx, [rsp + r11*8 + 0xd28]
and ebp, 1
sub r13d, ebp
lea r15, [rax*8]
sub rcx, r15
lea rax, [rsp + r11*8 + 0x828]
sub rax, r15
xor ebp, ebp
movsxd r13, r13d
test r12, r12
jbe 0x140414363
xor r15d, r15d
mov qword [rax + rbp*8 + 8], r15
mov qword [rcx + rbp*8 + 8], r15
inc rbp
cmp rbp, r12
jb 0x140414351
movdqu xmmword [rax + r12*8 + 8], xmm1
movdqu xmmword [rcx + r12*8 + 8], xmm1
add r12, 2
cmp r12, r13
jb 0x140414363
cmp r13, r14
jae 0x1404143b9
mov rax, qword [rsp + 0x228]
lea rcx, [rsp + r11*8 + 0x828]
lea rbp, [rax*8]
sub rcx, rbp
lea rax, [rsp + r11*8 + 0xd28]
sub rax, rbp
xor ebp, ebp
mov qword [rcx + r13*8 + 8], rbp
mov qword [rax + r13*8 + 8], rbp
inc r13
cmp r13, r14
jb 0x1404143a7
xor r12d, r12d
lea r14, [r10 - 1]
movsxd r14, r14d
xor ecx, ecx
test r14, r14
je 0x14041461d
movsxd rbp, ebx
lea r13, [rsp + r14*8 + 0x830]
mov qword [rsp + 0x450], r13
lea r13, [rsp + r14*8 + 0xd30]
mov qword [rsp + 0x460], r13
lea rax, [rsp + r14*8 + 0xbb0]
mov qword [rsp + 0x488], r14
mov qword [rsp + 0x290], r9
lea r15, [rbp*8]
mov qword [rsp + 0x448], r15
lea r15, [rsp + rbp*8 + 0x9b0]
mov qword [rsp + 0x458], r15
lea r11, [r14 + rbp]
mov qword [rsp + 0x298], r10
xor r15d, r15d
mov qword [rsp + 0x188], rbx
mov qword [rsp + 0x288], rsi
mov qword [rsp + 0x258], r8
mov qword [rsp + 0x2e0], rdi
mov qword [rsp + 0x2e8], rdx
mov r10, r15
mov r13, r10
test rbp, rbp
je 0x1404145ce
mov r8, qword [rsp + 0x448]
lea r9, [r12*8]
sub r8, r9
neg r9
mov r14, qword [rsp + 0x460]
add r9, r14
mov rdx, qword [rsp + 0x450]
mov rsi, qword [rax + rcx*8]
mov rdi, rsi
mov qword [rsp + 0x470], rcx
mov rbx, qword [rsp + r11*8 + 0xd30]
lea r9, [r9 + rbp*8]
shr rdi, 0x20
add rdx, r8
mov esi, esi
add r8, r14
mov qword [rsp + 0x480], rax
mov qword [rsp + 0x478], r11
mov qword [rsp + 0x468], r12
mov rcx, qword [rsp + 0x458]
mov r12, qword [rcx + r13*8]
mov rax, r12
dec r13
mov r15, rsi
mov qword [rsp + 0x4a0], r13
mov r13, rsi
shr rax, 0x20
imul r13, rax
imul rax, rdi
mov r11d, r12d
mov r14, r13
imul r15, r11
imul r11, rdi
shl r14, 0x20
mov r12, r11
shr r13, 0x20
add r15, r14
shl r12, 0x20
add rax, r13
xor r13d, r13d
cmp r15, r14
mov r14d, r13d
setb r14b
add r15, r12
cmp r15, r12
mov r12d, r13d
setb r12b
add rbx, r15
cmp rbx, r15
mov r15d, r13d
setb r15b
shr r11, 0x20
add r14, r11
add rax, r14
add r12, r15
add rax, r12
lea r11, [r10*8]
mov r12, r9
inc r10
sub r12, r11
mov qword [r12], rbx
mov rbx, r8
sub rbx, r11
neg r11
add r11, rdx
mov rbx, qword [rbx - 8]
add rbx, rax
cmp rbx, rax
setb r13b
add qword [r11 - 0x10], r13
mov r13, qword [rsp + 0x4a0]
cmp r10, rbp
jb 0x1404144df
shl r10, 3
xor r15d, r15d
sub r9, r10
mov rax, qword [rsp + 0x480]
mov r11, qword [rsp + 0x478]
mov rcx, qword [rsp + 0x470]
mov r12, qword [rsp + 0x468]
mov qword [r9], rbx
inc r12
dec r11
dec rcx
cmp r12, qword [rsp + 0x488]
jb 0x140414460
mov r9, qword [rsp + 0x290]
mov r10, qword [rsp + 0x298]
mov rbx, qword [rsp + 0x188]
mov rsi, qword [rsp + 0x288]
mov r8, qword [rsp + 0x258]
mov rdi, qword [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2e8]
add r9, qword [rsp + 0x248]
lea rax, [r10 + rbx]
mov rcx, qword [rsp + rax*8 + 0xd30]
lea r10, [r10 + rbx - 1]
mov r14d, r10d
lea r15, [rsp + rax*8 + 0xbb0]
mov qword [r15], rcx
xor r12d, r12d
test r14d, r14d
je 0x14041473f
mov ebp, r14d
xor r13d, r13d
mov ecx, 1
xor r11d, r11d
shr ebp, 1
je 0x14041470e
movsxd rcx, r10d
mov qword [rsp + 0x2e8], rdx
mov qword [rsp + 0x258], r8
mov qword [rsp + 0x2e0], rdi
lea rbx, [rsp + rcx*8 + 0xbb0]
mov qword [rsp + 0x170], rbx
lea rbx, [rsp + rcx*8 + 0xd30]
mov rdx, qword [rsp + 0x170]
lea rcx, [rsp + rcx*8 + 0x830]
xor edi, edi
nop dword [rax + rax]
add r12, qword [r11 + rcx]
inc r13
mov r8, qword [r11 + rbx]
add r8, r12
cmp r8, r12
mov r12d, edi
mov qword [r11 + rdx], r8
setb r12b
add r12, qword [r11 + rcx - 8]
mov r8, qword [r11 + rbx - 8]
add r8, r12
cmp r8, r12
mov r12d, edi
mov qword [r11 + rdx - 8], r8
setb r12b
add r11, 0xfffffffffffffff0
cmp r13, rbp
jb 0x1404146b0
mov r8, qword [rsp + 0x258]
lea ecx, [r13 + r13 + 1]
mov rdi, qword [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2e8]
lea ebx, [rcx - 1]
cmp ebx, r14d
jae 0x14041473c
movsxd rcx, ecx
movsxd rbx, r10d
sub rbx, rcx
add r12, qword [rsp + rbx*8 + 0x838]
add r12, qword [rsp + rbx*8 + 0xd38]
mov qword [rsp + rbx*8 + 0xbb8], r12
mov rcx, qword [r15]
jmp 0x14041473f
mov rcx, qword [r15]
test rcx, rcx
jne 0x140414759
dec rax
lea r15, [rsp + rax*8 + 0xbb0]
cmp qword [r15], 0
je 0x140414744
lea r10, [rax - 1]
mov r11, qword [rsp + 0xbb8]
test r11, r11
jle 0x140414830
add r11, r11
dec r9
mov qword [rsp + 0xbb8], r11
cmp rax, 2
jb 0x140414830
xor ebx, ebx
lea rbp, [rax - 1]
mov ecx, 1
shr rbp, 1
je 0x140414800
nop dword [rax]
nop dword [rax]
movsxd r14, ebx
inc ebx
shl r14, 4
mov r13, qword [rsp + r14 + 0xbc0]
mov rcx, r13
shr rcx, 0x3f
add r13, r13
or r11, rcx
mov qword [rsp + r14 + 0xbb8], r11
mov r11, qword [rsp + r14 + 0xbc8]
mov r12, r11
shr r12, 0x3f
add r11, r11
or r13, r12
mov qword [rsp + r14 + 0xbc0], r13
cmp rbx, rbp
jb 0x1404147a0
lea ecx, [rbx + rbx]
movsxd rbx, ebx
shl rbx, 4
movsxd rcx, ecx
inc rcx
mov qword [rsp + rbx + 0xbb8], r11
dec rcx
lea rbp, [rax - 1]
mov ebx, ecx
cmp rbx, rbp
jae 0x140414830
mov rbp, qword [rsp + rcx*8 + 0xbc0]
mov rbx, rbp
shr rbx, 0x3f
add rbp, rbp
or qword [rsp + rcx*8 + 0xbb8], rbx
mov qword [rsp + rcx*8 + 0xbc0], rbp
cmp qword [r15], 0
mov rbx, rdi
cmovne r10, rax
shr rbx, 6
cmp r10, rbx
jb 0x14041490a
mov r10, rbx
lea rbp, [rbx*8]
mov rax, qword [rsp + rbx*8 + 0xbb8]
shr rax, 0x3f
mov rcx, qword [rsp + rbp + 0xbb0]
add rcx, rax
cmp rcx, rax
jae 0x1404148e7
mov qword [rsp + rbp + 0xbb0], rcx
lea rax, [rsp + rbx*8 + 0xba8]
mov qword [rsp + 0xbb0], 0
lea r10, [rbx - 1]
mov rcx, qword [rax]
lea rbp, [r10*8]
cmp rcx, 0xffffffffffffffff
jne 0x1404148b8
add rbp, 0xfffffffffffffff8
dec r10
lea rax, [rsp + rbp + 0xbb0]
mov rcx, qword [rax]
cmp rcx, 0xffffffffffffffff
je 0x1404148a0
test r10, r10
je 0x1404148c5
inc rcx
mov qword [rax], rcx
jmp 0x14041491a
movabs rcx, 0x8000000000000000
inc r9
mov qword [rsp + 0xbb8], rcx
mov r10d, 1
mov ebp, 8
jmp 0x14041491a
mov qword [rsp + rbp + 0xbb0], rcx
test rcx, rcx
jne 0x14041491a
add rbp, 0xfffffffffffffff8
dec r10
mov rcx, qword [rsp + rbp + 0xbb0]
test rcx, rcx
je 0x1404148f4
jmp 0x14041491a
lea rbp, [r10*8]
mov rcx, qword [rsp + rbp + 0xbb0]
mov r14, rcx
mov rbx, r8
mov r8d, r8d
mov r12d, r10d
mov qword [rsp + 0x2b8], r8
mov eax, r12d
shr r14, 0x20
mov r15d, ecx
mov rcx, r8
shr rbx, 0x20
imul rcx, r14
imul r14, rbx
mov r13, rcx
shr rcx, 0x20
add r14, rcx
mov rcx, r8
imul rcx, r15
imul r15, rbx
shl r13, 0x20
add rcx, r13
cmp rcx, r13
mov r13d, 0
movsxd r11, r10d
setb r13b
add r14, r13
mov r13, r15
shl r13, 0x20
lea r8, [rsp + r11*8 + 0xab0]
add rcx, r13
cmp rcx, r13
mov qword [r8 + 8], rcx
mov ecx, 0
setb cl
shr r15, 0x20
add r14, r15
lea r15, [r10 - 1]
movsxd r13, r15d
add r14, rcx
mov qword [r8], r14
test r13, r13
je 0x140414aee
xor ecx, ecx
lea r15, [rsp + r11*8 + 0xb30]
lea rax, [rsp + r13*8 + 0xbb0]
mov qword [rsp + 0x290], r9
mov qword [rsp + 0x298], r10
mov qword [rsp + 0x2a0], rbp
mov qword [rsp + 0x2a8], r11
mov dword [rsp + 0x2b0], r12d
mov qword [rsp + 0x288], rsi
mov qword [rsp + 0x2e0], rdi
xor edi, edi
mov qword [rsp + 0x2e8], rdx
mov r9, rcx
mov r10, qword [rsp + 0x2b8]
mov r12, qword [rax + r9*8]
mov r11, r12
shr r11, 0x20
mov rdx, r10
imul rdx, r11
imul r11, rbx
mov esi, r12d
mov rbp, r10
imul rbp, rsi
imul rsi, rbx
mov r12, rdx
inc rcx
shl r12, 0x20
shr rdx, 0x20
add rbp, r12
add r11, rdx
cmp rbp, r12
mov r12, rsi
mov edx, edi
setb dl
shl r12, 0x20
add rbp, r12
cmp rbp, r12
mov r12d, edi
setb r12b
add r14, rbp
cmp r14, rbp
mov ebp, edi
mov qword [r8 + r9*8], r14
setb bpl
shr rsi, 0x20
mov r14d, r12d
add rdx, rsi
add r11, rdx
add r14, rbp
mov qword [r15 + r9*8], 0
add r14, r11
dec r9
cmp rcx, r13
jb 0x140414a13
mov r11, qword [rsp + 0x2a8]
mov eax, r11d
sub eax, ecx
shl rcx, 3
neg rcx
mov rbp, qword [rsp + 0x2a0]
mov r12d, dword [rsp + 0x2b0]
mov r9, qword [rsp + 0x290]
mov r10, qword [rsp + 0x298]
mov rsi, qword [rsp + 0x288]
mov rdi, qword [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2e8]
mov qword [rcx + r8], r14
movsxd rbx, eax
mov qword [rsp + rbx*8 + 0xb30], 0
lea r13, [rbx - 1]
movsxd rcx, r13d
inc rcx
dec eax
cmovns rdx, rcx
js 0x140414c39
movsxd rcx, edx
neg rcx
dec rcx
neg rcx
dec rcx
cmp rcx, 2
jl 0x140415085
sub r13, rdx
mov eax, 1
lea r15, [rsp + r13*8 + 0xab8]
and r15, 0xf
cmovne r15, rax
lea r13, [r15 + 2]
cmp rcx, r13
jl 0x140415085
mov r14d, r15d
mov eax, ecx
neg r14d
lea r13, [rdx*8]
add r14d, eax
and r14d, 1
sub eax, r14d
lea r14, [rsp + rbx*8 + 0xb28]
sub r14, r13
mov qword [rsp + 0x2c8], r14
lea r14, [rsp + rbx*8 + 0xaa8]
sub r14, r13
movsxd rax, eax
mov qword [rsp + 0x2c0], 0
test r15, r15
jbe 0x140414be2
mov qword [rsp + 0x2e0], rdi
xor r13d, r13d
mov qword [rsp + 0x2e8], rdx
mov rdx, qword [rsp + 0x2c0]
mov rdi, qword [rsp + 0x2c8]
mov qword [rdi + rdx*8 + 8], r13
mov qword [r14 + rdx*8 + 8], r13
inc rdx
cmp rdx, r15
jb 0x140414bc0
mov rdi, qword [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2e8]
mov r13, qword [rsp + 0x2c8]
movdqu xmmword [r13 + r15*8 + 8], xmm1
movdqu xmmword [r14 + r15*8 + 8], xmm1
add r15, 2
cmp r15, rax
jb 0x140414bea
cmp rax, rcx
jae 0x140414c39
lea r14, [rdx*8]
lea r13, [rsp + rbx*8 + 0xb28]
sub r13, r14
lea rbx, [rsp + rbx*8 + 0xaa8]
sub rbx, r14
xor r14d, r14d
mov qword [r13 + rax*8 + 8], r14
mov qword [rbx + rax*8 + 8], r14
inc rax
cmp rax, rcx
jb 0x140414c27
mov rax, qword [rsp + rbp + 0xab8]
lea rcx, [r9 + rsi - 0x3fe]
mov qword [rsp + rbp + 0xdb8], rax
lea rsi, [r10 + 1]
xor r9d, r9d
test r12d, r12d
je 0x140414d00
mov ebx, r12d
xor ebp, ebp
mov r13d, 1
xor r14d, r14d
shr ebx, 1
je 0x140414cd9
lea r15, [rsp + r11*8 + 0xdb0]
mov qword [rsp + 0x2e8], rdx
lea r13, [rsp + r11*8 + 0xb30]
xor eax, eax
add r9, qword [r14 + r13]
inc rbp
mov rdx, qword [r14 + r8]
add rdx, r9
cmp rdx, r9
mov qword [r14 + r15], rdx
mov edx, eax
setb dl
add rdx, qword [r14 + r13 - 8]
mov r9, qword [r14 + r8 - 8]
add r9, rdx
cmp r9, rdx
mov qword [r14 + r15 - 8], r9
mov r9d, eax
setb r9b
add r14, 0xfffffffffffffff0
cmp rbp, rbx
jb 0x140414c8d
mov rdx, qword [rsp + 0x2e8]
lea r13d, [rbp + rbp + 1]
lea eax, [r13 - 1]
cmp eax, r12d
jae 0x140414d00
movsxd r13, r13d
sub r11, r13
add r9, qword [rsp + r11*8 + 0xb38]
add r9, qword [rsp + r11*8 + 0xab8]
mov qword [rsp + r11*8 + 0xdb8], r9
lea rbx, [rsp + r10*8 + 0xdb8]
mov rbp, qword [rbx]
test rbp, rbp
jne 0x140414d23
dec rsi
lea rbx, [rsp + rsi*8 + 0xdb0]
mov rbp, qword [rbx]
test rbp, rbp
je 0x140414d10
mov rax, qword [rsp + 0xdb8]
test rax, rax
jle 0x140414dfb
add rax, rax
dec rcx
mov qword [rsp + 0xdb8], rax
cmp rsi, 2
jb 0x140414df8
xor r8d, r8d
lea rbp, [rsi - 1]
mov r10d, 1
shr rbp, 1
je 0x140414dc2
nop
movsxd r13, r8d
inc r8d
shl r13, 4
mov r12, qword [rsp + r13 + 0xdc0]
mov r10, r12
shr r10, 0x3f
add r12, r12
or rax, r10
mov qword [rsp + r13 + 0xdb8], rax
mov rax, qword [rsp + r13 + 0xdc8]
mov r11, rax
shr r11, 0x3f
add rax, rax
or r12, r11
mov qword [rsp + r13 + 0xdc0], r12
cmp r8, rbp
jb 0x140414d60
lea r10d, [r8 + r8]
movsxd r8, r8d
shl r8, 4
movsxd r10, r10d
inc r10
mov qword [rsp + r8 + 0xdb8], rax
dec r10
lea rbp, [rsi - 1]
mov eax, r10d
cmp rax, rbp
jae 0x140414df8
mov rbp, qword [rsp + r10*8 + 0xdc0]
mov rax, rbp
shr rax, 0x3f
add rbp, rbp
or qword [rsp + r10*8 + 0xdb8], rax
mov qword [rsp + r10*8 + 0xdc0], rbp
mov rbp, qword [rbx]
jmp 0x140414dfb
mov rbp, qword [rbx]
cmp rbp, 1
sbb rsi, 0
jmp 0x140410afe
mov rax, qword [rsp + 0x250]
lea rdx, [0x140000000]
mov rsi, qword [rsp + 0x288]
mov rdi, qword [rsp + 0x2e0]
jmp 0x14041227a
cmp r8, 0x10
jl 0x140414e6b
mov rdx, r8
xor eax, eax
movdqu xmm0, xmmword [0x1405a0210]
and rdx, 0xfffffffffffffff0
movdqu xmmword [rax + rdi], xmm0
add rax, 0x10
cmp rax, rdx
jb 0x140414e43
cmp rdx, r8
jae 0x1404100dc
mov byte [rdx + rdi], 0x30
inc rdx
cmp rdx, r8
jb 0x140414e5a
jmp 0x1404100dc
xor edx, edx
jmp 0x140414e51
call fcn.14043dac0
cmp r8, 0x10
jl 0x140414eb5
mov edx, r8d
xor esi, esi
and edx, 0xfffffff0
movsxd rdx, edx
movdqu xmm0, xmmword [0x1405a0210]
movdqu xmmword [rsi + rbx], xmm0
add rsi, 0x10
cmp rsi, rdx
jb 0x140414e8d
cmp rdx, r8
jae 0x1404105f9
mov byte [rdx + rbx], 0x30
inc rdx
cmp rdx, r8
jb 0x140414ea4
jmp 0x1404105f9
xor edx, edx
jmp 0x140414e9b
mov rdx, qword [rsp + 0xeb8]
dec rbp
inc dword [rdx]
cmp dword [rsp + 0x2d8], 0
je 0x140414ed4
mov byte [rbp], 0x38
test esi, 2
je 0x1404105b3
inc r12
mov rdx, qword [rsp + 0x400]
cmp r12, rdx
cmovge r12, rdx
jmp 0x1404105b3
mov rdi, qword [rsp + 0x3f8]
mov esi, dword [rsp + 0x328]
test rcx, rcx
je 0x140410537
jmp 0x14041053a
test r15d, r15d
jne 0x140414f38
test ebx, ebx
je 0x140414f22
test r12, r12
js 0x140414f38
test r13d, r13d
jne 0x140414f5f
mov dword [r9], r8d
neg rax
je 0x1404107ec
jmp 0x14041083f
mov rax, qword [rsp + 0xeb8]
mov qword [rsp + 0x240], rdx
mov rdi, qword [rsp + 0x3f8]
mov esi, dword [rsp + 0x328]
mov dword [rax], r8d
jmp 0x14041004b
mov qword [rsp + 0x240], rdx
mov edx, dword [rsp + 0x310]
lea ecx, [rdx*8 + 4]
mov r10d, dword [rsp + 0x318]
shr r10d, cl
mov rdi, qword [rsp + 0x3f8]
mov esi, dword [rsp + 0x328]
test r10d, 1
je 0x140414fd4
mov rdx, qword [rsp + 0x240]
mov rbp, rdi
mov r8d, edx
xor esi, esi
test edx, edx
mov edx, 0
mov r9, qword [rsp + 0xeb8]
sete sil
neg r8d
mov byte [rdi], 0x31
add r8d, esi
mov rbx, qword [rsp + 0x308]
mov dword [r9], r8d
jmp 0x140410600
mov rax, qword [rsp + 0xeb8]
mov dword [rax], r8d
jmp 0x14041004b
mov rcx, qword [rsp + 0xbb8]
jmp 0x14041491a
xor r13d, r13d
jmp 0x140411418
mov rax, qword [rsp + 0xbb8]
jmp 0x1404112a0
mov rcx, rax
mov r9, rcx
neg r9
lea rax, [0x140000000]
mov rbx, r9
shr rbx, 3
movsxd r12, ebx
movzx ebp, word [rax + r12*2 + 0x5a0da0]
lea r11, [r12 + 1]
shr ebp, 5
cmp rbp, r9
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 rbp, r14d
mov qword [rsp + 0x1e8], r15
mov rbx, qword [rax + r13*8 + 0x5a0d20]
jmp 0x14041125f
xor r14d, r14d
jmp 0x140411bbd
mov rcx, qword [rsp + 0xbc0]
jmp 0x14041407d
xor eax, eax
jmp 0x140414c01
xor r13d, r13d
jmp 0x14041437a
xor r14d, r14d
jmp 0x140413ac0
xor r12d, r12d
jmp 0x14041312d
mov rcx, qword [rsp + 0xbb8]
jmp 0x140412da4
mov rcx, qword [0x1405a07c8]
mov r10d, 2
mov qword [rsp + 0xbb8], rcx
mov ebp, 0x10
mov rcx, qword [0x1405a07c0]
movsx r9, word [0x1405a0942]
mov qword [rsp + 0xbc0], rcx
jmp 0x140413746
mov r12, rcx
lea rbp, [0x140000000]
neg r12
mov r9, r12
shr r9, 3
movsxd r14, r9d
movzx r10d, word [rbp + r14*2 + 0x5a06e0]
lea r13, [r14 + 1]
shr r10d, 5
cmp r10, r12
cmovl r14, r13
movzx r9d, word [rbp + r14*2 + 0x5a06e0]
mov r15d, r9d
and r15d, 0x1f
movsx r10, word [rbp + r15*2 + 0x5a0926]
shl r15, 4
shr r9d, 5
add rcx, r9
movsxd rcx, ecx
mov r12, qword [rbp + r15 + 0x5a0648]
mov rbp, qword [rbp + r15 + 0x5a0640]
mov qword [rsp + 0x198], r10
mov qword [rsp + 0x8b8], r12
mov qword [rsp + 0x8c0], rbp
jmp 0x140412d03
mov qword [rsp + 0x90], 0
jmp 0x1404125c4
mov edx, dword [rsp + 0x310]
lea ecx, [r13 + rdx*8 + 1]
mov r10d, dword [rsp + 0x318]
shr r10d, cl
mov r11, qword [rsp + 0x218]
mov r12, qword [rsp + 0x320]
and r10d, 1
mov r9d, dword [rsp + 0x230]
mov r8d, dword [rsp + 0x238]
mov rdi, qword [rsp + 0x3f8]
mov esi, dword [rsp + 0x328]
test r10d, r10d
jne 0x140410582
test r12, r12
jle 0x14041004b
jmp 0x1404105b3
mov r11, qword [rsp + 0x218]
mov r12, qword [rsp + 0x320]
mov r9d, dword [rsp + 0x230]
mov r8d, dword [rsp + 0x238]
mov rdi, qword [rsp + 0x3f8]
mov esi, dword [rsp + 0x328]
jmp 0x1404151c5
xor r9d, r9d
test rsi, rsi
setge r9b
jmp 0x14041106d