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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x408
mov eax, dword [0x102bff3c]
xor eax, ebp
mov dword [ebp - 4], eax
mov al, byte [ebp + 0x20]
mov ecx, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0x1c]
push esi
mov esi, dword [ebp + 0x14]
push edi
mov edi, dword [ebp + 8]
push esi
mov dword [ebp - 0x400], 0
mov byte [ebp - 0x3fd], al
lea eax, [ebp - 0x204]
push ecx
push eax
mov dword [ebp - 0x404], edi
call fcn.101d11a0
mov eax, dword [ebp - 0x400]
mov dword [ebp + esi - 0x204], eax
lea eax, [ebp - 0x84]
push 0x40
push eax
lea eax, [esi + 4]
push eax
lea eax, [ebp - 0x204]
push eax
push dword [ebp + 0xc]
push edi
call fcn.101b0570
mov eax, dword [ebp + 0x18]
lea esi, [ebp - 0x84]
add esp, 0x24
mov ecx, 0x10
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
cmp eax, 1
jle 0x101b01ee
lea ecx, [ebp - 0xc4]
sub ebx, ecx
dec eax
mov dword [ebp - 0x408], ebx
mov dword [ebp - 0x400], eax
jmp 0x101b0030
mov edi, dword [ebp + 0xc]
mov esi, edi
mov ebx, dword [ebp - 0x404]
cmp edi, 0x40
jle 0x101b0082
lea eax, [ebp - 0x3fc]
push eax
call fcn.101b52e0
lea eax, [ebp - 0x3fc]
push eax
lea eax, [edi*8]
push eax
push ebx
call fcn.101b4ca0
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x3fc]
push eax
call fcn.101b4e60
add esp, 0x18
lea ebx, [ebp - 0x104]
mov esi, 0x40
lea eax, [ebp - 0x2ac]
push eax
call fcn.101b52e0
add esp, 4
xor edx, edx
test esi, esi
jle 0x101b00b1
mov edi, ebx
lea eax, [ebp - 0x44]
sub edi, eax
mov edi, edi
lea ecx, [ebp - 0x44]
add ecx, edx
inc edx
mov al, byte [edi + ecx]
xor al, 0x36
mov byte [ecx], al
cmp edx, esi
jl 0x101b00a0
cmp esi, 0x40
jge 0x101b00d5
mov ecx, 0x40
lea edi, [ebp - 0x44]
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 - 0x2ac]
push eax
lea eax, [ebp - 0x44]
push 0x200
push eax
call fcn.101b4ca0
lea eax, [ebp - 0x2ac]
push eax
lea eax, [ebp - 0x84]
push 0x200
push eax
call fcn.101b4ca0
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x2ac]
push eax
call fcn.101b4e60
lea eax, [ebp - 0x354]
push eax
call fcn.101b52e0
add esp, 0x24
xor edx, edx
test esi, esi
jle 0x101b0141
lea eax, [ebp - 0x44]
sub ebx, eax
nop
lea ecx, [ebp - 0x44]
add ecx, edx
inc edx
mov al, byte [ebx + ecx]
xor al, 0x5c
mov byte [ecx], al
cmp edx, esi
jl 0x101b0130
cmp esi, 0x40
jge 0x101b0165
mov ecx, 0x40
lea edi, [ebp - 0x44]
sub ecx, esi
add edi, esi
mov edx, ecx
mov eax, 0x5c5c5c5c
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea eax, [ebp - 0x354]
push eax
lea eax, [ebp - 0x44]
push 0x200
push eax
call fcn.101b4ca0
lea eax, [ebp - 0x354]
push eax
lea eax, [ebp - 0x144]
push 0x200
push eax
call fcn.101b4ca0
lea eax, [ebp - 0x184]
push eax
lea eax, [ebp - 0x354]
push eax
call fcn.101b4e60
push 0x40
lea eax, [ebp - 0x184]
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.101d11a0
add esp, 0x2c
xor eax, eax
nop
mov edx, dword [ebp - 0x408]
lea ecx, [ebp - 0xc4]
add ecx, eax
add edx, ecx
mov cl, byte [ecx]
xor byte [edx], cl
mov byte [ebp + eax - 0x84], cl
inc eax
cmp eax, 0x40
jl 0x101b01c0
sub dword [ebp - 0x400], 1
jne 0x101b0030
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101b70aa
mov esp, ebp
pop ebp
ret