Function at 0x1001ef70
Capabilities:
Authenticate hmac

Disassembly:
push 0x5c
mov eax, 0x100358d3
call fcn.10034326
mov ebx, ecx
xor eax, eax
cmp dword [ebx + 0xf0], eax
jl 0x1001f3a3
mov word [ebp - 0x30], 0x76
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 + 0xf0]
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 esi, dword [ebp - 0x34]
mov edi, eax
push 0x6d
pop ecx
push 0x27
pop edx
test esi, esi
je 0x1001f0de
cmp esi, 0xa
jae 0x1001f066
mov al, 0x5d
mov byte [ebp - 0x32], 0
xor al, cl
mov byte [ebp - 0x34], cl
mov byte [ebp - 0x33], al
lea eax, [ebp - 0x33]
mov byte [ebp - 0x32], 0
jmp 0x1001f073
mov word [ebp - 0x30], 0x47
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], 0
push esi
mov cl, dl
mov dword [ebp - 0x43], 0x52025402
push eax
mov byte [ebp - 0x44], cl
xor eax, eax
mov word [ebp - 0x3f], 0x1d
xor byte [ebp + eax - 0x43], cl
inc eax
cmp eax, 5
jae 0x1001f098
mov cl, byte [ebp - 0x44]
jmp 0x1001f089
sub esp, 0x18
mov byte [ebp - 0x3e], 0
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 0x1001f0c5
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
push 0x27
pop edx
mov ecx, dword [ebp - 0x50]
test ecx, ecx
je 0x1001f17f
cmp ecx, 0xa
jae 0x1001f108
mov dl, 0x6c
mov byte [ebp - 0x32], 0
mov al, 0x5c
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 0x1001f116
xor edx, edx
mov word [ebp - 0x30], 0x3e
mov byte [ebp - 0x2f], dl
lea eax, [ebp - 0x2f]
push ecx
push eax
mov cl, 0x36
mov dword [ebp - 0x44], 0x13451336
mov word [ebp - 0x40], 0xc43
mov eax, edx
mov byte [ebp - 0x3e], dl
xor byte [ebp + eax - 0x43], cl
inc eax
cmp eax, 5
jae 0x1001f13b
mov cl, byte [ebp - 0x44]
jmp 0x1001f12c
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], 2
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x1001f167
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 0x1001f1ba
mov byte [ebp - 0x3c], dl
xor eax, eax
mov dword [ebp - 0x3b], 0x1d1717
xor byte [ebp + eax - 0x3b], dl
inc eax
cmp eax, 3
jae 0x1001f19a
mov dl, byte [ebp - 0x3c]
jmp 0x1001f18b
lea ecx, [ebp - 0x3b]
mov byte [ebp - 0x38], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001f1a4
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 0x1001f25b
cmp ecx, 0xa
jae 0x1001f1e4
mov dl, 0x71
mov byte [ebp - 0x32], 0
mov al, 0x41
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 0x1001f1f2
xor edx, edx
mov word [ebp - 0x30], 0x63
mov byte [ebp - 0x2f], dl
lea eax, [ebp - 0x2f]
push ecx
push eax
mov cl, 0x38
mov dword [ebp - 0x44], 0x1d4b1d38
mov word [ebp - 0x40], 0x24d
mov eax, edx
mov byte [ebp - 0x3e], dl
xor byte [ebp + eax - 0x43], cl
inc eax
cmp eax, 5
jae 0x1001f217
mov cl, byte [ebp - 0x44]
jmp 0x1001f208
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 0x1001f243
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 0x1001f299
push 0x6d
pop ecx
mov byte [ebp - 0x3c], cl
xor eax, eax
mov dword [ebp - 0x3b], 0x575d5d
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 3
jae 0x1001f279
mov cl, byte [ebp - 0x3c]
jmp 0x1001f26a
lea ecx, [ebp - 0x3b]
mov byte [ebp - 0x38], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001f283
sub ecx, edx
lea eax, [ebp - 0x3b]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.10007ce4
test edi, edi
je 0x1001f32d
xor edx, edx
cmp edi, 0xa
jae 0x1001f2bb
mov al, 0x7b
mov byte [ebp - 0x34], 0x4b
xor al, 0x4b
mov byte [ebp - 0x32], dl
mov byte [ebp - 0x33], al
lea eax, [ebp - 0x33]
jmp 0x1001f2c7
mov word [ebp - 0x30], 0x76
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], dl
push edi
push eax
mov cl, 0xe
mov dword [ebp - 0x4c], 0x2b7d2b0e
mov word [ebp - 0x48], 0x7b
mov eax, edx
xor byte [ebp + eax - 0x4b], cl
inc eax
cmp eax, 4
jae 0x1001f2e9
mov cl, byte [ebp - 0x4c]
jmp 0x1001f2da
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 0x1001f315
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 0x1001f36e
push 0x36
pop ecx
mov byte [ebp - 0x34], cl
xor eax, eax
mov word [ebp - 0x33], 0x606
mov byte [ebp - 0x31], 0
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 2
jae 0x1001f34e
mov cl, byte [ebp - 0x34]
jmp 0x1001f33f
lea ecx, [ebp - 0x33]
mov byte [ebp - 0x31], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001f358
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 + 0x48]
call fcn.10009b96
lea ecx, [ebp - 0x68]
call fcn.10002410
lea ecx, [ebp - 0x2c]
call fcn.10002410
jmp 0x1001f3b8
mov ecx, dword [ebx]
xor dl, dl
mov byte [ebx + 0xfa], al
mov dword [ebx + 0xf0], eax
call fcn.1000932c
call fcn.100342e4
ret