Function at 0x140096660
Capabilities:
Terminate process

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x50
pxor xmm0, xmm0
movdqu xmm1, xmmword [rcx]
mov rbp, qword [rcx + 0x10]
movzx eax, byte [rdx]
movzx edi, byte [rcx]
mov rsi, qword [rcx + 8]
mov qword [rsp + 0x40], rbp
mov rbx, rcx
movups xmmword [rcx + 1], xmm0
mov byte [rcx], al
mov qword [rcx + 0x10], 0
movaps xmmword [rsp + 0x30], xmm1
cmp al, 0x1b
ja case.0x1400966b1.15
lea rcx, [0x1400f211c]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov r12, qword [rdx + 8]
test r12, r12
je 0x140096700
mov rax, qword [r12 - 0x10]
add rax, 0x10
jo 0x140096921
mov qword [r12 - 0x10], rax
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140096700
mov rax, qword [rcx - 0x10]
lea rdx, [rcx - 0x10]
mov r9, rax
shr r9, 4
je 0x1400968f0
sub rax, 0x10
jo 0x140096917
mov qword [rdx], rax
mov qword [rbx + 8], r12
cmp dil, 0x1b
ja 0x140096736
cmp dil, 0xb
jbe 0x140096760
mov eax, 1
mov ecx, edi
shl rax, cl
test eax, 0xe041000
jne 0x14009674c
test eax, 0x82000
jne 0x140096870
cmp dil, 0xe
je 0x140096830
movdqu xmm2, xmmword [rsp + 0x38]
lea rcx, [rsp + 0x20]
movaps xmmword [rsp + 0x20], xmm2
call sym.eqdestroy___pureZpegs_u183
nop
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
cmp dil, 8
jbe 0x14009674c
test rbp, rbp
je 0x14009674c
test byte [rbp + 7], 0x40
jne 0x14009674c
mov rcx, rbp
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp sym.deallocShared
movdqu xmm4, xmmword [rdx + 8]
lea rcx, [rbx + 8]
lea rdx, [rsp + 0x20]
movaps xmmword [rsp + 0x20], xmm4
call sym.eqcopy___pureZpegs_u186
mov rcx, qword [0x1400f8300]
call dbg.__emutls_get_address
cmp byte [rax], 0
je case.0x1400966b1.0
jmp 0x14009674c
movdqu xmm3, xmmword [rdx + 8]
lea rcx, [rbx + 8]
lea rdx, [rsp + 0x20]
movaps xmmword [rsp + 0x20], xmm3
call sym.eqcopy___stdZassertions_u30
jmp case.0x1400966b1.0
mov rax, qword [rdx + 8]
mov qword [rbx + 8], rax
jmp case.0x1400966b1.0
movzx eax, byte [rdx + 8]
mov byte [rbx + 8], al
jmp case.0x1400966b1.0
mov r12, qword [rdx + 8]
test r12, r12
je 0x140096700
mov rax, qword [r12 - 0x10]
add rax, 0x10
jo 0x140096917
mov qword [r12 - 0x10], rax
jmp 0x140096700
test rsi, rsi
je 0x14009674c
mov rax, qword [rsi - 0x10]
lea rdx, [rsi - 0x10]
cmp rax, 0xf
jbe 0x140096898
sub rax, 0x10
jo 0x140096908
lea r8, sym.rttiDestroy__pureZpegs_u5262
xor ecx, ecx
mov qword [rsi - 0x10], rax
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp sym.rememberCycle__system_u3375
test rsi, rsi
je 0x14009674c
mov rax, qword [rsi - 0x10]
mov rdi, rax
shr rdi, 4
je 0x1400968e0
sub rax, 0x10
jo 0x140096908
mov qword [rsi - 0x10], rax
jmp 0x14009674c
lea r8, sym.rttiDestroy__pureZpegs_u5262
mov ecx, 1
call sym.rememberCycle__system_u3375
mov rcx, rsi
call sym.eqdestroy___pureZpegs_u152
mov rcx, qword [0x1400f8300]
call dbg.__emutls_get_address
cmp byte [rax], 0
jne 0x14009674c
mov edx, 8
mov rcx, rsi
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp sym.nimRawDispose
mov rcx, rsi
call sym.eqdestroy___pureZstrutils_u1978
mov edx, 1
jmp 0x1400968cb
call sym.eqdestroy___pureZstrutils_u1978
mov rcx, qword [rbx + 8]
mov edx, 1
call sym.nimRawDispose
jmp 0x140096700
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp sym.raiseOverflow
call sym.raiseOverflow
jmp 0x140096700
call sym.raiseOverflow
mov rcx, qword [rbx + 8]
jmp 0x1400966d9