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

Disassembly:
xchg si, bx
xchg bx, si
lea edx, [edx]
mov cl, byte [ebp + 0xc]
mov bl, bl
shr bx, 0x40
mov dx, word [ebp + 0x10]
push eax
shr ecx, 0x40
mov di, di
push esi
jno 0x10038e3f
jo 0x10022c49
ret 0xbbc4
jo 0x10038e3f
and eax, 0x5850527a
call fcn.1003c459
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
je 0x10027299
xchg bx, di
xchg di, bx
jne 0x10024a7a
cmpsd dword [esi], dword es:[edi]
jnp 0x10024a8a
js 0x10038bff
mov byte [edi + 0x41], bh
add dword [eax], eax
jns 0x10024a88
push ds
mul byte [eax]
test dword [ecx - 0x65], esp
jns 0x10038bff
jno 0x10024acd
add dword [eax], eax
xor al, 0xc
lds edi, [edx + 2]
add byte [0x24a1ca3], dh
adc byte [eax], al
inc ecx
add byte [eax + 0x48], al
add byte [ecx], al
add byte [eax], al
add al, 0
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], cl
add byte [eax], al
or ch, byte [ebp - 0x143feffd]
add eax, 0x2509d10
adc byte [eax], bh
add byte [eax], al
add byte [eax + eax], bh
add byte [eax], al
xchg esp, eax
mov ebx, 0xffff1002
add byte [eax], al
cmp al, 0
add byte [eax + eax], bh
add byte [eax], al
fcom dword [esp + eax]
adc byte [esi], dl
mov dh, 2
adc byte [edx + ecx*2], bl
add dl, byte [eax]
add byte [eax], al
add byte [eax + eax], bh
add byte [eax], al
cmp al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], ah
add byte [eax], 0
add byte [eax], al
and dword [eax], eax
add byte [edx], bl
add byte [eax], al
jb 0x10024b0e
add al, 0x10
movsd dword es:[edi], dword [esi]
sub al, byte [0x4c10]
add byte [ecx], dl
sti
add al, 0x10
mov bl, 0xb
add al, 0x10
ja 0x10024b21
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
dec ebp
fiadd dword [edx]
adc byte [ecx + 0x4b61005], cl
add edx, dword [eax]
outsb dx, byte [esi]
dec ebx
add dl, byte [eax]
cmc
jo 0x10024b02
xor byte [0x100304b6], bh
mov ecx, fs
add eax, 0x8baa3510
push esi
add al, 0xe8
mov edx, 0x5000153
stc
mov ebx, dword [ebp + 0x4c]
mov edx, dword [esi + 4]
lea esi, [esi + 8]
shr edx, 0x40
pop word [ebx + edx]
mov dword [ebp + 0x48], esp
jmp dword [esi]
shl ebp, 0x20
mov ecx, dword [esi]
push 0x12
push ecx
call fcn.1003c459
add esp, 8
pop edi
push 0x100333b7
ret
invalid
mov ecx, dword [esi]
mov bp, bp
jmp 0x10038c05
push ebx
push ecx
push 0x10045be0
ret
mov esi, esi
mov bl, bl
call fcn.10033621
js 0x10022c1e
shl dh, 0x20
jns 0x1003dfdb
loopne 0x1003e03c
sbb cl, byte [edi]
mov dword [0x5fffe4c], edi
inc ebx
jns 0x10022c1e
add eax, 0x24648d43
add al, 0x8b
push esi
add al, 0x8b
pop esi
or byte [ebx - 0x133feffc], cl
inc eax
jmp dword [esi]
popal
inc ecx
out 0x20, al
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
mov eax, dword [eax]
shl ebx, 0x20
lea esi, [esi + 0xc]
shl ax, 0x20
jno 0x1002935c
shl dx, 0x20
jo 0x100403d7
loope 0x10040401
into
jo 0x1002935c
invalid
je 0x10037e52
fld dword [eax - 0x73]
jbe 0x10040414
div byte [ebx + edi]
mov dword [ebp + 0x38], eax
jmp dword [esi]
jbe 0x10045b9f
jb 0x10045c15
jbe 0x1003dfc4
mov dword [ecx + 0x424648d], 0x8966ff89
leave
push esi
xchg ebp, eax
xchg ebp, eax
xchg bh, dh
xchg dh, bh
mov byte [esi + 0xba], bl
push ebx
pop ebx
mov dx, dx
mov byte [esi + 0xbb], al
jno 0x100543e0
mov al, al
mov ebx, ebx
jo 0x10045bd8
or dword [ebx], 0x46
jo 0x100543e0
fdiv dword [edi - 0x978b18]
inc dword [ecx + 0x8c4]
add byte [ecx + 0x5b5e5fc9], cl
mov esp, ebp
pop ebp
ret
test edi, edi
jb 0x100403b1
mov ah, ah
je 0x10057aac
jne 0x10045c0d
inc edi
pop esi
mov bh, 0xe3
js 0x10045b9b
lea edx, [ebp + 8]
lea eax, [ebp - 8]
jmp 0x10045c14
push ebp
or byte [ebp - 0x1407bb], cl
push edx
lea ecx, [ebp - 0xc]
lea ecx, [ebp - 0xc]
xchg bh, bl
xchg bl, bh
push eax
push ecx
call fcn.1005b30b
mov eax, dword [ebp + 8]
add esp, 0xc
cmp eax, 0x7cf
jge 0x10045c50
jl 0x10045c41
pop edx
lahf
sbb cl, byte [edi - 0x3fce86b8]
xor eax, eax
jb 0x100403d4
jmp 0x10057a37
mov edx, dword [ebp - 8]
jmp 0x10045c54
push eax
shl cx, 0x20
mov eax, dword [ebp - 0xc]
push edx
jmp 0x10045c5f
push eax
shr dl, 0x40
call fcn.1003a870
add esp, 0xc
ja 0x10057a37
jbe 0x10045c79
sar ah, 0xf
xchg byte [eax + 0x2500011d], bh
or byte [ebx + 0x568b4c5d], 4
jbe 0x10057a37
and eax, 0x4c5d8b82
mov edx, dword [esi + 4]
lea esi, [esi + 8]
lea esi, [esi]
push 0x10027519
ret
mov eax, dword [esi]
push 0
jmp 0x10050569
push eax
call fcn.1003c459
add esp, 8
pop edi
lea edx, [edx]
pop esi
pop ebx
mov esp, ebp
mov ch, ch
pop ebp
ret
mov ah, ah
mov bp, bp
mov word [esi + 0xbc], di
call fcn.10034e50
fmul st(1)
cmp edi, eax
jge 0x10057a4c
jl 0x10057a45
dec ebp
ja 0x10057aa9
out 0xc7, al
inc ebp
cld
add dword [eax], eax
add byte [eax], al
mov dword [ebp - 4], 1
mov ecx, dword [esi]
push 0x100
lea edx, [ebp - 0x10c]
push ecx
push edx
call fcn.10057996
lea eax, [ebp - 0x10c]
push 1
jmp 0x10057a6a
push eax
call fcn.1005589e
lea ecx, [ebp - 0x10c]
push 0x105
push ecx
call fcn.1002fd29
lea edx, [ebp - 0x10c]
xchg dx, bx
xchg bx, dx
push 0
mov esi, esi
push edx
call fcn.10032a24
lea eax, [ebp - 0x10c]
push eax
call fcn.10041721
add esp, 0x28
add byte [eax], al
add al, al
out dx, eax
inc eax
shr bh, 0x40
lea ecx, [ebp - 0x10c]
push ecx
call fcn.1004f20d
add esp, 4
test eax, eax
jb 0x100403dd
invalid
je 0x10027299
jne 0x10057ad4
jp 0x10057ab0
mov eax, dword [ebp - 4]
test eax, eax
jb 0x10029368
push esi
pop esi
je 0x10050564
jne 0x10057aec
mov ebp, 0x168b98c8
mov edx, dword [esi]
shl ebx, 0x20
push 0x25
jno 0x10050549
jo 0x10057afe
push edi
mov dh, 0x5c
jo 0x10050549
and eax, 0x40ebc0b8
jno 0x1005d020
jo 0x1005f04c
push ebx
mov bl, 0xb2
hlt
jo 0x1005d020
fldenv [eax]
xchg ebp, edx
add dl, byte [eax]
or al, 0
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
movsd dword es:[edi], dword [esi]
sub al, byte [0x5010]
add byte [ebp + 0x38100250], bl
add byte [eax], al
add byte [eax + eax], bh
add byte [eax], al
dec ebp
out 5, eax
adc byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
add byte [ebx + edi*4 - 0xeffe], dl
add byte [eax], al
xchg esp, eax
mov ebx, 0xffff1002
add byte [eax], al
cmp al, 0
add byte [eax], al
fcom dword [esp + eax]
adc byte [ebx + edx*8], bl
add eax, 0x5aa6f10
adc byte [eax + eax], cl
add byte [eax + eax], cl
add byte [edx + ecx*2], bl
add dl, byte [eax]
add byte [eax], al
add byte [eax + eax], bh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], ah
add byte [eax], 0
add byte [eax], al
and dword [eax], eax
add byte [eax], bl
add byte [eax], al
add byte [edx - 0x2f], dh
add al, 0x10
adc dword [edx + eax], ebp
adc byte [eax + eax], al
add byte [eax + eax], al
add byte [ebp + 0x4c10052a], ah
add byte [eax], al
add byte [ecx], dl
sti
add al, 0x10
mov al, 0xda
loopne 0x1005f07e
add dl, byte [eax]
cld
xchg edx, eax
add edx, dword [eax]
xor edi, ebx
add al, 0x10
fld dword [esi]
test ebx, ebx
jb 0x10035f50
je 0x10045bf6
jne 0x1005f102
popfd
mov ah, 0x8c
je 0x1005f177
cmp bx, 0x1b
jmp 0x10024a6a