Function at 0x1002b020
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100d819c
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
mov eax, dword [0x1012507c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x78], ebx
mov eax, dword [ebx + 0x28]
test eax, eax
js 0x1002b703
lea eax, [ebp - 0x53]
mov word [ebp - 0x54], 0x3a
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0x53], 0
call fcn.10007970
mov dword [ebp - 4], 0
mov eax, 0xc22e4507
mov edi, dword [ebx + 0x28]
sub esp, 8
imul edi
add edx, edi
sar edx, 0x10
mov eax, edx
shr eax, 0x1f
add eax, edx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [ebp - 0x40], xmm0
fld qword [ebp - 0x40]
fstp qword [esp]
call fcn.100d5cc0
add esp, 8
fstp qword [ebp - 0x40]
movsd xmm0, qword [ebp - 0x40]
call fcn.10054211
mov esi, eax
mov edx, edi
imul ecx, esi, 0x15180
mov eax, 0x91a2b3c5
sub esp, 8
mov dword [ebp - 0x34], esi
sub edx, ecx
mov ecx, 0x18
mul edx
shr edx, 0xb
mov eax, edx
xor edx, edx
div ecx
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
addsd xmm0, qword [edx*8 + 0x10117590]
movsd qword [ebp - 0x40], xmm0
fld qword [ebp - 0x40]
fstp qword [esp]
call fcn.100d5cc0
add esp, 8
fstp qword [ebp - 0x40]
movsd xmm0, qword [ebp - 0x40]
call fcn.10054211
mov ebx, eax
lea ecx, [esi + esi*2]
mov edx, edi
mov dword [ebp - 0x74], ebx
mov eax, 0x88888889
sub esp, 8
lea esi, [ebx + ecx*8]
imul ecx, esi, 0xe10
sub edx, ecx
mov ecx, 0x3c
mul edx
shr edx, 5
mov eax, edx
xor edx, edx
div ecx
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
addsd xmm0, qword [edx*8 + 0x10117590]
movsd qword [ebp - 0x40], xmm0
fld qword [ebp - 0x40]
fstp qword [esp]
call fcn.100d5cc0
add esp, 8
fstp qword [ebp - 0x40]
movsd xmm0, qword [ebp - 0x40]
call fcn.10054211
mov dword [ebp - 0x50], eax
mov ecx, esi
shl ecx, 4
sub esp, 8
sub ecx, esi
lea ecx, [eax + ecx*4]
mov edx, ecx
shl edx, 4
sub edx, ecx
mov ecx, 0x3c
shl edx, 2
sub edi, edx
xor edx, edx
mov eax, edi
div ecx
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
addsd xmm0, qword [edx*8 + 0x10117590]
movsd qword [ebp - 0x40], xmm0
fld qword [ebp - 0x40]
fstp qword [esp]
call fcn.100d5cc0
add esp, 8
fstp qword [ebp - 0x40]
movsd xmm0, qword [ebp - 0x40]
call fcn.10054211
mov edx, dword [ebp - 0x34]
mov edi, eax
test edx, edx
je 0x1002b2a7
cmp edx, 0xa
jae 0x1002b1fb
mov al, 0x24
mov byte [ebp - 0x32], 0
mov cl, 0x14
mov byte [ebp - 0x34], al
xor cl, al
mov byte [ebp - 0x32], 0
mov byte [ebp - 0x33], cl
lea eax, [ebp - 0x33]
jmp 0x1002b208
mov word [ebp - 0x30], 0x63
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], 0
push edx
push eax
mov dword [ebp - 0x40], 0x6c3a6c49
xor esi, esi
mov word [ebp - 0x3c], 0x733c
mov byte [ebp - 0x3a], 0
nop dword [eax]
cmp esi, 6
jb 0x1002b23c
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10043280
add esp, 0xc
mov bl, byte [ebp + esi - 0x3f]
xor bl, byte [ebp - 0x40]
cmp esi, 6
jb 0x1002b25f
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10043280
add esp, 0xc
mov byte [ebp + esi - 0x3f], bl
inc esi
cmp esi, 5
jb 0x1002b220
sub esp, 0x1c
mov byte [ebp - 0x3a], 0
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10007970
lea eax, [ebp - 0x70]
push eax
call fcn.10006be0
add esp, 0x28
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 1
call fcn.1000cb00
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0
call fcn.10006d10
mov ebx, dword [ebp - 0x74]
test ebx, ebx
je 0x1002b376
cmp ebx, 0xa
jae 0x1002b2cd
mov cl, 0x28
mov byte [ebp - 0x32], 0
mov al, 0x18
mov byte [ebp - 0x34], cl
xor al, cl
mov byte [ebp - 0x32], 0
mov byte [ebp - 0x33], al
lea eax, [ebp - 0x33]
jmp 0x1002b2da
mov word [ebp - 0x30], 0xd
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], 0
push ebx
push eax
mov dword [ebp - 0x40], 0x7e287e5b
xor esi, esi
mov word [ebp - 0x3c], 0x612e
mov byte [ebp - 0x3a], 0
nop
cmp esi, 6
jb 0x1002b30c
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10043280
add esp, 0xc
mov bl, byte [ebp + esi - 0x3f]
xor bl, byte [ebp - 0x40]
cmp esi, 6
jb 0x1002b32f
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10043280
add esp, 0xc
mov byte [ebp + esi - 0x3f], bl
inc esi
cmp esi, 5
jb 0x1002b2f0
sub esp, 0x1c
mov byte [ebp - 0x3a], 0
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10007970
lea eax, [ebp - 0x70]
push eax
call fcn.10006be0
add esp, 0x28
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.1000cb00
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0
call fcn.10006d10
jmp 0x1002b3dc
mov dword [ebp - 0x48], 0x18121222
xor esi, esi
mov byte [ebp - 0x44], 0
cmp esi, 4
jb 0x1002b39f
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10043280
add esp, 0xc
mov bl, byte [ebp + esi - 0x47]
xor bl, byte [ebp - 0x48]
cmp esi, 4
jb 0x1002b3c2
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10043280
add esp, 0xc
mov byte [ebp + esi - 0x47], bl
inc esi
cmp esi, 3
jb 0x1002b383
lea eax, [ebp - 0x47]
mov byte [ebp - 0x44], 0
push eax
lea ecx, [ebp - 0x2c]
call fcn.1000afa0
mov ecx, dword [ebp - 0x50]
test ecx, ecx
je 0x1002b4ad
cmp ecx, 0xa
jae 0x1002b405
mov dl, 0x7e
mov byte [ebp - 0x32], 0
mov al, 0x4e
mov byte [ebp - 0x34], dl
xor al, dl
mov byte [ebp - 0x32], 0
mov byte [ebp - 0x33], al
lea eax, [ebp - 0x33]
jmp 0x1002b412
mov word [ebp - 0x30], 0x6d
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], 0
push ecx
push eax
mov dword [ebp - 0x40], 0x63356346
xor esi, esi
mov word [ebp - 0x3c], 0x7c33
mov byte [ebp - 0x3a], 0
cmp esi, 6
jb 0x1002b443
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10043280
add esp, 0xc
mov bl, byte [ebp + esi - 0x3f]
xor bl, byte [ebp - 0x40]
cmp esi, 6
jb 0x1002b466
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10043280
add esp, 0xc
mov byte [ebp + esi - 0x3f], bl
inc esi
cmp esi, 5
jb 0x1002b427
sub esp, 0x1c
mov byte [ebp - 0x3a], 0
lea eax, [ebp - 0x3f]
mov ecx, esp
push eax
call fcn.10007970
lea eax, [ebp - 0x70]
push eax
call fcn.10006be0
add esp, 0x28
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 3
call fcn.1000cb00
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0
call fcn.10006d10
jmp 0x1002b519
mov dword [ebp - 0x48], 0xc060636
xor esi, esi
mov byte [ebp - 0x44], 0
nop word [eax + eax]
cmp esi, 4
jb 0x1002b4dc
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10043280
add esp, 0xc
mov bl, byte [ebp + esi - 0x47]
xor bl, byte [ebp - 0x48]
cmp esi, 4
jb 0x1002b4ff
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10043280
add esp, 0xc
mov byte [ebp + esi - 0x47], bl
inc esi
cmp esi, 3
jb 0x1002b4c0
lea eax, [ebp - 0x47]
mov byte [ebp - 0x44], 0
push eax
lea ecx, [ebp - 0x2c]
call fcn.1000afa0
test edi, edi
je 0x1002b5e6
cmp edi, 0xa
jae 0x1002b53f
mov cl, 0x6c
mov byte [ebp - 0x32], 0
mov al, 0x5c
mov byte [ebp - 0x34], cl
xor al, cl
mov byte [ebp - 0x32], 0
mov byte [ebp - 0x33], al
lea eax, [ebp - 0x33]
jmp 0x1002b54c
mov word [ebp - 0x30], 0x36
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], 0
push edi
push eax
mov dword [ebp - 0x50], 0x5b0d5b7e
xor esi, esi
mov word [ebp - 0x4c], 0xb
nop dword [eax]
cmp esi, 5
jb 0x1002b57c
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10043280
add esp, 0xc
mov bl, byte [ebp + esi - 0x4f]
xor bl, byte [ebp - 0x50]
cmp esi, 5
jb 0x1002b59f
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10043280
add esp, 0xc
mov byte [ebp + esi - 0x4f], bl
inc esi
cmp esi, 4
jb 0x1002b560
sub esp, 0x1c
mov byte [ebp - 0x4b], 0
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10007970
lea eax, [ebp - 0x70]
push eax
call fcn.10006be0
add esp, 0x28
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 4
call fcn.1000cb00
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0
call fcn.10006d10
jmp 0x1002b649
mov dword [ebp - 0x34], 0x797949
xor esi, esi
nop
cmp esi, 3
jb 0x1002b60c
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10043280
add esp, 0xc
mov bl, byte [ebp + esi - 0x33]
xor bl, byte [ebp - 0x34]
cmp esi, 3
jb 0x1002b62f
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10043280
add esp, 0xc
mov byte [ebp + esi - 0x33], bl
inc esi
cmp esi, 2
jb 0x1002b5f0
lea eax, [ebp - 0x33]
mov byte [ebp - 0x31], 0
push eax
lea ecx, [ebp - 0x2c]
call fcn.1000afa0
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x70]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.10007970
mov eax, dword [ebp - 0x78]
mov byte [ebp - 4], 5
mov esi, dword [eax + 0x18]
test esi, esi
je 0x1002b684
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1002b684
lea eax, [ebp - 0x70]
mov ecx, esi
push eax
call dword [0x10113428]
mov eax, dword [ebp - 0x58]
cmp eax, 0x10
jb 0x1002b69b
inc eax
push 1
push eax
push dword [ebp - 0x6c]
call fcn.10007570
add esp, 0xc
mov dword [ebp - 0x58], 0xf
mov dword [ebp - 0x5c], 0
mov byte [ebp - 0x6c], 0
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 6
call fcn.10007050
lea ecx, [ebp - 0x70]
call fcn.10006ef0
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x1002b6d8
inc eax
push 1
push eax
push dword [ebp - 0x28]
call fcn.10007570
add esp, 0xc
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], 7
call fcn.10007050
lea ecx, [ebp - 0x2c]
call fcn.10006ef0
jmp 0x1002b72c
jg 0x1002b72c
mov esi, dword [ebx]
mov byte [ebx + 0x2c], 0
mov dword [ebx + 0x28], 0
test esi, esi
je 0x1002b72c
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1002b72c
push eax
mov ecx, esi
call dword [0x101133fc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10052b20
mov esp, ebp
pop ebp
ret