Function at 0x1001d6a8
Capabilities:
Authenticate hmac

Disassembly:
push 0x5c
mov eax, 0x100358d3
call fcn.10034326
mov ebx, ecx
xor eax, eax
cmp dword [ebx + 0x28], eax
jl 0x1001dab6
mov word [ebp - 0x30], 0xf
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
push eax
call fcn.10002604
and dword [ebp - 4], 0
mov ecx, 0x15180
mov edi, dword [ebx + 0x28]
mov eax, edi
cdq
idiv ecx
mov ecx, eax
call fcn.10017117
call fcn.10034690
mov esi, eax
xor edx, edx
imul ecx, esi, 0x15180
mov eax, edi
push 0x18
mov dword [ebp - 0x34], esi
sub eax, ecx
mov ecx, 0xe10
div ecx
pop ecx
xor edx, edx
div ecx
mov ecx, edx
call fcn.10013dc8
call fcn.10034690
imul esi, esi, 0x18
xor edx, edx
mov dword [ebp - 0x50], 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.10013dc8
call fcn.10034690
imul ecx, esi, 0x3c
xor edx, edx
mov dword [ebp - 0x4c], eax
push 0x3c
add ecx, eax
imul ecx, ecx, 0x3c
sub edi, ecx
pop ecx
mov eax, edi
div ecx
mov ecx, edx
call fcn.10013dc8
call fcn.10034690
mov ecx, dword [ebp - 0x34]
mov edi, eax
test ecx, ecx
je 0x1001d803
xor edx, edx
cmp ecx, 0xa
jae 0x1001d790
mov al, 0x3e
mov byte [ebp - 0x34], 0xe
xor al, 0xe
mov byte [ebp - 0x32], dl
mov byte [ebp - 0x33], al
lea eax, [ebp - 0x33]
jmp 0x1001d79c
mov word [ebp - 0x30], 0x7e
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], dl
push ecx
push eax
mov cl, 0x55
mov dword [ebp - 0x44], 0x70267055
mov word [ebp - 0x40], 0x6f20
mov eax, edx
mov byte [ebp - 0x3e], dl
xor byte [ebp + eax - 0x43], cl
inc eax
cmp eax, 5
jae 0x1001d7c1
mov cl, byte [ebp - 0x44]
jmp 0x1001d7b2
sub esp, 0x18
mov byte [ebp - 0x3e], dl
lea eax, [ebp - 0x43]
mov ecx, esp
push eax
call fcn.10002604
lea eax, [ebp - 0x68]
push eax
call fcn.1000485c
add esp, 0x24
mov byte [ebp - 4], 1
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x1001d7ed
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.10007ce4
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.10002410
mov ecx, dword [ebp - 0x50]
test ecx, ecx
je 0x1001d894
cmp ecx, 0xa
jae 0x1001d82c
mov dl, 0x76
mov byte [ebp - 0x32], 0
mov al, 0x46
mov byte [ebp - 0x34], dl
xor al, dl
mov byte [ebp - 0x32], 0
mov byte [ebp - 0x33], al
lea eax, [ebp - 0x33]
jmp 0x1001d839
mov word [ebp - 0x30], 0x27
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], 0
push ecx
push eax
sub esp, 0x18
mov dword [ebp - 0x44], 0x15431530
lea ecx, [ebp - 0x44]
mov word [ebp - 0x40], 0xa45
mov byte [ebp - 0x3e], 0
mov esi, esp
call fcn.10005161
push eax
mov ecx, esi
call fcn.10002604
lea eax, [ebp - 0x68]
push eax
call fcn.1000485c
add esp, 0x24
mov byte [ebp - 4], 2
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x1001d87c
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.10007ce4
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.10002410
jmp 0x1001d8d2
mov cl, 0x6d
mov dword [ebp - 0x3c], 0x575d5d6d
mov byte [ebp - 0x38], 0
xor eax, eax
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 3
jae 0x1001d8b2
mov cl, byte [ebp - 0x3c]
jmp 0x1001d8a3
lea ecx, [ebp - 0x3b]
mov byte [ebp - 0x38], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001d8bc
sub ecx, edx
lea eax, [ebp - 0x3b]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.10007ce4
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x1001d973
cmp ecx, 0xa
jae 0x1001d8fc
mov dl, 0x36
mov byte [ebp - 0x32], 0
mov al, 6
mov byte [ebp - 0x34], dl
xor al, dl
xor edx, edx
mov byte [ebp - 0x33], al
lea eax, [ebp - 0x33]
mov byte [ebp - 0x32], dl
jmp 0x1001d90a
xor edx, edx
mov word [ebp - 0x30], 0x6c
mov byte [ebp - 0x2f], dl
lea eax, [ebp - 0x2f]
push ecx
push eax
mov cl, 0x47
mov dword [ebp - 0x44], 0x62346247
mov word [ebp - 0x40], 0x7d32
mov eax, edx
mov byte [ebp - 0x3e], dl
xor byte [ebp + eax - 0x43], cl
inc eax
cmp eax, 5
jae 0x1001d92f
mov cl, byte [ebp - 0x44]
jmp 0x1001d920
sub esp, 0x18
mov byte [ebp - 0x3e], dl
lea eax, [ebp - 0x43]
mov ecx, esp
push eax
call fcn.10002604
lea eax, [ebp - 0x68]
push eax
call fcn.1000485c
add esp, 0x24
mov byte [ebp - 4], 3
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x1001d95b
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.10007ce4
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.10002410
jmp 0x1001d9b1
push 0x3e
pop ecx
mov byte [ebp - 0x3c], cl
xor eax, eax
mov dword [ebp - 0x3b], 0x40e0e
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 3
jae 0x1001d991
mov cl, byte [ebp - 0x3c]
jmp 0x1001d982
lea ecx, [ebp - 0x3b]
mov byte [ebp - 0x38], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001d99b
sub ecx, edx
lea eax, [ebp - 0x3b]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.10007ce4
test edi, edi
je 0x1001da47
xor edx, edx
cmp edi, 0xa
jae 0x1001d9d4
mov cl, 0x38
mov byte [ebp - 0x32], dl
mov al, 8
mov byte [ebp - 0x34], cl
xor al, cl
mov byte [ebp - 0x33], al
lea eax, [ebp - 0x33]
jmp 0x1001d9e0
mov word [ebp - 0x30], 0x71
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], dl
push edi
push eax
push 0x27
pop ecx
mov byte [ebp - 0x4c], cl
mov eax, edx
mov dword [ebp - 0x4b], 0x52025402
mov byte [ebp - 0x47], dl
xor byte [ebp + eax - 0x4b], cl
inc eax
cmp eax, 4
jae 0x1001da03
mov cl, byte [ebp - 0x4c]
jmp 0x1001d9f4
sub esp, 0x18
mov byte [ebp - 0x47], dl
lea eax, [ebp - 0x4b]
mov ecx, esp
push eax
call fcn.10002604
lea eax, [ebp - 0x68]
push eax
call fcn.1000485c
add esp, 0x24
mov byte [ebp - 4], 4
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x1001da2f
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.10007ce4
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.10002410
jmp 0x1001da81
mov cl, 0x63
mov dword [ebp - 0x34], 0x535363
xor eax, eax
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 2
jae 0x1001da61
mov cl, byte [ebp - 0x34]
jmp 0x1001da52
lea ecx, [ebp - 0x33]
mov byte [ebp - 0x31], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001da6b
sub ecx, edx
lea eax, [ebp - 0x33]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.10007ce4
cmp dword [ebp - 0x18], 0xf
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x68]
cmova eax, dword [ebp - 0x2c]
push eax
call fcn.10002604
mov byte [ebp - 4], 5
lea edx, [ebp - 0x68]
mov ecx, dword [ebx + 0x18]
call fcn.10009b96
lea ecx, [ebp - 0x68]
call fcn.10002410
lea ecx, [ebp - 0x2c]
call fcn.10002410
jmp 0x1001dac5
mov ecx, dword [ebx]
xor dl, dl
mov byte [ebx + 0x2c], al
mov dword [ebx + 0x28], eax
call fcn.1000932c
call fcn.100342e4
ret