Function at 0x100200ce
Capabilities:
Authenticate hmac

Disassembly:
push 0x5c
mov eax, 0x10036c3c
call fcn.10035531
mov ebx, ecx
xor eax, eax
cmp dword [ebx + 0xf0], eax
jl 0x10020505
mov word [ebp - 0x50], 0x79
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x4f], al
lea eax, [ebp - 0x4f]
push eax
call fcn.10002845
and dword [ebp - 4], 0
mov ecx, 0x15180
mov edi, dword [ebx + 0xf0]
mov eax, edi
cdq
idiv ecx
push ecx
push ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [ebp - 0x40], xmm0
fld qword [ebp - 0x40]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
pop ecx
fstp qword [ebp - 0x40]
movsd xmm0, qword [ebp - 0x40]
pop ecx
call fcn.10035ac1
mov esi, eax
xor edx, edx
imul ecx, esi, 0x15180
mov eax, edi
push 0x18
mov dword [ebp - 0x44], esi
sub eax, ecx
mov ecx, 0xe10
div ecx
pop ecx
xor edx, edx
div ecx
mov ecx, edx
call fcn.1001451b
call fcn.10035ac1
imul esi, esi, 0x18
xor edx, edx
mov dword [ebp - 0x4c], 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.1001451b
call fcn.10035ac1
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.1001451b
call fcn.10035ac1
mov ecx, dword [ebp - 0x44]
mov edi, eax
test ecx, ecx
je 0x10020252
cmp ecx, 0xa
jae 0x100201dc
mov dl, 0x35
mov byte [ebp - 0x2a], 0
mov al, 5
mov byte [ebp - 0x2c], dl
xor al, dl
mov byte [ebp - 0x2a], 0
mov byte [ebp - 0x2b], al
lea eax, [ebp - 0x2b]
jmp 0x100201e9
mov word [ebp - 0x44], 0x75
lea eax, [ebp - 0x43]
mov byte [ebp - 0x43], 0
push ecx
push eax
mov cl, 0x58
mov dword [ebp - 0x40], 0x7d2b7d58
mov word [ebp - 0x3c], 0x622d
xor edx, edx
mov byte [ebp - 0x3a], 0
xor cl, byte [ebp + edx - 0x3f]
mov byte [ebp + edx - 0x3f], cl
inc edx
cmp edx, 5
jae 0x10020213
mov cl, byte [ebp - 0x40]
jmp 0x10020200
sub esp, 0x18
mov byte [ebp - 0x3a], 0
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10002845
lea eax, [ebp - 0x68]
push eax
call fcn.10004ac0
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.1000560f
push 0
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.100026f1
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x100202f3
cmp ecx, 0xa
jae 0x1002027b
mov dl, 0x70
mov byte [ebp - 0x2a], 0
mov al, 0x40
mov byte [ebp - 0x2c], dl
xor al, dl
mov byte [ebp - 0x2a], 0
mov byte [ebp - 0x2b], al
lea eax, [ebp - 0x2b]
jmp 0x10020288
mov word [ebp - 0x44], 0x36
lea eax, [ebp - 0x43]
mov byte [ebp - 0x43], 0
push ecx
push eax
mov cl, 8
mov dword [ebp - 0x40], 0x2d7b2d08
mov word [ebp - 0x3c], 0x327d
xor edx, edx
mov byte [ebp - 0x3a], 0
xor cl, byte [ebp + edx - 0x3f]
mov byte [ebp + edx - 0x3f], cl
inc edx
cmp edx, 5
jae 0x100202b2
mov cl, byte [ebp - 0x40]
jmp 0x1002029f
sub esp, 0x18
mov byte [ebp - 0x3a], 0
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10002845
lea eax, [ebp - 0x68]
push eax
call fcn.10004ac0
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.1000560f
push 0
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.100026f1
jmp 0x1002032e
mov cl, 0x4c
mov dword [ebp - 0x34], 0x767c7c4c
mov byte [ebp - 0x30], 0
xor edx, edx
xor cl, byte [ebp + edx - 0x33]
mov byte [ebp + edx - 0x33], cl
inc edx
cmp edx, 3
jae 0x10020315
mov cl, byte [ebp - 0x34]
jmp 0x10020302
lea ecx, [ebp - 0x33]
mov byte [ebp - 0x30], 0
call fcn.1000282d
push eax
lea eax, [ebp - 0x33]
push eax
lea ecx, [ebp - 0x28]
call fcn.10007f48
xor edx, edx
test esi, esi
je 0x100203c5
cmp esi, 0xa
jae 0x10020351
mov cl, 0x48
mov byte [ebp - 0x2a], dl
mov al, 0x78
mov byte [ebp - 0x2c], cl
xor al, cl
mov byte [ebp - 0x2b], al
lea eax, [ebp - 0x2b]
jmp 0x1002035d
mov word [ebp - 0x44], 0x79
lea eax, [ebp - 0x43]
mov byte [ebp - 0x43], dl
push esi
push eax
mov cl, 0x3f
mov dword [ebp - 0x40], 0x1a4c1a3f
mov word [ebp - 0x3c], 0x54a
mov byte [ebp - 0x3a], dl
xor cl, byte [ebp + edx - 0x3f]
mov byte [ebp + edx - 0x3f], cl
inc edx
cmp edx, 5
jae 0x10020384
mov cl, byte [ebp - 0x40]
jmp 0x10020371
sub esp, 0x18
mov byte [ebp - 0x3a], 0
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10002845
lea eax, [ebp - 0x68]
push eax
call fcn.10004ac0
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.1000560f
push 0
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.100026f1
jmp 0x100203fe
mov cl, 0x20
mov dword [ebp - 0x34], 0x1a101020
mov byte [ebp - 0x30], 0
xor cl, byte [ebp + edx - 0x33]
mov byte [ebp + edx - 0x33], cl
inc edx
cmp edx, 3
jae 0x100203e5
mov cl, byte [ebp - 0x34]
jmp 0x100203d2
lea ecx, [ebp - 0x33]
mov byte [ebp - 0x30], 0
call fcn.1000282d
push eax
lea eax, [ebp - 0x33]
push eax
lea ecx, [ebp - 0x28]
call fcn.10007f48
xor edx, edx
test edi, edi
je 0x10020493
cmp edi, 0xa
jae 0x10020422
push 0x3f
mov cl, 0xf
mov byte [ebp - 0x2a], dl
pop eax
xor al, cl
mov byte [ebp - 0x2c], cl
mov byte [ebp - 0x2b], al
lea eax, [ebp - 0x2b]
jmp 0x1002042e
push 0x3c
pop eax
mov byte [ebp - 0x44], al
lea eax, [ebp - 0x43]
mov byte [ebp - 0x43], dl
push edi
push eax
mov cl, 1
mov dword [ebp - 0x4c], 0x24722401
mov word [ebp - 0x48], 0x74
xor cl, byte [ebp + edx - 0x4b]
mov byte [ebp + edx - 0x4b], cl
inc edx
cmp edx, 4
jae 0x10020452
mov cl, byte [ebp - 0x4c]
jmp 0x1002043f
sub esp, 0x18
mov byte [ebp - 0x47], 0
lea eax, [ebp - 0x4b]
mov ecx, esp
push eax
call fcn.10002845
lea eax, [ebp - 0x68]
push eax
call fcn.10004ac0
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 4
call fcn.1000560f
push 0
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.100026f1
jmp 0x100204c8
mov cl, 0x1b
mov dword [ebp - 0x2c], 0x2b2b1b
xor cl, byte [ebp + edx - 0x2b]
mov byte [ebp + edx - 0x2b], cl
inc edx
cmp edx, 2
jae 0x100204af
mov cl, byte [ebp - 0x2c]
jmp 0x1002049c
lea ecx, [ebp - 0x2b]
mov byte [ebp - 0x29], 0
call fcn.1000282d
push eax
lea eax, [ebp - 0x2b]
push eax
lea ecx, [ebp - 0x28]
call fcn.10007f48
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x68]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.10002845
mov byte [ebp - 4], 5
lea edx, [ebp - 0x68]
mov ecx, dword [ebx + 0x48]
call fcn.10009ed2
push 0
push 1
lea ecx, [ebp - 0x68]
call fcn.100026f1
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.100026f1
jmp 0x1002051a
mov ecx, dword [ebx]
xor dl, dl
mov byte [ebx + 0xfa], al
mov dword [ebx + 0xf0], eax
call fcn.10009671
call fcn.100354db
ret