Function at 0x14001adb0
Capabilities:
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r9, rcx
add r9, 2
mov eax, dword [0x140045e08]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
sete al
cmp dword [0x140045e0c], 0xa
setge cl
setl bl
mov r8d, ebx
or r8b, al
or cl, al
mov edx, ebx
xor dl, cl
xor bl, al
xor al, cl
not cl
xor dl, 1
and cl, dl
xor dl, bl
xor dl, cl
test al, al
mov eax, 0xdbf4da7d
mov r10d, 0xf2abd43
cmovne r10d, eax
mov ecx, 0xf2abd43
test dl, dl
cmovne r10d, ecx
test r8b, r8b
mov ecx, 0x52c3b061
cmove ecx, eax
mov dword [rsp + 0x24], ecx
mov ecx, 0x2129c237
mov eax, 0x17e29c04
cmove ecx, eax
mov dword [rsp + 0x20], ecx
mov ecx, 0x801baf11
cmove ecx, eax
mov dword [rsp + 0x1c], ecx
mov ecx, 0x811c9dc5
mov ebp, 0x44d76d7e
mov dword [rsp + 0x28], r10d
jmp 0x14001ae60
mov ebp, 0xf2abd43
nop
mov eax, ebp
cmp ebp, 0x17e29c03
jle 0x14001aeb0
cmp eax, 0x523447c7
jg 0x14001aee0
cmp eax, 0x17e29c04
je 0x14001af4f
cmp eax, 0x2129c237
je 0x14001af63
mov ebp, eax
cmp eax, 0x44d76d7e
jne 0x14001ae60
mov eax, dword [rsp + 0x2c]
mov dword [rsp + 0x34], eax
mov dword [rsp + 8], ecx
mov qword [rsp + 0x10], r9
mov ebp, dword [rsp + 0x1c]
jmp 0x14001ae60
cmp eax, 0xdbf4da7c
jle 0x14001af10
cmp eax, 0xdbf4da7d
je 0x14001ae5a
cmp eax, 0xfa27d31e
je 0x14001af7a
mov ebp, eax
cmp eax, 0xf2abd43
jne 0x14001ae60
mov ebp, dword [rsp + 0x24]
jmp 0x14001ae60
mov ebp, r10d
cmp eax, 0x523447c8
je 0x14001ae60
cmp eax, 0x71cc23e6
jne 0x14001bb9e
mov edx, dword [rsp + 8]
mov ebp, 0xaa619928
mov esi, 1
mov edi, dword [rsp + 8]
jmp 0x14001ae60
cmp eax, 0x801baf11
je 0x14001bb71
mov ebp, eax
cmp eax, 0xaa619928
jne 0x14001ae60
mov dword [rsp + 0xc], edi
test esi, esi
mov ebp, 0x523447c8
mov eax, 0x44d76d7e
cmove ebp, eax
mov r9, qword [rsp + 0x40]
mov eax, dword [rsp + 0xc]
mov dword [rsp + 0x2c], eax
mov ecx, edx
jmp 0x14001ae60
mov rax, qword [rsp + 0x10]
mov rax, qword [rsp + 0x10]
mov ebp, 0x801baf11
jmp 0x14001ae60
cmp byte [rsp + 7], 0
mov ebp, 0x71cc23e6
mov eax, 0xfa27d31e
cmovne ebp, eax
jmp 0x14001ae60
movsx r8d, byte [rsp + 6]
mov r11d, dword [rsp + 8]
mov r10d, r11d
not r10d
mov edx, r11d
and edx, 0xdaa7a84b
or edx, 0x14045b4
mov esi, r11d
and esi, 0x255857b4
xor esi, edx
mov edx, esi
xor edx, 0x64b88842
mov ebx, esi
xor ebx, 0x14045b4
mov ebp, ebx
and ebp, 0x9a47772d
xor esi, 0x5108092
and esi, edx
and esi, 0x65b888d2
mov dword [rsp + 0x30], ecx
lea ecx, [rbp + 0x61a808d0]
and ebx, 0x618808d0
mov edx, r11d
and edx, 0x200000
add edx, ebx
add edx, 0x8004000
xor edx, esi
lea ebx, [rdx + 0x4222c]
xor ebp, 0x96539503
and ebp, ebx
xor edx, 0xfbeb5dd1
and edx, ecx
or edx, ebp
mov ecx, edx
and ecx, 0x65b888d2
or ecx, 0x9a443501
and edx, 0x9a47772d
xor edx, ecx
mov ecx, edx
xor ecx, 0xfffcbdd3
mov ebx, edx
or ebx, 0x4227950
mov esi, ebx
xor esi, 0xfffefdd3
mov eax, edx
or eax, 0x90d2d36a
xor eax, 0x90d3d36e
mov ebp, edx
xor ebp, 0x90d19146
and ebp, ecx
or ebp, eax
mov eax, ebp
xor eax, 0x94f0aa3a
mov ecx, ebx
xor ecx, 0x1022c
mov qword [rsp + 0x38], r9
mov r9d, ebp
xor r9d, 0x6b0d0485
xor ebx, 0x98fbd016
and ebx, ecx
xor edx, 0x98d98006
and edx, esi
or edx, ebx
mov ebx, ebp
or ebx, 0x98fad23a
mov esi, ebp
xor esi, 0xf3f587ff
and esi, eax
mov eax, ebx
and eax, 0x50538c1b
and ebp, 0x270421c4
or ebp, eax
xor ebp, esi
xor ebp, 0x735785df
xor ebx, 0xfbffd7ff
and ebx, esi
or ebx, ebp
xor ebx, edx
or r9d, ecx
not r9d
or r9d, ebx
mov eax, r9d
and eax, 0x90e55bc8
or eax, 0x2c1a0011
and r9d, 0x6f1aa437
xor r9d, eax
mov eax, r9d
xor eax, 0xd3e5ffee
mov ecx, r9d
xor ecx, 0x2c1a0011
and ecx, eax
xor r9d, ecx
xor r9d, 0xd3e5ffee
or r9d, ecx
mov ecx, r11d
xor ecx, 0x18a110a0
and ecx, r10d
mov edx, r11d
and edx, 0x661aee58
mov eax, r11d
or eax, 0x661aee58
mov edi, r11d
xor edi, 0x600aa018
and edi, edx
not edx
mov ebp, eax
and ebp, 0xe14ea11f
and ecx, 0x99e511a7
or ecx, ebp
mov ebp, edx
and ebp, 0xe14ea11f
or edi, ebp
xor edi, ecx
mov ecx, r11d
and ecx, 0x11050101
and eax, 0x8af270fe
or eax, ecx
mov ecx, r11d
and ecx, 0x64088e00
and edx, 0x8af270fe
add ecx, edx
add ecx, 0x11050101
xor ecx, eax
xor r11d, 0x661aee58
or r11d, ecx
not r11d
or r11d, edi
mov eax, r11d
and eax, 0x4227950
xor eax, 0x4026850
mov ecx, r11d
and ecx, 0x4207050
mov ebp, r11d
xor ebp, 0x4206140
and ebp, eax
and eax, 0x20900
or eax, ecx
mov ecx, eax
xor ecx, 0xfbff9faf
mov r15d, r11d
xor r15d, 0x9dc768f7
xor eax, 0xef736bcd
and eax, ecx
or ebp, eax
mov eax, r11d
xor eax, 0x894b9c95
and eax, r15d
mov ebx, r11d
or ebx, 0xeb730b9d
mov edi, ebx
and edi, 0x6a7e4ca1
and r11d, 0x1480b042
or r11d, edi
xor r11d, eax
xor r11d, 0x6a7a9c81
xor ebx, 0xeb7b9f9d
and ebx, eax
or ebx, r11d
xor ebx, ebp
or r15d, ecx
mov eax, r15d
and eax, 0x4227950
xor eax, ebx
xor eax, 0x4227950
not r15d
and r15d, ebx
or r15d, eax
mov eax, r8d
and eax, 0xc26cadaa
or eax, 0x3c135044
mov ebp, r8d
and ebp, 0x3d935255
xor ebp, eax
mov eax, ebp
xor eax, 0xfe7ffdee
mov ecx, ebp
or ecx, 0xde32cf39
xor ecx, 0xdfb2cf39
xor ebp, 0xdfb2cd28
and ebp, eax
or ebp, ecx
mov eax, ebp
or eax, 0xe0ce338e
xor eax, 0xe3efbfee
xor ebp, 0xfc90511d
or ebp, eax
mov ecx, r8d
and ecx, 0xe0ce338e
or ecx, 0x18110840
mov eax, r8d
and eax, 0x1f31cc71
xor eax, ecx
mov ecx, eax
xor ecx, 0xf8df3bce
or ecx, r8d
xor eax, r8d
xor eax, 0x720c431
and eax, ecx
mov ecx, ebp
not ecx
and ecx, eax
xor eax, ebp
xor eax, ecx
mov edi, eax
or edi, 0xeaf3a770
mov ecx, eax
and ecx, 0xc060a320
or ecx, 0x32100448
mov ebx, eax
and ebx, 0x2a930450
xor ebx, ecx
mov ecx, eax
and ecx, 0x1040000
mov ebp, edi
and ebp, 0x87281
or ebp, ecx
mov ecx, eax
and ecx, 0x1400080e
or ecx, 0x69240140
xor ecx, ebx
xor ecx, ebp
xor ecx, 0x4e387f87
mov ebp, eax
and ebp, 0x1084006
and edi, 0xd6571fd9
or edi, ebp
mov ebp, eax
and ebp, 0xeaf3a770
xor ebp, edi
xor ebp, 0xd75f5fdf
xor eax, 0xeaf3a770
or eax, ebp
not eax
or eax, ecx
mov ecx, eax
and ecx, 0x767eb40e
or ecx, 0x81014b60
and eax, 0x89814bf1
xor eax, ecx
mov esi, eax
xor esi, 0x74c32061
mov ecx, eax
xor ecx, 0x8b3cdf9e
and ecx, esi
mov ebp, eax
xor ebp, ecx
xor ebp, 0x8b1c868e
mov ebx, eax
xor ebx, 0x8b1c868e
and ebx, ecx
or ebx, ebp
and ebx, 0xfbdd86af
mov ecx, eax
and ecx, 0xfbdd86af
xor ecx, 0x8b1c868e
mov ebp, eax
xor ebp, 0x70e15931
or ebp, ecx
mov ecx, ebp
not ecx
and ecx, ebx
xor ebp, ebx
xor ebp, ecx
mov ebx, ebp
not ebx
mov edi, eax
or edi, 0x4a9d7930
mov ecx, eax
xor ecx, 0xc1a1a6ae
and ecx, esi
mov esi, edi
and esi, 0xff326376
and eax, 0x408489
or eax, esi
xor eax, ecx
xor eax, 0xcb30e7be
xor edi, 0xcbbdffbe
and edi, ecx
or edi, eax
mov eax, ebp
xor eax, 0x234f943
mov ecx, edi
xor ecx, 0x48a98073
xor ebp, 0xfdcb06bc
and ebp, ecx
mov r12d, edi
xor r12d, 0xb7567f8c
and r12d, eax
or r12d, ebp
mov eax, edi
xor eax, ebx
xor eax, 0xb56286cf
xor edi, 0xb56286cf
and edi, ebx
or edi, eax
mov eax, r12d
xor eax, edi
not r12d
or r12d, edi
and r12d, eax
mov eax, r8d
and eax, 0xe00ffb6
or eax, 0x41f80001
mov ecx, r8d
and ecx, 0xf1ff0049
xor ecx, eax
mov eax, ecx
xor eax, 0x45da7951
mov edi, ecx
and edi, 0x73180944
xor ecx, 0x36c27015
and ecx, eax
mov eax, edi
xor eax, ecx
xor eax, 0x32000004
xor edi, 0x32000004
and edi, ecx
or edi, eax
mov eax, edi
xor eax, 0x8ce7f6bb
mov ecx, eax
and ecx, r8d
not r8d
xor edi, 0x73180944
and edi, r8d
or ecx, edi
and edi, eax
and eax, r8d
xor ecx, eax
or edi, ecx
mov eax, r9d
and eax, 0x3ba395a
or eax, 0x6005c6a1
mov ebp, r9d
and ebp, 0xfc45c6a5
xor ebp, eax
mov eax, ebp
xor eax, 0x9ffa395e
and eax, r15d
xor ebp, r15d
xor ebp, 0x9ffa395e
or ebp, eax
mov eax, r9d
or eax, r15d
and r15d, r9d
mov ecx, eax
xor ecx, 0xc316c2ae
mov edx, r15d
and edx, 0x3ce93d51
or edx, 0x42000288
and r15d, 0xc316c2ae
xor r15d, edx
mov edx, r15d
xor edx, 0x7ee93fd9
xor eax, 0x3ce93d51
and eax, edx
xor r15d, 0x8116c026
and r15d, ecx
or r15d, eax
mov eax, r15d
and eax, 0x33c2f25d
or eax, 0x8110ca2
mov r9d, r15d
and r9d, 0xcc3d0da2
xor r9d, eax
mov r8d, ebp
xor r8d, 0xfd580a00
and r8d, ebp
mov eax, r9d
xor eax, 0xa967d95
mov ebx, r9d
or ebx, 0xfd788ec8
xor ebx, 0xfd798eea
or ebx, eax
and r8d, 0xfd788ec8
mov r10d, ebp
mov r11d, ebp
mov r14d, ebp
mov eax, ebp
mov ecx, r9d
xor ecx, 0xf7eef35d
and ecx, ebp
xor r9d, ebp
and ebp, 0xfd580a00
or ebp, 0x20025d4
xor ebp, r8d
mov edx, ebp
xor edx, 0x20525f6
and r10d, 0x50022
and r11d, 0x2827115
lea esi, [r11 - 0x27c7f7de]
xor esi, r10d
xor r11d, 0xffda7b37
or ebp, 0x825001
and ebp, r11d
xor esi, 0xd81d8cc8
and esi, edx
xor r14d, 0xfd788ec8
xor eax, 0x2877137
or eax, r14d
not eax
or eax, esi
or eax, ebp
mov edx, r15d
not edx
mov ebp, ebx
or edx, ebx
xor ebx, 0xfad407ee
and r15d, 0x2877137
mov esi, r15d
xor esi, 0x52bf811
xor ebp, 0x52bf811
and ebp, esi
xor r15d, 0xfad407ee
and r15d, ebx
or r15d, ebp
not edx
and edx, 0x2877137
or edx, r15d
xor edx, eax
mov eax, r9d
xor eax, ecx
xor eax, 0xf7eef35d
xor r9d, 0xf7eef35d
and r9d, ecx
or r9d, eax
mov eax, r9d
and eax, 0xca66cb17
or eax, 0x4092420
and r9d, 0x359934e8
xor r9d, eax
mov eax, r9d
mov ecx, edx
mov ebp, r9d
xor r9d, 0xfbf6dbdf
and r9d, edx
xor edx, 0x3aa6873c
xor eax, 0xc1505ce3
xor ecx, 0xc55978c3
and ecx, eax
xor ebp, 0x3eafa31c
and ebp, edx
or ebp, ecx
or r9d, ebp
mov ebx, r9d
not ebx
mov ecx, r12d
xor ecx, 0x41a8c9f8
mov eax, edi
xor eax, 0x41a8c9f8
mov edx, r12d
xor edx, 0xbe573607
and edx, eax
mov eax, edi
xor eax, 0xbe573607
and eax, ecx
or eax, edx
and eax, r12d
mov ecx, r12d
and ecx, 0xe227aae4
or ecx, 0xd504108
and r12d, 0x1dd8551b
xor r12d, ecx
mov ecx, edi
and ecx, 0xe227aae4
mov ebp, edi
and ebp, 0x1dd8551b
mov edx, ebp
xor edx, 0x6b689ff8
mov esi, edx
or esi, 0x8984513
or edi, 0x15423008
xor edi, esi
and edi, 0x1dda751b
xor edi, ecx
xor ebp, 0x1dd8551b
mov esi, ebp
and esi, 0x4c84110
and edx, 0x1b1096cb
or edx, esi
or ebp, ecx
xor edx, ecx
xor edx, 0xedef7d3c
and edx, ebp
mov ecx, edi
xor ecx, edx
xor ecx, 0x1423008
xor edi, 0x1423008
and edi, edx
or edi, ecx
mov ecx, r12d
xor ecx, 0xeba74908
mov edx, edi
and edx, 0x4d0a2e4
or edx, 0x50261012
and edi, 0xfb2f5d1b
xor edi, edx
mov edx, edi
xor edx, 0x54f6b2f6
xor r12d, 0x1458b6f7
and r12d, edx
xor edi, 0xab094d09
and edi, ecx
or edi, r12d
mov edx, edi
mov esi, edi
mov r10d, edi
mov r8d, edi
mov ebp, edi
and edi, eax
xor eax, 0x15dedbea
or edx, 0xea212415
mov ecx, edx
and ecx, 0x85d7094a
and esi, 0x1008d2a0
or esi, ecx
and r10d, 0xea212415
xor esi, r10d
and r8d, 0x4a038a
and edx, 0x77b4dc65
or edx, r8d
xor edx, r10d
xor edx, 0x77fedfef
xor ebp, 0xea212415
or ebp, edx
mov r10d, esi
xor r10d, 0x6a202415
xor esi, ebp
xor esi, 0x6a202415
or r10d, ebp
not r10d
or r10d, esi
mov ecx, eax
and ecx, 0xa8f52a4a
or ecx, 0x130a9104
and eax, 0x570ad5b5
xor eax, ecx
mov ecx, r10d
and ecx, 0xa8f52a4a
or ecx, 0x50029505
and r10d, 0x570ad5b5
xor r10d, eax
xor r10d, ecx
mov eax, r10d
xor eax, 0x43080401
mov ecx, eax
and ecx, edi
xor r10d, 0xbcf7fbfe
and r10d, edi
not edi
and edi, eax
or edi, r10d
xor edi, ecx
and r10d, eax
or r10d, edi
mov eax, r9d
and eax, 0x529774c7
or eax, 0xa9600328
mov ecx, r9d
and ecx, 0xad688b38
xor ecx, eax
mov eax, ecx
and eax, 0x92694684
xor eax, 0x80600200
xor ecx, 0x3b0945ac
or ecx, eax
or ebx, 0x6d96b97b
mov eax, ebx
and eax, 0x6696681
mov edx, r9d
and edx, 0x90000004
or edx, eax
xor edx, ecx
xor edx, 0xf996997e
mov eax, r9d
and eax, 0x80404684
mov ebp, ebx
and ebp, 0x3eaf194b
or ebp, eax
xor ebp, ecx
xor ebp, 0xc150e6b4
and ebx, ecx
or ebx, ebp
not ebx
or ebx, edx
mov eax, ebx
and eax, 0x92694684
or eax, 0x9141909
and ebx, 0x6d96b97b
xor ebx, eax
mov eax, ebx
and eax, 0x587250b9
xor eax, 0x40020030
xor ebx, 0x3cf0f0cb
or ebx, eax
and r9d, 0x587250b9
mov esi, r10d
and esi, 0xa78daf46
lea edx, [rsi + 0x586200b9]
mov eax, r10d
xor eax, 0x8120001
and eax, r10d
mov ecx, ebx
xor ecx, r9d
not ebx
or ebx, r9d
xor ebx, 0x40cf3440
and ebx, ecx
and ecx, 0xbf30cbbf
or ecx, 0x40021040
xor ebx, ecx
mov r14d, ebx
xor r14d, 0xbffdefbf
mov ecx, edx
and ecx, 0x20a4ab0a
mov r8d, edx
and r8d, 0x8f490464
or r8d, 0x20a4bb0a
xor r8d, ecx
mov r9d, r8d
xor r9d, 0x8802
mov ebp, r8d
xor ebp, 0x70b6eb9b
mov ecx, eax
and ecx, 0x587250b9
mov edi, r10d
and edi, 0x8120001
or edi, 0x108424aa
xor edi, ecx
xor edi, 0x9d9eadef
and eax, 0x8120001
or eax, edi
mov ecx, r9d
and ecx, 0x26898502
mov edi, ebp
and edi, 0x99543ae5
or edi, ecx
xor edi, 0xf9f67bfd
mov r11d, r8d
xor r11d, 0x8f491464
or r11d, edi
and edx, 0x99442ae5
xor esi, 0xc1266a5c
or esi, edx
mov r12d, esi
not r12d
mov ecx, eax
xor ecx, 0xebb14c5f
mov r15d, eax
or r15d, 0x99543ae5
xor r15d, 0x9d5ebbe5
or r15d, ecx
and r10d, 0x40224018
mov r13d, r11d
and r13d, 0xbffdbfef
lea ecx, [rsi + 0x101000]
mov edi, r13d
xor edi, 0x1c0f898a
and edi, r11d
mov edx, esi
xor edx, 0x5c1d999a
and edx, ecx
and r12d, 0x40d8902
or r12d, edx
mov edx, r11d
and edx, 0x1c0d899a
or edx, 0x105660
xor edx, r12d
xor edx, edi
xor edx, 0x1c1d9ffa
xor r13d, 0xbffdbfef
mov ecx, esi
xor ecx, 0xffefefff
mov edi, r13d
and edi, 0xba141a22
and r11d, 0x45c9e5dd
or r11d, edi
or r13d, ecx
and ecx, 0xa2040a02
and esi, 0x45c9e5dd
or esi, ecx
xor esi, r11d
not esi
and esi, r13d
or esi, edx
mov ecx, r15d
not ecx
and ecx, r10d
xor r10d, r15d
xor r10d, ecx
mov ecx, r15d
and ecx, 0x20410100
and r15d, 0xc1010e1
mov edx, esi
and edx, 0x72ef8518
or edx, 0x84103a23
and esi, 0x8d107ae7
xor esi, edx
mov r11d, esi
xor r11d, 0xf6ffbf3b
mov edi, r10d
and edi, 0x52ae8418
or edi, ecx
and r10d, 0x81006a06
lea edx, [r15 + r10]
add edx, 0x20410100
mov r10d, dword [rsp + 0x28]
xor edx, edi
mov ecx, edx
xor ecx, 0xad517be7
xor esi, 0x90040c4
and esi, ecx
xor edx, 0x52ae8418
and edx, r11d
or edx, esi
and r9d, 0x5c0a342
and ebp, 0xaa2d0cad
or ebp, r9d
mov r9, qword [rsp + 0x38]
mov ecx, ebp
xor ecx, 0xaf6d8cef
mov edi, eax
xor edi, 0x8d1a8945
mov esi, eax
xor esi, 0xb7408b71
and esi, edi
or eax, 0xc5a1fdc9
xor eax, 0xf7e5fffb
or eax, esi
and ebp, 0x85a1adc9
and r8d, 0x2a4c0226
or r8d, ebp
xor r8d, eax
or edi, ecx
xor r8d, 0x4ac87124
and r8d, edi
mov eax, edx
xor eax, 0x1836a624
mov ecx, r8d
xor ecx, 0x1836a624
mov ebp, edx
xor ebp, 0xe7c959db
and ebp, ecx
and edx, r8d
xor r8d, 0xe7c959db
and r8d, eax
or r8d, edx
or r8d, ebp
mov eax, r14d
and eax, 0x3b42acef
mov edx, r14d
and edx, 0xc4bd5310
mov ecx, edx
not ecx
mov ebp, ecx
and ebp, 0x440b4150
xor ebx, 0xc0b40200
and ebx, edx
or ebx, ebp
xor ebx, eax
xor ebx, 0x7f49edbf
xor eax, 0x3b42acef
mov ebp, eax
and ebp, 0x23402ce1
mov edi, r14d
and edi, 0x1802800e
and r14d, 0x84844000
and ecx, 0x583b931e
or ecx, r14d
add ebp, edi
add ebp, 0x40391310
xor ebp, ecx
mov ecx, dword [rsp + 0x30]
or eax, edx
not ebp
and ebp, eax
or ebp, ebx
xor ebp, r8d
xor ebp, 0x3b42acef
imul edx, ebp, 0x1000193
mov ebp, 0xaa619928
xor esi, esi
mov edi, dword [rsp + 0x34]
jmp 0x14001ae60
mov rax, qword [rsp + 0x10]
add rax, 1
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x10]
movzx eax, byte [rax]
mov byte [rsp + 6], al
cmp byte [rsp + 6], 0
setne byte [rsp + 7]
mov ebp, dword [rsp + 0x20]
jmp 0x14001ae60
mov ebp, eax
cmp eax, 0x52c3b061
jne 0x14001ae60
mov eax, dword [rsp + 0xc]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret