Function at 0x10019cec
Capabilities:
Authenticate hmac

Disassembly:
push 0x5c
mov eax, 0x1007342f
call fcn.1003bfa0
mov ebx, ecx
mov dword [ebp - 0x50], ebx
xor ecx, ecx
cmp dword [ebx + 0x144], ecx
jl 0x1001a11c
push 0x18
pop eax
mov byte [ebp - 0x4c], al
lea eax, [ebp - 0x4b]
mov byte [ebp - 0x4b], cl
lea ecx, [ebp - 0x28]
push eax
call fcn.10004179
and dword [ebp - 4], 0
mov ecx, 0x15180
mov edi, dword [ebx + 0x144]
mov eax, edi
cdq
idiv ecx
push ecx
push ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [ebp - 0x40], xmm0
fld qword [ebp - 0x40]
fstp qword [esp]
call fcn.10071e10
pop ecx
fstp qword [ebp - 0x40]
movsd xmm0, qword [ebp - 0x40]
pop ecx
call fcn.10071b71
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.100185b5
call fcn.10071b71
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.100185b5
call fcn.10071b71
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.100185b5
call fcn.10071b71
mov edi, eax
test ebx, ebx
je 0x10019e6a
cmp ebx, 0xa
jae 0x10019df7
mov cl, 7
mov byte [ebp - 0x2e], 0
mov al, 0x37
mov byte [ebp - 0x30], cl
xor al, cl
mov byte [ebp - 0x2e], 0
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
jmp 0x10019e04
mov word [ebp - 0x2c], 0x2d
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], 0
push ebx
xor ebx, ebx
mov dword [ebp - 0x40], 0x7a2c7a5f
push eax
mov cl, 0x5f
mov word [ebp - 0x3c], 0x652a
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 0x10019e2f
mov cl, byte [ebp - 0x40]
jmp 0x10019e1c
sub esp, 0x18
mov byte [ebp - 0x3a], bl
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10004179
lea eax, [ebp - 0x68]
push eax
call fcn.10003c43
add esp, 0x24
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.10006885
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.1000402e
mov ecx, dword [ebp - 0x48]
xor edx, edx
push 0x17
pop ebx
test ecx, ecx
je 0x10019f05
cmp ecx, 0xa
jae 0x10019e91
mov al, 0x27
mov byte [ebp - 0x30], bl
xor al, bl
mov byte [ebp - 0x2e], dl
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
jmp 0x10019e9d
mov word [ebp - 0x2c], 0x1b
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], dl
push ecx
push eax
mov cl, 1
mov dword [ebp - 0x40], 0x24722401
mov word [ebp - 0x3c], 0x3b74
mov byte [ebp - 0x3a], dl
xor cl, byte [ebp + edx - 0x3f]
mov byte [ebp + edx - 0x3f], cl
inc edx
cmp edx, 5
jae 0x10019ec4
mov cl, byte [ebp - 0x40]
jmp 0x10019eb1
sub esp, 0x18
mov byte [ebp - 0x3a], 0
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10004179
lea eax, [ebp - 0x68]
push eax
call fcn.10003c43
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.10006885
push 0
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.1000402e
jmp 0x10019f40
mov cl, 0x14
mov dword [ebp - 0x38], 0x2e242414
mov byte [ebp - 0x34], 0
xor cl, byte [ebp + edx - 0x37]
mov byte [ebp + edx - 0x37], cl
inc edx
cmp edx, 3
jae 0x10019f25
mov cl, byte [ebp - 0x38]
jmp 0x10019f12
lea eax, [ebp - 0x37]
mov byte [ebp - 0x34], 0
push eax
call fcn.1000415c
pop ecx
push eax
lea eax, [ebp - 0x37]
push eax
lea ecx, [ebp - 0x28]
call fcn.100067e2
xor edx, edx
test esi, esi
je 0x10019fd7
cmp esi, 0xa
jae 0x10019f63
mov cl, 0x13
mov byte [ebp - 0x2e], dl
mov al, 0x23
mov byte [ebp - 0x30], cl
xor al, cl
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
jmp 0x10019f6f
mov word [ebp - 0x2c], 0x2f
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], dl
push esi
push eax
mov cl, 0x5a
mov dword [ebp - 0x40], 0x7f297f5a
mov word [ebp - 0x3c], 0x602f
mov byte [ebp - 0x3a], dl
xor cl, byte [ebp + edx - 0x3f]
mov byte [ebp + edx - 0x3f], cl
inc edx
cmp edx, 5
jae 0x10019f96
mov cl, byte [ebp - 0x40]
jmp 0x10019f83
sub esp, 0x18
mov byte [ebp - 0x3a], 0
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10004179
lea eax, [ebp - 0x68]
push eax
call fcn.10003c43
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.10006885
push 0
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.1000402e
jmp 0x1001a012
mov cl, 0x66
mov dword [ebp - 0x38], 0x5c565666
mov byte [ebp - 0x34], 0
xor cl, byte [ebp + edx - 0x37]
mov byte [ebp + edx - 0x37], cl
inc edx
cmp edx, 3
jae 0x10019ff7
mov cl, byte [ebp - 0x38]
jmp 0x10019fe4
lea eax, [ebp - 0x37]
mov byte [ebp - 0x34], 0
push eax
call fcn.1000415c
pop ecx
push eax
lea eax, [ebp - 0x37]
push eax
lea ecx, [ebp - 0x28]
call fcn.100067e2
test edi, edi
je 0x1001a0a4
xor edx, edx
cmp edi, 0xa
jae 0x1001a035
mov cl, 0x76
mov byte [ebp - 0x2e], dl
mov al, 0x46
mov byte [ebp - 0x30], cl
xor al, cl
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
jmp 0x1001a041
mov word [ebp - 0x2c], 0x6a
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], dl
push edi
push eax
mov byte [ebp - 0x48], bl
mov ecx, edx
mov dword [ebp - 0x47], 0x62326432
mov byte [ebp - 0x43], dl
xor bl, byte [ebp + ecx - 0x47]
mov byte [ebp + ecx - 0x47], bl
inc ecx
cmp ecx, 4
jae 0x1001a065
mov bl, byte [ebp - 0x48]
jmp 0x1001a052
sub esp, 0x18
lea eax, [ebp - 0x47]
mov ecx, esp
xor ebx, ebx
mov byte [ebp - 0x43], bl
push eax
call fcn.10004179
lea eax, [ebp - 0x68]
push eax
call fcn.10003c43
add esp, 0x24
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 4
call fcn.10006885
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.1000402e
jmp 0x1001a0de
xor ebx, ebx
mov dword [ebp - 0x30], 0x60636
mov cl, 0x36
mov edx, ebx
xor cl, byte [ebp + edx - 0x2f]
mov byte [ebp + edx - 0x2f], cl
inc edx
cmp edx, 2
jae 0x1001a0c4
mov cl, byte [ebp - 0x30]
jmp 0x1001a0b1
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2d], bl
push eax
call fcn.1000415c
pop ecx
push eax
lea eax, [ebp - 0x2f]
push eax
lea ecx, [ebp - 0x28]
call fcn.100067e2
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x68]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.10004179
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x68]
mov byte [ebp - 4], 5
mov ecx, dword [ecx + 0x10]
call fcn.1000de6f
push ebx
push 1
lea ecx, [ebp - 0x68]
call fcn.1000402e
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.1000402e
jmp 0x1001a12b
mov byte [ebx + 0xd4], cl
xor dl, dl
mov ecx, dword [ebx]
call fcn.1000d60f
call fcn.1003bf4a
ret