Function at 0x1400a6ad0
Capabilities:
Encrypt data using chaskey

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
mov eax, 0x1938
call fcn.140060680
sub rsp, rax
lea rbp, [rsp + 0x80]
and rsp, 0xffffffffffffffc0
mov ebx, r9d
mov edi, r8d
mov rsi, rdx
mov r12, rcx
mov r15d, dword [rbp + 0x1920]
test r15d, r15d
jle 0x1400a6b92
mov rax, qword [r12 + 0x258]
mov rcx, qword [rax + 0x30]
or rcx, qword [rax + 0x38]
mov rcx, qword [r12 + 0x250]
setne byte [rsi + 0x30]
mov r14d, dword [rax + 0x114]
mov r13d, dword [r12 + 0x264]
mov dword [rsi + 0x2c], 0
mov rax, qword [0x142236118]
mov qword [rsp + 0x80], rcx
cmp rcx, qword [rax]
jne 0x1400a6b64
mov rcx, qword [rsp + 0x80]
call fcn.1400aba90
mov r8d, dword [rsi + 0x10]
lea rdx, [rsp + 0x700]
mov rcx, r12
call fcn.14009ef90
test al, al
je 0x1400a6bb0
mov r14d, dword [rsp + 0x700]
test r14d, r14d
jne 0x1400a6d32
jmp 0x1400a6d1f
mov dword [rsp + 0x20], 0
mov rcx, r12
mov rdx, rsi
mov r8d, edi
mov r9d, ebx
call fcn.1400a58f0
jmp 0x1400a6d35
movzx ecx, byte [0x142236108]
mov eax, dword [rsi + 0x10]
test cl, 1
jne 0x1400a6d12
cmp eax, 0xf5
jg 0x1400a6d19
mov dword [rsp + 0xb0], r14d
lea ecx, [rax - 0x7d00]
cmp ecx, edi
cmovg edi, ecx
mov r14d, 0x7cff
sub r14d, eax
cmp r14d, ebx
cmovge r14d, ebx
cmp edi, r14d
jge 0x1400a6d56
mov dword [rsi + 0x58], 0
mov qword [rsi + 0x9c], 0
mov dword [rsi + 0xb8], 0
mov eax, dword [rsi - 0x2c]
mov ecx, dword [rsi - 0xc]
mov dword [rsi + 0x34], ecx
mov ecx, 0x5a
test eax, eax
mov qword [rsp + 0xd8], r13
je 0x1400a6c3c
cmp eax, 0x81
je 0x1400a6c3c
and eax, 0x7f
mov ecx, eax
mov dword [rsp + 0xac], ecx
mov dword [rsi + 0x28], 0
mov rax, qword [r12 + 0x258]
mov r13, qword [rax + 0x20]
mov eax, dword [rax + 0x14]
cmp eax, 0xe
jl 0x1400a6c82
add eax, 0xfffffff2
shr eax, 3
movabs rcx, 0x5851f42d4c957f2d
imul rcx, rax
movabs rax, 0x14057b7ef767814f
add rax, rcx
xor r13, rax
lea rax, [rsi - 0x40]
mov qword [rsp + 0x140], rax
mov ebx, dword [rsi + 0x18]
lea rdx, [rsi + 0x32]
mov rcx, r13
mov qword [rsp + 0x98], rdx
call fcn.1400af550
mov rcx, rax
cmp byte [rsi + 0x32], 0
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x104], ebx
je 0x1400a6d5b
movsx eax, word [rcx + 6]
mov r11d, 0x7d02
cmp eax, 0x7d02
je 0x1400a6db4
mov ecx, dword [rsi + 0x10]
mov rdx, qword [r12 + 0x258]
mov edx, dword [rdx + 0x14]
cmp eax, 0x7c0a
jl 0x1400a6d86
mov r8d, 0x7d00
sub r8d, eax
mov r9d, 0x77
sub r9d, edx
sub eax, ecx
cmp r8d, r9d
mov r11d, 0x7c09
cmovle r11d, eax
jmp 0x1400a6daf
cmp eax, 0xf6
jl 0x1400a6d1f
cmp byte [rsi + 0x30], 0
je 0x1400a6d49
mov rax, qword [r12 + 0x250]
mov r14, qword [rax + 0x40]
and r14d, 2
dec r14d
mov eax, r14d
lea rsp, [rbp + 0x18b8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rcx, r12
call fcn.140087ae0
mov r14d, eax
jmp 0x1400a6d32
mov r14d, edi
jmp 0x1400a6d32
mov r11d, 0x7d02
xor eax, eax
mov qword [rsp + 0xc8], rax
mov byte [rsp + 0x5b], 1
mov r9d, 0
mov eax, 0
mov dl, 1
test ebx, ebx
jne 0x1400a6de4
jmp 0x1400a6e70
cmp eax, 0xffff83f6
jg 0x1400a6dac
mov r8d, 0x77
sub r8d, edx
add ecx, eax
add eax, 0x7d00
cmp eax, r8d
mov r11d, 0xffff83f7
cmovle r11d, ecx
jmp 0x1400a6daf
mov r11d, eax
mov rcx, qword [rsp + 0x68]
movzx eax, word [rcx + 4]
test eax, eax
sete byte [rsp + 0x5b]
mov qword [rsp + 0xc8], rax
je 0x1400a6dd7
and eax, 0x7f
cmp dword [r12 + rax*4], 0
setne r9b
jmp 0x1400a6dda
xor r9d, r9d
mov dl, 1
test ebx, ebx
je 0x1400a6e67
lea rax, [rsi + 0x40]
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + 0x80]
add rax, 0x16ce8
mov qword [rsp + 0x128], rax
cmp byte [rsi + 0x30], 0
mov qword [rsp + 0x78], r14
mov dword [rsp + 0x5c], r11d
mov qword [rsp + 0x148], r13
mov dword [rsp + 0xbc], edx
je 0x1400a6e39
mov dword [rsi + 0x24], 0x7d02
mov dword [rsp + 0x74], 0
jmp 0x1400a7738
test dl, dl
je 0x1400a6f69
mov rcx, r12
mov rbx, r9
call fcn.1400bc030
mov r9, rbx
mov eax, dword [rsi + 0x24]
mov r13d, eax
mov r14d, dword [rsp + 0xb0]
mov r11d, dword [rsp + 0x5c]
jmp 0x1400a7053
movzx eax, byte [rcx + 3]
and al, 4
shr al, 2
mov byte [rsi + 0x31], al
xor edx, edx
cmp r11d, 0x7d02
je 0x1400a6de4
movzx eax, byte [rcx + 2]
add eax, 0xfffffff9
cmp eax, r15d
jle 0x1400a6de4
movzx eax, byte [rcx + 3]
xor ecx, ecx
cmp r11d, r14d
setge cl
inc ecx
test eax, ecx
je 0x1400a6fb8
cmp byte [rsp + 0x5b], 0
mov rcx, qword [rsp + 0x68]
jne 0x1400a86e0
cmp r11d, r14d
jge 0x1400a8622
test r9b, r9b
jne 0x1400a86e0
imul eax, r15d, 0x188
cmp eax, 0x915
mov ecx, 0x915
cmovl ecx, eax
mov qword [rsp + 0x90], r9
mov r9d, 0x1d3
sub r9d, ecx
mov rax, qword [rsp + 0xd8]
shl rax, 0xf
add rax, qword [rsp + 0x80]
mov rbx, qword [rsp + 0xc8]
mov ecx, ebx
imul edx, r9d, 0x1c0f
mov r8d, r9d
neg r8d
cmovs r8d, r9d
movsx r10d, word [rax + rcx*2 + 0x6ce8]
imul r8d, r10d
sub edx, r8d
movsxd rdx, edx
imul rdx, rdx, 0x1d32cfed
mov r8, rdx
shr r8, 0x3f
shr rdx, 0x2a
add edx, r8d
add edx, r10d
mov word [rax + rcx*2 + 0x6ce8], dx
mov eax, ebx
shr eax, 7
mov edx, dword [r12 + rax*4]
mov r8d, ebx
and r8d, 0x7f
mov rcx, rsi
jmp 0x1400a86c8
mov rax, qword [rsp + 0x98]
cmp byte [rax], 0
mov r14d, dword [rsp + 0xb0]
je 0x1400a6fc4
movsx eax, word [rcx + 8]
mov dword [rsi + 0x24], eax
cmp eax, 0x7d02
jne 0x1400a6fa2
mov rcx, r12
mov rbx, r9
call fcn.140087ae0
mov r9, rbx
mov rcx, qword [rsp + 0x68]
mov dword [rsi + 0x24], eax
mov r11d, dword [rsp + 0x5c]
cmp r11d, 0x7d02
jne 0x1400a6ffe
mov r13d, eax
jmp 0x1400a7053
xor edx, edx
mov rcx, qword [rsp + 0x68]
jmp 0x1400a6de4
mov rbx, r9
mov r14, rcx
mov rcx, r12
call fcn.140087ae0
mov dword [rsi + 0x24], eax
movzx ecx, byte [rsi + 0x31]
cmp word [r14], r13w
jne 0x1400a7017
movzx edx, cl
lea edx, [rdx*2 + 1]
movzx r8d, byte [r14 + 2]
add r8d, 0xfffffffc
cmp edx, r8d
mov r11d, dword [rsp + 0x5c]
jg 0x1400a7023
jmp 0x1400a7045
movzx ecx, byte [rcx + 3]
xor edx, edx
cmp r11d, eax
setg dl
inc edx
test ecx, edx
mov r13d, r11d
cmove r13d, eax
jmp 0x1400a7053
mov word [r14 + 4], 0
mov r11d, dword [rsp + 0x5c]
mov word [r14], r13w
mov byte [r14 + 2], 1
shl cl, 2
or cl, byte [0x142208568]
mov byte [r14 + 3], cl
mov word [r14 + 6], 0x7d02
mov word [r14 + 8], ax
mov r13d, eax
mov r14d, dword [rsp + 0xb0]
mov r9, rbx
movsxd rdx, dword [rsi - 0x2c]
test rdx, rdx
je 0x1400a7068
cmp edx, 0x81
jne 0x1400a73e4
mov ecx, dword [rsi - 0x5c]
cmp ecx, 0x7d02
jne 0x1400a7087
mov ecx, dword [rsi - 0xdc]
mov dl, 1
mov dword [rsp + 0x74], edx
cmp ecx, 0x7d02
je 0x1400a7090
cmp eax, ecx
setg al
mov dword [rsp + 0x74], eax
cmp dword [rsi + 0x78], 4
mov eax, 0xffffffa0
mov ecx, 0xfffffed3
cmovge ecx, eax
mov eax, r15d
imul eax, eax
imul eax, ecx
add eax, edi
add eax, 0xfffffdf4
cmp r13d, eax
jge 0x1400a70e6
lea r8d, [rdi - 1]
mov dword [rsp + 0x20], 0
mov rcx, r12
mov rdx, rsi
mov rbx, r9
mov r9d, edi
call fcn.1400a58f0
mov r9, rbx
mov r11d, dword [rsp + 0x5c]
mov r14d, eax
cmp eax, edi
jl 0x1400a6d32
cmp r15d, 6
ja 0x1400a714f
cmp byte [rsi + 0x31], 0
jne 0x1400a714f
mov eax, 0xffffff7b
cmp byte [rbp + 0x1928], 0
je 0x1400a7118
mov rax, qword [rsp + 0x98]
cmp byte [rax], 0
mov ecx, 0xffffff97
mov eax, 0xffffff7b
cmove eax, ecx
movzx ecx, byte [rsp + 0x74]
mov edx, r15d
sub edx, ecx
imul edx, eax
add edx, r13d
movsxd rax, dword [rsi - 0x18]
imul rcx, rax, 0x7c66cfad
shr rcx, 0x20
sub ecx, eax
mov eax, ecx
shr eax, 0x1f
sar ecx, 7
add ecx, eax
add ecx, edx
cmp ecx, dword [rsp + 0x78]
jge 0x1400a752b
cmp dword [rsi - 0x2c], 0x81
je 0x1400a735f
cmp dword [rsi - 0x18], 0x31ba
jg 0x1400a735f
mov eax, r13d
sub eax, dword [rsp + 0x78]
jl 0x1400a735f
mov ecx, dword [rsi + 0x24]
cmp r13d, ecx
jl 0x1400a735f
imul edx, r15d, 0xfffffff2
mov r8, qword [rsp + 0x78]
add edx, r8d
add edx, 0x8a
cmp ecx, edx
setl cl
or cl, byte [rsp + 0xbc]
jne 0x1400a735f
mov rcx, qword [r12 + 0x258]
mov rdx, qword [rsp + 0xd8]
cmp dword [rcx + rdx*4 + 8], 0
je 0x1400a735f
cmp dword [rsp + 0x78], 0xffff83f7
jl 0x1400a735f
mov rcx, qword [rsp + 0x80]
mov ecx, dword [rcx + 0x5c]
cmp dword [rsi + 0x10], ecx
jl 0x1400a735f
cdqe
imul rax, rax, 0x2e8ba2e9
mov rcx, rax
shr rcx, 0x3f
sar rax, 0x25
add eax, ecx
cmp eax, 5
mov ebx, 5
cmovl ebx, eax
mov eax, r15d
mov r14d, 0xaaaaaaab
imul r14, rax
shr r14, 0x21
mov dword [rsi + 0x14], 0x81
mov rax, qword [rsp + 0x80]
add rax, 0x1c6e8
mov qword [rsi + 8], rax
lea rdx, [rsp + 0x700]
mov rcx, r12
mov qword [rsp + 0x90], r9
call fcn.14009cbd0
mov r13, qword [rsp + 0x78]
mov r8d, r13d
neg r8d
mov r9d, 1
sub r9d, r13d
add r14d, ebx
neg r14d
lea ebx, [r15 + r14]
add ebx, 0xfffffffc
movzx eax, byte [rbp + 0x1928]
xor al, 1
mov byte [rsp + 0x28], al
mov dword [rsp + 0x20], ebx
mov rcx, r12
mov rdx, qword [rsp + 0xd0]
call fcn.1400a6ad0
mov r9, qword [rsp + 0x90]
mov r11d, dword [rsp + 0x5c]
mov rcx, qword [r12 + 0x258]
mov rcx, qword [rcx + 0x40]
mov qword [r12 + 0x258], rcx
xor byte [r12 + 0x264], 1
mov r14d, eax
neg r14d
mov rcx, qword [rcx + 0x20]
and ecx, 0x3fff
dec byte [r12 + rcx + 0x268]
cmp r13d, r14d
jg 0x1400a735f
cmp eax, 0xffff83f7
jl 0x1400a735f
cmp r15d, 0xe
jb 0x1400a6d32
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x5c], 0
jne 0x1400a6d32
lea eax, [rbx + rbx*2]
lea ecx, [rbx + rbx*2]
add ecx, 3
test eax, eax
cmovns ecx, eax
sar ecx, 2
add ecx, dword [rsi + 0x10]
mov r15, qword [rsp + 0x80]
mov dword [r15 + 0x5c], ecx
mov r13, qword [rsp + 0x78]
lea r8d, [r13 - 1]
mov dword [rsp + 0x20], ebx
mov byte [rsp + 0x28], 0
mov rcx, r12
mov rdx, rsi
mov r9d, r13d
call fcn.1400a6ad0
mov dword [r15 + 0x5c], 0
cmp eax, r13d
mov r11d, dword [rsp + 0x5c]
mov r9, qword [rsp + 0x90]
mov r15d, dword [rbp + 0x1920]
jge 0x1400a6d32
lea r13d, [r15 - 2]
cmp byte [rsp + 0x5b], 0
cmove r13d, r15d
cmp byte [rbp + 0x1928], 0
cmove r13d, r15d
cmp r15d, 7
cmovb r13d, r15d
mov rdx, qword [rsp + 0x78]
lea eax, [rdx - 0x30]
cmp byte [rsp + 0x74], 0
cmove eax, edx
mov ecx, edx
neg ecx
cmovs ecx, edx
cmp r13d, 5
jb 0x1400a73dc
cmp ecx, 0x7c09
ja 0x1400a73dc
lea ecx, [rax + 0xb0]
mov dword [rsp + 0x98], ecx
cmp r11d, ecx
jge 0x1400a755a
cmp r11d, 0x7d02
je 0x1400a755a
mov rcx, qword [rsp + 0x68]
movzx ecx, byte [rcx + 2]
add ecx, 0xfffffffc
cmp ecx, r13d
jl 0x1400a755a
mov r15d, r13d
jmp 0x1400a7738
test r14d, r14d
jne 0x1400a7068
cmp byte [rsi - 0x10], 0
jne 0x1400a7068
mov ecx, dword [rsi - 0x1c]
add ecx, eax
imul r8d, ecx, 0xfffffff2
cmp r8d, 0x86c
mov rbx, r9
mov r9d, 0x86c
cmovl r9d, r8d
cmp ecx, 0x71
mov ecx, 0xfffff9db
cmovl ecx, r9d
mov r8, qword [rsp + 0xd8]
xor r8, 1
shl r8, 0xf
add r8, qword [rsp + 0x80]
imul r9d, ecx, 0x1c0f
mov r10d, ecx
neg r10d
cmovs r10d, ecx
movsx r11d, word [r8 + rdx*2 + 0x6ce8]
imul r10d, r11d
sub r9d, r10d
movsxd r9, r9d
imul r9, r9, 0x1d32cfed
mov r10, r9
shr r10, 0x3f
shr r9, 0x2a
add r9d, r10d
add r9d, r11d
mov r11d, dword [rsp + 0x5c]
mov word [r8 + rdx*2 + 0x6ce8], r9w
mov edx, dword [rsp + 0xac]
mov r8d, dword [r12 + rdx*4]
mov r9d, r8d
and r9d, 7
cmp r9d, 4
mov r9, rbx
je 0x1400a7068
mov r9, qword [r12 + 0x258]
mov r9, qword [r9]
and r9d, 0x1ff
imul r9, r9, 0xb40
imul r8, r8, 0xb4
add r8, qword [rsp + 0x80]
add r8, r9
lea r9d, [rcx + 3]
test ecx, ecx
cmovns r9d, ecx
sar r9d, 2
mov ecx, r9d
shl ecx, 0xd
movsx r10d, word [r8 + rdx*2 + 0xfee6e8]
mov r11d, r9d
neg r11d
cmovs r11d, r9d
imul r11d, r10d
sub ecx, r11d
mov r11d, dword [rsp + 0x5c]
movsxd rcx, ecx
imul rcx, rcx, 0x66666667
mov r9, rcx
shr r9, 0x3f
shr rcx, 0x2c
add ecx, r9d
mov r9, rbx
add ecx, r10d
mov word [r8 + rdx*2 + 0xfee6e8], cx
jmp 0x1400a7068
mov eax, r9d
or al, byte [rsp + 0x5b]
cmp al, 1
jne 0x1400a714f
cmp r13d, dword [rsp + 0x78]
jl 0x1400a714f
cmp r13d, 0x6589
jge 0x1400a714f
mov r14d, r13d
jmp 0x1400a6d32
mov qword [rsp + 0x90], r9
mov ecx, 0xffffff50
sub ecx, eax
mov dword [rsp + 0x64], ecx
lea eax, [r13 - 3]
mov dword [rsp + 0x118], eax
mov ebx, dword [rsp + 0x98]
mov r9d, ebx
sub r9d, dword [rsi + 0x24]
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0x20], rax
lea r14, [rsp + 0x290]
mov rcx, r14
mov rdx, r12
mov r8, qword [rsp + 0xc8]
call fcn.140096210
mov eax, 1
sub eax, ebx
mov dword [rsp + 0xa0], eax
lea eax, [r13 - 4]
mov dword [rsp + 0x120], eax
movzx eax, byte [rbp + 0x1928]
xor al, 1
mov byte [rsp + 0xb8], al
jmp 0x1400a75f1
mov rcx, r12
mov edx, r15d
call fcn.14009ca90
cmp ebx, dword [rsp + 0x98]
jge 0x1400a86fd
mov rcx, r14
xor edx, edx
call fcn.140096280
test eax, eax
je 0x1400a7720
mov r15d, eax
cmp eax, dword [rsp + 0x104]
je 0x1400a75f1
mov rcx, r12
mov edx, r15d
call fcn.14009bf30
test al, al
je 0x1400a75f1
mov rcx, r12
mov edx, r15d
call fcn.14009cce0
mov rcx, qword [0x142208560]
mov rdx, rax
mulx rax, rax, qword [0x142208558]
shl rax, 5
prefetcht0 byte [rcx + rax]
mov dword [rsi + 0x14], r15d
movzx eax, byte [rsi + 0x30]
imul rax, rax, 0x7e9000
add rax, qword [rsp + 0x80]
mov ecx, r15d
sar ecx, 7
movsxd rcx, ecx
mov ecx, dword [r12 + rcx*4]
imul rcx, rcx, 0x3f480
add rcx, rax
mov eax, r15d
and eax, 0x7f
imul rax, rax, 0xb40
add rax, rcx
add rax, 0x410ee8
mov qword [rsi + 8], rax
mov rcx, r12
mov edx, r15d
call fcn.14009c330
mov rcx, r12
mov edx, r15d
lea r8, [rsp + 0x700]
mov r9d, eax
call fcn.14009c610
mov dword [rsp + 0x20], 0
mov rcx, r12
mov rdx, qword [rsp + 0xd0]
mov r8d, dword [rsp + 0x64]
mov r9d, dword [rsp + 0xa0]
call fcn.1400a58f0
mov ebx, eax
neg ebx
cmp dword [rsp + 0x98], ebx
jg 0x1400a75d9
movzx eax, byte [rsp + 0xb8]
mov byte [rsp + 0x28], al
mov eax, dword [rsp + 0x120]
mov dword [rsp + 0x20], eax
mov rcx, r12
mov rdx, qword [rsp + 0xd0]
mov r8d, dword [rsp + 0x64]
mov r9d, dword [rsp + 0xa0]
call fcn.1400a6ad0
mov ebx, eax
neg ebx
jmp 0x1400a75d9
mov rcx, r12
call fcn.1400bc030
mov r15d, r13d
mov r11d, dword [rsp + 0x5c]
mov r9, qword [rsp + 0x90]
cmp byte [rsi + 0x30], 0
sete al
mov r8d, r9d
xor r8b, 1
or al, r8b
jne 0x1400a779b
mov rax, qword [rsp + 0x68]
test byte [rax + 3], 2
je 0x1400a779b
mov rdx, qword [rsp + 0x78]
lea r14d, [rdx + 0x181]
mov eax, r11d
neg eax
cmovs eax, r11d
mov ecx, edx
neg ecx
cmovs ecx, edx
cmp r11d, r14d
jl 0x1400a779b
mov rdx, qword [rsp + 0x68]
movzx edx, byte [rdx + 2]
add edx, 0xfffffffc
cmp edx, r15d
jl 0x1400a779b
cmp eax, 0x7c09
ja 0x1400a779b
cmp ecx, 0x7c0a
jb 0x1400a6d32
mov byte [rsp + 0x62], r8b
mov rax, qword [rsi - 0x38]
mov qword [rsp + 0x150], rax
mov rax, qword [rsi - 0x78]
mov qword [rsp + 0x158], rax
mov rax, qword [rsi - 0xb8]
mov qword [rsp + 0x160], rax
mov rax, qword [rsi - 0xf8]
mov qword [rsp + 0x168], rax
mov qword [rsp + 0x170], 0
mov rax, qword [rsi - 0x178]
mov qword [rsp + 0x178], rax
xor eax, eax
mov ecx, dword [rsp + 0xac]
cmp ecx, 0x5a
je 0x1400a781b
mov eax, ecx
mov ecx, dword [r12 + rax*4]
imul rcx, rcx, 0x168
add rcx, qword [rsp + 0x80]
mov eax, dword [rcx + rax*4 + 0x5668]
mov rcx, qword [rsp + 0x80]
lea rdx, [rcx + 0x6ce8]
lea r8, [rcx + 0xfee6e8]
mov qword [rsp + 0x290], r12
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x298], rdx
mov rcx, qword [rsp + 0x128]
mov qword [rsp + 0x2a0], rcx
lea rcx, [rsp + 0x150]
mov qword [rsp + 0x2a8], rcx
mov qword [rsp + 0x188], r8
mov qword [rsp + 0x2b0], r8
mov rdx, qword [rsp + 0xc8]
mov dword [rsp + 0x2b8], edx
mov ecx, dword [rsi + 0x1c]
mov dword [rsp + 0x2bc], ecx
mov dword [rsp + 0x2c0], 0
mov ecx, dword [rsi + 0x20]
mov dword [rsp + 0x2c4], ecx
mov dword [rsp + 0x2c8], 0
mov dword [rsp + 0x2cc], eax
mov dword [rsp + 0x2d0], 0
mov dword [rsp + 0x2fc], r15d
mov rax, qword [r12 + 0x258]
mov rbx, qword [rax + 0x30]
mov r14, qword [rax + 0x38]
mov eax, 1
test edx, edx
mov r13, qword [rsp + 0xd8]
je 0x1400a791b
mov rcx, r12
mov qword [rsp + 0x98], r15
mov r15, rdi
mov rdi, r9
call fcn.14009c200
mov r9, rdi
mov rdi, r15
mov r15, qword [rsp + 0x98]
mov r11d, dword [rsp + 0x5c]
xor al, 1
movzx eax, al
lea ecx, [rax + 7]
or rbx, r14
cmove ecx, eax
mov eax, dword [rsp + 0x74]
xor al, 1
mov dword [rsp + 0x74], eax
shl r13, 0xf
add r13, qword [rsp + 0x120]
mov qword [rsp + 0x118], r13
mov eax, r11d
neg eax
cmovs eax, r11d
mov dword [rsp + 0x130], eax
mov dword [rsp + 0x2f0], ecx
movzx eax, r9b
mov dword [rsp + 0x134], eax
movzx ecx, byte [rsp + 0x5b]
movzx eax, byte [rbp + 0x1928]
and cl, al
mov byte [rsp + 0x8f], cl
xor al, 1
mov byte [rsp + 0x63], al
mov eax, 0xffff82ff
mov qword [rsp + 0xa0], rax
xor r10d, r10d
mov dword [rsp + 0x90], 0
mov dword [rsp + 0xb8], 0
xor r13d, r13d
xor eax, eax
mov qword [rsp + 0x110], rax
mov dword [rsp + 0x64], 0
mov qword [rsp + 0x98], r10
nop word cs:[rax + rax]
mov edx, r13d
and dl, 1
lea rcx, [rsp + 0x290]
call fcn.140096280
test eax, eax
je 0x1400a83b9
mov ebx, eax
cmp eax, dword [rsp + 0x104]
je 0x1400a79d0
mov rcx, r12
mov edx, ebx
call fcn.14009bf30
test al, al
je 0x1400a79d0
mov r14, qword [rsp + 0x98]
lea rax, [r14 + 1]
mov qword [rsp + 0x108], rax
mov dword [rsi + 0x2c], eax
mov eax, ebx
and eax, 0x7f
mov qword [rsp + 0xf0], rax
mov eax, dword [r12 + rax*4]
mov qword [rsp + 0xf8], rax
mov eax, ebx
sar eax, 7
cdqe
mov eax, dword [r12 + rax*4]
mov qword [rsp + 0xe8], rax
mov rcx, r12
mov edx, ebx
call fcn.14009c330
mov r11d, eax
mov rax, qword [rsp + 0x78]
movsxd rcx, r15d
lea rdx, [0x1400f81e0]
mov r8d, dword [rdx + r14*4 + 4]
imul r8d, dword [rdx + rcx*4]
sub eax, edi
imul eax, eax, 0x494
cdq
mov rcx, qword [rsp + 0x80]
idiv dword [rcx + 0x5660]
neg eax
add eax, r8d
add eax, 0x739
cdqe
imul rax, rax, 0x758da937
mov rcx, rax
shr rcx, 0x3f
sar rax, 0x29
add eax, ecx
lea r14d, [r15 - 1]
cmp r8d, 0x372
setge cl
and cl, byte [rsp + 0x74]
movzx r9d, cl
add r9d, eax
mov rcx, qword [r12 + 0x258]
mov rax, qword [rsp + 0xd8]
cmp dword [rcx + rax*4 + 8], 0
mov qword [rsp + 0xe0], r14
mov qword [rsp + 0x138], r9
je 0x1400a7bdd
cmp dword [rsp + 0xa0], 0xffff83f7
mov edx, dword [rsp + 0x5c]
jl 0x1400a7d11
test r13b, 1
mov r10, qword [rsp + 0x108]
jne 0x1400a7b25
mov eax, r15d
imul eax, r15d
add eax, 3
mov edx, dword [rsp + 0x74]
shrx eax, eax, edx
cmp r10, rax
setae r13b
cmp qword [rsp + 0xf8], 0
sete dl
mov eax, r14d
sub eax, r9d
mov r8d, r11d
xor r8b, 1
test dl, r8b
jne 0x1400a7be6
cmp eax, 0xb
setge cl
or cl, r11b
jne 0x1400a7bc3
cmp byte [rsi + 0x30], 0
jne 0x1400a7bc3
imul eax, eax, 0xc7
imul rcx, qword [rsp + 0xe8], 0x5a0
mov rdx, qword [rsp + 0xf0]
shl rdx, 4
add rdx, qword [rsp + 0x128]
add rdx, rcx
mov r8, qword [rsp + 0xf8]
mov ecx, r8d
and ecx, 7
movsx ecx, word [rdx + rcx*2]
imul ecx, ecx, 0x2aab
mov edx, ecx
shr edx, 0x1f
shr ecx, 0x10
add ecx, edx
movsx ecx, cx
add eax, dword [rsi + 0x24]
lea rdx, [0x1400d8770]
add eax, dword [rdx + r8*4]
add eax, ecx
add eax, 0x132
cmp eax, edi
jl 0x1400a79ba
mov r8d, r15d
shl r8d, 8
add r8d, r15d
neg r8d
mov rcx, r12
mov edx, ebx
mov r14d, r11d
jmp 0x1400a7cf5
mov edx, dword [rsp + 0x5c]
jmp 0x1400a7d11
imul rdx, qword [rsp + 0xe8], 0xb4
mov r8, qword [rsp + 0x150]
add r8, rdx
mov r14d, r11d
mov r11, qword [rsp + 0xf0]
movsx r8d, word [r8 + r11*2]
mov r9, qword [rsp + 0x158]
add r9, rdx
movsx r9d, word [r9 + r11*2]
add r9d, r8d
mov r8, qword [rsp + 0x188]
add r8, rdx
add rdx, qword [rsp + 0x168]
movsx edx, word [rdx + r11*2]
mov rcx, qword [rcx]
and ecx, 0x1ff
imul rcx, rcx, 0xb40
add rcx, r8
movsx ecx, word [rcx + r11*2]
add ecx, edx
add ecx, r9d
cmp eax, 5
jg 0x1400a7c69
imul edx, r15d, 0xfffff25d
cmp ecx, edx
jl 0x1400a79ba
movsxd rdx, ebx
mov r8, qword [rsp + 0x118]
movsx edx, word [r8 + rdx*2]
lea ecx, [rcx + rdx*2]
movsxd rcx, ecx
imul rcx, rcx, 0x590f00a7
mov rdx, rcx
shr rdx, 0x3f
sar rcx, 0x2b
add ecx, edx
add ecx, eax
cmp ecx, 0xffffffff
mov eax, 0xfffffffe
cmovge eax, ecx
cmp byte [rsi + 0x30], 0
jne 0x1400a7cdf
cmp eax, 0xa
jg 0x1400a7cdf
mov edx, dword [rsi + 0x24]
lea r8d, [rdx - 0x3e]
mov r9d, eax
shl r9d, 7
add r9d, eax
cmp dword [rsp + 0xa0], r8d
lea eax, [rdx + r9 + 0x81]
lea edx, [rdx + r9 + 0x8b]
cmovl edx, eax
cmp edx, edi
jle 0x1400a79ba
mov eax, ecx
sar eax, 0x1f
andn eax, eax, ecx
imul eax, eax
imul r8d, eax, 0xffffffdd
mov rcx, r12
mov edx, ebx
call fcn.14009cd80
mov r11d, r14d
mov r10, qword [rsp + 0x108]
mov edx, dword [rsp + 0x5c]
test al, al
je 0x1400a79ba
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x5658]
add eax, eax
xor r8d, r8d
cmp dword [rsi + 0x10], eax
mov byte [rsp + 0x8e], r11b
jge 0x1400a7d9b
cmp ebx, dword [rsp + 0xc8]
setne al
or al, byte [rsp + 0xbc]
jne 0x1400a7d8d
xor eax, eax
mov rcx, qword [rsp + 0x80]
cmp dword [rcx + 0x565c], 0x21
setl al
add eax, 3
cmp r15d, eax
jl 0x1400a7d8d
cmp dword [rsp + 0x130], 0x7c09
ja 0x1400a7d8d
mov rax, qword [rsp + 0x68]
test byte [rax + 3], 2
je 0x1400a7d8d
mov rax, qword [rsp + 0x68]
movzx eax, byte [rax + 2]
add eax, 0xfffffffc
cmp eax, r15d
jge 0x1400a8298
cmp r15d, 9
setge al
and al, r11b
movzx r8d, al
mov eax, r15d
mov qword [rsp + 0xc0], rax
xor r14d, r14d
cmp qword [rsp + 0xf8], 0
setne r14b
xor eax, eax
mov dword [rsp + 0xb4], r8d
cmp r8d, 2
sete al
add eax, dword [rsi - 0xc]
mov dword [rsi + 0x34], eax
mov rcx, r12
mov edx, ebx
call fcn.14009cce0
mov rcx, qword [0x142208560]
mov rdx, rax
mulx rax, rax, qword [0x142208558]
shl rax, 5
prefetcht0 byte [rcx + rax]
mov dword [rsi + 0x14], ebx
movzx eax, byte [rsi + 0x30]
imul rax, rax, 0x7e9000
add rax, qword [rsp + 0x80]
imul rcx, r14, 0x3f4800
imul rdx, qword [rsp + 0xe8], 0x3f480
add rdx, rax
add rdx, rcx
imul rax, qword [rsp + 0xf0], 0xb40
add rax, rdx
add rax, 0x1c6e8
mov qword [rsi + 8], rax
mov rcx, r12
mov edx, ebx
lea r8, [rsp + 0x700]
movzx r9d, byte [rsp + 0x8e]
call fcn.14009c610
movzx ecx, byte [rsi + 0x31]
test cl, cl
je 0x1400a7ea4
mov eax, 0xfffffffe
cmp byte [rbp + 0x1928], 0
mov r14, qword [rsp + 0xe0]
mov r8, qword [rsp + 0x138]
je 0x1400a7e9d
mov rax, qword [rsp + 0x68]
movzx eax, byte [rax + 2]
add eax, 0xfffffff9
xor edx, edx
cmp eax, dword [rsp + 0xc0]
setge dl
and edx, 1
mov eax, 0xfffffffe
sub eax, edx
add eax, r8d
mov edx, eax
jmp 0x1400a7eb4
mov r14, qword [rsp + 0xe0]
mov rdx, qword [rsp + 0x138]
mov eax, dword [rsp + 0xb4]
add r14d, eax
mov r8d, dword [rsi - 0x14]
xor eax, eax
cmp r8d, 9
setge al
sub edx, eax
lea eax, [rdx + 2]
cmp byte [rbp + 0x1928], 0
cmove eax, edx
mov rdx, qword [rsp + 0x110]
and dl, 1
neg dl
movsx edx, dl
add edx, dword [rsp + 0x134]
lea r10d, [rdx + rax]
cmp ebx, dword [rsp + 0xc8]
mov r9d, 0
cmove r10d, r9d
cmp dword [rsi + 0x78], 4
lea r9d, [rax + rdx + 1]
cmovl r9d, r10d
movsxd rax, ebx
mov rdx, qword [rsp + 0x118]
movsx eax, word [rdx + rax*2]
imul rdx, qword [rsp + 0xe8], 0xb4
mov r10, qword [rsp + 0x150]
add r10, rdx
mov r11, qword [rsp + 0xf0]
movsx r10d, word [r10 + r11*2]
lea eax, [r10 + rax*2]
mov r10, qword [rsp + 0x158]
add r10, rdx
add rdx, qword [rsp + 0x168]
movsx r10d, word [r10 + r11*2]
movsx edx, word [rdx + r11*2]
add eax, r10d
add eax, edx
add eax, 0xfffff11f
mov dword [rsi + 0x28], eax
mov r11, qword [rsp + 0xc0]
lea edx, [r11 - 9]
cmp edx, 8
mov r10d, 0x2df8
mov edx, 0x3f57
cmovb r10d, edx
cdq
idiv r10d
sub r9d, eax
cmp r11d, 2
jl 0x1400a7fd3
cmp qword [rsp + 0x98], 0
je 0x1400a7fd3
cmp r8d, 2
setge al
test cl, cl
je 0x1400a80ab
cmp dword [rsp + 0xf8], 0
je 0x1400a80ab
and al, byte [rbp + 0x1928]
jne 0x1400a80ab
lea eax, [r9 + 2]
cmp byte [rsp + 0x8f], 0
cmove eax, r9d
mov r8d, edi
not r8d
mov r9d, edi
neg r9d
xor ecx, ecx
cmp eax, 5
setge cl
sub r14d, ecx
movzx eax, byte [rsp + 0x63]
mov byte [rsp + 0x28], al
mov dword [rsp + 0x20], r14d
mov rcx, r12
mov rdx, qword [rsp + 0xd0]
call fcn.1400a6ad0
mov r14d, eax
neg r14d
mov rcx, r12
mov edx, ebx
call fcn.14009ca90
movzx eax, byte [0x142236108]
test al, 1
jne 0x1400a8768
cmp r14d, dword [rsp + 0xa0]
mov eax, dword [rsp + 0x64]
mov r10, qword [rsp + 0x108]
mov r8, qword [rsp + 0xc0]
jle 0x1400a81f2
cmp r14d, edi
jle 0x1400a81e7
mov rdx, qword [rsp + 0x78]
cmp r14d, edx
jge 0x1400a8770
lea r15d, [r8 - 2]
cmp r14d, 0xffffcbd9
cmovl r15d, r8d
lea eax, [r8 - 3]
cmp eax, 8
cmovae r15d, r8d
cmp edx, 0x30f9
cmovge r15d, r8d
mov edi, r14d
mov eax, r14d
mov qword [rsp + 0xa0], rax
mov dword [rsp + 0x64], ebx
jmp 0x1400a79ba
mov eax, r14d
sub eax, r9d
mov ecx, dword [rsp + 0xb4]
add ecx, r15d
cmp ecx, eax
cmovge ecx, eax
test eax, eax
mov eax, 1
cmovle ecx, eax
mov r15d, edi
not r15d
mov r9d, edi
neg r9d
mov dword [rsp + 0xb4], ecx
mov dword [rsp + 0x20], ecx
mov byte [rsp + 0x28], 1
mov rcx, r12
mov rdx, qword [rsp + 0xd0]
mov r8d, r15d
mov dword [rsp + 0xe0], r9d
call fcn.1400a6ad0
mov r9, r14
mov r14d, eax
neg r14d
cmp edi, r14d
jge 0x1400a801e
mov eax, r9d
mov r10d, dword [rsp + 0xb4]
sub eax, r10d
jle 0x1400a801e
mov r8d, r15d
lea eax, [rax + rax*4]
mov r11, qword [rsp + 0xa0]
lea eax, [r11 + rax*2]
add eax, 0x40
xor r15d, r15d
cmp eax, r14d
setl r15b
lea eax, [rdi + 0x298]
cmp eax, r14d
setl al
mov ecx, dword [rsi + 0x34]
cmp ecx, 6
setl dl
and dl, al
lea eax, [r9 + r11]
xor r11d, r11d
cmp eax, r14d
setg r11b
movzx eax, dl
add ecx, eax
mov dword [rsi + 0x34], ecx
add r15d, r9d
sub r15d, r11d
add r15d, eax
cmp r15d, r10d
jle 0x1400a81ad
movzx eax, byte [rsp + 0x63]
mov byte [rsp + 0x28], al
mov dword [rsp + 0x20], r15d
mov rcx, r12
mov rdx, qword [rsp + 0xd0]
mov r9d, dword [rsp + 0xe0]
call fcn.1400a6ad0
mov r14d, eax
neg r14d
cmp r14d, edi
jle 0x1400a825e
xor r9d, r9d
cmp r14d, dword [rsp + 0x78]
jl 0x1400a827b
imul r9d, r15d, 0x188
cmp r9d, 0x915
mov eax, 0x915
cmovge r9d, eax
add r9d, 0xfffffe2d
jmp 0x1400a827b
mov ecx, r14d
mov qword [rsp + 0xa0], rcx
mov r15d, r8d
cmp ebx, eax
je 0x1400a79ba
mov r15d, r8d
cmp qword [rsp + 0x98], 0x1f
ja 0x1400a79ba
cmp qword [rsp + 0xf8], 0
je 0x1400a823c
mov ecx, dword [rsp + 0xb8]
movsxd rax, ecx
inc ecx
mov dword [rsp + 0xb8], ecx
mov dword [rsp + rax*4 + 0x210], ebx
mov r15d, r8d
jmp 0x1400a79ba
mov ecx, dword [rsp + 0x90]
movsxd rax, ecx
inc ecx
mov dword [rsp + 0x90], ecx
mov dword [rsp + rax*4 + 0x190], ebx
mov r15d, r8d
jmp 0x1400a79ba
imul eax, r15d, 0x188
cmp eax, 0x915
mov ecx, 0x915
cmovge eax, ecx
mov r9d, 0x1d3
sub r9d, eax
mov rcx, rsi
mov rdx, qword [rsp + 0xe8]
mov r8, qword [rsp + 0xf0]
call fcn.1400a8790
jmp 0x1400a801e
movzx eax, byte [rsi + 0x31]
shl eax, 6
add eax, 0x40
imul eax, r15d
shr eax, 6
mov r14d, edx
sub r14d, eax
mov rcx, qword [rsp + 0xe0]
mov eax, ecx
shr eax, 0x1f
add eax, ecx
sar eax, 1
mov rcx, qword [rsp + 0xc8]
mov dword [rsi + 0x18], ecx
lea r8d, [r14 - 1]
movzx ecx, byte [rbp + 0x1928]
mov byte [rsp + 0x28], cl
mov dword [rsp + 0x20], eax
mov rcx, r12
mov rdx, rsi
mov r9d, r14d
call fcn.1400a6ad0
mov dword [rsi + 0x18], 0
cmp eax, r14d
jge 0x1400a8359
add r14d, 0xffffffe9
mov r8d, 1
cmp eax, r14d
jge 0x1400a8397
cmp dword [rsi + 0x34], 8
movzx eax, byte [rsp + 0x62]
mov qword [rsp + 0x110], rax
mov eax, r15d
mov qword [rsp + 0xc0], rax
jg 0x1400a7da6
xor eax, eax
cmp r15d, 0xc
setl al
add eax, r15d
mov qword [rsp + 0xc0], rax
mov r8d, 2
movzx eax, byte [rsp + 0x62]
mov qword [rsp + 0x110], rax
jmp 0x1400a7da6
mov rcx, qword [rsp + 0x78]
cmp r14d, ecx
jge 0x1400a6d32
mov r8d, 0xfffffffd
cmp dword [rsp + 0x5c], ecx
jge 0x1400a7d9b
xor r8d, r8d
cmp byte [rbp + 0x1928], 0
je 0x1400a83a9
cmp r15d, 0xe
setge r8b
neg r8d
or r8d, 0xfffffffd
jmp 0x1400a7d9b
movzx eax, byte [rsp + 0x62]
mov qword [rsp + 0x110], rax
jmp 0x1400a7d9b
cmp dword [rsp + 0x5c], eax
setle r8b
neg r8d
jmp 0x1400a7d9b
cmp dword [rsp + 0x98], 0
je 0x1400a8455
mov ebx, dword [rsp + 0x64]
test ebx, ebx
mov r13, qword [rsp + 0x78]
mov edx, dword [rsp + 0xbc]
je 0x1400a8471
mov rax, qword [rsp + 0xa0]
mov r14d, eax
mov r8d, r15d
mov dword [rsp + 0x50], r8d
mov eax, dword [rsp + 0xb8]
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0x210]
mov qword [rsp + 0x40], rax
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0x38], eax
lea rax, [rsp + 0x190]
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0xac]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r13d
mov rcx, r12
mov rdx, rsi
mov r15, r8
mov r8d, ebx
mov r9d, r14d
call fcn.1400aa0b0
mov r11d, r14d
mov edx, dword [rsp + 0xbc]
jmp 0x1400a8597
mov edx, dword [rsp + 0xbc]
test dl, dl
mov r13, qword [rsp + 0x78]
je 0x1400a857b
mov r14d, edi
jmp 0x1400a859f
cmp dword [rsp + 0xb0], 0
jne 0x1400a8587
mov dword [rsp + 0x64], 0
mov r9d, dword [rsp + 0xac]
cmp r9d, 0x5a
mov r11, qword [rsp + 0xa0]
je 0x1400a8597
xor ecx, ecx
cmp r15d, 6
setge cl
movzx eax, byte [rbp + 0x1928]
mov r14d, edx
lea edx, [rdi - 0x1bc]
xor r8d, r8d
cmp r11d, edx
setl r8b
xor edx, edx
cmp dword [rsi - 0x14], 0xb
setge dl
add eax, ecx
add eax, r8d
add eax, edx
mov ecx, r9d
mov edx, dword [r12 + rcx*4]
imul ecx, r15d, 0x188
cmp ecx, 0x915
mov r8d, r9d
mov ebx, 0x915
cmovl ebx, ecx
add ebx, 0xfffffe2d
imul ebx, eax
mov rcx, qword [rsp + 0x140]
mov r9d, ebx
call fcn.1400a8790
mov rax, qword [rsp + 0xd8]
xor eax, 1
shl rax, 0xf
mov r10, qword [rsp + 0x120]
add r10, rax
movsxd rax, dword [rsi - 0x2c]
mov ecx, ebx
shr ecx, 0x1f
add ecx, ebx
mov r11, qword [rsp + 0xa0]
sar ecx, 1
imul edx, ecx, 0x1c0f
movsx r8d, word [r10 + rax*2]
mov r9d, ecx
neg r9d
cmovs r9d, ecx
imul r9d, r8d
sub edx, r9d
movsxd rcx, edx
imul rcx, rcx, 0x1d32cfed
mov rdx, rcx
shr rdx, 0x3f
shr rcx, 0x2a
add ecx, edx
mov edx, r14d
add ecx, r8d
mov word [r10 + rax*2], cx
jmp 0x1400a8597
mov r11d, 0xffff8300
add r11d, dword [rsi + 0x10]
jmp 0x1400a8597
mov dword [rsp + 0x64], 0
mov r11, qword [rsp + 0xa0]
mov r14d, r11d
cmp r11d, edi
jg 0x1400a85ba
mov al, 1
cmp byte [rsi + 0x31], 0
jne 0x1400a85b7
cmp byte [rsi - 0xf], 0
setne cl
cmp r15d, 4
setge al
and al, cl
mov byte [rsi + 0x31], al
test dl, dl
jne 0x1400a6d32
xor r8d, r8d
cmp r14d, 0xffff83f7
mov eax, dword [rsi + 0x10]
mov ecx, dword [rsi + 0x24]
cmovl r8d, eax
neg r8d
cmp r14d, 0x7c0a
cmovge r8d, eax
add r8d, r14d
movzx r9d, byte [rsi + 0x31]
xor eax, eax
cmp r14d, r13d
setge al
inc eax
mov dword [rsp + 0x38], ecx
mov ecx, dword [rsp + 0x64]
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], eax
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x148]
call fcn.1400aeda0
jmp 0x1400a6d32
test r9b, r9b
jne 0x1400a8672
imul eax, r15d, 0x188
cmp eax, 0x915
mov qword [rsp + 0x90], r9
mov r9d, 0x915
cmovl r9d, eax
add r9d, 0xfffffe2d
mov rcx, r12
mov rdx, rsi
mov r8, qword [rsp + 0xc8]
mov ebx, r11d
call fcn.1400abc60
mov r9, qword [rsp + 0x90]
mov r11d, ebx
mov rcx, qword [rsp + 0x68]
cmp dword [rsp + 0xac], 0x5a
je 0x1400a86e0
cmp dword [rsp + 0xb0], 0
jne 0x1400a86e0
cmp dword [rsi - 0x14], 2
jg 0x1400a86e0
mov r8d, dword [rsp + 0xac]
mov eax, r8d
mov edx, dword [r12 + rax*4]
imul eax, r15d, 0x188
cmp eax, 0x78d
mov ecx, 0x78d
cmovl ecx, eax
mov qword [rsp + 0x90], r9
mov r9d, 0x4b
sub r9d, ecx
mov rcx, qword [rsp + 0x140]
mov ebx, r11d
call fcn.1400a8790
mov r9, qword [rsp + 0x90]
mov r11d, ebx
mov rcx, qword [rsp + 0x68]
mov rax, qword [r12 + 0x258]
cmp dword [rax + 0x14], 0x6e
jge 0x1400a86f6
mov r14d, r11d
jmp 0x1400a6d32
xor edx, edx
jmp 0x1400a6de4
xor r8d, r8d
cmp ebx, 0xffff83f7
mov eax, dword [rsi + 0x10]
mov ecx, dword [rsi + 0x24]
cmovl r8d, eax
neg r8d
cmp ebx, 0x7c0a
cmovge r8d, eax
add r8d, ebx
movzx r9d, byte [rsi + 0x31]
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], r15d
mov eax, dword [rsp + 0x118]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 2
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x148]
call fcn.1400aeda0
mov r14, qword [rsp + 0x78]
sub r14d, dword [rsp + 0x98]
add r14d, ebx
jmp 0x1400a6d32
xor r14d, r14d
jmp 0x1400a6d32
movzx eax, byte [rsp + 0x5b]
mov ecx, dword [rsi + 0x38]
add eax, ecx
inc eax
mov dword [rsi + 0x38], eax
mov dword [rsp + 0x64], ebx
mov r13, rdx
jmp 0x1400a83ed