Function at 0x140156284
Capabilities:
Authenticate hmac
Encrypt data using speck

Disassembly:
push rax
pushf
mov eax, 0x279f57e2
pushf
not eax
add eax, 0xbb593316
xor eax, 0x941f3370
rol eax, 0xb5
popf
pushf
not eax
add eax, 0xa0ec747c
xor eax, 0xe07f5619
rol eax, 0xd8
popf
pushf
not eax
add eax, 0xc68ea601
xor eax, 0xc8a769e4
rol eax, 0x97
popf
pushf
not eax
add eax, 0xbf7e3beb
xor eax, 0xa582627e
rol eax, 0x26
popf
cmp eax, 4
jne 0x1401562e7
popf
pop rax
jmp 0x14015665c
cmp eax, 0
jne 0x1401562f6
popf
pop rax
jmp 0x14015648b
cmp eax, 3
jne 0x140156305
popf
pop rax
jmp 0x14015660f
cmp eax, 1
jne 0x140156314
popf
pop rax
jmp 0x14015650a
cmp eax, 0xd
jne 0x140156323
popf
pop rax
jmp 0x140156a03
cmp eax, 0x1a
jne 0x140156332
popf
pop rax
jmp 0x140157060
cmp eax, 0xe
jne 0x140156341
popf
pop rax
jmp 0x140156a51
cmp eax, 0xb
jne 0x140156350
popf
pop rax
jmp 0x140156936
cmp eax, 0x19
jne 0x14015635f
popf
pop rax
jmp 0x140156fb9
cmp eax, 8
jne 0x14015636e
popf
pop rax
jmp 0x14015684e
cmp eax, 0x10
jne 0x14015637d
popf
pop rax
jmp 0x140156b55
cmp eax, 0x17
jne 0x14015638c
popf
pop rax
jmp 0x140156e69
cmp eax, 0x1c
jne 0x14015639b
popf
pop rax
jmp 0x14015710d
cmp eax, 0x12
jne 0x1401563aa
popf
pop rax
jmp 0x140156c6e
cmp eax, 0x18
jne 0x1401563b9
popf
pop rax
jmp 0x140156f15
cmp eax, 0x11
jne 0x1401563c8
popf
pop rax
jmp 0x140156bbf
cmp eax, 0x1b
jne 0x1401563d7
popf
pop rax
jmp 0x1401570cd
cmp eax, 0x16
jne 0x1401563e6
popf
pop rax
jmp 0x140156e32
cmp eax, 0xa
jne 0x1401563f5
popf
pop rax
jmp 0x1401568b9
cmp eax, 0x14
jne 0x140156404
popf
pop rax
jmp 0x140156d45
cmp eax, 0xf
jne 0x140156413
popf
pop rax
jmp 0x140156af5
cmp eax, 0x13
jne 0x140156422
popf
pop rax
jmp 0x140156ca6
cmp eax, 0x15
jne 0x140156431
popf
pop rax
jmp 0x140156dd6
cmp eax, 2
jne 0x140156440
popf
pop rax
jmp 0x14015655c
cmp eax, 6
jne 0x14015644f
popf
pop rax
jmp 0x14015675d
cmp eax, 0xc
jne 0x14015645e
popf
pop rax
jmp 0x14015697f
cmp eax, 7
jne 0x14015646d
popf
pop rax
jmp 0x140156801
cmp eax, 5
jne 0x14015647c
popf
pop rax
jmp 0x1401566c3
cmp eax, 9
jne 0x14015648b
popf
pop rax
jmp 0x1401568a1
push rbx
sub rsp, 0x10
movsxd rbx, dword [rdx + 8]
mov r9, rdx
mov r11d, dword [rdx + 0xc]
mov r10, rcx
cmp ebx, r11d
jl 0x1401564d7
push rax
pushf
mov eax, 0x33e6b20d
pushf
not eax
add eax, 0xf767aabd
xor eax, 0x8456b42b
rol eax, 0x76
popf
pushf
not eax
add eax, 0xf7be63fe
xor eax, 0xd7ac6e6a
rol eax, 0x88
popf
jmp 0x1401562d8
push rax
pushf
mov eax, 0x2e31598a
pushf
not eax
add eax, 0x8a9f7ae0
xor eax, 0xdb3d3881
rol eax, 0x5f
popf
pushf
not eax
add eax, 0xf162e4a3
xor eax, 0xacb957b8
rol eax, 0xe9
popf
jmp 0x1401562d8
xor edx, edx
mov r8d, ebx
xor al, al
jmp 0x1401566c3
mov rax, qword [rdx]
lea r8d, [rbx + 1]
movzx edx, byte [rbx + rax]
mov dword [r9 + 8], r8d
cmp r8d, r11d
jl 0x1401565b6
push rax
pushf
mov eax, 0xf5af3a3a
pushf
not eax
add eax, 0xb483844e
xor eax, 0xef6d3dc1
rol eax, 0x35
popf
pushf
not eax
add eax, 0x9bb08291
xor eax, 0xe94b8fa4
rol eax, 0x87
popf
pushf
not eax
add eax, 0xbd0326a2
xor eax, 0xa620f37d
rol eax, 0x94
popf
jmp 0x1401562d8
push rax
pushf
mov eax, 0x28ca54d8
pushf
not eax
add eax, 0xf63992b2
xor eax, 0x946dd8a3
rol eax, 0x4f
popf
pushf
not eax
add eax, 0xcafc116f
xor eax, 0xc922608b
rol eax, 0x32
popf
pushf
not eax
add eax, 0xa49e76ae
xor eax, 0x9437077c
rol eax, 0x2c
popf
pushf
not eax
add eax, 0xea5de1fd
xor eax, 0xb7097181
rol eax, 0xbf
popf
jmp 0x1401562d8
xor al, al
jmp 0x1401566c3
movsxd rcx, r8d
inc r8d
movzx eax, byte [rcx + rax]
mov dword [r9 + 8], r8d
push rax
pushf
mov eax, 0x2229831
pushf
not eax
add eax, 0xdea32ada
xor eax, 0xea3ebea1
rol eax, 0x56
popf
pushf
not eax
add eax, 0xf56e660a
xor eax, 0x83e567aa
rol eax, 0x78
popf
pushf
not eax
add eax, 0xccc9abf0
xor eax, 0x85d21056
rol eax, 0x9d
popf
pushf
not eax
add eax, 0xc5c45d4e
xor eax, 0xb612fe8e
rol eax, 0xbf
popf
jmp 0x1401562d8
shl edx, 8
movzx eax, al
or edx, eax
je 0x140156717
push rax
pushf
mov eax, 0x1f580429
pushf
not eax
add eax, 0xe8329dc5
xor eax, 0xbfa02ef0
rol eax, 0x35
popf
pushf
not eax
add eax, 0x93ba6e72
xor eax, 0xd6e1c288
rol eax, 0xa4
popf
pushf
not eax
add eax, 0xf297c2bf
xor eax, 0xe7ebef87
rol eax, 0x58
popf
jmp 0x1401562d8
push rax
pushf
mov eax, 0xa8ccb8ee
pushf
not eax
add eax, 0xb360d982
xor eax, 0xa6d69100
rol eax, 0x16
popf
pushf
not eax
add eax, 0x9c9f6d33
xor eax, 0xdf65526d
rol eax, 0xad
popf
pushf
not eax
add eax, 0xc42468f8
xor eax, 0xa246c5dd
rol eax, 0xf7
popf
jmp 0x1401562d8
cmp r8d, r11d
jl 0x1401567bb
push rax
pushf
mov eax, 0xc771ea28
pushf
not eax
add eax, 0x87b1c9c4
xor eax, 0xcde38dff
rol eax, 0x21
popf
pushf
not eax
add eax, 0xa483d70f
xor eax, 0x87d850f6
rol eax, 0x9e
popf
pushf
not eax
add eax, 0x923b69b0
xor eax, 0xfba5302b
rol eax, 0xfd
popf
pushf
not eax
add eax, 0xd2087e59
xor eax, 0xc3520a33
rol eax, 0x2e
popf
jmp 0x1401562d8
push rax
pushf
mov eax, 0x90da46f5
pushf
not eax
add eax, 0x94fe81a4
xor eax, 0xfc6976e0
rol eax, 0x1e
popf
pushf
not eax
add eax, 0xf642338a
xor eax, 0xbe6ec9c5
rol eax, 0x4f
popf
pushf
not eax
add eax, 0xb9af024d
xor eax, 0xa4d53f3c
rol eax, 0x7f
popf
jmp 0x1401562d8
xor al, al
jmp 0x1401568a1
mov rax, qword [r9]
movsxd rcx, r8d
inc r8d
movzx eax, byte [rcx + rax]
push rax
pushf
mov eax, 0x2b6d22b3
pushf
not eax
add eax, 0x8322c4ef
xor eax, 0xa3d6e747
rol eax, 0xda
popf
pushf
not eax
add eax, 0xf0d8c249
xor eax, 0x84428b9c
rol eax, 0xbd
popf
pushf
not eax
add eax, 0x9af0ca14
xor eax, 0xabc8003e
rol eax, 0xb7
popf
jmp 0x1401562d8
movzx eax, al
imul edx, eax
push r8
not r8d
sub edx, r8d
pop r8
sub edx, 1
cmp edx, r11d
jg 0x140156936
test edx, edx
jns 0x1401568f0
push rax
pushf
mov eax, 0xd6f328f9
pushf
not eax
add eax, 0x8939f736
xor eax, 0x96a98e79
rol eax, 0x60
popf
pushf
not eax
add eax, 0xc5386725
xor eax, 0xa06526df
rol eax, 0xee
popf
jmp 0x1401562d8
push rax
pushf
mov eax, 0xf3752117
pushf
not eax
add eax, 0xce3df080
xor eax, 0x94f1a349
rol eax, 0x80
popf
pushf
not eax
add eax, 0xdb9f33cf
xor eax, 0xa6a2da6e
rol eax, 0x87
popf
pushf
not eax
add eax, 0xd6b4d308
xor eax, 0xf325f1b2
rol eax, 0xdc
popf
jmp 0x1401562d8
mov edx, r11d
push rax
pushf
mov eax, 0xf432bf75
pushf
not eax
add eax, 0xdc53dd91
xor eax, 0x99023d09
rol eax, 0xdb
popf
pushf
not eax
add eax, 0xa22bf3c8
xor eax, 0xd4a22d49
rol eax, 0xe3
popf
pushf
not eax
add eax, 0x85d30739
xor eax, 0xb9cb4802
rol eax, 0xc8
popf
jmp 0x1401562d8
xor r8d, r8d
mov dword [r9 + 8], edx
test eax, eax
je 0x1401569d0
push rax
pushf
mov eax, 0xecd7c13e
pushf
not eax
add eax, 0xeaf784c5
xor eax, 0xba9dc18f
rol eax, 0x31
popf
pushf
not eax
add eax, 0xefca324c
xor eax, 0xcb6db0ba
rol eax, 0x3b
popf
pushf
not eax
add eax, 0xd938494d
xor eax, 0x9831787d
rol eax, 0x45
popf
jmp 0x1401562d8
push rax
pushf
mov eax, 0xca44e099
pushf
not eax
add eax, 0xe2c9ce4b
xor eax, 0xe582a334
rol eax, 0xf2
popf
pushf
not eax
add eax, 0xbba6f81b
xor eax, 0x81170401
rol eax, 0xd
popf
jmp 0x1401562d8
mov qword [rsp + 0x20], rdi
mov rdi, rax
push rax
pushf
mov eax, 0xc79ca869
pushf
not eax
add eax, 0x808319c9
xor eax, 0xdbd13fba
rol eax, 0xff
popf
pushf
not eax
add eax, 0xae6920a0
xor eax, 0xb3c5b3a6
rol eax, 0x7f
popf
pushf
not eax
add eax, 0xe01cca41
xor eax, 0xd89864fb
rol eax, 0x44
popf
jmp 0x1401562d8
cmp edx, r11d
jl 0x140156aaf
push rax
pushf
mov eax, 0x207834b6
pushf
not eax
add eax, 0xcf2d896c
xor eax, 0xc12530f8
rol eax, 0xe7
popf
pushf
not eax
add eax, 0xfebf873d
xor eax, 0xae8ec0df
rol eax, 0x7e
popf
pushf
not eax
add eax, 0xad9536c5
xor eax, 0x8f2746ce
rol eax, 0x79
popf
pushf
not eax
add eax, 0xa803ef0e
xor eax, 0xe6f2880d
rol eax, 0x7c
popf
jmp 0x1401562d8
push rax
pushf
mov eax, 0x34e1035f
pushf
not eax
add eax, 0xcbc7e7cf
xor eax, 0xc4a0e544
rol eax, 0x99
popf
pushf
not eax
add eax, 0xf8c8908b
xor eax, 0xa037f73b
rol eax, 0x44
popf
pushf
not eax
add eax, 0xfce4fe6a
xor eax, 0xfba5c339
rol eax, 0x87
popf
jmp 0x1401562d8
xor al, al
jmp 0x140156bbf
mov rax, qword [r9]
movsxd rcx, edx
jmp 0x140156b5c
inc edx
movzx eax, byte [rcx + rax]
mov dword [r9 + 8], edx
push rax
pushf
mov eax, 0x2c2efb0f
pushf
not eax
add eax, 0xe4e8267e
xor eax, 0xe864efe5
rol eax, 0xc5
popf
pushf
not eax
add eax, 0xb520165a
xor eax, 0xa5288cff
rol eax, 0x44
popf
pushf
not eax
add eax, 0x9850b69a
xor eax, 0xf51113b6
rol eax, 0xae
popf
pushf
not eax
add eax, 0xfacd8e0c
xor eax, 0xb144946f
rol eax, 0xb4
popf
jmp 0x1401562d8
shl r8d, 8
movzx eax, al
or r8d, eax
sub rdi, 1
jne 0x140156c28
push rax
pushf
mov eax, 0xf57e70e4
pushf
not eax
add eax, 0xc08ad3d9
xor eax, 0xa45a6520
rol eax, 0x26
popf
pushf
not eax
add eax, 0xba180b50
xor eax, 0xc3568fa8
rol eax, 0x94
popf
pushf
not eax
add eax, 0xc9d0f47a
xor eax, 0xe8ff9693
rol eax, 0x70
popf
pushf
not eax
add eax, 0x8d4fb3e1
xor eax, 0x9e6bdbcf
rol eax, 0x5c
popf
jmp 0x1401562d8
push rax
pushf
mov eax, 0x2618fc66
pushf
not eax
add eax, 0xfd8e9784
xor eax, 0xde07f713
rol eax, 0x9b
popf
pushf
not eax
add eax, 0x929addb8
xor eax, 0xb2745eff
rol eax, 0x38
popf
pushf
not eax
add eax, 0xb82448e2
xor eax, 0xef940dcd
rol eax, 4
popf
jmp 0x1401562d8
mov rdi, qword [rsp + 0x20]
push rax
pushf
mov eax, 0x83f013cb
pushf
not eax
add eax, 0xfcae84d4
xor eax, 0xa376db7b
rol eax, 0x8a
popf
pushf
not eax
add eax, 0xf974fd7e
xor eax, 0xd6cb080e
rol eax, 0x17
popf
jmp 0x1401562d8
dec r8d
push rdx
not edx
sub r8d, edx
pop rdx
sub r8d, 1
cmp r8d, r11d
jg 0x140156d12
push rax
pushf
mov eax, 0xa7c744aa
pushf
not eax
add eax, 0xe46fc59d
xor eax, 0xf06bd422
rol eax, 0xc6
popf
pushf
not eax
add eax, 0xc2aed32d
xor eax, 0x876b7395
rol eax, 0xba
popf
pushf
not eax
add eax, 0xf0987cfa
xor eax, 0xaeb87690
rol eax, 0x65
popf
pushf
not eax
add eax, 0xc9d45434
xor eax, 0xf91b0996
rol eax, 0x36
popf
jmp 0x1401562d8
push rax
pushf
mov eax, 0x373abb01
pushf
not eax
add eax, 0x8c3c5baf
xor eax, 0xa9926476
rol eax, 0xe4
popf
pushf
not eax
add eax, 0xf7c889d7
xor eax, 0x868c3c17
rol eax, 0xe5
popf
jmp 0x1401562d8
test r8d, r8d
jns 0x140156da3
push rax
pushf
mov eax, 0xb48b8bf0
pushf
not eax
add eax, 0xf02f4202
xor eax, 0xfb84302d
rol eax, 0xe1
popf
pushf
not eax
add eax, 0xe185751e
xor eax, 0xa7ed62b6
rol eax, 0xc5
popf
pushf
not eax
add eax, 0xaddf0be9
xor eax, 0xc30ddbbd
rol eax, 0xf9
popf
pushf
not eax
add eax, 0xe7ce532b
xor eax, 0x8dab73ae
rol eax, 0xdd
popf
jmp 0x1401562d8
push rax
pushf
mov eax, 0x2e95eb75
pushf
not eax
add eax, 0x84db051f
xor eax, 0x93f4dd54
rol eax, 0x96
popf
pushf
not eax
add eax, 0xbfe736a4
xor eax, 0x802dca32
rol eax, 0xee
popf
jmp 0x1401562d8
mov r8d, r11d
push rax
pushf
mov eax, 0xc6881e2f
pushf
not eax
add eax, 0x97d54ac3
xor eax, 0x94370d60
rol eax, 0xa
popf
pushf
not eax
add eax, 0x88be6a0f
xor eax, 0xec8a7afc
rol eax, 0xef
popf
pushf
not eax
add eax, 0x9d64dc4f
xor eax, 0x8798fdbb
rol eax, 0xb5
popf
pushf
not eax
add eax, 0xa4ef1691
xor eax, 0x9a195737
rol eax, 0xcc
popf
jmp 0x1401562d8
mov dword [r9 + 8], r8d
push rax
pushf
mov eax, 0x6926438c
pushf
not eax
add eax, 0x849e575d
xor eax, 0xe7d2183c
rol eax, 0x1d
popf
pushf
not eax
add eax, 0xc680bb46
xor eax, 0xc6eb79ca
rol eax, 0x43
popf
jmp 0x1401562d8
mov qword [rsp], 0
sub r8d, ebx
mov qword [rsp + 8], 0
movups xmm0, xmmword [rsp]
movups xmmword [r10], xmm0
test ebx, ebx
js 0x140156ecf
push rax
pushf
mov eax, 0x9650e06
pushf
not eax
add eax, 0xae387b2b
xor eax, 0xa59897d6
rol eax, 0x51
popf
pushf
not eax
add eax, 0x935a1922
xor eax, 0xe79ee458
rol eax, 0xf9
popf
pushf
not eax
add eax, 0xae5ce096
xor eax, 0x89670eb1
rol eax, 4
popf
jmp 0x1401562d8
push rax
pushf
mov eax, 0x394d0883
pushf
not eax
add eax, 0x8702602e
xor eax, 0xa7c25f7f
rol eax, 0xe7
popf
pushf
not eax
add eax, 0x954ede50
xor eax, 0xdc3684d0
rol eax, 0x42
popf
pushf
not eax
add eax, 0xfb37fb72
xor eax, 0xe3441d40
rol eax, 0x82
popf
jmp 0x1401562d8
test r8d, r8d
js 0x140156f73
push rax
pushf
mov eax, 0x3e096832
pushf
not eax
add eax, 0xd653f28f
xor eax, 0xbff70ece
rol eax, 0x65
popf
pushf
not eax
add eax, 0xcadaeaab
xor eax, 0xe8e1027c
rol eax, 0xce
popf
pushf
not eax
add eax, 0xe34c5db5
xor eax, 0xf83a0cd4
rol eax, 0xc8
popf
pushf
not eax
add eax, 0xab344141
xor eax, 0xab722a84
rol eax, 0x1d
popf
jmp 0x1401562d8
push rax
pushf
mov eax, 0x628662a5
pushf
not eax
add eax, 0x9ee918fb
xor eax, 0x943e0c49
rol eax, 0x28
popf
pushf
not eax
add eax, 0x987c207f
xor eax, 0xeba35f39
rol eax, 0xfd
popf
pushf
not eax
add eax, 0x8b3aa993
xor eax, 0x91207df5
rol eax, 0xf1
popf
jmp 0x1401562d8
mov eax, dword [r9 + 0xc]
cmp ebx, eax
jg 0x140157007
push rax
pushf
mov eax, 0x232a0d56
pushf
not eax
add eax, 0x82d11e2b
xor eax, 0xcfe16c38
rol eax, 0x8c
popf
pushf
not eax
add eax, 0xbe5d3b89
xor eax, 0xdd94cf72
rol eax, 0xcb
popf
pushf
not eax
add eax, 0xbeae938b
xor eax, 0xe8bede92
rol eax, 0xfc
popf
jmp 0x1401562d8
push rax
pushf
mov eax, 0x74b9b27e
pushf
not eax
add eax, 0xec179a2c
xor eax, 0xf3de0d0f
rol eax, 0xe8
popf
pushf
not eax
add eax, 0xc98273e7
xor eax, 0xdb4fe6d2
rol eax, 4
popf
pushf
not eax
add eax, 0xf06a7810
xor eax, 0xeeb47919
rol eax, 0xdd
popf
pushf
not eax
add eax, 0xd84ced25
xor eax, 0xdb029ca1
rol eax, 0xec
popf
jmp 0x1401562d8
sub eax, ebx
cmp r8d, eax
jg 0x14015709a
push rax
pushf
mov eax, 0x1ea9284d
pushf
not eax
add eax, 0xf0a4a082
xor eax, 0xea458a18
rol eax, 0x46
popf
pushf
not eax
add eax, 0xa0ac4b2d
xor eax, 0xb037c01e
rol eax, 0x8d
popf
jmp 0x1401562d8
push rax
pushf
mov eax, 0x905d39b7
pushf
not eax
add eax, 0xebb2d394
xor eax, 0xa6eda47d
rol eax, 0xef
popf
pushf
not eax
add eax, 0xf6dec90f
xor eax, 0xd80dca3c
rol eax, 0xe1
popf
jmp 0x1401562d8
mov rax, rbx
add rax, qword [r9]
mov qword [r10], rax
mov dword [r10 + 0xc], r8d
push rax
pushf
mov eax, 0xc97d9883
pushf
not eax
add eax, 0xcc01c00f
xor eax, 0xcb9ec967
rol eax, 0xd8
popf
pushf
not eax
add eax, 0xdb7b9630
xor eax, 0xed327b41
rol eax, 0x4b
popf
jmp 0x1401562d8
mov rax, r10
add rsp, 0x10
pop rbx
ret