Function at 0x10069fd0
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c4
mov eax, dword [0x100dc008]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, edx
mov dword [ebp - 0x3bc], eax
mov eax, dword [ebp + 0x10]
mov ebx, ecx
mov dword [ebp - 0x3c0], eax
push edi
cmp esi, 0x80
jle 0x1006a0ab
xorps xmm0, xmm0
lea eax, [ebp - 0x3b8]
movlpd qword [ebp - 0x3b0], xmm0
movlpd qword [ebp - 0x3b8], xmm0
movups xmm0, xmmword [0x100cb118]
push eax
movups xmmword [ebp - 0x3a8], xmm0
movups xmm0, xmmword [0x100cb128]
movups xmmword [ebp - 0x398], xmm0
movups xmm0, xmmword [0x100cb138]
movups xmmword [ebp - 0x388], xmm0
movups xmm0, xmmword [0x100cb148]
movups xmmword [ebp - 0x378], xmm0
call fcn.1006c840
lea edx, [ebp - 0x3b8]
lea ecx, [ebp - 0x148]
call fcn.1006c950
lea eax, [ebp - 0x3b8]
mov ecx, 0xd0
add esp, 4
lea ebx, [ebp - 0x148]
mov esi, 0x40
mov edi, ecx
mov edx, eax
nop dword [eax]
mov byte [edx], 0
lea edx, [edx + 1]
sub edi, 1
jne 0x1006a090
nop dword [eax + eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x1006a0a0
xorps xmm0, xmm0
xor edx, edx
movlpd qword [ebp - 0x210], xmm0
movlpd qword [ebp - 0x218], xmm0
movups xmm0, xmmword [0x100cb118]
movups xmmword [ebp - 0x208], xmm0
movups xmm0, xmmword [0x100cb128]
movups xmmword [ebp - 0x1f8], xmm0
movups xmm0, xmmword [0x100cb138]
movups xmmword [ebp - 0x1e8], xmm0
movups xmm0, xmmword [0x100cb148]
movups xmmword [ebp - 0x1d8], xmm0
test esi, esi
jle 0x1006a1a4
cmp esi, 0x20
jb 0x1006a17c
lea eax, [ebx - 1]
add eax, esi
lea edi, [ebp - 0x88]
lea ecx, [ebp + esi - 0x89]
cmp edi, eax
ja 0x1006a11f
cmp ecx, ebx
jae 0x1006a17c
mov eax, esi
and eax, 0x8000001f
jns 0x1006a12d
dec eax
or eax, 0xffffffe0
inc eax
movaps xmm1, xmmword [0x100d7320]
mov ecx, esi
sub ecx, eax
mov edi, ebx
lea eax, [ebp - 0x88]
sub edi, eax
nop dword [eax]
nop word [eax + eax]
lea eax, [edi + edx]
movups xmm0, xmmword [ebp + eax - 0x88]
pxor xmm0, xmm1
movups xmmword [ebp + edx - 0x88], xmm0
movups xmm0, xmmword [ebx + edx + 0x10]
pxor xmm0, xmm1
movups xmmword [ebp + edx - 0x78], xmm0
add edx, 0x20
cmp edx, ecx
jl 0x1006a150
cmp edx, esi
jge 0x1006a1a4
mov edi, ebx
lea eax, [ebp - 0x88]
sub edi, eax
nop word [eax + eax]
lea ecx, [ebp - 0x88]
add ecx, edx
inc edx
mov al, byte [edi + ecx]
xor al, 0x36
mov byte [ecx], al
cmp edx, esi
jl 0x1006a190
cmp esi, 0x80
jge 0x1006a1ce
mov ecx, 0x80
lea edi, [ebp - 0x88]
sub ecx, esi
add edi, esi
mov edx, ecx
mov eax, 0x36363636
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea eax, [ebp - 0x218]
mov edx, 0x80
push eax
lea ecx, [ebp - 0x88]
call fcn.1006c840
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 0x218]
mov ecx, dword [ebp - 0x3bc]
add esp, 4
push eax
call fcn.1006c840
lea edx, [ebp - 0x218]
lea ecx, [ebp - 0xc8]
call fcn.1006c950
xorps xmm0, xmm0
add esp, 4
movlpd qword [ebp - 0x2e0], xmm0
xor edx, edx
movlpd qword [ebp - 0x2e8], xmm0
movups xmm0, xmmword [0x100cb118]
movups xmmword [ebp - 0x2d8], xmm0
movups xmm0, xmmword [0x100cb128]
movups xmmword [ebp - 0x2c8], xmm0
movups xmm0, xmmword [0x100cb138]
movups xmmword [ebp - 0x2b8], xmm0
movups xmm0, xmmword [0x100cb148]
movups xmmword [ebp - 0x2a8], xmm0
test esi, esi
jle 0x1006a304
cmp esi, 0x20
jb 0x1006a2dc
lea eax, [ebx - 1]
add eax, esi
lea edi, [ebp - 0x88]
lea ecx, [ebp + esi - 0x89]
cmp edi, eax
ja 0x1006a285
cmp ecx, ebx
jae 0x1006a2dc
mov eax, esi
and eax, 0x8000001f
jns 0x1006a293
dec eax
or eax, 0xffffffe0
inc eax
movaps xmm1, xmmword [0x100d7330]
mov ecx, esi
sub ecx, eax
mov edi, ebx
lea eax, [ebp - 0x88]
sub edi, eax
nop dword [eax + eax]
lea eax, [edi + edx]
movups xmm0, xmmword [ebp + eax - 0x88]
pxor xmm0, xmm1
movups xmmword [ebp + edx - 0x88], xmm0
movups xmm0, xmmword [ebx + edx + 0x10]
pxor xmm0, xmm1
movups xmmword [ebp + edx - 0x78], xmm0
add edx, 0x20
cmp edx, ecx
jl 0x1006a2b0
cmp edx, esi
jge 0x1006a304
lea eax, [ebp - 0x88]
sub ebx, eax
nop dword [eax + eax]
lea ecx, [ebp - 0x88]
add ecx, edx
inc edx
mov al, byte [ebx + ecx]
xor al, 0x5c
mov byte [ecx], al
cmp edx, esi
jl 0x1006a2f0
cmp esi, 0x80
jge 0x1006a32e
mov ecx, 0x80
lea edi, [ebp - 0x88]
sub ecx, esi
add edi, esi
mov esi, ecx
mov eax, 0x5c5c5c5c
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
rep stosb byte es:[edi], al
lea eax, [ebp - 0x2e8]
mov edx, 0x80
push eax
lea ecx, [ebp - 0x88]
call fcn.1006c840
add esp, 4
lea eax, [ebp - 0x2e8]
mov edx, 0x40
lea ecx, [ebp - 0xc8]
push eax
call fcn.1006c840
lea edx, [ebp - 0x2e8]
lea ecx, [ebp - 0x108]
call fcn.1006c950
add esp, 4
lea eax, [ebp - 0x108]
push 0x40
push eax
push dword [ebp - 0x3c0]
call fcn.1008bac0
lea eax, [ebp - 0x218]
mov ecx, 0xd0
add esp, 0xc
mov esi, ecx
mov edx, eax
nop dword [eax]
mov byte [edx], 0
lea edx, [edx + 1]
sub esi, 1
jne 0x1006a3a0
nop dword [eax + eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x1006a3b0
lea eax, [ebp - 0x2e8]
mov ecx, 0xd0
mov esi, ecx
mov edx, eax
nop word [eax + eax]
mov byte [edx], 0
lea edx, [edx + 1]
sub esi, 1
jne 0x1006a3d0
nop dword [eax + eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x1006a3e0
lea eax, [ebp - 0xc8]
mov ecx, 0x40
mov esi, ecx
mov edx, eax
nop word [eax + eax]
mov byte [edx], 0
lea edx, [edx + 1]
sub esi, 1
jne 0x1006a400
nop dword [eax + eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x1006a410
lea eax, [ebp - 0x108]
mov ecx, 0x40
mov esi, ecx
mov edx, eax
nop word [eax + eax]
mov byte [edx], 0
lea edx, [edx + 1]
sub esi, 1
jne 0x1006a430
nop dword [eax + eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x1006a440
lea eax, [ebp - 0x88]
mov ecx, 0x80
mov esi, ecx
mov edx, eax
nop word [eax + eax]
mov byte [edx], 0
lea edx, [edx + 1]
sub esi, 1
jne 0x1006a460
nop dword [eax + eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x1006a470
lea eax, [ebp - 0x148]
mov ecx, 0x40
mov esi, ecx
mov edx, eax
nop word [eax + eax]
mov byte [edx], 0
lea edx, [edx + 1]
sub esi, 1
jne 0x1006a490
nop dword [eax + eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x1006a4a0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1007bfb0
mov esp, ebp
pop ebp
ret