Function at 0x10024132
Capabilities:
Authenticate hmac

Disassembly:
push 0x5c
mov eax, 0x1003fc94
call fcn.1003d701
mov ebx, ecx
mov dword [ebp - 0x50], ebx
xor eax, eax
cmp dword [ebx + 0xf0], eax
jl 0x10024552
mov word [ebp - 0x34], 0x1e
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0x33], al
lea eax, [ebp - 0x33]
push eax
call fcn.10003da4
and dword [ebp - 4], 0
mov ecx, 0x15180
mov edi, dword [ebx + 0xf0]
mov eax, edi
cdq
idiv ecx
mov ecx, eax
call fcn.1001bb40
call fcn.1003d030
mov ebx, eax
xor edx, edx
imul ecx, ebx, 0x15180
mov eax, edi
push 0x18
mov dword [ebp - 0x34], ebx
sub eax, ecx
mov ecx, 0xe10
div ecx
pop ecx
xor edx, edx
div ecx
mov ecx, edx
call fcn.100187b7
call fcn.1003d030
imul esi, ebx, 0x18
xor edx, edx
mov dword [ebp - 0x4c], eax
push 0x3c
pop ebx
add esi, eax
mov eax, edi
imul ecx, esi, 0xe10
sub eax, ecx
div ebx
xor edx, edx
div ebx
mov ecx, edx
call fcn.100187b7
call fcn.1003d030
imul ecx, esi, 0x3c
xor edx, edx
mov esi, eax
add ecx, esi
imul ecx, ecx, 0x3c
sub edi, ecx
mov eax, edi
div ebx
mov ecx, edx
call fcn.100187b7
call fcn.1003d030
mov ecx, dword [ebp - 0x34]
mov edi, eax
push 0xa
pop ebx
test ecx, ecx
je 0x1002429b
cmp ecx, ebx
jae 0x10024226
mov dl, 0x50
mov byte [ebp - 0x2e], 0
mov al, 0x60
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 0x10024234
xor edx, edx
mov word [ebp - 0x34], 0x15
mov byte [ebp - 0x33], dl
lea eax, [ebp - 0x33]
push ecx
push eax
mov cl, 0x6d
mov dword [ebp - 0x44], 0x481e486d
mov word [ebp - 0x40], 0x5718
mov eax, edx
mov byte [ebp - 0x3e], dl
xor byte [ebp + eax - 0x43], cl
inc eax
cmp eax, 5
jae 0x10024259
mov cl, byte [ebp - 0x44]
jmp 0x1002424a
sub esp, 0x18
mov byte [ebp - 0x3e], dl
lea eax, [ebp - 0x43]
mov ecx, esp
push eax
call fcn.10003da4
lea eax, [ebp - 0x68]
push eax
call fcn.100039ed
add esp, 0x24
mov byte [ebp - 4], 1
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x10024285
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.100056ba
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.10003ba2
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x1002433b
cmp ecx, ebx
jae 0x100242c4
mov dl, 0x13
mov byte [ebp - 0x2e], 0
mov al, 0x23
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 0x100242d2
xor edx, edx
mov word [ebp - 0x34], 0x1c
mov byte [ebp - 0x33], dl
lea eax, [ebp - 0x33]
push ecx
push eax
mov cl, 0x72
mov dword [ebp - 0x44], 0x57015772
mov word [ebp - 0x40], 0x4807
mov eax, edx
mov byte [ebp - 0x3e], dl
xor byte [ebp + eax - 0x43], cl
inc eax
cmp eax, 5
jae 0x100242f7
mov cl, byte [ebp - 0x44]
jmp 0x100242e8
sub esp, 0x18
mov byte [ebp - 0x3e], dl
lea eax, [ebp - 0x43]
mov ecx, esp
push eax
call fcn.10003da4
lea eax, [ebp - 0x68]
push eax
call fcn.100039ed
add esp, 0x24
mov byte [ebp - 4], 2
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x10024323
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.100056ba
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.10003ba2
jmp 0x10024379
mov cl, 5
mov dword [ebp - 0x3c], 0x3f353505
mov byte [ebp - 0x38], 0
xor eax, eax
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 3
jae 0x10024359
mov cl, byte [ebp - 0x3c]
jmp 0x1002434a
lea ecx, [ebp - 0x3b]
mov byte [ebp - 0x38], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10024363
sub ecx, edx
lea eax, [ebp - 0x3b]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.100056ba
test esi, esi
je 0x10024410
xor edx, edx
cmp esi, ebx
jae 0x1002439b
mov cl, 0x65
mov byte [ebp - 0x2e], dl
mov al, 0x55
mov byte [ebp - 0x30], cl
xor al, cl
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
jmp 0x100243a7
mov word [ebp - 0x34], 0x36
lea eax, [ebp - 0x33]
mov byte [ebp - 0x33], dl
push esi
push eax
mov cl, 0x4a
mov dword [ebp - 0x44], 0x6f396f4a
mov word [ebp - 0x40], 0x703f
mov eax, edx
mov byte [ebp - 0x3e], dl
xor byte [ebp + eax - 0x43], cl
inc eax
cmp eax, 5
jae 0x100243cc
mov cl, byte [ebp - 0x44]
jmp 0x100243bd
sub esp, 0x18
mov byte [ebp - 0x3e], dl
lea eax, [ebp - 0x43]
mov ecx, esp
push eax
call fcn.10003da4
lea eax, [ebp - 0x68]
push eax
call fcn.100039ed
add esp, 0x24
mov byte [ebp - 4], 3
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x100243f8
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.100056ba
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.10003ba2
jmp 0x1002444e
mov cl, 0x61
mov dword [ebp - 0x3c], 0x5b515161
mov byte [ebp - 0x38], 0
xor eax, eax
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 3
jae 0x1002442e
mov cl, byte [ebp - 0x3c]
jmp 0x1002441f
lea ecx, [ebp - 0x3b]
mov byte [ebp - 0x38], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10024438
sub ecx, edx
lea eax, [ebp - 0x3b]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.100056ba
test edi, edi
je 0x100244e0
xor edx, edx
cmp edi, ebx
jae 0x10024470
mov cl, 0x16
mov byte [ebp - 0x2e], dl
mov al, 0x26
mov byte [ebp - 0x30], cl
xor al, cl
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
jmp 0x1002447c
mov word [ebp - 0x34], 0x62
lea eax, [ebp - 0x33]
mov byte [ebp - 0x33], dl
push edi
push eax
mov byte [ebp - 0x4c], bl
mov eax, edx
mov dword [ebp - 0x4b], 0x7f2f792f
mov byte [ebp - 0x47], dl
xor byte [ebp + eax - 0x4b], bl
inc eax
cmp eax, 4
jae 0x1002449c
mov bl, byte [ebp - 0x4c]
jmp 0x1002448d
sub esp, 0x18
mov byte [ebp - 0x47], dl
lea eax, [ebp - 0x4b]
mov ecx, esp
push eax
call fcn.10003da4
lea eax, [ebp - 0x68]
push eax
call fcn.100039ed
add esp, 0x24
mov byte [ebp - 4], 4
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x100244c8
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.100056ba
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.10003ba2
jmp 0x1002451a
mov cl, 0x4b
mov dword [ebp - 0x30], 0x7b7b4b
xor eax, eax
xor byte [ebp + eax - 0x2f], cl
inc eax
cmp eax, 2
jae 0x100244fa
mov cl, byte [ebp - 0x30]
jmp 0x100244eb
lea ecx, [ebp - 0x2f]
mov byte [ebp - 0x2d], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10024504
sub ecx, edx
lea eax, [ebp - 0x2f]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.100056ba
cmp dword [ebp - 0x18], 0xf
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x68]
cmova eax, dword [ebp - 0x2c]
push eax
call fcn.10003da4
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x68]
mov byte [ebp - 4], 5
mov ecx, dword [ecx + 0x48]
call fcn.1000d180
lea ecx, [ebp - 0x68]
call fcn.10003ba2
lea ecx, [ebp - 0x2c]
call fcn.10003ba2
jmp 0x10024567
mov ecx, dword [ebx]
xor dl, dl
mov byte [ebx + 0xfa], al
mov dword [ebx + 0xf0], eax
call fcn.1000c916
call fcn.1003d6bf
ret