Function at 0x100135c2
Capabilities:
Authenticate hmac

Disassembly:
push 0x5c
mov eax, 0x100358d3
call fcn.10034326
mov ebx, ecx
mov dword [ebp - 0x50], ebx
lea eax, [ebp - 0x2f]
mov word [ebp - 0x30], 0x7e
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0x2f], 0
call fcn.10002604
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.10013dc8
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
mov ebx, eax
imul esi, esi, 0x18
mov eax, edi
xor edx, edx
push 0x3c
add esi, ebx
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 esi, eax
mov dword [ebp - 0x3c], 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.10013dc8
call fcn.10034690
mov ecx, dword [ebp - 0x34]
mov edi, eax
test ecx, ecx
je 0x10013712
cmp ecx, 0xa
jae 0x100136a9
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 0x100136b6
mov word [ebp - 0x30], 0x27
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], 0
push ecx
push eax
sub esp, 0x18
mov dword [ebp - 0x4c], 0x15431530
lea ecx, [ebp - 0x4c]
mov word [ebp - 0x48], 0xa45
mov byte [ebp - 0x46], 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], 1
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x100136f9
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 esi, dword [ebp - 0x3c]
test ebx, ebx
je 0x100137af
cmp ebx, 0xa
jae 0x10013738
mov cl, 0x47
mov byte [ebp - 0x32], 0
mov al, 0x77
mov byte [ebp - 0x34], cl
xor al, cl
mov byte [ebp - 0x32], 0
mov byte [ebp - 0x33], al
lea eax, [ebp - 0x33]
jmp 0x10013745
mov word [ebp - 0x30], 0x36
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], 0
push ebx
xor ebx, ebx
mov dword [ebp - 0x3c], 0x481e486d
push eax
mov cl, 0x6d
mov word [ebp - 0x38], 0x5718
mov byte [ebp - 0x36], bl
mov eax, ebx
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 5
jae 0x1001376c
mov cl, byte [ebp - 0x3c]
jmp 0x1001375d
sub esp, 0x18
mov byte [ebp - 0x36], bl
lea eax, [ebp - 0x3b]
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 0x10013798
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.10007ce4
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.10002410
jmp 0x100137ed
xor ebx, ebx
mov dword [ebp - 0x44], 0x565c5c6c
mov cl, 0x6c
mov byte [ebp - 0x40], bl
mov eax, ebx
xor byte [ebp + eax - 0x43], cl
inc eax
cmp eax, 3
jae 0x100137ce
mov cl, byte [ebp - 0x44]
jmp 0x100137bf
lea ecx, [ebp - 0x43]
mov byte [ebp - 0x40], bl
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100137d7
sub ecx, edx
lea eax, [ebp - 0x43]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.10007ce4
test esi, esi
je 0x10013886
cmp esi, 0xa
jae 0x1001380d
mov al, 0x17
mov byte [ebp - 0x34], 0x27
xor al, 0x27
mov byte [ebp - 0x32], bl
mov byte [ebp - 0x33], al
lea eax, [ebp - 0x33]
jmp 0x10013819
mov word [ebp - 0x30], 0x38
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], bl
push esi
push eax
push 0x4b
pop ebx
mov cl, 0x3e
mov dword [ebp - 0x3c], 0x1b4d1b3e
mov byte [ebp - 0x38], bl
xor eax, eax
mov word [ebp - 0x37], 4
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 5
jae 0x10013841
mov cl, byte [ebp - 0x3c]
jmp 0x10013832
sub esp, 0x18
mov byte [ebp - 0x36], 0
lea eax, [ebp - 0x3b]
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 0x1001386e
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 0x100138cd
push 0x4b
pop ebx
mov cl, 0x71
mov word [ebp - 0x44], 0x4171
mov byte [ebp - 0x42], 0x41
xor eax, eax
mov byte [ebp - 0x41], bl
mov byte [ebp - 0x40], 0
xor byte [ebp + eax - 0x43], cl
inc eax
cmp eax, 3
jae 0x100138ad
mov cl, byte [ebp - 0x44]
jmp 0x1001389e
lea ecx, [ebp - 0x43]
mov byte [ebp - 0x40], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100138b7
sub ecx, edx
lea eax, [ebp - 0x43]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.10007ce4
test edi, edi
je 0x10013960
xor ebx, ebx
cmp edi, 0xa
jae 0x100138ef
mov al, 0x5d
mov byte [ebp - 0x34], 0x6d
xor al, 0x6d
mov byte [ebp - 0x32], bl
mov byte [ebp - 0x33], al
lea eax, [ebp - 0x33]
jmp 0x100138fb
mov word [ebp - 0x30], 0xe
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], bl
push edi
push eax
mov cl, 0x63
mov dword [ebp - 0x3c], 0x46104663
mov word [ebp - 0x38], 0x16
mov eax, ebx
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 4
jae 0x1001391d
mov cl, byte [ebp - 0x3c]
jmp 0x1001390e
sub esp, 0x18
mov byte [ebp - 0x37], bl
lea eax, [ebp - 0x3b]
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 0x10013949
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.10007ce4
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.10002410
jmp 0x1001399e
mov byte [ebp - 0x34], bl
xor eax, eax
mov word [ebp - 0x33], 0x7b7b
mov byte [ebp - 0x31], 0
xor byte [ebp + eax - 0x33], bl
inc eax
cmp eax, 2
jae 0x1001397e
mov bl, byte [ebp - 0x34]
jmp 0x1001396f
lea ecx, [ebp - 0x33]
mov byte [ebp - 0x31], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10013988
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 ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x68]
mov byte [ebp - 4], 5
mov ecx, dword [ecx + 0x28]
call fcn.10009b96
lea ecx, [ebp - 0x68]
call fcn.10002410
lea ecx, [ebp - 0x2c]
call fcn.10002410
call fcn.100342e4
ret