Function at 0x102808c0
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x4c
mov esi, ecx
mov eax, dword [0x1038000c]
xor eax, ebp
mov dword [ebp - 0x10], eax
movzx ecx, byte [ecx + 0x7d]
movzx edx, byte [esi + 0x7c]
lea eax, [edx + ecx*4]
lea ecx, [edx + ecx*4]
add ecx, 0xfffffffb
cmp ecx, 0xa
mov edx, 0x2f
mov ecx, 0x36
cmovb ecx, edx
add cl, al
add cl, 0xfc
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 1
mov byte [ebp - 0x40], cl
mov byte [ebp - 0x3f], 0
mov eax, dword [esi]
cmp eax, 0x5c
jle 0x10280a05
cmp eax, 0x5e
je 0x10280c31
cmp eax, 0x5d
jne 0x10280a23
mov dword [ebp - 0x30], 3
mov word [ebp - 0x3f], 0x737b
mov byte [ebp - 0x3d], 0
mov edi, dword [esi + 0x90]
mov al, byte [edi + 0xf]
and al, 0xf
cmp al, 3
mov dword [ebp - 0x48], esi
je 0x10280ed8
lea esi, [ebp - 0x28]
mov ecx, edi
push esi
call fcn.10272d10
mov eax, dword [esi]
test eax, eax
mov esi, 0x10369b5f
cmovne esi, eax
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x2c]
mov ecx, ebx
sub ecx, edi
cmp ecx, eax
jae 0x10280d0d
mov ecx, edi
xor ecx, 0x7fffffff
cmp ecx, eax
jb 0x102810be
mov dword [ebp - 0x54], eax
add eax, edi
mov ecx, eax
mov dword [ebp - 0x44], eax
or eax, 0xf
mov edx, 0x7fffffff
mov dword [ebp - 0x4c], esi
js 0x102809d2
mov ecx, ebx
shr ecx, 1
mov edx, ecx
xor edx, 0x7fffffff
cmp edx, ebx
mov edx, 0x7fffffff
jb 0x102809d2
add ecx, ebx
cmp eax, ecx
cmova ecx, eax
mov edx, ecx
mov dword [ebp - 0x50], edx
lea esi, [edx + 1]
call fcn.1025c190
mov ecx, eax
push esi
call fcn.1021aad0
mov ecx, eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x2c], eax
cmp ebx, 0x10
jb 0x10280e89
push edi
push dword [ebp - 0x40]
jmp 0x10280e8e
cmp eax, 0x19
jg 0x10280c21
add al, 0x41
mov cl, 0x30
mov byte [ebp - 0x3f], cl
mov dword [ebp - 0x30], 3
mov byte [ebp - 0x3e], al
mov byte [ebp - 0x3d], 0
mov eax, dword [esi + 0x84]
mov dword [ebp - 0x44], eax
test eax, eax
je 0x10280be1
mov eax, dword [esi + 0x80]
mov dword [ebp - 0x4c], eax
shl dword [ebp - 0x44], 2
xor ecx, ecx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x48], ecx
push dword [eax + ecx]
push 0x1033f1f9
push 0x14
lea eax, [ebp - 0x28]
push eax
call fcn.10001000
add esp, 0x10
mov edi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x2c]
cmp edi, ebx
jae 0x10280a82
lea eax, [edi + 1]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x40]
cmp ebx, 0x10
jb 0x10280a7a
mov eax, dword [ebp - 0x40]
mov word [eax + edi], pe_nt_image_headers32
jmp 0x10280af8
cmp edi, 0x7fffffff
je 0x102810be
lea eax, [edi + 1]
mov dword [ebp - 0x54], eax
or eax, 0xf
mov esi, 0x7fffffff
js 0x10280ab7
mov ecx, ebx
shr ecx, 1
mov edx, ecx
xor edx, 0x7fffffff
cmp edx, ebx
jb 0x10280ab7
add ecx, ebx
cmp eax, ecx
cmova ecx, eax
mov esi, ecx
mov dword [ebp - 0x50], esi
inc esi
call fcn.1025c190
mov ecx, eax
push esi
call fcn.1021aad0
mov esi, eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x2c], eax
cmp ebx, 0x10
jb 0x10280ae1
push edi
push dword [ebp - 0x40]
jmp 0x10280ae6
push edi
lea eax, [ebp - 0x40]
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov word [esi + edi], pe_nt_image_headers32
mov dword [ebp - 0x40], esi
lea eax, [ebp - 0x28]
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ebx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov ecx, edx
sub ecx, ebx
cmp ecx, eax
jae 0x10280b81
mov ecx, ebx
xor ecx, 0x7fffffff
cmp ecx, eax
jb 0x102810be
mov dword [ebp - 0x54], eax
mov ecx, eax
add ecx, ebx
mov eax, ecx
or eax, 0xf
mov edi, 0x7fffffff
mov dword [ebp - 0x50], ecx
js 0x10280b55
mov ecx, edx
shr ecx, 1
mov esi, edx
mov edx, ecx
xor edx, 0x7fffffff
cmp edx, esi
mov edx, esi
jb 0x10280b55
add ecx, edx
cmp eax, ecx
cmova ecx, eax
mov edi, ecx
mov dword [ebp - 0x58], edx
lea esi, [edi + 1]
call fcn.1025c190
mov ecx, eax
push esi
call fcn.1021aad0
mov ecx, edi
mov edi, eax
mov esi, dword [ebp - 0x50]
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x58], 0x10
jb 0x10280ba9
push ebx
push dword [ebp - 0x40]
jmp 0x10280bae
mov edi, eax
add edi, ebx
mov dword [ebp - 0x30], edi
lea esi, [ebp - 0x40]
cmp edx, 0x10
jb 0x10280b93
mov esi, dword [ebp - 0x40]
add ebx, esi
push eax
lea eax, [ebp - 0x28]
push eax
push ebx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + edi], 0
jmp 0x10280bd2
push ebx
lea eax, [ebp - 0x40]
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, edi
add eax, ebx
push dword [ebp - 0x54]
lea ecx, [ebp - 0x28]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [edi + esi], 0
mov dword [ebp - 0x40], edi
mov ecx, dword [ebp - 0x48]
add ecx, 4
cmp dword [ebp - 0x44], ecx
jne 0x10280a43
mov edi, dword [ebp - 0x30]
cmp dword [ebp - 0x2c], 0x10
jb 0x10280bef
mov ebx, dword [ebp - 0x40]
jmp 0x10280bf2
lea ebx, [ebp - 0x40]
inc edi
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov esi, eax
push edi
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10212780
mov eax, esi
add esp, 0x4c
pop esi
pop edi
pop ebx
pop ebp
ret
cmp eax, 0x33
ja 0x10280ce8
add al, 0x47
jmp 0x10280a10
mov dword [ebp - 0x30], 3
mov word [ebp - 0x3f], 0x697b
mov byte [ebp - 0x3d], 0
mov dword [ebp - 0x48], esi
mov ecx, dword [esi + 0x8c]
lea esi, [ebp - 0x28]
push esi
call fcn.10272d10
mov eax, dword [esi]
test eax, eax
mov edi, 0x10369b5f
cmovne edi, eax
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ebx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x2c]
mov ecx, esi
sub ecx, ebx
cmp ecx, eax
jae 0x10280cf1
mov ecx, ebx
xor ecx, 0x7fffffff
cmp ecx, eax
jb 0x102810be
mov dword [ebp - 0x54], eax
add eax, ebx
mov ecx, eax
mov dword [ebp - 0x44], eax
or eax, 0xf
mov edx, 0x7fffffff
mov dword [ebp - 0x4c], edi
js 0x10280cbc
mov ecx, esi
shr ecx, 1
mov edx, ecx
xor edx, 0x7fffffff
cmp edx, esi
mov edx, 0x7fffffff
jb 0x10280cbc
add ecx, esi
cmp eax, ecx
cmova ecx, eax
mov edx, ecx
mov dword [ebp - 0x50], edx
lea edi, [edx + 1]
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov edi, eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x2c], eax
cmp esi, 0x10
jb 0x10280d27
push ebx
push dword [ebp - 0x40]
jmp 0x10280d2c
cmp eax, 0x4d
ja 0x10280d04
add al, 0xd
jmp 0x10280d06
mov ecx, edi
mov edi, eax
add edi, ebx
mov dword [ebp - 0x30], edi
cmp esi, 0x10
jb 0x10280d57
mov esi, dword [ebp - 0x40]
jmp 0x10280d5a
add al, 0x13
mov cl, 0x31
jmp 0x10280a12
mov ecx, esi
mov esi, eax
add esi, edi
mov dword [ebp - 0x30], esi
cmp ebx, 0x10
jb 0x10280ebb
mov ebx, dword [ebp - 0x40]
jmp 0x10280ebe
lea eax, [ebp - 0x40]
push ebx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov esi, dword [ebp - 0x48]
mov eax, edi
add eax, ebx
push dword [ebp - 0x54]
push dword [ebp - 0x4c]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x44]
mov byte [edi + eax], 0
mov dword [ebp - 0x40], edi
jmp 0x10280d6e
lea esi, [ebp - 0x40]
add ebx, esi
push eax
push ecx
push ebx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + edi], 0
mov esi, dword [ebp - 0x48]
mov esi, dword [esi + 0x8c]
lea ecx, [esi + 0x1c]
mov edx, dword [esi + 0x2c]
test edx, edx
je 0x10281061
cmp dword [esi + 0x30], 0x10
jb 0x10280d8b
mov ecx, dword [esi + 0x1c]
mov ebx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x2c]
mov eax, esi
sub eax, ebx
cmp eax, edx
jae 0x10280e03
mov eax, ebx
xor eax, 0x7fffffff
cmp eax, edx
jb 0x102810be
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x54], edx
lea eax, [ebx + edx]
mov ecx, eax
mov dword [ebp - 0x44], eax
or eax, 0xf
mov edi, 0x7fffffff
js 0x10280dd9
mov ecx, esi
shr ecx, 1
mov edx, ecx
xor edx, 0x7fffffff
cmp edx, esi
jb 0x10280dd9
add ecx, esi
cmp eax, ecx
cmova ecx, eax
mov edi, ecx
mov dword [ebp - 0x50], edi
inc edi
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov edi, eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x2c], eax
cmp esi, 0x10
jb 0x10280e13
push ebx
push dword [ebp - 0x40]
jmp 0x10280e18
lea edi, [ebx + edx]
mov dword [ebp - 0x30], edi
cmp esi, 0x10
jb 0x10280e40
mov esi, dword [ebp - 0x40]
jmp 0x10280e43
lea eax, [ebp - 0x40]
push ebx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, edi
add eax, ebx
push dword [ebp - 0x54]
push dword [ebp - 0x4c]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x44]
mov byte [edi + eax], 0
mov dword [ebp - 0x40], edi
jmp 0x10280e54
lea esi, [ebp - 0x40]
add ebx, esi
push edx
push ecx
push ebx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + edi], 0
mov ebx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x2c]
cmp ebx, esi
jb 0x10280fc2
cmp ebx, 0x7fffffff
je 0x102810be
lea ecx, [ebx + 1]
mov eax, ecx
or eax, 0xf
mov edi, 0x7fffffff
mov dword [ebp - 0x44], ecx
jns 0x10280fee
jmp 0x10281007
lea eax, [ebp - 0x40]
push edi
push eax
mov ebx, ecx
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov esi, dword [ebp - 0x48]
mov eax, ebx
add eax, edi
push dword [ebp - 0x54]
push dword [ebp - 0x4c]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x44]
mov byte [ebx + eax], 0
mov dword [ebp - 0x40], ebx
jmp 0x10280ed2
lea ebx, [ebp - 0x40]
add edi, ebx
push eax
push ecx
push edi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [ebx + esi], 0
mov esi, dword [ebp - 0x48]
mov edi, dword [esi + 0x90]
lea ecx, [edi + 0x1c]
mov edx, dword [edi + 0x2c]
test edx, edx
je 0x1028108f
cmp dword [edi + 0x30], 0x10
jb 0x10280eef
mov ecx, dword [edi + 0x1c]
mov ebx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x2c]
mov eax, esi
sub eax, ebx
cmp eax, edx
jae 0x10280f67
mov eax, ebx
xor eax, 0x7fffffff
cmp eax, edx
jb 0x102810be
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x54], edx
lea eax, [ebx + edx]
mov ecx, eax
mov dword [ebp - 0x44], eax
or eax, 0xf
mov edi, 0x7fffffff
js 0x10280f3d
mov ecx, esi
shr ecx, 1
mov edx, ecx
xor edx, 0x7fffffff
cmp edx, esi
jb 0x10280f3d
add ecx, esi
cmp eax, ecx
cmova ecx, eax
mov edi, ecx
mov dword [ebp - 0x50], edi
inc edi
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov edi, eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x2c], eax
cmp esi, 0x10
jb 0x10280f77
push ebx
push dword [ebp - 0x40]
jmp 0x10280f7c
lea edi, [ebx + edx]
mov dword [ebp - 0x30], edi
cmp esi, 0x10
jb 0x10280fa4
mov esi, dword [ebp - 0x40]
jmp 0x10280fa7
lea eax, [ebp - 0x40]
push ebx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, edi
add eax, ebx
push dword [ebp - 0x54]
push dword [ebp - 0x4c]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x44]
mov byte [edi + eax], 0
mov dword [ebp - 0x40], edi
jmp 0x10280fb8
lea esi, [ebp - 0x40]
add ebx, esi
push edx
push ecx
push ebx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + edi], 0
mov ebx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x2c]
cmp ebx, esi
jae 0x10280fd2
lea eax, [ebx + 1]
mov dword [ebp - 0x30], eax
cmp esi, 0x10
jb 0x10281031
mov eax, dword [ebp - 0x40]
jmp 0x10281034
cmp ebx, 0x7fffffff
je 0x102810be
lea eax, [ebx + 1]
mov dword [ebp - 0x44], eax
or eax, 0xf
mov edi, 0x7fffffff
js 0x10281007
mov ecx, esi
shr ecx, 1
mov edx, ecx
xor edx, 0x7fffffff
cmp edx, esi
jb 0x10281007
add ecx, esi
cmp eax, ecx
cmova ecx, eax
mov edi, ecx
mov dword [ebp - 0x4c], edi
inc edi
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov edi, eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x2c], eax
cmp esi, 0x10
jb 0x10281042
push ebx
push dword [ebp - 0x40]
jmp 0x10281047
lea eax, [ebp - 0x40]
mov esi, dword [ebp - 0x48]
mov word [eax + ebx], 0x7d
jmp 0x10280a23
lea eax, [ebp - 0x40]
push ebx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov esi, dword [ebp - 0x48]
mov word [edi + ebx], 0x7d
mov dword [ebp - 0x40], edi
jmp 0x10280a23
mov ebx, ecx
lea ecx, [esi + 0x10]
lea edi, [ebp - 0x28]
mov edx, edi
call fcn.10281b80
mov ecx, ebx
cmp ebx, edi
je 0x10281087
movsd xmm0, qword [ebp - 0x18]
movsd qword [ecx + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x28]
movups xmmword [ecx], xmm0
mov edx, dword [esi + 0x2c]
jmp 0x10280d82
mov ebx, ecx
lea ecx, [edi + 0x10]
lea edx, [ebp - 0x28]
call fcn.10281b80
mov ecx, ebx
lea eax, [ebp - 0x28]
cmp ebx, eax
je 0x102810b6
movsd xmm0, qword [ebp - 0x18]
movsd qword [ecx + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x28]
movups xmmword [ecx], xmm0
mov edx, dword [edi + 0x2c]
jmp 0x10280ee6
call fcn.102136b0
int3