Function at 0x140107900
Capabilities:
Get system information on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x608]
sub rsp, 0x708
mov rax, qword [0x1402ba040]
xor rax, rsp
mov qword [rbp + 0x5d0], rax
mov esi, ecx
mov r15, rdx
mov ecx, dword [rdx + 0x10]
sub ecx, 0x947
je 0x140108185
nop dword [rax]
sub ecx, 1
je 0x140107996
cmp ecx, 1
jne 0x14010866c
cmp dword [rdx + 0x20], 0x203
jne 0x14010866c
mov ecx, dword ds:[rdx + 0x18]
cmp ecx, dword [rdx + 0x1c]
jae 0x14010866c
call fcn.1401091f0
mov rbx, rax
test rax, rax
je 0x14010866c
mov rcx, qword [0x1402c7c08]
mov rdx, rax
call sym.SystemInformer.exe_QiShowProcessRecordDialog
mov rcx, rbx
call sym.SystemInformer.exe_QiDereferenceProcessRecord
jmp 0x14010866c
mov r9d, dword ds:[rdx + 0x18]
cmp r9d, dword [rdx + 0x1c]
jae 0x14010866c
cmp esi, 0xffffffff
jne 0x140107b99
cmp dword [0x1402c7c70], r9d
nop word [rax + rax]
je 0x140107b85
mov edx, dword [0x1402c9c4c]
lea rcx, str.___K:
mov eax, dword [0x1402c9c44]
add edx, r9d
and rdx, rax
mov rax, qword [0x1402c9c50]
movss xmm1, dword [rax + rdx*4]
mov edx, dword [0x1402c9d0c]
mov eax, dword [0x1402c9d04]
add edx, r9d
and rdx, rax
mov rax, qword [0x1402c9d10]
cvtps2pd xmm2, xmm1
movss xmm0, dword [rax + rdx*4]
movzx eax, word [0x1402c2228]
movaps xmm1, xmm2
cvtps2pd xmm3, xmm0
mov qword [rbp + 0x1f8], rcx
lea rcx, str.___U:
mov word [rbp + 0x1c4], ax
mov word [rbp + 0x204], ax
mov word [rbp + 0x244], ax
lea rax, [0x14026c3f4]
mov qword [rbp + 0x238], rcx
mov ecx, r9d
movsd xmm0, qword [0x14028d340]
addsd xmm1, xmm3
mulsd xmm2, xmm0
mov dword [rbp + 0x1c0], 0x4b
mulsd xmm3, xmm0
mov dword [rbp + 0x1e0], 1
mov qword [rbp + 0x1f0], 0xc
mulsd xmm1, xmm0
mov dword [rbp + 0x200], 0x4b
movsd qword [rbp + 0x210], xmm2
movsd qword [rbp + 0x250], xmm3
mov dword [rbp + 0x220], 1
movsd qword [rbp + 0x1d0], xmm1
mov qword [rbp + 0x230], 0xc
mov dword [rbp + 0x240], 0x4b
mov dword [rbp + 0x260], 1
mov qword [rbp + 0x270], 4
mov qword [rbp + 0x278], rax
call fcn.140109280
mov rcx, rax
call sym.SystemInformer.exe_QiAutoDereferenceObject
mov edx, dword ds:[r15 + 0x18]
xor r14d, r14d
xor ecx, ecx
movups xmm0, xmmword [rax]
mov eax, 0xa
mov dword [rbp + 0x280], 1
mov dword [rbp + 0x2a0], r14d
movaps xmmword [rbp + 0x290], xmm0
mov word [rbp + 0x2b0], ax
call sym.SystemInformer.exe_QiGetStatisticsTimeString
mov rcx, rax
call sym.SystemInformer.exe_QiAutoDereferenceObject
lea edx, [r14 + 9]
mov r8d, 0xa0
lea rcx, [rbp + 0x1c0]
movups xmm0, xmmword [rax]
mov dword [rbp + 0x2c0], 1
movaps xmmword [rbp + 0x2d0], xmm0
call sym.SystemInformer.exe_QiFormat
mov rcx, qword [0x1402c7c68]
mov qword [0x1402c7c68], rax
test rcx, rcx
je 0x140107b85
add rcx, 0xfffffffffffffff0
mov eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x140107b85
nop dword [rax]
call fcn.14013fb00
mov rax, qword [0x1402c7c68]
movups xmm0, xmmword [rax]
movups xmmword [r15 + 0x20], xmm0
jmp 0x14010866c
mov rax, qword [0x1402c7ae8]
lea rdi, [rsi + rsi*2]
shl rdi, 4
mov rbx, rsi
mov qword [rsp + 0x30], rdi
cmp dword [rdi + rax + 0x28], r9d
je 0x14010816c
mov rdx, qword [0x1402c9f30]
lea r8, [rsi + rsi*2]
mov qword [rsp + 0x700], r13
mov qword [rsp + 0x750], r12
mov ecx, dword [rdx + r8*8 + 0xc]
mov eax, dword [rdx + r8*8 + 4]
add ecx, r9d
and rcx, rax
mov rax, qword [rdx + r8*8 + 0x10]
mov rdx, qword [0x1402c9f98]
movss xmm1, dword [rax + rcx*4]
mov ecx, dword [rdx + r8*8 + 0xc]
mov eax, dword [rdx + r8*8 + 4]
add ecx, r9d
and rcx, rax
mov rax, qword [rdx + r8*8 + 0x10]
cvtps2pd xmm2, xmm1
movss xmm0, dword [rax + rcx*4]
lea rcx, str.___K:
movzx eax, word [0x1402c2228]
movaps xmm1, xmm2
cvtps2pd xmm3, xmm0
mov qword [rsp + 0x78], rcx
lea rcx, str.___U:
mov word [rsp + 0x44], ax
mov word [rbp - 0x7c], ax
mov word [rbp - 0x3c], ax
lea rax, [0x14026c3f4]
mov qword [rbp - 0x48], rcx
mov ecx, r9d
movsd xmm0, qword [0x14028d340]
addsd xmm1, xmm3
mulsd xmm2, xmm0
mov dword [rsp + 0x40], 0x4b
mulsd xmm3, xmm0
mov dword [rsp + 0x60], 1
mov qword [rsp + 0x70], 0xc
mulsd xmm1, xmm0
mov dword [rbp - 0x80], 0x4b
movsd qword [rbp - 0x70], xmm2
movsd qword [rbp - 0x30], xmm3
mov dword [rbp - 0x60], 1
movsd qword [rsp + 0x50], xmm1
mov qword [rbp - 0x50], 0xc
mov dword [rbp - 0x40], 0x4b
mov dword [rbp - 0x20], 1
mov qword [rbp - 0x10], 4
mov qword [rbp - 8], rax
call fcn.140109280
mov rcx, rax
call sym.SystemInformer.exe_QiAutoDereferenceObject
cmp byte [0x1402c4fd8], 0
mov r13d, 0x10
movups xmm0, xmmword [rax]
mov eax, 0xa
mov dword [rbp], 1
mov qword [rbp + 0x30], rax
lea rax, str._nCPU
mov qword [rbp + 0x38], rax
movaps xmmword [rbp + 0x10], xmm0
mov dword [rbp + 0x20], 1
je 0x140107d7b
lea rax, str.__Core
mov dword [rbp + 0x40], 8
mov edx, esi
mov qword [rbp + 0x78], rax
xor ecx, ecx
mov dword [rbp + 0x50], esi
mov dword [rbp + 0x60], 1
mov qword [rbp + 0x70], 0xe
call fcn.1401099c0
mov dword [rbp + 0x90], eax
lea ecx, [r13 - 0xd]
lea rax, str.__Socket
mov dword [rbp + 0x80], 8
mov edx, esi
mov qword [rbp + 0xb8], rax
mov dword [rbp + 0xa0], 1
mov qword [rbp + 0xb0], 0x12
call fcn.1401099c0
mov dword [rbp + 0xd0], eax
jmp 0x140107e7d
movzx r9d, word [0x1402c4fdc]
xor r14d, r14d
movzx r8d, r14w
movzx ebx, r14w
cmp r14w, r9w
jae 0x140107e19
mov r10, qword [0x1402c4fe0]
mov r11d, 0xffff
test r10, r10
je 0x140107ddf
movzx ecx, r14w
cmp bx, r11w
jne 0x140107dcf
mov rax, r10
mov rdx, r9
nop word [rax + rax]
add cx, word [rax]
lea rax, [rax + 2]
sub rdx, 1
jne 0x140107dc0
jmp 0x140107de6
cmp bx, r9w
jae 0x140107de6
movzx eax, bx
movzx ecx, word [r10 + rax*2]
jmp 0x140107de6
movzx ecx, word [0x1402c4fda]
movzx edx, r14w
cmp r14w, cx
jae 0x140107e10
movzx eax, r8w
inc r8w
cmp eax, esi
je 0x140107edd
inc dx
cmp dx, cx
jb 0x140107df0
inc bx
cmp bx, r9w
jb 0x140107da5
lea rax, str.__Group
mov dword [rbp + 0x40], 8
mov qword [rbp + 0x78], rax
mov dword [rbp + 0x50], esi
mov dword [rbp + 0x60], 1
mov qword [rbp + 0x70], r13
mov dword [rbp + 0x80], 8
mov dword [rbp + 0x90], 0xffffffff
mov dword [rbp + 0xd0], 0xffffffff
lea rax, str.__Node
mov qword [rbp + 0xb8], rax
mov dword [rbp + 0xa0], 1
mov rbx, rsi
mov qword [rbp + 0xb0], 0xe
cmp dword [0x1402baf40], 0x64
mov r12, qword [rsp + 0x750]
mov dword [rbp + 0xc0], 8
jb 0x1401080a2
cmp word [0x1402c4fda], 0x40
jae 0x1401080a2
test byte [0x1402c05c8], 1
jne 0x140107fcd
lock bts qword [0x1402c05c8], 0x1f
jb 0x140107fb6
call fcn.140109a60
lea rcx, [0x1402c05c8]
call sym.SystemInformer.exe_QifSetEvent
jmp 0x140107fcd
movzx r12d, dx
lea rax, str.__Group
mov qword [rbp + 0x78], rax
movzx edi, r14w
movzx eax, bx
mov dword [rbp + 0x90], eax
mov dword [rbp + 0x40], 8
mov dword [rbp + 0x50], r12d
mov dword [rbp + 0x60], 1
mov qword [rbp + 0x70], r13
mov dword [rbp + 0x80], 8
cmp bx, 0x14
jae 0x140107f84
nop
cmp dx, 0x40
jae 0x140107f84
xor r9d, r9d
lea rdx, [rbp + 0x1c0]
mov r8d, 0x408
lea ecx, [r9 + 0x37]
call qword [sym.imp.ntdll.dll_NtQuerySystemInformation]
test eax, eax
js 0x140107f84
mov edx, dword [rbp + 0x1c0]
movzx eax, di
add rax, rax
cmp word [rbp + rax*8 + 0x1d0], bx
jne 0x140107f78
mov rax, qword [rbp + rax*8 + 0x1c8]
bt rax, r12
jb 0x140107f95
inc di
movzx eax, di
cmp eax, edx
jbe 0x140107f50
mov rdi, qword [rsp + 0x30]
mov dword [rbp + 0xd0], r14d
jmp 0x140107e57
lea rax, str.__Node
mov qword [rbp + 0xb8], rax
movzx eax, di
mov rdi, qword [rsp + 0x30]
mov dword [rbp + 0xd0], eax
jmp 0x140107e65
test byte [0x1402c05c8], 1
jne 0x140107fcd
xor edx, edx
lea rcx, [0x1402c05c8]
call sym.SystemInformer.exe_QifWaitForEvent
mov rax, qword [0x1402c7b48]
test rax, rax
je 0x1401080a2
nop dword [rax]
cmp esi, dword [rax]
ja 0x1401080a2
mov rax, qword [rax + 8]
mov ecx, dword [rax + rbx*8]
cmp ecx, 0x20
je 0x140108006
cmp ecx, 0x40
jne 0x1401080a2
lea rax, [0x1402c0598]
jmp 0x14010800d
lea rax, [0x1402c05a8]
movups xmm0, xmmword [rax]
lea rcx, [0x14023af80]
mov dword [rbp + 0xe0], 1
mov qword [rbp + 0xf8], rcx
lea rax, [0x140238b10]
mov ecx, esi
movaps xmmword [rbp + 0x110], xmm0
mov qword [rbp + 0xf0], 4
mov dword [rbp + 0x100], 1
mov dword [rbp + 0x120], 1
mov qword [rbp + 0x130], 2
mov qword [rbp + 0x138], rax
call fcn.140109d00
test al, al
je 0x1401080fb
lea rax, str.Parked_n
mov dword ds:[rbp + 0x140], 1
mov qword [rbp + 0x158], rax
mov r13d, 0x11
mov qword [rbp + 0x150], 0xe
jmp 0x1401080fb
lea rax, [0x140238b10]
mov dword [rbp + 0xe0], 1
mov ecx, esi
mov qword [rbp + 0xf8], rax
mov qword [rbp + 0xf0], 2
mov r13d, 0xe
call fcn.140109d00
test al, al
je 0x1401080fb
lea rax, str.Parked_n
mov qword [rbp + 0x110], r13
mov qword [rbp + 0x118], rax
mov r13d, 0xf
mov dword [rbp + 0x100], 1
mov edx, dword [r15 + 0x18]
xor ecx, ecx
mov ebx, r13d
shl rbx, 5
call sym.SystemInformer.exe_QiGetStatisticsTimeString
mov rcx, rax
call sym.SystemInformer.exe_QiAutoDereferenceObject
lea edx, [r13 + 1]
xor r8d, r8d
lea rcx, [rsp + 0x40]
movups xmm0, xmmword [rax]
mov dword [rsp + rbx + 0x40], 1
movups xmmword [rsp + rbx + 0x50], xmm0
call sym.SystemInformer.exe_QiFormat
mov rcx, qword [0x1402c7ae8]
mov r13, qword [rsp + 0x700]
mov rdx, qword [rdi + rcx + 0x20]
mov qword [rdi + rcx + 0x20], rax
test rdx, rdx
je 0x14010816c
lea rcx, [rdx - 0x10]
mov eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x14010816c
call fcn.14013fb00
mov rax, qword [0x1402c7ae8]
mov rcx, qword [rdi + rax + 0x20]
movups xmm0, xmmword [rcx]
movups xmmword [r15 + 0x20], xmm0
jmp 0x14010866c
mov rdi, qword [rdx + 0x18]
mov eax, 0x13
cmp byte [0x1402c9b84], 0
mov ecx, 0x1013
mov r8d, dword [0x1402c9ae0]
mov edx, dword [0x1402c9aec]
cmovne eax, ecx
mov dword [rdi + 8], eax
mov rcx, rdi
mov rax, qword [0x1402c7bd8]
movaps xmmword [rsp + 0x6f0], xmm6
movaps xmmword [rsp + 0x6e0], xmm7
mov r9, qword [rax + 0x78]
mov r9d, dword [r9 + 0x54]
call sym.SystemInformer.exe_QiSiSetColorsGraphDrawInfo
mov r8d, dword [0x1402c9c48]
mov rdx, qword ds:[r15 + 0x18]
cmp esi, 0xffffffff
jne 0x140108319
lea rcx, [0x1402c7c48]
call sym.SystemInformer.exe_QiGetDrawInfoGraphBuffers
cmp byte [0x1402c7c5c], 0
nop dword [rax]
jne 0x14010865c
mov r8d, dword [rdi + 0x14]
lea rcx, [0x1402c9c40]
mov rdx, qword [0x1402c7c48]
call sym.SystemInformer.exe_QiCopyCircularBuffer_FLOAT
mov r8d, dword [rdi + 0x14]
lea rcx, [0x1402c9d00]
mov rdx, qword [0x1402c7c50]
call sym.SystemInformer.exe_QiCopyCircularBuffer_FLOAT
cmp byte [0x1402c9ba4], 0
nop dword [rax + rax]
je 0x1401082e8
cmp byte [0x1402c9bac], 0
xorps xmm7, xmm7
xorps xmm6, xmm6
je 0x14010827d
mov eax, dword [rdi + 0x14]
cmp eax, 0x80
jbe 0x14010827d
mov rbx, qword [0x1402c7c48]
mov r8d, eax
mov rdx, qword [0x1402c7c50]
mov rcx, rbx
call sym.SystemInformer.exe_QiAddPlusMaxMemorySingles
movaps xmm6, xmm0
jmp 0x1401082bb
mov ecx, dword [rdi + 0x14]
test ecx, ecx
je 0x1401082f0
mov rbx, qword [0x1402c7c48]
mov edx, ecx
mov r8, qword [0x1402c7c50]
mov rax, rbx
sub r8, rbx
nop word [rax + rax]
movss xmm0, dword [rax + r8]
addss xmm0, dword [rax]
add rax, 4
maxss xmm0, xmm6
movaps xmm6, xmm0
sub rdx, 1
jne 0x1401082a0
ucomiss xmm6, xmm7
jp 0x1401082c4
je 0x1401082f0
mov r8d, dword [rdi + 0x14]
movaps xmm1, xmm6
mov rcx, rbx
call sym.SystemInformer.exe_QiDivideSinglesBySingle
mov r8d, dword [rdi + 0x14]
movaps xmm1, xmm6
mov rcx, qword [0x1402c7c50]
call sym.SystemInformer.exe_QiDivideSinglesBySingle
jmp 0x1401082f0
movss xmm6, dword [0x14028d304]
mov edx, 0x50
lea rax, [sym.SystemInformer.exe_QiSiDoubleLabelYFunction]
mov ecx, 0x58
mov r8, rdi
mov qword [rdx + rdi], rax
movss dword [rcx + rdi], xmm6
mov byte [0x1402c7c5c], 1
jmp 0x14010865c
mov rcx, qword [0x1402c7ae8]
lea r14, [rsi + rsi*2]
shl r14, 4
add rcx, r14
call sym.SystemInformer.exe_QiGetDrawInfoGraphBuffers
mov rdx, qword [0x1402c7ae8]
cmp byte ds:[r14 + rdx + 0x14], 0
jne 0x14010848b
mov rax, qword [0x1402c9f30]
lea rbx, ds:[rsi + rsi*2]
mov r8d, dword [rdi + 0x14]
mov rdx, qword [r14 + rdx]
lea rcx, [rax + rbx*8]
call sym.SystemInformer.exe_QiCopyCircularBuffer_FLOAT
mov rax, qword [0x1402c9f98]
mov rdx, qword [0x1402c7ae8]
mov r8d, dword [rdi + 0x14]
lea rcx, [rax + rbx*8]
mov rdx, qword [r14 + rdx + 8]
call sym.SystemInformer.exe_QiCopyCircularBuffer_FLOAT
cmp byte [0x1402c9ba4], 0
je 0x140108450
cmp byte [0x1402c9bac], 0
xorps xmm7, xmm7
xorps xmm6, xmm6
je 0x1401083ca
mov eax, dword [rdi + 0x14]
cmp eax, 0x80
jbe 0x1401083ca
mov rcx, qword [0x1402c7ae8]
mov r8d, eax
mov rdx, qword [r14 + rcx + 8]
mov rcx, qword [r14 + rcx]
call sym.SystemInformer.exe_QiAddPlusMaxMemorySingles
movaps xmm6, xmm0
jmp 0x14010840a
mov r8d, dword [rdi + 0x14]
test r8d, r8d
je 0x140108458
mov rax, qword [0x1402c7ae8]
mov rcx, qword [r14 + rax]
mov rdx, qword [r14 + rax + 8]
mov eax, r8d
sub rdx, rcx
nop dword [rax]
movss xmm0, dword [rcx + rdx]
addss xmm0, dword [rcx]
add rcx, 4
maxss xmm0, xmm6
movaps xmm6, xmm0
sub rax, 1
jne 0x1401083f0
ucomiss xmm6, xmm7
jp 0x140108411
je 0x140108458
mov rcx, qword [0x1402c7ae8]
lea rdx, [rsi + rsi*2]
mov r8d, dword [rdi + 0x14]
add rdx, rdx
movaps xmm1, xmm6
mov rcx, qword [rcx + rdx*8]
call sym.SystemInformer.exe_QiDivideSinglesBySingle
mov rcx, qword [0x1402c7ae8]
lea rdx, [rsi + rsi*2]
mov r8d, dword [rdi + 0x14]
add rdx, rdx
movaps xmm1, xmm6
mov rcx, qword [rcx + rdx*8 + 8]
call sym.SystemInformer.exe_QiDivideSinglesBySingle
jmp 0x140108458
movss xmm6, dword [0x14028d304]
mov ecx, 0x58
lea rax, [sym.SystemInformer.exe_QiSiDoubleLabelYFunction]
mov edx, 0x50
mov r9, rdi
mov r8, rdi
mov qword [rdi + rdx], rax
movss dword [rcx + rdi], xmm6
lea rcx, [rsi + rsi*2]
mov rax, qword [0x1402c7ae8]
add rcx, rcx
mov byte [rax + rcx*8 + 0x14], 1
cmp dword [0x1402c9b88], 0
je 0x140108655
mov rdx, qword [0x1402c9f30]
lea r8, [rsi + rsi*2]
mov eax, dword [rdx + r8*8 + 4]
mov ecx, dword [rdx + r8*8 + 0xc]
and rcx, rax
mov rax, qword [rdx + r8*8 + 0x10]
mov rdx, qword [0x1402c9f98]
movss xmm1, dword [rax + rcx*4]
mov eax, dword [rdx + r8*8 + 4]
mov ecx, dword [rdx + r8*8 + 0xc]
and rcx, rax
mov rax, qword [rdx + r8*8 + 0x10]
cvtps2pd xmm2, xmm1
mov edx, 6
lea r8d, [rdx + 0x3a]
movss xmm0, dword [rax + rcx*4]
lea rcx, str.___K:
movzx eax, word [0x1402c2228]
movaps xmm1, xmm2
cvtps2pd xmm3, xmm0
mov qword [rbp + 0x1f8], rcx
lea rcx, str.___U:
mov word [rbp + 0x1c4], ax
mov word [rbp + 0x204], ax
mov word [rbp + 0x244], ax
lea rax, [0x14026c3f4]
mov qword [rbp + 0x238], rcx
lea rcx, [rbp + 0x1c0]
movsd xmm0, qword [0x14028d340]
addsd xmm1, xmm3
mulsd xmm2, xmm0
mov dword [rbp + 0x1c0], 0x4b
mulsd xmm3, xmm0
mov dword [rbp + 0x1e0], 1
mov qword [rbp + 0x1f0], 0xc
mulsd xmm1, xmm0
mov dword [rbp + 0x200], 0x4b
movsd qword [rbp + 0x210], xmm2
movsd qword [rbp + 0x250], xmm3
mov dword [rbp + 0x220], 1
movsd qword [rbp + 0x1d0], xmm1
mov qword [rbp + 0x230], 0xc
mov dword [rbp + 0x240], 0x4b
mov dword [rbp + 0x260], 1
mov qword [rbp + 0x270], 4
mov qword [rbp + 0x278], rax
call sym.SystemInformer.exe_QiFormat
mov rcx, qword [0x1402c7ae8]
lea rdx, [rsi + rsi*2]
add rdx, rdx
mov r8, qword [rcx + rdx*8 + 0x18]
mov qword [rcx + rdx*8 + 0x18], rax
test r8, r8
je 0x1401085fe
lea rcx, [r8 - 0x10]
mov eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x1401085fe
call fcn.14013fb00
mov rcx, qword [0x1402c7b38]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x919
mov rcx, qword [rcx + rsi*8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r8, qword [0x1402c7ae8]
lea rcx, [0x1402bb290]
lea r10, [rsi + rsi*2]
mov dword [rsp + 0x28], 5
add r10, r10
mov qword [rsp + 0x20], rcx
lea r9, [0x1402bb2a0]
mov rdx, rdi
mov rcx, rax
mov r8, qword [r8 + r10*8 + 0x18]
call sym.SystemInformer.exe_QiSetGraphText
jmp 0x14010865c
xor r14d, r14d
mov qword [rdi + 0x78], r14
movaps xmm6, xmmword [rsp + 0x6f0]
movaps xmm7, xmmword [rsp + 0x6e0]
mov rcx, qword [rbp + 0x5d0]
xor rcx, rsp
call fcn.1401e0100
add rsp, 0x708
pop r15
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret