Function at 0x1001d139
Capabilities:
Authenticate hmac

Disassembly:
push 0x5c
mov eax, 0x10036370
call fcn.10034326
mov esi, ecx
mov dword [ebp - 0x50], esi
mov eax, dword [esi]
mov dword [0x1004626c], eax
cmp byte [esi + 0x2c], 0
je 0x1001d583
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount64]
call edi
sub eax, dword [esi + 0x38]
mov ecx, eax
sbb edx, dword [esi + 0x3c]
call fcn.100347e0
divss xmm0, dword [0x1003dc1c]
comiss xmm0, dword [0x1003dbd4]
jb 0x1001d583
call edi
sub dword [esi + 0x28], 1
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
js 0x1001d572
lea eax, [ebp - 0x2b]
mov word [ebp - 0x2c], 0x61
xor ebx, ebx
lea ecx, [ebp - 0x28]
push eax
mov byte [ebp - 0x2b], bl
call fcn.10002604
mov dword [ebp - 4], ebx
mov ecx, 0x15180
mov edi, dword [esi + 0x28]
mov eax, edi
cdq
idiv ecx
mov ecx, eax
call fcn.10017117
call fcn.10034690
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.10013dc8
call fcn.10034690
imul esi, esi, 0x18
xor edx, edx
mov dword [ebp - 0x38], 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.10013dc8
call fcn.10034690
imul ecx, esi, 0x3c
xor edx, edx
mov esi, eax
mov dword [ebp - 0x4c], 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.10013dc8
call fcn.10034690
mov ecx, dword [ebp - 0x30]
mov edi, eax
test ecx, ecx
je 0x1001d2ca
cmp ecx, 0xa
jae 0x1001d264
mov dl, 0x6e
mov byte [ebp - 0x2e], bl
mov al, 0x5e
mov byte [ebp - 0x30], dl
xor al, dl
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
jmp 0x1001d270
mov word [ebp - 0x2c], 0x5d
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], bl
push ecx
push eax
sub esp, 0x18
mov dword [ebp - 0x48], 0x61376144
lea ecx, [ebp - 0x48]
mov word [ebp - 0x44], 0x7e31
mov byte [ebp - 0x42], bl
mov esi, esp
call fcn.10005161
push eax
mov ecx, esi
call fcn.10002604
lea eax, [ebp - 0x68]
push eax
call fcn.1000485c
add esp, 0x24
mov byte [ebp - 4], 1
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x1001d2b2
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.10007ce4
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.10002410
mov esi, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x1001d362
cmp ecx, 0xa
jae 0x1001d2ee
mov dl, 0xb
mov byte [ebp - 0x2e], bl
mov al, 0x3b
mov byte [ebp - 0x30], dl
xor al, dl
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
jmp 0x1001d2fa
mov word [ebp - 0x2c], 0x4f
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], bl
push ecx
push eax
mov cl, 0x73
mov dword [ebp - 0x38], 0x56005673
mov word [ebp - 0x34], 0x4906
mov eax, ebx
mov byte [ebp - 0x32], bl
xor byte [ebp + eax - 0x37], cl
inc eax
cmp eax, 5
jae 0x1001d31f
mov cl, byte [ebp - 0x38]
jmp 0x1001d310
sub esp, 0x18
mov byte [ebp - 0x32], bl
lea eax, [ebp - 0x37]
mov ecx, esp
push eax
call fcn.10002604
lea eax, [ebp - 0x68]
push eax
call fcn.1000485c
add esp, 0x24
mov byte [ebp - 4], 2
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x1001d34b
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.10007ce4
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.10002410
jmp 0x1001d39e
mov cl, 0x38
mov dword [ebp - 0x40], 0x2080838
mov byte [ebp - 0x3c], bl
mov eax, ebx
xor byte [ebp + eax - 0x3f], cl
inc eax
cmp eax, 3
jae 0x1001d37f
mov cl, byte [ebp - 0x40]
jmp 0x1001d370
lea ecx, [ebp - 0x3f]
mov byte [ebp - 0x3c], bl
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001d388
sub ecx, edx
lea eax, [ebp - 0x3f]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.10007ce4
test esi, esi
je 0x1001d433
cmp esi, 0xa
jae 0x1001d3bf
mov cl, 0x52
mov byte [ebp - 0x2e], bl
mov al, 0x62
mov byte [ebp - 0x30], cl
xor al, cl
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
jmp 0x1001d3cb
mov word [ebp - 0x2c], 0x2d
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], bl
push esi
push eax
mov cl, 0xd
mov dword [ebp - 0x38], 0x287e280d
mov word [ebp - 0x34], 0x3778
mov eax, ebx
mov byte [ebp - 0x32], bl
xor byte [ebp + eax - 0x37], cl
inc eax
cmp eax, 5
jae 0x1001d3f0
mov cl, byte [ebp - 0x38]
jmp 0x1001d3e1
sub esp, 0x18
mov byte [ebp - 0x32], bl
lea eax, [ebp - 0x37]
mov ecx, esp
push eax
call fcn.10002604
lea eax, [ebp - 0x68]
push eax
call fcn.1000485c
add esp, 0x24
mov byte [ebp - 4], 3
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x1001d41c
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.10007ce4
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.10002410
jmp 0x1001d46f
mov cl, 0x69
mov dword [ebp - 0x40], 0x53595969
mov byte [ebp - 0x3c], bl
mov eax, ebx
xor byte [ebp + eax - 0x3f], cl
inc eax
cmp eax, 3
jae 0x1001d450
mov cl, byte [ebp - 0x40]
jmp 0x1001d441
lea ecx, [ebp - 0x3f]
mov byte [ebp - 0x3c], bl
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001d459
sub ecx, edx
lea eax, [ebp - 0x3f]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.10007ce4
test edi, edi
je 0x1001d501
cmp edi, 0xa
jae 0x1001d490
push 0x31
pop eax
xor al, 1
mov byte [ebp - 0x30], 1
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2e], bl
jmp 0x1001d49c
mov word [ebp - 0x2c], 0x13
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x2b], bl
push edi
push eax
mov cl, 0x36
mov dword [ebp - 0x38], 0x13451336
mov word [ebp - 0x34], 0x43
mov eax, ebx
xor byte [ebp + eax - 0x37], cl
inc eax
cmp eax, 4
jae 0x1001d4be
mov cl, byte [ebp - 0x38]
jmp 0x1001d4af
sub esp, 0x18
mov byte [ebp - 0x33], bl
lea eax, [ebp - 0x37]
mov ecx, esp
push eax
call fcn.10002604
lea eax, [ebp - 0x68]
push eax
call fcn.1000485c
add esp, 0x24
mov byte [ebp - 4], 4
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x1001d4ea
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.10007ce4
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.10002410
jmp 0x1001d53a
mov cl, 0xe
mov dword [ebp - 0x30], 0x3e3e0e
mov eax, ebx
xor byte [ebp + eax - 0x2f], cl
inc eax
cmp eax, 2
jae 0x1001d51b
mov cl, byte [ebp - 0x30]
jmp 0x1001d50c
lea ecx, [ebp - 0x2f]
mov byte [ebp - 0x2d], bl
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001d524
sub ecx, edx
lea eax, [ebp - 0x2f]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.10007ce4
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x68]
cmova eax, dword [ebp - 0x28]
push eax
call fcn.10002604
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x68]
mov byte [ebp - 4], 5
mov ecx, dword [ecx + 0x18]
call fcn.10009b96
lea ecx, [ebp - 0x68]
call fcn.10002410
lea ecx, [ebp - 0x28]
call fcn.10002410
jmp 0x1001d583
mov ecx, dword [esi]
xor ebx, ebx
xor dl, dl
mov byte [esi + 0x2c], bl
mov dword [esi + 0x28], ebx
call fcn.1000932c
call fcn.100342e4
ret