Function at 0x100239d5
Capabilities:
Authenticate hmac

Disassembly:
push 0x58
mov eax, 0x1003fcee
call fcn.1003d7e1
mov esi, ecx
mov dword [ebp - 0x4c], esi
mov eax, dword [esi]
mov dword [0x10057ae4], eax
cmp byte [esi + 0xfa], 0
je 0x10023e59
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount64]
call edi
sub eax, dword [esi + 0x100]
mov ecx, eax
sbb edx, dword [esi + 0x104]
call fcn.1003d260
divss xmm0, dword [0x1004c754]
comiss xmm0, dword [0x1004c704]
jb 0x10023e59
call edi
sub dword [esi + 0xf0], 1
mov dword [esi + 0x100], eax
mov dword [esi + 0x104], edx
js 0x10023e42
lea eax, [ebp - 0x2f]
mov word [ebp - 0x30], 0x20
xor ebx, ebx
lea ecx, [ebp - 0x28]
push eax
mov byte [ebp - 0x2f], bl
call fcn.10003d9a
mov dword [ebp - 4], ebx
mov ecx, 0x15180
mov edi, dword [esi + 0xf0]
mov eax, edi
cdq
idiv ecx
mov ecx, eax
call fcn.1001bb7b
call fcn.1003d110
mov esi, eax
xor edx, edx
imul ecx, esi, 0x15180
mov eax, edi
push 0x18
mov dword [ebp - 0x30], esi
sub eax, ecx
mov ecx, 0xe10
div ecx
pop ecx
xor edx, edx
div ecx
mov ecx, edx
call fcn.100187f2
call fcn.1003d110
imul esi, esi, 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.100187f2
call fcn.1003d110
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.100187f2
call fcn.1003d110
mov ecx, dword [ebp - 0x30]
mov edi, eax
test ecx, ecx
je 0x10023b88
cmp ecx, 0xa
jae 0x10023b16
mov dl, 0x48
mov byte [ebp - 0x2a], bl
mov al, 0x78
mov byte [ebp - 0x2c], dl
xor al, dl
mov byte [ebp - 0x2b], al
lea eax, [ebp - 0x2b]
jmp 0x10023b22
mov word [ebp - 0x30], 0xc
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], bl
push ecx
push eax
mov cl, 0x2a
mov dword [ebp - 0x40], 0xf590f2a
mov word [ebp - 0x3c], 0x105f
mov eax, ebx
mov byte [ebp - 0x3a], bl
xor byte [ebp + eax - 0x3f], cl
inc eax
cmp eax, 5
jae 0x10023b47
mov cl, byte [ebp - 0x40]
jmp 0x10023b38
sub esp, 0x18
mov byte [ebp - 0x3a], bl
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10003d9a
lea eax, [ebp - 0x64]
push eax
call fcn.100039e3
add esp, 0x24
mov byte [ebp - 4], 1
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x10023b73
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.100056aa
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], bl
call fcn.10003b98
mov edx, dword [ebp - 0x48]
push 0x79
pop eax
push 0x36
pop ecx
test edx, edx
je 0x10023c2c
cmp edx, 0xa
jae 0x10023bb2
mov ah, 0x5c
mov byte [ebp - 0x2a], bl
mov al, 0x6c
mov byte [ebp - 0x2c], ah
xor al, ah
mov byte [ebp - 0x2b], al
lea eax, [ebp - 0x2b]
jmp 0x10023bbe
mov word [ebp - 0x30], 0x40
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], bl
push edx
mov dl, 0x13
mov byte [ebp - 0x3f], cl
push eax
mov byte [ebp - 0x40], dl
mov eax, ebx
mov byte [ebp - 0x3e], 0x60
mov byte [ebp - 0x3d], cl
mov word [ebp - 0x3c], 0x2966
mov byte [ebp - 0x3a], bl
xor byte [ebp + eax - 0x3f], dl
inc eax
cmp eax, 5
jae 0x10023be9
mov dl, byte [ebp - 0x40]
jmp 0x10023bda
sub esp, 0x18
mov byte [ebp - 0x3a], bl
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10003d9a
lea eax, [ebp - 0x64]
push eax
call fcn.100039e3
add esp, 0x24
mov byte [ebp - 4], 2
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x10023c15
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.100056aa
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], bl
call fcn.10003b98
jmp 0x10023c6d
mov cl, 0x49
mov byte [ebp - 0x37], al
mov byte [ebp - 0x36], al
mov eax, ebx
mov byte [ebp - 0x38], cl
mov word [ebp - 0x35], 0x73
xor byte [ebp + eax - 0x37], cl
inc eax
cmp eax, 3
jae 0x10023c4e
mov cl, byte [ebp - 0x38]
jmp 0x10023c3f
lea ecx, [ebp - 0x37]
mov byte [ebp - 0x34], bl
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10023c57
sub ecx, edx
lea eax, [ebp - 0x37]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.100056aa
test esi, esi
je 0x10023d02
cmp esi, 0xa
jae 0x10023c8e
push 0x79
pop eax
xor al, 0x49
mov byte [ebp - 0x2c], 0x49
mov byte [ebp - 0x2b], al
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2a], bl
jmp 0x10023c9a
mov word [ebp - 0x30], 0x3d
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], bl
push esi
push eax
mov cl, 0x76
mov dword [ebp - 0x40], 0x53055376
mov word [ebp - 0x3c], 0x4c03
mov eax, ebx
mov byte [ebp - 0x3a], bl
xor byte [ebp + eax - 0x3f], cl
inc eax
cmp eax, 5
jae 0x10023cbf
mov cl, byte [ebp - 0x40]
jmp 0x10023cb0
sub esp, 0x18
mov byte [ebp - 0x3a], bl
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10003d9a
lea eax, [ebp - 0x64]
push eax
call fcn.100039e3
add esp, 0x24
mov byte [ebp - 4], 3
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x10023ceb
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.100056aa
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], bl
call fcn.10003b98
jmp 0x10023d3e
mov cl, 0x2d
mov dword [ebp - 0x38], 0x171d1d2d
mov byte [ebp - 0x34], bl
mov eax, ebx
xor byte [ebp + eax - 0x37], cl
inc eax
cmp eax, 3
jae 0x10023d1f
mov cl, byte [ebp - 0x38]
jmp 0x10023d10
lea ecx, [ebp - 0x37]
mov byte [ebp - 0x34], bl
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10023d28
sub ecx, edx
lea eax, [ebp - 0x37]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.100056aa
test edi, edi
je 0x10023dd1
cmp edi, 0xa
jae 0x10023d60
push 0x36
mov cl, 6
mov byte [ebp - 0x2a], bl
pop eax
xor al, cl
mov byte [ebp - 0x2c], cl
mov byte [ebp - 0x2b], al
lea eax, [ebp - 0x2b]
jmp 0x10023d6c
mov word [ebp - 0x30], 0x3a
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], bl
push edi
push eax
mov cl, 0x74
mov dword [ebp - 0x48], 0x51075174
mov word [ebp - 0x44], 1
mov eax, ebx
xor byte [ebp + eax - 0x47], cl
inc eax
cmp eax, 4
jae 0x10023d8e
mov cl, byte [ebp - 0x48]
jmp 0x10023d7f
sub esp, 0x18
mov byte [ebp - 0x43], bl
lea eax, [ebp - 0x47]
mov ecx, esp
push eax
call fcn.10003d9a
lea eax, [ebp - 0x64]
push eax
call fcn.100039e3
add esp, 0x24
mov byte [ebp - 4], 4
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x10023dba
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.100056aa
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], bl
call fcn.10003b98
jmp 0x10023e0a
mov cl, 0x42
mov dword [ebp - 0x2c], 0x727242
mov eax, ebx
xor byte [ebp + eax - 0x2b], cl
inc eax
cmp eax, 2
jae 0x10023deb
mov cl, byte [ebp - 0x2c]
jmp 0x10023ddc
lea ecx, [ebp - 0x2b]
mov byte [ebp - 0x29], bl
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10023df4
sub ecx, edx
lea eax, [ebp - 0x2b]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.100056aa
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x64]
cmova eax, dword [ebp - 0x28]
push eax
call fcn.10003d9a
mov ecx, dword [ebp - 0x4c]
lea edx, [ebp - 0x64]
mov byte [ebp - 4], 5
mov ecx, dword [ecx + 0x48]
call fcn.1000d186
lea ecx, [ebp - 0x64]
call fcn.10003b98
lea ecx, [ebp - 0x28]
call fcn.10003b98
jmp 0x10023e59
mov ecx, dword [esi]
xor ebx, ebx
xor dl, dl
mov byte [esi + 0xfa], bl
mov dword [esi + 0xf0], ebx
call fcn.1000c91c
call fcn.1003d79f
ret