Function at 0x1000d26d
Capabilities:
Authenticate hmac

Disassembly:
push 0x5c
mov eax, 0x10022a57
call fcn.100215d1
mov ebx, ecx
mov dword [ebp - 0x50], ebx
lea eax, [ebp - 0x4b]
mov word [ebp - 0x4c], 0x36
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x4b], 0
call fcn.10004090
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.1000daba
call fcn.10021c01
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.1000daba
call fcn.10021c01
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.1000daba
call fcn.10021c01
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.1000daba
call fcn.10021c01
mov edi, eax
test ebx, ebx
je 0x1000d3be
cmp ebx, 0xa
jae 0x1000d34b
mov al, 0x5f
mov byte [ebp - 0x2e], 0
xor al, 0x6f
mov byte [ebp - 0x30], 0x6f
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2e], 0
jmp 0x1000d358
mov word [ebp - 0x2c], 0x13
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], 0
push ebx
xor ebx, ebx
mov dword [ebp - 0x40], 0x1c4a1c39
push eax
mov cl, 0x39
mov word [ebp - 0x3c], 0x34c
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 0x1000d383
mov cl, byte [ebp - 0x40]
jmp 0x1000d370
sub esp, 0x18
mov byte [ebp - 0x3a], bl
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10004090
lea eax, [ebp - 0x68]
push eax
call fcn.10003b75
add esp, 0x24
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.10006d46
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.10003f3c
mov edx, dword [ebp - 0x48]
push 0x67
pop ecx
push 0x41
pop ebx
test edx, edx
je 0x1000d469
cmp edx, 0xa
jae 0x1000d3eb
mov al, 0x57
mov byte [ebp - 0x2e], 0
xor al, cl
mov byte [ebp - 0x30], cl
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2e], 0
jmp 0x1000d3f8
mov word [ebp - 0x2c], 0x20
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], 0
push edx
mov cl, 0x64
mov byte [ebp - 0x3f], bl
push eax
mov byte [ebp - 0x40], cl
xor edx, edx
mov byte [ebp - 0x3e], 0x17
mov byte [ebp - 0x3d], bl
mov word [ebp - 0x3c], 0x5e11
mov byte [ebp - 0x3a], 0
xor cl, byte [ebp + edx - 0x3f]
mov byte [ebp + edx - 0x3f], cl
inc edx
cmp edx, 5
jae 0x1000d428
mov cl, byte [ebp - 0x40]
jmp 0x1000d415
sub esp, 0x18
mov byte [ebp - 0x3a], 0
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10004090
lea eax, [ebp - 0x68]
push eax
call fcn.10003b75
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.10006d46
push 0
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.10003f3c
jmp 0x1000d4a4
mov cl, 0x1f
mov dword [ebp - 0x38], 0x252f2f1f
mov byte [ebp - 0x34], 0
xor edx, edx
xor cl, byte [ebp + edx - 0x37]
mov byte [ebp + edx - 0x37], cl
inc edx
cmp edx, 3
jae 0x1000d48b
mov cl, byte [ebp - 0x38]
jmp 0x1000d478
lea ecx, [ebp - 0x37]
mov byte [ebp - 0x34], 0
call fcn.10004078
push eax
lea eax, [ebp - 0x37]
push eax
lea ecx, [ebp - 0x28]
call fcn.10007829
test esi, esi
je 0x1000d53c
xor ecx, ecx
cmp esi, 0xa
jae 0x1000d4c7
push 0x67
pop eax
xor al, 0x57
mov byte [ebp - 0x30], 0x57
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2e], cl
jmp 0x1000d4d3
mov word [ebp - 0x2c], 0x49
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], cl
push esi
push eax
push 0x4c
pop edx
mov byte [ebp - 0x40], dl
mov dword [ebp - 0x3f], 0x39693f69
mov word [ebp - 0x3b], 0x76
xor dl, byte [ebp + ecx - 0x3f]
mov byte [ebp + ecx - 0x3f], dl
inc ecx
cmp ecx, 5
jae 0x1000d4fb
mov dl, byte [ebp - 0x40]
jmp 0x1000d4e8
sub esp, 0x18
mov byte [ebp - 0x3a], 0
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10004090
lea eax, [ebp - 0x68]
push eax
call fcn.10003b75
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.10006d46
push 0
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.10003f3c
jmp 0x1000d576
mov cl, bl
mov dword [ebp - 0x37], 0x7b7171
mov byte [ebp - 0x38], cl
xor edx, edx
xor cl, byte [ebp + edx - 0x37]
mov byte [ebp + edx - 0x37], cl
inc edx
cmp edx, 3
jae 0x1000d55d
mov cl, byte [ebp - 0x38]
jmp 0x1000d54a
lea ecx, [ebp - 0x37]
mov byte [ebp - 0x34], 0
call fcn.10004078
push eax
lea eax, [ebp - 0x37]
push eax
lea ecx, [ebp - 0x28]
call fcn.10007829
test edi, edi
je 0x1000d607
xor ebx, ebx
cmp edi, 0xa
jae 0x1000d598
mov al, 0x34
mov byte [ebp - 0x30], 4
xor al, 4
mov byte [ebp - 0x2e], bl
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
jmp 0x1000d5a4
mov word [ebp - 0x2c], 0x6f
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], bl
push edi
push eax
mov cl, 0x78
mov dword [ebp - 0x48], 0x5d0b5d78
mov word [ebp - 0x44], 0xd
mov edx, ebx
xor cl, byte [ebp + edx - 0x47]
mov byte [ebp + edx - 0x47], cl
inc edx
cmp edx, 4
jae 0x1000d5ca
mov cl, byte [ebp - 0x48]
jmp 0x1000d5b7
sub esp, 0x18
mov byte [ebp - 0x43], bl
lea eax, [ebp - 0x47]
mov ecx, esp
push eax
call fcn.10004090
lea eax, [ebp - 0x68]
push eax
call fcn.10003b75
add esp, 0x24
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 4
call fcn.10006d46
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.10003f3c
jmp 0x1000d643
mov byte [ebp - 0x30], bl
xor ecx, ecx
mov word [ebp - 0x2f], 0x7171
mov byte [ebp - 0x2d], 0
xor bl, byte [ebp + ecx - 0x2f]
mov byte [ebp + ecx - 0x2f], bl
inc ecx
cmp ecx, 2
jae 0x1000d629
mov bl, byte [ebp - 0x30]
jmp 0x1000d616
xor ebx, ebx
lea ecx, [ebp - 0x2f]
mov byte [ebp - 0x2d], bl
call fcn.10004078
push eax
lea eax, [ebp - 0x2f]
push eax
lea ecx, [ebp - 0x28]
call fcn.10007829
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x68]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.10004090
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x68]
mov byte [ebp - 4], 5
mov ecx, dword [ecx + 0x28]
call fcn.100092aa
push ebx
push 1
lea ecx, [ebp - 0x68]
call fcn.10003f3c
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.10003f3c
call fcn.1002157b
ret