Function at 0x140022260
Capabilities:
Terminate process

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rbp, rcx
mov rcx, qword [0x14012c5f0]
mov rsi, r8
mov ebx, edx
call dbg.__emutls_get_address
movzx r8d, byte [rax]
mov rdi, rax
cmp bl, 0xb
ja 0x140022610
mov eax, 1
mov ecx, ebx
shl rax, cl
test eax, 0xa50
jne 0x140022350
cmp bl, 2
jne 0x140022610
test sil, 3
jne 0x140022668
movabs rax, 0x8f5c28f5c28f5c29
movabs rdx, 0x51eb851eb851eb8
imul rax, rsi
add rax, rdx
movabs rdx, 0x28f5c28f5c28f5c
ror rax, 2
cmp rdx, rax
jb 0x140022620
movabs rax, 0xa3d70a3d70a3d70b
imul rsi
mov rax, rsi
sar rax, 0x3f
add rdx, rsi
sar rdx, 8
sub rdx, rax
lea rax, [rdx + rdx*4]
mov rdx, rsi
lea rax, [rax + rax*4]
shl rax, 4
sub rdx, rax
test r8b, r8b
jne 0x140022335
cmp rdx, 1
mov eax, 0x1c
adc rax, 0
cmp rbp, rax
jg 0x14002235f
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, 0x1e
test r8b, r8b
jne 0x140022335
cmp rbp, rax
jle 0x140022335
lea r12, [rsp + 0x40]
mov rdx, rsi
mov rcx, r12
call sym.dollar___systemZdollars_u8
cmp byte [rdi], 0
mov rsi, qword [rsp + 0x40]
mov r13, qword [rsp + 0x48]
jne 0x140022335
movzx edx, bl
mov r8d, 2
mov rcx, r12
call sym.nsuIntToStr
mov rax, qword [rsp + 0x48]
cmp byte [rdi], 0
mov rbx, qword [rsp + 0x40]
mov qword [rsp + 0x28], rax
jne 0x140022335
mov rdx, rbp
mov rcx, r12
call sym.dollar___systemZdollars_u8
mov rax, qword [rsp + 0x48]
cmp byte [rdi], 0
mov rbp, qword [rsp + 0x40]
mov qword [rsp + 0x30], rax
jne 0x140022335
lea rax, [rbx + rsi]
mov rcx, r12
lea rdx, [rax + rbp + 0x52]
call sym.rawNewString
mov rax, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
movabs rdx, 0x696e2e73656d6974
movabs rcx, 0x33202c373734286d
lea r15, [rax + r14 + 8]
mov r10, rax
mov qword [r15], rdx
add r10, 0x3c
movabs rdx, 0x68746e6f6d602029
mov qword [r15 + 8], rcx
movabs rcx, 0x67203d3c20796164
mov qword [r15 + 0x10], rdx
movabs rdx, 0x6e49737961447465
mov qword [r15 + 0x18], rcx
movabs rcx, 0x6f6d2868746e6f4d
mov qword [r15 + 0x28], rcx
movabs rcx, 0x20602972616579
mov qword [r15 + 0x20], rdx
movabs rdx, 0x202c68746e6f6d28
mov qword [r15 + 0x2d], rdx
mov qword [r15 + 0x35], rcx
jo 0x140022710
lea r15, [rax + r14 + 0x44]
test rsi, rsi
jle 0x1400224ac
mov rcx, rsi
add rcx, 1
jo 0x140022751
mov qword [rsp + 0x38], r10
test rcx, rcx
js 0x140022680
mov r8, rcx
lea rdx, [r13 + 8]
mov rcx, r15
call sym.memcpy
mov r10, qword [rsp + 0x38]
add rsi, r10
jo 0x140022751
lea r15, [rsi + r14 + 8]
mov r10, rsi
mov rsi, r10
mov ecx, 0x2d
add rsi, 1
mov word [r15], cx
jo 0x1400226e0
lea r15, [r10 + r14 + 9]
test rbx, rbx
jle 0x140022507
mov rcx, rbx
add rcx, 1
jo 0x140022747
test rcx, rcx
js 0x1400226a0
mov rax, qword [rsp + 0x28]
mov r8, rcx
mov rcx, r15
lea rdx, [rax + 8]
call sym.memcpy
add rbx, rsi
jo 0x140022747
lea r15, [rbx + r14 + 8]
mov rsi, rbx
mov rbx, rsi
mov edx, 0x2d
add rbx, 1
mov word [r15], dx
jo 0x140022730
lea r15, [rsi + r14 + 9]
test rbp, rbp
jle 0x140022562
mov rcx, rbp
add rcx, 1
jo 0x14002273d
test rcx, rcx
js 0x1400226c0
mov rax, qword [rsp + 0x30]
mov r8, rcx
mov rcx, r15
lea rdx, [rax + 8]
call sym.memcpy
add rbp, rbx
jo 0x14002273d
lea r15, [rbp + r14 + 8]
mov rbx, rbp
movabs rax, 0x20746f6e20736920
movabs rdx, 0x2064696c61762061
mov qword [r15], rax
movabs rax, 0x65746164206469
mov qword [r15 + 8], rdx
mov qword [r15 + 0xd], rax
mov rax, rbx
add rax, 0x14
jo 0x140022700
mov rcx, r12
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], r14
call sym.failedAssertImpl__stdZassertions_u310
cmp byte [rdi], 0
jne 0x140022335
test r14, r14
je 0x1400225c3
test byte [r14 + 7], 0x40
je 0x140022658
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x1400225d3
test byte [rax + 7], 0x40
je 0x140022648
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x1400225e3
test byte [rax + 7], 0x40
je 0x140022638
test r13, r13
je 0x140022335
test byte [r13 + 7], 0x40
jne 0x140022335
mov rcx, r13
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.deallocShared
mov eax, 0x1f
jmp 0x140022355
test r8b, r8b
jne 0x140022335
mov eax, 0x1d
jmp 0x14002235a
mov rcx, rax
call sym.deallocShared
jmp 0x1400225e3
mov rcx, rax
call sym.deallocShared
jmp 0x1400225d3
mov rcx, r14
call sym.deallocShared
jmp 0x1400225c3
test r8b, r8b
jne 0x140022335
mov eax, 0x1c
jmp 0x14002235a
movabs r8, 0x7fffffffffffffff
xor edx, edx
call sym.raiseRangeErrorI
mov r10, qword [rsp + 0x38]
jmp 0x1400224ac
movabs r8, 0x7fffffffffffffff
xor edx, edx
call sym.raiseRangeErrorI
jmp 0x140022507
movabs r8, 0x7fffffffffffffff
xor edx, edx
call sym.raiseRangeErrorI
jmp 0x140022562
mov qword [rsp + 0x38], r10
call sym.raiseOverflow
test rbx, rbx
mov r10, qword [rsp + 0x38]
jle 0x140022724
mov rsi, r10
jmp 0x1400224cc
call sym.raiseOverflow
mov rax, rbx
jmp 0x140022598
mov qword [rsp + 0x38], rax
call sym.raiseOverflow
mov r10, qword [rsp + 0x38]
jmp 0x140022467
mov eax, 0x2d
mov rsi, r10
mov word [r15], ax
call sym.raiseOverflow
mov rbx, rsi
jmp 0x140022522
call sym.raiseOverflow
jmp 0x140022562
call sym.raiseOverflow
jmp 0x140022507
mov qword [rsp + 0x38], r10
call sym.raiseOverflow
mov r10, qword [rsp + 0x38]
jmp 0x1400224ac