Function at 0x140016e86
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x178
movaps xmmword [rsp + 0x160], xmm6
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x158], rcx
lea rcx, [rsp + 0x48]
mov qword [rsp + 0xc0], rcx
mov rax, qword [rsp + 0xc0]
mov dword [rcx], 0
xor eax, eax
lea r14, [rsp + 0xdc]
mov byte [r14 - 4], al
mov dword [r14], 0xe76645f
mov dword [r14 + 4], 0xe66645e
mov dword [r14 + 8], 0xe6a645b
mov dword [r14 + 0xc], 0xe06644a
mov dword [r14 + 0x10], 0xe016422
mov dword [r14 + 0x14], 0xe35641a
cmp byte [r14 - 4], al
jne 0x140017081
movabs r8, 0xe576113b2b3e25f0
movabs r9, 0x72806ab1f96c3516
mov r12d, 1
movabs r10, 0x476c880a925cb64c
xor edi, edi
mov r15d, 0xffffffff
mov r11d, 0xc60fbf28
mov ebx, dword [rsp + r12*4 + 0xd8]
mov esi, ebx
xor esi, r15d
mov ecx, ebx
and ecx, 0x9822d833
mov eax, esi
and eax, 0x67dd27cc
or eax, ecx
mov ecx, eax
xor ecx, 0x90009002
xor eax, 0x60550308
and ecx, 0x9788b4c6
and eax, 0x68774b39
or eax, ecx
mov ecx, eax
xor ecx, 0x6002402
or ecx, 0xf1ca9be5
mov ebp, ecx
xor ebp, r15d
mov edx, esi
and edx, 0x338a5787
and ebx, 0xcc75a878
or ebx, edx
xor ebx, 0x3dbf339d
xor esi, ebx
and esi, ebx
and ecx, 0x752416a8
xor eax, 0xa104410
and eax, ebp
mov edx, ebp
and edx, 0xa116012
or edx, ecx
mov ebp, edx
mov ebx, edx
xor ebx, 0x50241608
or ebx, 0x2d9069b2
xor edx, 0x24a0045
mov ecx, ebx
and ecx, 0x21012ca0
and edx, 0x26e004d
or edx, ecx
mov ecx, eax
xor ecx, r15d
or ebx, ecx
and ecx, 0xf101bea0
and eax, 0xe34401a
or eax, ecx
mov ecx, esi
xor ecx, r15d
xor eax, edx
mov edx, esi
or edx, 0x4002920
xor ebx, r15d
or ebx, eax
and edx, r11d
mov eax, ecx
and eax, 0x10600045
or eax, edx
mov edx, ecx
or edx, 0xc20f9608
and edx, r11d
and esi, 0x29904092
or esi, edx
xor esi, eax
mov eax, ebx
xor eax, r15d
and eax, esi
xor esi, r15d
and esi, ebx
xor ebp, 0x8adbe957
or esi, eax
mov eax, ebp
and eax, ecx
xor ecx, ebp
or ecx, eax
xor ecx, r15d
mov eax, esi
and eax, ecx
xor ecx, esi
or ecx, eax
mov dword [rsp + r12*4 + 0xd8], ecx
sub rdi, r9
add rdi, r8
add rdi, r9
add rdi, r10
sub rdi, r8
sub rdi, r10
inc rdi
inc r12
cmp r12, 7
jne 0x140016f45
xor ecx, ecx
mov edx, 0xb
mov r8d, 0xf85d7891
mov r9d, 0x20a
call fcn.14001939f
lea rcx, [0x140020010]
mov rdx, r14
xor r8d, r8d
xor r9d, r9d
call rax
mov dword [rsp + 0x8c], eax
mov eax, 4
lea rcx, [rsp + 0xd8]
or rcx, rax
mov qword [rsp + 0x150], rcx
lea rcx, [rsp + 0xa0]
or rcx, rax
mov qword [rsp + 0x148], rcx
mov eax, 0x43197638
xorps xmm6, xmm6
movabs r12, 0xd55f41d0d7909a1d
movabs rbp, 0x94590feabade9c6d
movabs rbx, 0x73f2df9fd91ab144
movabs rdi, 0x37f0e2be204b931c
movabs rsi, 0x1d227695ea81b328
movabs r14, 0x84378e5b039fc2
mov dword [rsp + 0x50], ecx
mov dword [rsp + 0x58], ecx
mov dword [rsp + 0x5c], ecx
mov dword [rsp + 0x54], ecx
cmp eax, 0x14b906b4
jg 0x1400171fd
cmp eax, 0xdf27a3bb
jg 0x140017288
cmp eax, 0xbd230add
jg 0x140017335
cmp eax, 0x9052bd12
je 0x140017474
cmp eax, 0xa1d82f53
je 0x14001747e
cmp eax, 0xb9ab470c
jne 0x140017131
mov ecx, dword [rsp + 0x48]
call fcn.140015329
mov qword [rsp + 0x80], rax
mov rdi, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x80]
mov r12d, dword [rsp + 0x44]
xor ecx, ecx
mov edx, 7
mov r8d, 0x8dc3e0bd
mov r9d, 0x1ed
call fcn.14001939f
movups xmmword [rsp + 0x28], xmm6
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x20], rcx
mov rcx, rdi
mov edx, r12d
movabs r12, 0xd55f41d0d7909a1d
mov r8d, 1
mov r9, rbx
call rax
movabs rdi, 0x37f0e2be204b931c
movabs rbx, 0x73f2df9fd91ab144
test rax, rax
mov eax, 0xa1d82f53
mov ecx, 0xbd230ade
cmove eax, ecx
jmp 0x140017131
cmp eax, 0x45c7835d
jle 0x1400172ef
cmp eax, 0x741eda19
jg 0x140017368
cmp eax, 0x45c7835e
je 0x14001751a
cmp eax, 0x4cfd43af
je 0x14001758b
cmp eax, 0x7132e427
movabs r12, 0xd55f41d0d7909a1d
movabs rbp, 0x94590feabade9c6d
movabs rbx, 0x73f2df9fd91ab144
movabs rdi, 0x37f0e2be204b931c
movabs rsi, 0x1d227695ea81b328
jne 0x140017131
mov eax, dword [rsp + 0x44]
mov rcx, qword [rsp + 0x60]
mov dl, byte [rsp + 0x42]
mov byte [rcx + rax], dl
mov eax, 0x741eda1a
mov ecx, dword [rsp + 0x7c]
mov dword [rsp + 0x6c], ecx
jmp 0x140017131
cmp eax, 0x69d2392
jg 0x1400173dc
cmp eax, 0xdf27a3bc
je 0x14001760b
cmp eax, 0xea1af7ee
je 0x14001761d
cmp eax, 0xf2613b32
jne 0x140017131
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x74]
mov dword [rsp + 0x44], eax
movsxd rax, dword [rsp + 0x4c]
mov rcx, qword [rsp + 0x90]
mov al, byte [rcx + rax]
mov byte [rsp + 0x42], al
cmp byte [rsp + 0x42], 0
mov eax, 0x14b906b5
mov ecx, 0xc4837507
cmove eax, ecx
jmp 0x140017131
cmp eax, 0x3412af00
jle 0x14001744e
cmp eax, 0x3412af01
je 0x14001763f
cmp eax, 0x39b63797
je 0x140017651
cmp eax, 0x43197638
jne 0x140017131
cmp dword [rsp + 0x8c], 0
mov eax, 0x74694cb0
mov ecx, 0x39b63797
cmove eax, ecx
jmp 0x140017131
cmp eax, 0xbd230ade
je 0x140017bd5
cmp eax, 0xc4837507
je 0x140017be7
cmp eax, 0xc7b3527b
jne 0x140017131
mov eax, 0x992dc84
mov dword [rsp + 0x58], 0
jmp 0x140017131
cmp eax, 0x741eda1a
je 0x140017c50
cmp eax, 0x74694cb0
je 0x140017c6c
cmp eax, 0x7f151fa3
jne 0x140017131
mov rsi, qword [0x140020010]
xor ecx, ecx
mov edx, 0xb
mov r8d, 0x847fc36c
mov r9d, 0x20c
call fcn.14001939f
mov rcx, rsi
movabs rsi, 0x1d227695ea81b328
xor edx, edx
call rax
movabs rdi, 0x37f0e2be204b931c
movabs rbx, 0x73f2df9fd91ab144
mov eax, 0x1aa56f05
mov r15d, dword [rsp + 0x50]
jmp 0x140017131
cmp eax, 0x69d2393
je 0x140017c79
cmp eax, 0x992dc84
je 0x140017c95
cmp eax, 0x10a2bf94
movabs rbx, 0x73f2df9fd91ab144
movabs rdi, 0x37f0e2be204b931c
jne 0x140017131
mov ecx, 0xbb8
call fcn.140015329
movabs rdi, 0x37f0e2be204b931c
movabs rbx, 0x73f2df9fd91ab144
mov qword [rsp + 0x60], rax
mov eax, 0xf2613b32
mov dword [rsp + 0x70], 0
mov dword [rsp + 0x74], 0
jmp 0x140017131
cmp eax, 0x14b906b5
je 0x140017cf3
cmp eax, 0x1fab266a
je 0x140017d15
cmp eax, 0x1aa56f05
jne 0x140017131
jmp 0x140017d48
mov eax, 0x69d2393
jmp 0x140017131
lea rdi, [rsp + 0x98]
mov qword [rsp + 0xc8], rdi
mov rax, qword [rsp + 0xc8]
lea rbx, [rsp + 0x78]
mov qword [rsp + 0xd0], rbx
mov rax, qword [rsp + 0xd0]
mov dword [rsp + 0x78], 0
xor ecx, ecx
mov edx, 1
mov r8d, 0x6efba682
mov r9d, 0x84
call fcn.14001939f
mov rsi, qword [rsp + 0x158]
mov rcx, rsi
call rax
mov rcx, rsi
movabs rsi, 0x1d227695ea81b328
mov edx, eax
mov r8, rdi
mov r9, rbx
call fcn.140015e86
movabs rdi, 0x37f0e2be204b931c
movabs rbx, 0x73f2df9fd91ab144
test al, al
mov eax, 0x3412af01
mov ecx, 0x45c7835e
cmovne eax, ecx
jmp 0x140017131
mov ebp, dword [rsp + 0x48]
mov r12d, dword [rsp + 0x78]
mov rbx, qword [rsp + 0x98]
mov rsi, qword [0x140020020]
mov rdi, qword [rsp + 0x80]
xor ecx, ecx
mov edx, 0xb
mov r8d, 0x7958f7d7
mov r9d, 0x212
call fcn.14001939f
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], rdi
mov dword [rsp + 0x30], 0
mov rcx, rsi
xor edx, edx
mov r8, rbx
mov r9d, r12d
call rax
test eax, eax
sete byte [rsp + 0x43]
cmp eax, 0xc000a000
mov eax, 0x9052bd12
mov ecx, 0x69d2393
cmove eax, ecx
jmp 0x1400175d4
movsxd rax, dword [rsp + 0x7c]
mov rsi, qword [rsp + 0x90]
mov cl, byte [rsi + rax]
call fcn.140015d34
mov ebx, eax
shl bl, 4
mov eax, dword [rsp + 0x4c]
add eax, 2
cdqe
mov cl, byte [rsi + rax]
call fcn.140015d34
add al, bl
mov ecx, dword [rsp + 0x44]
mov rdx, qword [rsp + 0x60]
mov byte [rdx + rcx], al
mov eax, dword [rsp + 0x4c]
add eax, 3
mov dword [rsp + 0x6c], eax
mov eax, 0x741eda1a
movabs r12, 0xd55f41d0d7909a1d
movabs rbp, 0x94590feabade9c6d
movabs rbx, 0x73f2df9fd91ab144
movabs rdi, 0x37f0e2be204b931c
movabs rsi, 0x1d227695ea81b328
jmp 0x140017131
mov eax, 0x7f151fa3
mov dword [rsp + 0x50], 0
jmp 0x140017131
mov rax, qword [rsp + 0xd0]
mov rax, qword [rsp + 0xc8]
mov eax, 0x1fab266a
mov ecx, dword [rsp + 0x54]
mov dword [rsp + 0x5c], ecx
jmp 0x140017131
mov eax, 0xea1af7ee
mov dword [rsp + 0x54], 0
jmp 0x140017131
mov dword [rsp + 0x88], r15d
xor eax, eax
mov byte [rsp + 0xd8], al
mov dword [rsp + 0xdc], 0x75fe2164
mov dword [rsp + 0xe0], 0x46ad6211
mov dword [rsp + 0xe4], 0x8e72641a
mov dword [rsp + 0xe8], 0x7c61e431
mov dword [rsp + 0xec], 0xddfef96d
mov dword [rsp + 0xf0], 0x3ba1a008
mov dword [rsp + 0xf4], 0xb0afc72d
mov dword [rsp + 0xf8], 0xc5f8dc53
mov dword [rsp + 0xfc], 0x33730e36
mov dword [rsp + 0x100], 0xfd49f444
mov dword [rsp + 0x104], 0xb30b9f81
mov dword [rsp + 0x108], 0x8b6516a6
mov dword [rsp + 0x10c], 0x9b4af0f9
mov dword [rsp + 0x110], 0xc29331c9
mov dword [rsp + 0x114], 0xf629787b
mov dword [rsp + 0x118], 0x6a84e6bd
mov dword [rsp + 0x11c], 0xc80c7f2
mov dword [rsp + 0x120], 0x933e394c
mov dword [rsp + 0x124], 0xb00500e
mov dword [rsp + 0x128], 0x5dc4fe65
mov dword [rsp + 0x12c], 0xc30cbc72
mov dword [rsp + 0x130], 0x4007f32e
mov dword [rsp + 0x134], 0xa5df80ef
mov dword [rsp + 0x138], 0xfc7d0351
mov dword [rsp + 0x13c], 0x852f85f5
mov dword [rsp + 0x140], 0x9c69a374
mov dword [rsp + 0x144], 0x46ad6221
cmp byte [rsp + 0xd8], al
jne 0x1400178b7
mov r9, rbp
mov r15, rsi
mov r10, rdi
mov r8d, 1
xor ecx, ecx
mov edi, dword [rsp + r8*4 + 0xd8]
mov eax, edi
mov r13d, 0xffffffff
xor eax, r13d
mov ebp, eax
and ebp, 0x6688c5b9
mov edx, edi
and edx, 0x99773a46
or edx, ebp
mov ebp, edx
xor ebp, 0x80100004
xor edx, 0x800401
mov esi, eax
or esi, 0x8e02441
or edx, 0x1015882
mov r11d, 0x9e17cc3
and edx, r11d
and ebp, 0x8010810c
or ebp, edx
and esi, r11d
mov r11d, 0x40816201
mov edx, edi
and edx, 0x760e0230
or edx, esi
xor edx, ebp
mov ebp, edx
xor ebp, r13d
and ebp, 0xb5078e66
and edx, 0x4af87199
or edx, ebp
mov rsi, rbx
mov ebx, edx
xor ebx, 0x40004000
xor edx, 0x4240020
and edx, 0x62c0020
and ebx, r11d
or ebx, edx
xor ebx, r11d
mov ebp, 0xb9529dde
or ebx, ebp
mov edx, ebx
xor edx, r13d
and eax, 0x46ad6221
xor edi, ebp
or edi, eax
mov eax, edi
xor eax, r13d
and eax, ebx
or ebx, edi
and edi, edx
xor ebx, r13d
or edi, eax
mov eax, ebx
and eax, edi
xor edi, ebx
mov rbx, rsi
or edi, eax
mov dword [rsp + r8*4 + 0xd8], edi
mov rax, r10
sub rax, r14
sub rax, r10
sub rax, r15
sub rax, rcx
add rax, r15
sub rax, r9
add rax, r14
add rax, r9
mov rdx, rsi
sub rdx, r12
add rdx, rax
mov rcx, rsi
sub rcx, rdx
sub rcx, r12
inc rcx
inc r8
cmp r8, 0x1c
jne 0x1400177a9
xor eax, eax
mov byte [rsp + 0xa0], al
mov dword [rsp + 0xa4], 0x537de6b2
mov dword [rsp + 0xa8], 0x536ee6b4
mov dword [rsp + 0xac], 0x537ce6a2
mov dword [rsp + 0xb0], 0x5377e6bb
mov dword [rsp + 0xb4], 0x537ce6b4
mov dword [rsp + 0xb8], 0x5371e6bb
mov dword [rsp + 0xbc], 0x533ee6b5
cmp byte [rsp + 0xa0], al
movabs r14, 0x998d31b72f01e983
movabs r11, 0x7fecde9c7eda01f8
mov r8d, 0x3dfa913f
mov r9d, 0x8614ab47
jne 0x140017b2b
mov r13d, 1
xor r10d, r10d
mov edx, dword [rsp + r13*4 + 0xa0]
mov ebp, edx
mov edi, 0xffffffff
xor ebp, edi
mov ecx, edx
and ecx, 0xc0ee8dde
mov eax, ebp
and eax, 0xc2056ec0
and edx, r8d
or edx, eax
xor edx, edi
or edx, ebp
mov eax, ebp
and eax, 0x3f117221
or eax, ecx
mov ebp, eax
xor ebp, 0x4a8440
xor eax, 0x35011021
and eax, 0xf5a519bf
and ebp, 0xa5ae640
or ebp, eax
mov eax, ebp
xor eax, 0x85a8000
and eax, r8d
xor ebp, 0x37a0777f
or ebp, eax
mov ecx, ebp
xor ecx, edi
mov ebx, edx
xor ebx, edi
mov edi, ebp
and edi, 0x79eb54b8
mov eax, ecx
and eax, r9d
or eax, edi
mov r8d, 0xffffffff
mov esi, 0x8614ab47
mov r9d, eax
xor r9d, esi
mov edi, edx
and edi, 0x86afa608
xor edx, 0xebc046e8
and edx, ebx
mov r15d, 0x795059f7
and ebx, r15d
or ebx, edi
xor eax, 0x6dd4edaf
and eax, r9d
mov esi, eax
xor esi, r8d
mov edi, esi
mov r12d, 0x9afd4ae5
and edi, r12d
and eax, 0x6502b51a
or eax, edi
or ebp, 0x143fb917
or esi, ebp
and ebp, r12d
mov r12d, 0x4eeca818
and ecx, 0x61000408
or ecx, ebp
mov edi, ebx
xor edi, r15d
xor ebx, 0x92901f1f
and ebx, edi
xor ecx, eax
xor esi, r8d
or esi, ecx
mov ebp, ebx
xor ebp, r8d
mov eax, ebp
and eax, r12d
mov ecx, 0xb11357e7
and ebx, ecx
or ebx, eax
mov eax, edx
xor eax, r8d
or ebp, eax
and eax, r12d
mov r12d, 0x22228ff2
and edx, ecx
or edx, eax
xor edx, ebx
xor ebp, r8d
or ebp, edx
movabs r15, 0xa2a313dac278134a
mov eax, esi
xor eax, r8d
and eax, r12d
mov ecx, 0xdddd700d
and esi, ecx
or esi, eax
mov eax, ebp
xor eax, r8d
and eax, r12d
mov ecx, 0xdddd700d
and ebp, ecx
or ebp, eax
xor ebp, esi
mov eax, r9d
and eax, edi
xor edi, r9d
mov r9d, 0x8614ab47
mov r8d, 0x3dfa913f
mov ecx, 0x81d703f7
movabs rdx, 0x4b31df76ccd57406
mov ebx, 0xffffffff
or edi, eax
mov eax, edi
xor eax, ebx
and eax, 0x7e28fc08
and edi, ecx
or edi, eax
xor edi, ecx
mov eax, ebp
and eax, edi
xor edi, ebp
or edi, eax
mov eax, edi
xor eax, ebx
or edi, 0x10c968e8
or eax, 0xef369717
xor eax, edi
mov ecx, eax
xor ecx, ebx
and ecx, 0x7e0d1f20
and eax, 0x81f2e0df
or eax, ecx
mov dword [rsp + r13*4 + 0xa0], eax
add r10, r11
sub r10, rdx
sub r10, r11
add r10, r15
mov rax, r15
sub rax, r10
mov rcx, r14
sub rcx, rdx
sub rcx, r14
add rcx, rax
mov r10d, 1
sub r10, rcx
inc r13
cmp r13, 8
jne 0x140017943
mov rdi, qword [0x140020010]
xor ecx, ecx
mov edx, 0xb
mov r8d, 0x4b408f42
mov r9d, 0x211
call fcn.14001939f
mov rcx, qword [rsp + 0x150]
mov qword [rsp + 0x20], rcx
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x68
mov rcx, rdi
xor edx, edx
mov r8, qword [rsp + 0x148]
lea r9, [0x140020020]
call rax
test eax, eax
mov eax, 0xdf27a3bc
mov ecx, 0x10a2bf94
cmove eax, ecx
movabs rbp, 0x94590feabade9c6d
movabs rbx, 0x73f2df9fd91ab144
movabs rdi, 0x37f0e2be204b931c
movabs rsi, 0x1d227695ea81b328
movabs r14, 0x84378e5b039fc2
mov r15d, dword [rsp + 0x88]
movabs r12, 0xd55f41d0d7909a1d
jmp 0x140017131
mov eax, 0x1fab266a
mov dword [rsp + 0x5c], 0
jmp 0x140017131
mov rdi, qword [rsp + 0x60]
mov ebx, dword [rsp + 0x44]
xor ecx, ecx
mov edx, 7
mov r8d, 0x8dc3e0bd
mov r9d, 0x1ed
call fcn.14001939f
movups xmmword [rsp + 0x28], xmm6
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x20], rcx
mov rcx, rdi
mov edx, ebx
mov r8d, 1
xor r9d, r9d
call rax
movabs rdi, 0x37f0e2be204b931c
movabs rbx, 0x73f2df9fd91ab144
test rax, rax
mov eax, 0xb9ab470c
mov ecx, 0xc7b3527b
cmove eax, ecx
jmp 0x140017131
mov eax, dword [rsp + 0x44]
inc eax
mov dword [rsp + 0x74], eax
mov eax, 0xf2613b32
mov ecx, dword [rsp + 0x6c]
mov dword [rsp + 0x70], ecx
jmp 0x140017131
mov eax, 0x1aa56f05
xor r15d, r15d
jmp 0x140017131
mov rcx, qword [rsp + 0x98]
call fcn.14001519e
mov eax, 0xea1af7ee
mov cl, byte [rsp + 0x43]
mov dword [rsp + 0x54], ecx
jmp 0x140017cda
mov rcx, qword [rsp + 0x60]
call fcn.14001519e
mov rsi, qword [0x140020020]
xor ecx, ecx
mov edx, 0xb
mov r8d, 0xe1820471
mov r9d, 0x213
call fcn.14001939f
mov rcx, rsi
movabs rsi, 0x1d227695ea81b328
call rax
mov eax, 0x7f151fa3
mov ecx, dword [rsp + 0x58]
mov dword [rsp + 0x50], ecx
movabs rbx, 0x73f2df9fd91ab144
movabs rdi, 0x37f0e2be204b931c
jmp 0x140017131
mov al, byte [rsp + 0x42]
mov ecx, dword [rsp + 0x4c]
inc ecx
cmp al, 0x25
mov dword [rsp + 0x7c], ecx
mov eax, 0x7132e427
mov ecx, 0x4cfd43af
cmove eax, ecx
jmp 0x140017131
mov rcx, qword [rsp + 0x80]
call fcn.14001519e
movabs rdi, 0x37f0e2be204b931c
movabs rbx, 0x73f2df9fd91ab144
mov eax, 0x992dc84
mov ecx, dword [rsp + 0x5c]
mov dword [rsp + 0x58], ecx
jmp 0x140017131
mov r8b, 0xff
mov ecx, r15d
xor cl, r8b
mov al, 0x41
mov ebx, ecx
and bl, al
or al, cl
xor al, bl
mov edx, eax
xor dl, r8b
and al, 0xbf
and dl, 0x40
or dl, al
mov eax, edx
xor al, r8b
and cl, al
and dl, r15b
or dl, cl
xor dl, r8b
or dl, al
cmp dl, r8b
setne al
mov rcx, qword [rsp + 0xc0]
movaps xmm6, xmmword [rsp + 0x160]
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret