Function at 0x140022220
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 [0x140123df0]
mov rsi, r8
mov ebx, edx
call dbg.__emutls_get_address
movzx r8d, byte [rax]
mov rdi, rax
cmp bl, 0xb
ja 0x1400225d0
mov eax, 1
mov ecx, ebx
shl rax, cl
test eax, 0xa50
jne 0x140022310
cmp bl, 2
jne 0x1400225d0
test sil, 3
jne 0x140022628
movabs rax, 0x8f5c28f5c28f5c29
movabs rdx, 0x51eb851eb851eb8
imul rax, rsi
add rax, rdx
movabs rdx, 0x28f5c28f5c28f5c
ror rax, 2
cmp rdx, rax
jb 0x1400225e0
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 0x1400222f5
cmp rdx, 1
mov eax, 0x1c
adc rax, 0
cmp rbp, rax
jg 0x14002231f
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 0x1400222f5
cmp rbp, rax
jle 0x1400222f5
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 0x1400222f5
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 0x1400222f5
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 0x1400222f5
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 0x1400226d0
lea r15, [rax + r14 + 0x44]
test rsi, rsi
jle 0x14002246c
mov rcx, rsi
add rcx, 1
jo 0x140022711
mov qword [rsp + 0x38], r10
test rcx, rcx
js 0x140022640
mov r8, rcx
lea rdx, [r13 + 8]
mov rcx, r15
call sym.memcpy
mov r10, qword [rsp + 0x38]
add rsi, r10
jo 0x140022711
lea r15, [rsi + r14 + 8]
mov r10, rsi
mov rsi, r10
mov ecx, 0x2d
add rsi, 1
mov word [r15], cx
jo 0x1400226a0
lea r15, [r10 + r14 + 9]
test rbx, rbx
jle 0x1400224c7
mov rcx, rbx
add rcx, 1
jo 0x140022707
test rcx, rcx
js 0x140022660
mov rax, qword [rsp + 0x28]
mov r8, rcx
mov rcx, r15
lea rdx, [rax + 8]
call sym.memcpy
add rbx, rsi
jo 0x140022707
lea r15, [rbx + r14 + 8]
mov rsi, rbx
mov rbx, rsi
mov edx, 0x2d
add rbx, 1
mov word [r15], dx
jo 0x1400226f0
lea r15, [rsi + r14 + 9]
test rbp, rbp
jle 0x140022522
mov rcx, rbp
add rcx, 1
jo 0x1400226fd
test rcx, rcx
js 0x140022680
mov rax, qword [rsp + 0x30]
mov r8, rcx
mov rcx, r15
lea rdx, [rax + 8]
call sym.memcpy
add rbp, rbx
jo 0x1400226fd
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 0x1400226c0
mov rcx, r12
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], r14
call sym.failedAssertImpl__stdZassertions_u310
cmp byte [rdi], 0
jne 0x1400222f5
test r14, r14
je 0x140022583
test byte [r14 + 7], 0x40
je 0x140022618
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x140022593
test byte [rax + 7], 0x40
je 0x140022608
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x1400225a3
test byte [rax + 7], 0x40
je 0x1400225f8
test r13, r13
je 0x1400222f5
test byte [r13 + 7], 0x40
jne 0x1400222f5
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 0x140022315
test r8b, r8b
jne 0x1400222f5
mov eax, 0x1d
jmp 0x14002231a
mov rcx, rax
call sym.deallocShared
jmp 0x1400225a3
mov rcx, rax
call sym.deallocShared
jmp 0x140022593
mov rcx, r14
call sym.deallocShared
jmp 0x140022583
test r8b, r8b
jne 0x1400222f5
mov eax, 0x1c
jmp 0x14002231a
movabs r8, 0x7fffffffffffffff
xor edx, edx
call sym.raiseRangeErrorI
mov r10, qword [rsp + 0x38]
jmp 0x14002246c
movabs r8, 0x7fffffffffffffff
xor edx, edx
call sym.raiseRangeErrorI
jmp 0x1400224c7
movabs r8, 0x7fffffffffffffff
xor edx, edx
call sym.raiseRangeErrorI
jmp 0x140022522
mov qword [rsp + 0x38], r10
call sym.raiseOverflow
test rbx, rbx
mov r10, qword [rsp + 0x38]
jle 0x1400226e4
mov rsi, r10
jmp 0x14002248c
call sym.raiseOverflow
mov rax, rbx
jmp 0x140022558
mov qword [rsp + 0x38], rax
call sym.raiseOverflow
mov r10, qword [rsp + 0x38]
jmp 0x140022427
mov eax, 0x2d
mov rsi, r10
mov word [r15], ax
call sym.raiseOverflow
mov rbx, rsi
jmp 0x1400224e2
call sym.raiseOverflow
jmp 0x140022522
call sym.raiseOverflow
jmp 0x1400224c7
mov qword [rsp + 0x38], r10
call sym.raiseOverflow
mov r10, qword [rsp + 0x38]
jmp 0x14002246c