Function at 0x1002cb74
Capabilities:
Authenticate hmac

Disassembly:
push 0xbc
mov eax, 0x100486da
call fcn.10044ac9
mov ebx, ecx
mov eax, dword [ebx]
mov dword [0x1005b4e8], eax
mov eax, dword [ebx + 0x150]
cmp eax, dword [ebx + 0x154]
je 0x1002d218
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount64]
call esi
sub eax, dword [ebx + 0x168]
mov ecx, eax
sbb edx, dword [ebx + 0x16c]
call fcn.10044ee0
cvtsd2ss xmm0, xmm0
divss xmm0, dword [0x1004a524]
comiss xmm0, dword [0x1004a520]
jb 0x1002d218
call esi
mov dword [ebx + 0x168], eax
xor esi, esi
mov dword [ebx + 0x16c], edx
mov eax, dword [ebx + 0x154]
sub eax, dword [ebx + 0x150]
push 0x68
cdq
pop edi
idiv edi
test eax, eax
je 0x1002cc23
xor ecx, ecx
mov edx, dword [ebx + 0x150]
mov eax, dword [ecx + edx + 0x1c]
test eax, eax
jle 0x1002cc0d
dec eax
mov dword [ecx + edx + 0x1c], eax
mov eax, dword [ebx + 0x154]
inc esi
sub eax, dword [ebx + 0x150]
add ecx, edi
cdq
idiv edi
cmp esi, eax
jb 0x1002cbfa
mov eax, dword [ebx + 0x148]
cmp eax, dword [ebx + 0x14c]
jbe 0x1002cc3b
mov dword [ebx + 0x148], 1
mov eax, dword [ebx + 0x15c]
cmp eax, dword [ebx + 0x160]
je 0x1002d218
mov eax, dword [ebx + 0x148]
shl eax, 2
mov dword [ebp - 0xc8], eax
lea edi, [eax - 4]
mov dword [ebp - 0x9c], edi
cmp edi, eax
jge 0x1002d218
imul esi, edi, 0x68
lea eax, [ebx + 0x10]
push 0x18
pop ecx
mov dword [ebp - 0xa0], esi
add eax, ecx
mov dword [ebp - 0x98], eax
mov eax, dword [ebx + 0x160]
sub eax, dword [ebx + 0x15c]
push 0x68
cdq
pop ecx
idiv ecx
dec eax
cmp edi, eax
jg 0x1002d218
mov ecx, dword [ebx + 0x15c]
cmp byte [ecx + esi + 0x60], 2
jne 0x1002d1f1
mov eax, dword [ecx + esi + 0x1c]
test eax, eax
jle 0x1002d1f1
dec eax
mov dword [ecx + esi + 0x1c], eax
mov eax, dword [ebx + 0x15c]
cmp dword [eax + esi + 0x1c], 0
jl 0x1002d160
lea eax, [ebp - 0x3f]
mov word [ebp - 0x40], 0x37
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x3f], 0
call fcn.100012e0
mov eax, dword [ebx + 0x15c]
mov ecx, 0x15180
and dword [ebp - 4], 0
push ecx
push ecx
mov edi, dword [eax + esi + 0x1c]
mov eax, edi
cdq
idiv ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [ebp - 0x94], xmm0
fld qword [ebp - 0x94]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
pop ecx
fstp qword [ebp - 0x94]
movsd xmm0, qword [ebp - 0x94]
pop ecx
call fcn.10044db1
mov esi, eax
xor edx, edx
imul ecx, esi, 0x15180
mov eax, edi
push 0x18
mov dword [ebp - 0xac], esi
sub eax, ecx
mov ecx, 0xe10
div ecx
pop ecx
xor edx, edx
div ecx
push edx
call fcn.10024f5c
fstp qword [ebp - 0x94]
movsd xmm0, qword [ebp - 0x94]
pop ecx
call fcn.10044db1
imul esi, esi, 0x18
xor edx, edx
mov dword [ebp - 0x90], 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
push edx
call fcn.10024f5c
fstp qword [ebp - 0xa8]
movsd xmm0, qword [ebp - 0xa8]
pop ecx
call fcn.10044db1
imul ecx, esi, 0x3c
xor edx, edx
mov esi, eax
mov dword [ebp - 0xa4], eax
push 0x3c
add ecx, esi
imul ecx, ecx, 0x3c
sub edi, ecx
pop ecx
mov eax, edi
div ecx
push edx
call fcn.10024f5c
fstp qword [ebp - 0xa8]
movsd xmm0, qword [ebp - 0xa8]
pop ecx
call fcn.10044db1
mov edi, eax
mov ecx, dword [ebp - 0xac]
test ecx, ecx
je 0x1002ce86
cmp ecx, 0xa
jae 0x1002ce0f
mov dl, 0x56
mov byte [ebp - 0x72], 0
mov al, 0x66
mov byte [ebp - 0x74], dl
xor al, dl
xor edx, edx
mov byte [ebp - 0x73], al
lea eax, [ebp - 0x73]
mov byte [ebp - 0x72], dl
jmp 0x1002ce1d
xor edx, edx
mov word [ebp - 0x44], 0x59
mov byte [ebp - 0x43], dl
lea eax, [ebp - 0x43]
push ecx
push eax
mov cl, 0x39
mov dword [ebp - 0x60], 0x1c4a1c39
mov word [ebp - 0x5c], 0x34c
mov eax, edx
mov byte [ebp - 0x5a], dl
xor byte [ebp + eax - 0x5f], cl
inc eax
cmp eax, 5
jae 0x1002ce42
mov cl, byte [ebp - 0x60]
jmp 0x1002ce33
sub esp, 0x18
mov byte [ebp - 0x5a], dl
lea eax, [ebp - 0x5f]
mov ecx, esp
push eax
call fcn.100012e0
lea eax, [ebp - 0xc4]
push eax
call fcn.1001b71b
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.10007f0b
push 0
push 1
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 0
call fcn.10001cd4
mov ecx, dword [ebp - 0x90]
test ecx, ecx
je 0x1002cf2c
cmp ecx, 0xa
jae 0x1002ceb3
mov dl, 0x6c
mov byte [ebp - 0x76], 0
mov al, 0x5c
mov byte [ebp - 0x78], dl
xor al, dl
xor edx, edx
mov byte [ebp - 0x77], al
lea eax, [ebp - 0x77]
mov byte [ebp - 0x76], dl
jmp 0x1002cec1
xor edx, edx
mov word [ebp - 0x48], 0x51
mov byte [ebp - 0x47], dl
lea eax, [ebp - 0x47]
push ecx
push eax
mov cl, 0x76
mov dword [ebp - 0x68], 0x53055376
mov word [ebp - 0x64], 0x4c03
mov eax, edx
mov byte [ebp - 0x62], dl
xor byte [ebp + eax - 0x67], cl
inc eax
cmp eax, 5
jae 0x1002cee6
mov cl, byte [ebp - 0x68]
jmp 0x1002ced7
sub esp, 0x18
mov byte [ebp - 0x62], dl
lea eax, [ebp - 0x67]
mov ecx, esp
push eax
call fcn.100012e0
lea eax, [ebp - 0xc4]
push eax
call fcn.1001b71b
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.10007f0b
push 0
push 1
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 0
call fcn.10001cd4
jmp 0x1002cf65
mov cl, 0x32
mov dword [ebp - 0x34], 0x8020232
mov byte [ebp - 0x30], 0
xor eax, eax
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 3
jae 0x1002cf4a
mov cl, byte [ebp - 0x34]
jmp 0x1002cf3b
lea eax, [ebp - 0x33]
mov byte [ebp - 0x30], 0
push eax
call fcn.10001edd
pop ecx
push eax
lea eax, [ebp - 0x33]
push eax
lea ecx, [ebp - 0x28]
call fcn.10007faa
test esi, esi
je 0x1002cfff
xor edx, edx
cmp esi, 0xa
jae 0x1002cf88
mov cl, 0x65
mov byte [ebp - 0x7a], dl
mov al, 0x55
mov byte [ebp - 0x7c], cl
xor al, cl
mov byte [ebp - 0x7b], al
lea eax, [ebp - 0x7b]
jmp 0x1002cf94
mov word [ebp - 0x4c], 0x45
lea eax, [ebp - 0x4b]
mov byte [ebp - 0x4b], dl
push esi
push eax
mov cl, 0x2e
mov dword [ebp - 0x70], 0xb5d0b2e
mov word [ebp - 0x6c], 0x145b
mov eax, edx
mov byte [ebp - 0x6a], dl
xor byte [ebp + eax - 0x6f], cl
inc eax
cmp eax, 5
jae 0x1002cfb9
mov cl, byte [ebp - 0x70]
jmp 0x1002cfaa
sub esp, 0x18
mov byte [ebp - 0x6a], dl
lea eax, [ebp - 0x6f]
mov ecx, esp
push eax
call fcn.100012e0
lea eax, [ebp - 0xc4]
push eax
call fcn.1001b71b
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.10007f0b
push 0
push 1
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 0
call fcn.10001cd4
jmp 0x1002d038
mov cl, 0x36
mov dword [ebp - 0x3c], 0xc060636
mov byte [ebp - 0x38], 0
xor eax, eax
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 3
jae 0x1002d01d
mov cl, byte [ebp - 0x3c]
jmp 0x1002d00e
lea eax, [ebp - 0x3b]
mov byte [ebp - 0x38], 0
push eax
call fcn.10001edd
pop ecx
push eax
lea eax, [ebp - 0x3b]
push eax
lea ecx, [ebp - 0x28]
call fcn.10007faa
test edi, edi
je 0x1002d0cf
xor edx, edx
cmp edi, 0xa
jae 0x1002d05b
mov cl, 0x7c
mov byte [ebp - 0x7e], dl
mov al, 0x4c
mov byte [ebp - 0x80], cl
xor al, cl
mov byte [ebp - 0x7f], al
lea eax, [ebp - 0x7f]
jmp 0x1002d067
mov word [ebp - 0x50], 0x67
lea eax, [ebp - 0x4f]
mov byte [ebp - 0x4f], dl
push edi
push eax
mov cl, 0x63
mov dword [ebp - 0x58], 0x46104663
mov word [ebp - 0x54], 0x16
mov eax, edx
xor byte [ebp + eax - 0x57], cl
inc eax
cmp eax, 4
jae 0x1002d089
mov cl, byte [ebp - 0x58]
jmp 0x1002d07a
sub esp, 0x18
mov byte [ebp - 0x53], dl
lea eax, [ebp - 0x57]
mov ecx, esp
push eax
call fcn.100012e0
lea eax, [ebp - 0xc4]
push eax
call fcn.1001b71b
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 4
call fcn.10007f0b
push 0
push 1
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 0
call fcn.10001cd4
jmp 0x1002d104
mov cl, 8
mov dword [ebp - 0x2c], 0x383808
xor eax, eax
xor byte [ebp + eax - 0x2b], cl
inc eax
cmp eax, 2
jae 0x1002d0e9
mov cl, byte [ebp - 0x2c]
jmp 0x1002d0da
lea eax, [ebp - 0x2b]
mov byte [ebp - 0x29], 0
push eax
call fcn.10001edd
pop ecx
push eax
lea eax, [ebp - 0x2b]
push eax
lea ecx, [ebp - 0x28]
call fcn.10007faa
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0xc4]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.100012e0
lea eax, [ebp - 0xc4]
mov byte [ebp - 4], 5
push eax
mov eax, dword [ebp - 0x98]
push dword [eax]
call fcn.1000f1a6
pop ecx
pop ecx
push 0
push 1
lea ecx, [ebp - 0xc4]
call fcn.10001cd4
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
push 0
push 1
call fcn.10001cd4
mov esi, dword [ebp - 0xa0]
mov edi, dword [ebp - 0x9c]
mov eax, dword [ebx + 0x15c]
cmp dword [eax + esi + 0x1c], 0
jne 0x1002d1f1
mov cl, 0x66
mov dword [ebp - 0x8c], 0xf073166
mov dword [ebp - 0x88], 0x1080f12
xor eax, eax
mov dword [ebp - 0x84], 0x484848
xor byte [ebp + eax - 0x8b], cl
inc eax
cmp eax, 0xa
jae 0x1002d1a8
mov cl, byte [ebp - 0x8c]
jmp 0x1002d193
lea eax, [ebp - 0x8b]
mov byte [ebp - 0x81], 0
push eax
lea ecx, [ebp - 0xc4]
call fcn.100012e0
lea eax, [ebp - 0xc4]
mov dword [ebp - 4], 6
push eax
mov eax, dword [ebp - 0x98]
push dword [eax]
call fcn.1000f1a6
or dword [ebp - 4], 0xffffffff
pop ecx
pop ecx
push 0
push 1
lea ecx, [ebp - 0xc4]
call fcn.10001cd4
push 0x68
pop eax
inc edi
add esi, eax
mov eax, dword [ebp - 0x98]
push 0x18
mov dword [ebp - 0x9c], edi
mov dword [ebp - 0xa0], esi
pop ecx
cmp edi, dword [ebp - 0xc8]
jl 0x1002cc7c
call fcn.10044a84
ret