Function at 0x100272fb
Capabilities:
Authenticate hmac

Disassembly:
push 0x5c
mov eax, 0x10077b8d
call fcn.1004605f
mov ebx, ecx
mov dword [ebp - 0x50], ebx
xor eax, eax
cmp dword [ebx + 0x148], eax
jl 0x1002771a
mov word [ebp - 0x4c], 0x2e
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x4b], al
lea eax, [ebp - 0x4b]
push eax
call fcn.10001f6a
and dword [ebp - 4], 0
mov ecx, 0x15180
mov edi, dword [ebx + 0x148]
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.100757b0
pop ecx
fstp qword [ebp - 0x40]
movsd xmm0, qword [ebp - 0x40]
pop ecx
call fcn.10075511
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.10028ef3
call fcn.10075511
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.10028ef3
call fcn.10075511
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.10028ef3
call fcn.10075511
mov edi, eax
test ebx, ebx
je 0x10027475
cmp ebx, 0xa
jae 0x10027406
mov cl, 0x4a
mov byte [ebp - 0x2e], 0
mov al, 0x7a
mov byte [ebp - 0x30], cl
xor al, cl
mov byte [ebp - 0x2e], 0
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
jmp 0x10027413
mov word [ebp - 0x2c], 0x35
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], 0
push ebx
xor ebx, ebx
mov dword [ebp - 0x40], 0x14421431
push eax
mov cl, 0x31
mov word [ebp - 0x3c], 0xb44
mov byte [ebp - 0x3a], bl
mov eax, ebx
xor byte [ebp + eax - 0x3f], cl
inc eax
cmp eax, 5
jae 0x1002743a
mov cl, byte [ebp - 0x40]
jmp 0x1002742b
sub esp, 0x18
mov byte [ebp - 0x3a], bl
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10001f6a
lea eax, [ebp - 0x68]
push eax
call fcn.10007414
add esp, 0x24
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.10004ae9
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.10001e1f
mov ecx, dword [ebp - 0x48]
push 2
pop ebx
test ecx, ecx
je 0x10027514
cmp ecx, 0xa
jae 0x100274a2
mov dl, 0x4c
mov byte [ebp - 0x2e], 0
mov al, 0x7c
mov byte [ebp - 0x30], dl
xor al, dl
xor edx, edx
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2e], dl
jmp 0x100274b0
xor edx, edx
mov word [ebp - 0x2c], 0x4f
mov byte [ebp - 0x2b], dl
lea eax, [ebp - 0x2b]
push ecx
push eax
mov cl, 0x65
mov dword [ebp - 0x40], 0x40164065
mov word [ebp - 0x3c], 0x5f10
mov eax, edx
mov byte [ebp - 0x3a], dl
xor byte [ebp + eax - 0x3f], cl
inc eax
cmp eax, 5
jae 0x100274d5
mov cl, byte [ebp - 0x40]
jmp 0x100274c6
sub esp, 0x18
mov byte [ebp - 0x3a], dl
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10001f6a
lea eax, [ebp - 0x68]
push eax
call fcn.10007414
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], bl
call fcn.10004ae9
push 0
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.10001e1f
jmp 0x1002754d
mov cl, 0x33
mov dword [ebp - 0x38], 0x9030333
mov byte [ebp - 0x34], 0
xor eax, eax
xor byte [ebp + eax - 0x37], cl
inc eax
cmp eax, 3
jae 0x10027532
mov cl, byte [ebp - 0x38]
jmp 0x10027523
lea eax, [ebp - 0x37]
mov byte [ebp - 0x34], 0
push eax
call fcn.10001f4d
pop ecx
push eax
lea eax, [ebp - 0x37]
push eax
lea ecx, [ebp - 0x28]
call fcn.10004a46
test esi, esi
je 0x100275e1
xor edx, edx
cmp esi, 0xa
jae 0x10027570
mov cl, 0x6a
mov byte [ebp - 0x2e], dl
mov al, 0x5a
mov byte [ebp - 0x30], cl
xor al, cl
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
jmp 0x1002757c
mov word [ebp - 0x2c], 0x52
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], dl
push esi
push eax
mov cl, 0x24
mov dword [ebp - 0x40], 0x1570124
mov word [ebp - 0x3c], 0x1e51
mov eax, edx
mov byte [ebp - 0x3a], dl
xor byte [ebp + eax - 0x3f], cl
inc eax
cmp eax, 5
jae 0x100275a1
mov cl, byte [ebp - 0x40]
jmp 0x10027592
sub esp, 0x18
mov byte [ebp - 0x3a], dl
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10001f6a
lea eax, [ebp - 0x68]
push eax
call fcn.10007414
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.10004ae9
push 0
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.10001e1f
jmp 0x1002761a
mov cl, 0x68
mov dword [ebp - 0x38], 0x52585868
mov byte [ebp - 0x34], 0
xor eax, eax
xor byte [ebp + eax - 0x37], cl
inc eax
cmp eax, 3
jae 0x100275ff
mov cl, byte [ebp - 0x38]
jmp 0x100275f0
lea eax, [ebp - 0x37]
mov byte [ebp - 0x34], 0
push eax
call fcn.10001f4d
pop ecx
push eax
lea eax, [ebp - 0x37]
push eax
lea ecx, [ebp - 0x28]
call fcn.10004a46
test edi, edi
je 0x100276a7
xor ecx, ecx
cmp edi, 0xa
jae 0x1002763c
mov al, 0x61
mov byte [ebp - 0x30], 0x51
xor al, 0x51
mov byte [ebp - 0x2e], cl
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
jmp 0x10027648
mov word [ebp - 0x2c], 0x36
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], cl
push edi
push eax
mov byte [ebp - 0x48], bl
mov eax, ecx
mov dword [ebp - 0x47], 0x77277127
mov byte [ebp - 0x43], cl
xor byte [ebp + eax - 0x47], bl
inc eax
cmp eax, 4
jae 0x10027668
mov bl, byte [ebp - 0x48]
jmp 0x10027659
sub esp, 0x18
mov byte [ebp - 0x43], cl
lea eax, [ebp - 0x47]
mov ecx, esp
push eax
call fcn.10001f6a
lea eax, [ebp - 0x68]
push eax
call fcn.10007414
add esp, 0x24
push 0xffffffffffffffff
xor ebx, ebx
mov byte [ebp - 4], 4
push ebx
push eax
lea ecx, [ebp - 0x28]
call fcn.10004ae9
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.10001e1f
jmp 0x100276dc
mov cl, 0x4e
mov dword [ebp - 0x30], 0x7e7e4e
xor eax, eax
xor byte [ebp + eax - 0x2f], cl
inc eax
cmp eax, ebx
jae 0x100276c0
mov cl, byte [ebp - 0x30]
jmp 0x100276b2
lea eax, [ebp - 0x2f]
xor ebx, ebx
push eax
mov byte [ebp - 0x2d], bl
call fcn.10001f4d
pop ecx
push eax
lea eax, [ebp - 0x2f]
push eax
lea ecx, [ebp - 0x28]
call fcn.10004a46
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x68]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.10001f6a
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x68]
mov byte [ebp - 4], 5
mov ecx, dword [ecx + 0x10]
call fcn.10010c45
push ebx
push 1
lea ecx, [ebp - 0x68]
call fcn.10001e1f
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.10001e1f
jmp 0x10027729
mov ecx, dword [ebx]
xor dl, dl
mov byte [ebx + 0xd4], al
call fcn.10010276
call fcn.10046009
ret