Function at 0x140029160
Capabilities:
Encode data using xor

Disassembly:
mov byte [rsp + 0x18], r8b
mov byte [rsp + 0x10], dl
mov dword [rsp + 8], ecx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
mov r8d, dword [0x140042b48]
mov esi, 0x10
movzx ecx, byte [0x140042b88]
xor ebx, ebx
movzx r11d, byte [0x140042b54]
mov eax, ebx
movzx r9d, byte [0x140042b64]
test r8d, r8d
movzx r10d, byte [0x140042b56]
lea r15d, [rsi + 0xd]
movsx edx, byte [0x140042b66]
lea edi, [rsi - 0xf]
setne al
mov dword [rsp + 0x20], esi
add dword [0x140042b5c], eax
and r11b, 0x20
mov eax, dword [0x140042b4c]
not r11b
mov esi, dword [0x140042b30]
and eax, 0x71
xor dword [0x140042a88], eax
and r11b, 0xb8
movzx eax, byte [0x140042b60]
mov r12d, 0xaf
and al, 4
mov dword [rsp + 0x2c], 4
and byte [0x140042b57], al
mov ebp, 0x23c
movsx eax, byte [0x140042b67]
add eax, 0xffffffd8
lea r14d, [r12 - 0x3a]
mov dword [rsp + 0xc0], eax
mov eax, 0x34
mov r13d, dword [rsp + 0xc0]
shr al, cl
movzx ecx, byte [0x140042a87]
or r11b, al
mov eax, r8d
and eax, 0x28
mov dword [rsp + 0xb8], eax
cmp edx, 0x28
je 0x14002925e
cmp dword [0x140042b40], 0x34
mov eax, ebx
setne al
cmp eax, r14d
je 0x140029262
lea r12d, [rsi + 9]
test r13d, r13d
mov r8d, ebx
setne r8b
test r9b, r9b
setne al
or cl, al
and cl, r11b
cmp dword [0x140042b58], ebx
je 0x14002928e
mov eax, 0xffffff72
cmp eax, dword [0x140042b34]
mov eax, edi
jne 0x140029290
mov eax, ebx
sub r8d, dword [rsp + 0xb8]
sub r10b, al
sub rbp, 1
jne 0x140029248
mov r11d, dword [0x140042b5c]
lea esi, [rbp + 0x10]
movzx edx, byte [0x140042b54]
mov eax, 0xbd
mov byte [0x140042b56], r10b
sar r9b, 7
lea r10d, [r11 + 4]
mov byte [0x140042a87], cl
mov dword [rsp + 0x28], r10d
lea r13d, [rax - 5]
or r9b, 0xb8
nop dword [rax]
and dl, r9b
sub rax, rdi
jne 0x1400292e0
movzx eax, byte [0x140042b83]
imul ecx, eax, 7
mov eax, 0xaaaaaaab
mov byte [0x140042b54], dl
add ecx, r14d
mul ecx
shr edx, 2
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
je 0x140029352
sub ecx, edi
je 0x140029332
sub ecx, edi
je 0x140029322
cmp ecx, edi
jne 0x14002936d
mov dword [0x140042a8c], edi
jmp 0x14002936d
test r11d, r11d
mov eax, ebx
setne al
and dword [0x140042b6c], eax
jmp 0x14002936d
imul r15d, dword [0x140042b7c], 0x1d
mov eax, 0xaaaaaaab
mul r15d
shr edx, 1
lea eax, [rdx + rdx*2]
sub r15d, eax
and dword [0x140042a88], edi
jmp 0x14002936d
mov eax, dword [0x140042b84]
and eax, 0x71
xor dword [0x140042b30], eax
mov eax, dword [0x140042b48]
xor dword [0x140042a64], eax
movsx eax, byte [0x140042a63]
mov ecx, esi
sub ecx, r12d
and ecx, 0x34
xor ecx, eax
movsx eax, byte [0x140042b66]
xor ecx, eax
add r8d, ecx
mov dword [0x140042b78], r8d
call qword [sym.imp.KERNEL32.dll_GetConsoleAliasExesLengthA]
mov r11d, dword [rsp + 0x28]
mov eax, r11d
sub eax, dword [0x140042b3c]
movzx ecx, byte [0x140042b83]
mov byte [rsp + 0xb8], cl
and eax, 7
je 0x140029417
sub eax, edi
je 0x140029405
sub eax, edi
je 0x1400293f7
movzx r10d, byte [0x140042b81]
mov r9d, dword [0x140042b60]
cmp eax, edi
jne 0x14002944e
cmp dword [0x140042b2c], r14d
movzx r8d, r15b
sete al
xor al, sil
sub r10b, al
or r8b, byte [0x140042b6c]
mov byte [0x140042b81], r10b
jmp 0x140029456
imul r14d, dword [0x140042b6c], 0x75
shr r14d, 2
jmp 0x14002943f
mov r9d, dword [0x140042b60]
movzx eax, cl
xor eax, r15d
sub r9d, eax
jmp 0x140029446
mov r13d, dword [0x140042b38]
mov eax, 0xaaaaaaab
mov esi, dword [0x140042b2c]
imul r13d, r11d
mul r13d
shr edx, 1
lea eax, [rdx + rdx*2]
sub r13d, eax
add esi, 0xa
mov dword [rsp + 0x20], esi
mov r9d, dword [0x140042b60]
movzx r10d, byte [0x140042b81]
movzx r8d, byte [0x140042a86]
movsx eax, byte [0x140042b88]
lea eax, [rax + rax*4]
add eax, 0x34
and eax, 0x80000001
jge 0x140029471
dec eax
or eax, 0xfffffffe
inc eax
mov ebp, dword [0x140042b78]
test eax, eax
je 0x1400294e1
sub eax, edi
je 0x1400294c3
sub eax, edi
je 0x1400294b2
cmp eax, edi
jne 0x1400294f1
movsx r13d, byte [0x140042b56]
mov eax, 0xfc
sub al, byte [0x140042b54]
add r8b, al
mov eax, 0xaaaaaaab
mul r15d
shr edx, 1
lea eax, [rdx + rdx*2]
sub r13d, eax
add r13d, r15d
jmp 0x1400294f1
mov eax, ebx
cmp r10b, 0x6f
sete al
mov dword [0x140042b48], eax
jmp 0x1400294f1
cmp byte [0x140042b54], bl
je 0x1400294d5
cmp byte [0x140042b67], bl
mov ecx, edi
jne 0x1400294d7
mov ecx, ebx
mov eax, dword [0x140042b30]
and eax, ecx
jmp 0x1400294f7
mov ecx, r13d
mov edx, ebp
or ecx, 4
shr edx, cl
xor dword [0x140042b3c], edx
mov eax, dword [0x140042b30]
mov dword [rsp + 0x24], eax
mov ecx, esi
mov eax, ebp
shr eax, cl
movzx ecx, byte [0x140042b57]
mov dword [rsp + 0xb0], eax
mov eax, 0x5a
xor cl, bpl
sub rax, rdi
jne 0x140029514
movsx eax, byte [0x140042a63]
mov edx, esi
mov ecx, dword [0x140042b40]
inc eax
or ecx, eax
movzx eax, byte [0x140042b54]
mov dword [rsp + 0xc0], ecx
mov ecx, r11d
sar edx, cl
mov ecx, ebx
cmp eax, edx
mov eax, ebx
sete byte [0x140042b66]
cmp byte [0x140042b80], 4
setb cl
cmp dword [0x140042b34], 0x71
setne al
xor ecx, eax
cmp ecx, 0x28
jne 0x14002957b
cmp dword [0x140042b44], ebx
mov eax, ebx
setne al
mov dword [0x140042b7c], eax
movzx eax, byte [0x140042b84]
mov ecx, esi
mov edx, r14d
shr edx, cl
mov ecx, dword [0x140042b28]
xor dl, 0x71
sub al, dl
mov edx, esi
and byte [0x140042b80], al
mov eax, r12d
and eax, 0x28
shl edx, cl
xor edx, eax
mov ecx, esi
xor edx, dword [0x140042a8c]
mov eax, dword [0x140042b58]
or eax, edx
mov edx, dword [rsp + 0xc0]
mov dword [rsp + 0x30], eax
mov dword [0x140042b58], eax
movzx eax, r11b
xor al, dl
sub byte [0x140042a62], al
mov eax, r13d
shl eax, cl
xor eax, 0x34
add eax, r9d
test dword [0x140042b84], r14d
mov dword [rsp + 0x48], eax
jne 0x1400295f6
mov dword [0x140042b6c], ebx
test r13d, r13d
je 0x1400295fc
mov dword [0x140042b6c], edi
cmp dword [rsp + 0xb0], r14d
mov eax, ebx
sete al
cmp eax, 4
sete al
or al, byte [0x140042b4c]
mov byte [rsp + 0xc8], al
mov byte [0x140042b57], al
cmp r15d, r12d
je 0x140029641
cmp dword [0x140042b48], ebx
je 0x140029639
lea eax, [r13 + 0x34]
test eax, eax
mov eax, edi
jne 0x14002963b
mov eax, ebx
sub byte [0x140042b80], al
mov edi, dword [rsp + 0x20]
movzx ecx, dil
movzx esi, byte [0x140042a87]
mov eax, esi
mov dword [rsp + 0x44], esi
shr eax, cl
movzx esi, r11b
or dword [0x140042b68], eax
mov ecx, r11d
movzx eax, r10b
shl eax, cl
or eax, edi
mov qword [rsp + 0x50], 0x280
xor edx, eax
mov eax, 0xaaaaaaab
mov dword [0x140042b40], edx
mul r11d
shr edx, 1
movzx eax, dl
add al, al
add dl, al
mov eax, dword [rsp + 0x30]
xor al, 0x28
sub sil, dl
sub byte [rsp + 0xb8], al
mov eax, 0x55555556
add sil, byte [0x140042b82]
imul edi
mov byte [rsp + 0xc0], sil
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dl
add al, al
add dl, al
mov eax, ebx
sub dil, dl
mov edx, dword [0x140042b3c]
add dil, dl
cmp r11d, ebp
mov dword [rsp + 0x20], edi
mov r11d, dword [rsp + 0x24]
mov edi, dword [0x140042a88]
seta al
mov dword [rsp + 0x30], eax
movsx eax, byte [0x140042b66]
shl eax, cl
mov ecx, r13d
mov dword [rsp + 0x34], eax
movsx eax, byte [0x140042a63]
sar eax, 1
mov dword [rsp + 0x38], eax
movsx eax, sil
movzx esi, byte [0x140042b55]
add eax, 4
shr eax, cl
mov ecx, ebx
mov ebx, dword [rsp + 0x20]
cmp edx, eax
movzx eax, byte [0x140042b65]
sete cl
cmp ecx, eax
mov eax, dword [0x140042b84]
sete byte [rsp + 0xb0]
or al, 0x71
mov dword [rsp + 0x3c], eax
mov eax, 0xcccccccd
mul r13d
shr edx, 2
lea eax, [rdx + r11]
movzx edx, byte [0x140042a87]
mov dword [rsp + 0x40], eax
nop dword [rax]
movsx eax, byte [0x140042b56]
cmp dword [rsp + 0x30], eax
je 0x14002978b
mov ecx, r11d
mov eax, 0xaaaaaaab
imul ecx, ebp
mul ecx
shr edx, 1
lea eax, [rdx + rdx*2]
movzx edx, byte [0x140042a87]
sub ecx, eax
movzx ebx, cl
and edi, dword [rsp + 0x34]
mov ecx, r15d
or r9d, dword [rsp + 0x38]
and ecx, r14d
or ecx, r12d
movzx eax, dl
shl al, cl
mov ecx, r14d
xor sil, al
lea eax, [r15 + r13]
mov r15d, dword [rsp + 0x40]
shr eax, cl
xor al, r10b
and r8b, al
movzx eax, byte [rsp + 0xb0]
sub byte [0x140042b67], al
mov eax, dword [rsp + 0x3c]
and byte [rsp + 0xb8], al
sub qword [rsp + 0x50], 1
jne 0x140029760
movzx eax, byte [rsp + 0xc8]
mov r11d, dword [rsp + 0x28]
sub al, bl
mov dword [rsp + 0x20], ebx
mov ebx, 0
mov dword [0x140042a88], edi
mov byte [0x140042b55], sil
mov esi, dword [rsp + 0x44]
mov byte [0x140042a86], r8b
lea edi, [rbx + 1]
mov dword [0x140042b60], r9d
mov byte [0x140042b65], al
test dl, dl
je 0x140029825
mov ecx, edi
cmp r12d, r14d
jne 0x140029827
mov ecx, ebx
mov eax, dword [rsp + 0x24]
mov r9d, dword [0x140042b44]
add eax, ecx
mov dword [0x140042b30], eax
mov ecx, ebx
imul esi, r12d
mov eax, 0x66666667
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
movzx edx, byte [rsp + 0x20]
sub esi, eax
mov eax, ebx
cmp edx, dword [0x140042b5c]
sete al
cmp ebp, eax
mov eax, ebx
setb cl
cmp r9d, ecx
setne al
cmp eax, r14d
jne 0x14002988c
mov ecx, r11d
mov eax, esi
shl eax, cl
test eax, eax
setne cl
add cl, bpl
sub byte [0x140042b54], cl
movsx eax, byte [0x140042b67]
mov ecx, ebx
movsx r10d, byte [rsp + 0xc0]
cmp esi, r10d
sete cl
and ecx, eax
movzx eax, byte [rsp + 0xb8]
mov dword [0x140042b4c], ecx
test al, al
je 0x1400298c7
test ebp, ebp
je 0x1400298c7
test esi, esi
je 0x1400298c7
xor r9d, ebp
mov ecx, edi
jne 0x1400298c9
mov ecx, ebx
or al, cl
mov ecx, r13d
mov byte [0x140042b83], al
movzx eax, r8b
add eax, edx
movsx edx, byte [0x140042b88]
shl edx, cl
add eax, esi
movzx ecx, al
mov eax, 0xaaaaaaab
shl edx, cl
mov ecx, dword [rsp + 0x48]
sub ecx, edx
mul r15d
mov dword [0x140042b2c], ecx
mov r13d, edx
shr r13d, 1
add r13d, ecx
call qword [sym.imp.KERNEL32.dll_UnregisterApplicationRestart]
movzx r10d, byte [0x140042a86]
movzx ecx, bpl
movzx r8d, byte [0x140042b55]
and cl, r10b
mov eax, 0x57
nop dword [rax]
xor r8b, cl
sub rax, rdi
jne 0x140029930
movsx r11d, byte [0x140042b64]
movzx ecx, byte [rsp + 0xc0]
mov byte [0x140042b55], r8b
test r12d, r11d
je 0x14002995a
mov eax, edi
test cl, cl
jne 0x14002995c
mov eax, ebx
xor byte [0x140042b82], al
movzx eax, byte [0x140042b57]
mov r9d, dword [rsp + 0x28]
or eax, r9d
jne 0x14002997d
mov byte [0x140042b88], bl
test esi, esi
je 0x140029984
mov byte [0x140042b88], dil
cmp dword [0x140042b2c], ebx
mov edx, dword [rsp + 0x20]
jne 0x14002999e
test dl, dl
jne 0x14002999e
mov eax, r14d
xor eax, r12d
mov eax, ebx
je 0x1400299a0
mov eax, edi
or byte [0x140042b56], al
movzx eax, byte [0x140042b60]
add al, 0x71
or byte [0x140042b81], al
test cl, cl
je 0x140029a45
test ebp, ebp
je 0x140029a45
movzx eax, byte [0x140042a87]
or eax, r14d
mov byte [0x140042a63], bl
setne cl
xor r10b, cl
cmp dword [0x140042b34], edi
sete al
and r11b, al
movzx eax, byte [0x140042b7c]
and al, dl
mov byte [0x140042b64], r11b
or al, r14b
or r10b, al
mov byte [0x140042a86], r10b
test r14d, r14d
je 0x140029a18
movsx ecx, byte [rsp + 0xc0]
mov eax, edi
test cl, 0x71
jne 0x140029a1a
mov eax, ebx
movzx edx, byte [rsp + 0x20]
add al, r8b
or byte [0x140042b83], al
mov ecx, edx
movzx r11d, byte [0x140042b57]
and ecx, r14d
and ecx, 0x20
mov eax, r11d
sub eax, ecx
mov dword [0x140042b3c], eax
jmp 0x140029a52
movzx r11d, byte [0x140042b57]
movzx edx, byte [rsp + 0x20]
mov ecx, esi
mov eax, ebx
shl eax, cl
test eax, eax
jne 0x140029a6b
movsx ecx, byte [rsp + 0xc0]
mov eax, ebx
cmp ecx, r11d
jne 0x140029a6d
mov eax, edi
and byte [0x140042b66], al
movzx eax, r10b
add eax, edx
cmp byte [0x140042b80], bl
mov dword [rsp + 0xb0], eax
mov dword [0x140042a88], eax
je 0x140029a99
mov byte [0x140042a87], dil
test bl, bl
jne 0x140029a9f
mov byte [0x140042a87], bl
cmp r13d, edx
mov eax, ebx
setb al
cmp eax, dword [0x140042b40]
jne 0x140029ac4
mov r11d, dword [0x140042b30]
mov ecx, esi
shr r11d, cl
mov byte [0x140042b54], r11b
jmp 0x140029acc
movzx r11d, byte [0x140042b54]
mov edx, dword [0x140042a8c]
mov ecx, dword [0x140042b60]
mov dword [rsp + 0xc8], edx
add dl, 2
mov dword [rsp + 0xb8], edx
cmp r9d, r14d
jne 0x140029af6
test ecx, ecx
je 0x140029bea
lea eax, [r15 - 0x28]
cmp dword [rsp + 0xb0], eax
sete al
xor dword [0x140042b4c], edi
sub sil, r12b
add r10b, al
sub sil, bpl
movzx eax, r10b
sub sil, byte [0x140042b2c]
sub eax, 0x28
add sil, byte [0x140042b78]
and ecx, eax
or r11b, sil
mov byte [0x140042a86], r10b
mov dword [0x140042b60], ecx
mov byte [0x140042b54], r11b
test ebp, ebp
jne 0x140029b4d
mov r10d, ebx
test r9d, r9d
je 0x140029b50
mov r10d, edi
movsx eax, r8b
mov ecx, ebx
mov r8d, dword [rsp + 0xc8]
cmp eax, r10d
movsx r10d, byte [rsp + 0xc0]
movzx eax, byte [0x140042b82]
sete cl
and dword [0x140042a64], ecx
mov ecx, r13d
shl eax, cl
mov ecx, r9d
mov dword [0x140042b68], eax
mov eax, dword [0x140042b38]
sub eax, r10d
movzx edx, dl
sub eax, r12d
mov esi, edx
and dword [0x140042b28], eax
mov eax, ebx
cmp dword [0x140042b40], r10d
sete al
shr esi, 2
or dword [0x140042b48], eax
dec r8d
movzx eax, byte [0x140042a87]
add esi, eax
movzx eax, byte [0x140042b81]
shl eax, cl
mov ecx, edx
sar eax, 0x1f
shl eax, cl
test eax, eax
jne 0x140029bde
cmp dword [0x140042b44], ebx
mov eax, ebx
je 0x140029be0
mov eax, edi
and r8d, eax
mov dword [0x140042a8c], r8d
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
mov edx, dword [0x140042b48]
movzx eax, byte [0x140042b55]
mov r8d, dword [0x140042b40]
sar al, 7
movsx eax, al
imul ecx, eax, 0x4e
movzx eax, sil
add byte [0x140042b66], cl
mov ecx, esi
shl al, cl
mov ecx, ebx
xor al, r8b
xor al, 0x71
or byte [0x140042b64], al
mov eax, r12d
cmp r14d, edx
sete cl
and eax, r13d
xor ecx, eax
mov eax, ebx
xor ecx, dword [0x140042b68]
add edx, ecx
cmp r12d, esi
mov dword [0x140042b48], edx
setg al
cmp eax, dword [0x140042b30]
jne 0x140029d5f
test ebp, r8d
jne 0x140029c67
cmp byte [0x140042b83], bl
mov eax, ebx
je 0x140029c69
mov eax, edi
sub byte [0x140042b57], al
mov r10d, dword [rsp + 0x28]
movzx ecx, r10b
movsx eax, byte [rsp + 0xc0]
mov r9d, dword [0x140042a8c]
mov r11d, eax
movzx r8d, byte [0x140042a62]
and eax, r9d
mov r13d, dword [0x140042b3c]
or edx, eax
cmp dword [0x140042a64], r10d
mov esi, dword [rsp + 0xb8]
sete al
mov dword [0x140042b48], edx
and byte [0x140042b67], al
mov eax, 0x55555556
or cl, byte [0x140042b60]
imul r12d
xor r8b, cl
movzx esi, sil
mov eax, edx
mov byte [0x140042a62], r8b
shr eax, 0x1f
movzx ecx, r10b
movzx r10d, byte [0x140042b80]
add edx, eax
and cl, 0x71
or cl, r10b
add byte [0x140042b56], cl
lea eax, [rdx + rdx*2]
sub r13d, eax
mov dword [rsp + 0xb0], eax
add r13d, r12d
mov eax, 0xaaaaaaab
mul esi
mov dword [rsp + 0x2c], r13d
shr edx, 1
lea eax, [rdx + rdx*2]
sub esi, eax
add sil, r8b
cmp r11d, r13d
jne 0x140029d28
mov eax, ebx
test sil, sil
je 0x140029d2a
mov eax, edi
xor al, byte [0x140042b78]
movsx r13d, byte [0x140042b88]
sub r13d, dword [rsp + 0xb0]
mov byte [0x140042b65], al
movzx eax, sil
movzx ecx, r10b
xor ecx, eax
xor r9d, ecx
mov dword [0x140042a8c], r9d
add r13d, r12d
jmp 0x140029d66
mov esi, dword [rsp + 0xb8]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [0x140042b78], ebx
mov r10d, dword [0x140042b40]
mov r9d, dword [rsp + 0x28]
je 0x140029d9b
cmp r15d, r10d
mov eax, ebx
setne al
cmp r9d, eax
jne 0x140029d9b
cmp byte [0x140042b57], 0x20
sete byte [0x140042b80]
movzx r8d, byte [0x140042a86]
mov eax, 0x66666667
mov edx, r8d
movzx esi, sil
mov ecx, esi
sub ecx, ebp
and ecx, r12d
lea r8d, [r8*2 + 0x20]
shl edx, cl
mov dword [0x140042b68], edx
imul r8d
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
sub r8d, eax
movsx ecx, r8w
test ecx, ecx
je 0x140029ea0
sub ecx, edi
je 0x140029e8b
sub ecx, edi
je 0x140029e6d
cmp ecx, edi
je 0x140029e49
test r14b, 0x20
je 0x140029dfe
test ebp, ebp
jne 0x140029e00
mov edi, ebx
movzx eax, byte [0x140042b67]
movsx r8d, byte [rsp + 0xc0]
xor dil, al
mov ecx, dword [rsp + 0x2c]
movzx edx, byte [0x140042b58]
add ecx, r8d
shl dl, cl
lea ecx, [r10 + 0x20]
shl dl, cl
sub dil, dl
add al, dil
mov byte [0x140042b67], al
movzx eax, byte [0x140042b88]
sub al, r8b
xor al, 0x71
mov byte [0x140042b81], al
jmp 0x140029eb3
movzx eax, byte [0x140042b81]
cmp eax, esi
je 0x140029e63
mov ecx, r14d
shr r9d, cl
cmp r9d, dword [0x140042b84]
je 0x140029e65
mov edi, ebx
and dword [0x140042b38], edi
jmp 0x140029eb3
mov ecx, r15d
mov dword [0x140042b7c], ebx
mov eax, 0x20
shl eax, cl
xor eax, dword [0x140042b4c]
mov dword [0x140042b58], eax
jmp 0x140029eb3
test r10d, r10d
jne 0x140029e96
xor r13d, 0x71
je 0x140029e98
mov ebx, edi
or dword [0x140042b6c], ebx
jmp 0x140029eb3
mov ecx, dword [rsp + 0x2c]
cmp dword [0x140042b6c], ecx
sete bl
xor dword [0x140042b4c], ebx
call fcn.140028a10
mov eax, esi
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret