Function at 0x10013cd2
Capabilities:
Authenticate hmac

Disassembly:
push 0x5c
mov eax, 0x10036c3c
call fcn.10035531
mov ebx, ecx
mov dword [ebp - 0x50], ebx
lea eax, [ebp - 0x4b]
mov word [ebp - 0x4c], 0x34
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x4b], 0
call fcn.10002845
and dword [ebp - 4], 0
xor edx, edx
mov edi, dword [ebx + 0x2c]
mov ecx, 0x15180
mov eax, edi
div ecx
mov ecx, eax
call fcn.1001451b
call fcn.10035ac1
mov ebx, eax
xor edx, edx
imul ecx, ebx, 0x15180
mov eax, edi
push 0x18
sub eax, ecx
mov ecx, 0xe10
div ecx
pop ecx
xor edx, edx
div ecx
mov ecx, edx
call fcn.1001451b
call fcn.10035ac1
imul esi, ebx, 0x18
xor edx, edx
mov dword [ebp - 0x48], eax
push 0x3c
add esi, eax
mov eax, edi
imul ecx, esi, 0xe10
sub eax, ecx
pop ecx
div ecx
xor edx, edx
div ecx
mov ecx, edx
call fcn.1001451b
call fcn.10035ac1
imul ecx, esi, 0x3c
xor edx, edx
mov esi, eax
push 0x3c
add ecx, esi
imul ecx, ecx, 0x3c
sub edi, ecx
pop ecx
mov eax, edi
div ecx
mov ecx, edx
call fcn.1001451b
call fcn.10035ac1
mov edi, eax
push 0x79
pop ecx
test ebx, ebx
je 0x10013e25
cmp ebx, 0xa
jae 0x10013db2
mov al, 0x49
mov byte [ebp - 0x2e], 0
xor al, cl
mov byte [ebp - 0x30], cl
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2e], 0
jmp 0x10013dbf
mov word [ebp - 0x2c], 0x58
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], 0
push ebx
xor ebx, ebx
mov dword [ebp - 0x40], 0x3e683e1b
push eax
mov cl, 0x1b
mov word [ebp - 0x3c], 0x216e
mov byte [ebp - 0x3a], bl
mov edx, ebx
xor cl, byte [ebp + edx - 0x3f]
mov byte [ebp + edx - 0x3f], cl
inc edx
cmp edx, 5
jae 0x10013dea
mov cl, byte [ebp - 0x40]
jmp 0x10013dd7
sub esp, 0x18
mov byte [ebp - 0x3a], bl
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10002845
lea eax, [ebp - 0x68]
push eax
call fcn.10004ac0
add esp, 0x24
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.1000560f
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.100026f1
mov ecx, dword [ebp - 0x48]
push 0xf
pop ebx
test ecx, ecx
je 0x10013eca
cmp ecx, 0xa
jae 0x10013e51
mov dl, 0x75
mov byte [ebp - 0x2e], 0
mov al, 0x45
mov byte [ebp - 0x30], dl
xor al, dl
mov byte [ebp - 0x2e], 0
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
jmp 0x10013e5e
mov word [ebp - 0x2c], 8
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], 0
push ecx
push eax
mov cl, 0x35
mov dword [ebp - 0x40], 0x10461035
mov byte [ebp - 0x3c], 0x40
xor edx, edx
mov byte [ebp - 0x3b], bl
mov byte [ebp - 0x3a], 0
xor cl, byte [ebp + edx - 0x3f]
mov byte [ebp + edx - 0x3f], cl
inc edx
cmp edx, 5
jae 0x10013e89
mov cl, byte [ebp - 0x40]
jmp 0x10013e76
sub esp, 0x18
mov byte [ebp - 0x3a], 0
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10002845
lea eax, [ebp - 0x68]
push eax
call fcn.10004ac0
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.1000560f
push 0
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.100026f1
jmp 0x10013f05
mov cl, 0x70
mov dword [ebp - 0x38], 0x4a404070
mov byte [ebp - 0x34], 0
xor edx, edx
xor cl, byte [ebp + edx - 0x37]
mov byte [ebp + edx - 0x37], cl
inc edx
cmp edx, 3
jae 0x10013eec
mov cl, byte [ebp - 0x38]
jmp 0x10013ed9
lea ecx, [ebp - 0x37]
mov byte [ebp - 0x34], 0
call fcn.1000282d
push eax
lea eax, [ebp - 0x37]
push eax
lea ecx, [ebp - 0x28]
call fcn.10007f48
xor edx, edx
test esi, esi
je 0x10013f9c
cmp esi, 0xa
jae 0x10013f28
mov cl, 0x4c
mov byte [ebp - 0x2e], dl
mov al, 0x7c
mov byte [ebp - 0x30], cl
xor al, cl
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
jmp 0x10013f34
mov word [ebp - 0x2c], 0x3f
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], dl
push esi
push eax
mov cl, 0x36
mov dword [ebp - 0x40], 0x13451336
mov word [ebp - 0x3c], 0xc43
mov byte [ebp - 0x3a], dl
xor cl, byte [ebp + edx - 0x3f]
mov byte [ebp + edx - 0x3f], cl
inc edx
cmp edx, 5
jae 0x10013f5b
mov cl, byte [ebp - 0x40]
jmp 0x10013f48
sub esp, 0x18
mov byte [ebp - 0x3a], 0
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10002845
lea eax, [ebp - 0x68]
push eax
call fcn.10004ac0
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.1000560f
push 0
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.100026f1
jmp 0x10013fd5
mov cl, 0x48
mov dword [ebp - 0x38], 0x72787848
mov byte [ebp - 0x34], 0
xor cl, byte [ebp + edx - 0x37]
mov byte [ebp + edx - 0x37], cl
inc edx
cmp edx, 3
jae 0x10013fbc
mov cl, byte [ebp - 0x38]
jmp 0x10013fa9
lea ecx, [ebp - 0x37]
mov byte [ebp - 0x34], 0
call fcn.1000282d
push eax
lea eax, [ebp - 0x37]
push eax
lea ecx, [ebp - 0x28]
call fcn.10007f48
test edi, edi
je 0x10014068
xor ebx, ebx
cmp edi, 0xa
jae 0x10013ff8
mov cl, 0x20
mov byte [ebp - 0x2e], bl
mov al, 0x10
mov byte [ebp - 0x30], cl
xor al, cl
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
jmp 0x10014004
mov word [ebp - 0x2c], 1
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], bl
push edi
push eax
push 0x79
pop edx
mov byte [ebp - 0x48], dl
mov ecx, ebx
mov dword [ebp - 0x47], 0xc5c0a5c
mov byte [ebp - 0x43], bl
xor dl, byte [ebp + ecx - 0x47]
mov byte [ebp + ecx - 0x47], dl
inc ecx
cmp ecx, 4
jae 0x1001402b
mov dl, byte [ebp - 0x48]
jmp 0x10014018
sub esp, 0x18
mov byte [ebp - 0x43], bl
lea eax, [ebp - 0x47]
mov ecx, esp
push eax
call fcn.10002845
lea eax, [ebp - 0x68]
push eax
call fcn.10004ac0
add esp, 0x24
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 4
call fcn.1000560f
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.100026f1
jmp 0x100140a4
mov byte [ebp - 0x30], bl
xor ecx, ecx
mov word [ebp - 0x2f], 0x3f3f
mov byte [ebp - 0x2d], 0
xor bl, byte [ebp + ecx - 0x2f]
mov byte [ebp + ecx - 0x2f], bl
inc ecx
cmp ecx, 2
jae 0x1001408a
mov bl, byte [ebp - 0x30]
jmp 0x10014077
xor ebx, ebx
lea ecx, [ebp - 0x2f]
mov byte [ebp - 0x2d], bl
call fcn.1000282d
push eax
lea eax, [ebp - 0x2f]
push eax
lea ecx, [ebp - 0x28]
call fcn.10007f48
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x68]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.10002845
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x68]
mov byte [ebp - 4], 5
mov ecx, dword [ecx + 0x28]
call fcn.10009ed2
push ebx
push 1
lea ecx, [ebp - 0x68]
call fcn.100026f1
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.100026f1
call fcn.100354db
ret