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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, dword [ebp + 0xc]
mov eax, ecx
mov dword [ebp - 4], eax
push esi
push edi
test eax, eax
je case.0x495152.5
cmp dword [ebp + 8], 0
jne 0x4950d7
test ebx, ebx
jne case.0x495152.5
cmp edx, 3
je 0x49510d
cmp edx, 4
je 0x49510d
cmp edx, 5
je 0x49510d
cmp edx, 6
je 0x49510d
cmp edx, 7
je 0x49510d
cmp edx, 8
je 0x49510d
cmp edx, 0xa
je 0x49510d
cmp edx, 0xb
je 0x49510d
cmp edx, 0xc
je 0x49510d
cmp edx, 0xd
jne case.0x495152.5
push ecx
mov byte [eax + 0x225], 0
mov byte [eax + 0x224], dl
call fcn.00494f80
mov edi, eax
add esp, 4
test edi, edi
jne 0x495445
mov ecx, dword [ebp - 4]
lea eax, [ecx + 0x160]
mov dword [ebp - 0xc], eax
lea esi, [ecx + 0xe0]
movzx eax, byte [ecx + 0x224]
add eax, 0xfffffffd
cmp eax, 5
ja case.0x495152.5
jmp dword [eax*4 + 0x49544c]
mov edx, dword [ebp + 8]
mov dword [ebp - 8], 0x40
cmp ebx, 0x40
ja 0x4951dc
test edx, edx
je 0x495177
push ebx
push edx
push esi
call fcn.0041d170
add esp, 0xc
mov eax, dword [ebp - 8]
cmp ebx, eax
jae 0x49518f
sub eax, ebx
push eax
lea eax, [esi + ebx]
push 0
push eax
call fcn.0041d6f0
add esp, 0xc
mov ebx, dword [ebp - 8]
xor ecx, ecx
mov eax, dword [ebp - 0xc]
dec eax
add eax, ebx
lea edx, [ebx - 1]
add edx, esi
cmp esi, eax
mov eax, dword [ebp - 0xc]
ja 0x4953aa
cmp edx, eax
jb 0x4953aa
xor eax, eax
cmp eax, ebx
jae 0x495437
nop dword [eax]
mov al, byte [esi]
lea esi, [esi + 1]
xor al, 0x5c
mov byte [esi + 0x7f], al
xor byte [esi - 1], 0x36
sub ebx, 1
jne 0x4951c0
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebx
call fcn.004ca9d0
mov edi, eax
add esp, 4
test edi, edi
jne 0x495437
mov ecx, dword [ebp - 4]
mov edx, esi
call fcn.004ca890
mov edi, eax
test edi, edi
jne 0x495437
lea ebx, [eax + 0x10]
lea eax, [edi + 0x40]
jmp 0x49517e
mov edx, dword [ebp + 8]
mov dword [ebp - 8], 0x40
cmp ebx, 0x40
jbe 0x495168
push ebx
call fcn.004c0c30
mov edi, eax
add esp, 4
test edi, edi
jne 0x495437
mov ecx, dword [ebp - 4]
mov edx, esi
call fcn.004c0db0
mov edi, eax
test edi, edi
jne 0x495437
lea ebx, [eax + 0x14]
lea eax, [edi + 0x40]
jmp 0x49517e
mov edx, dword [ebp + 8]
mov dword [ebp - 8], 0x40
cmp ebx, 0x40
jbe 0x495168
test edx, edx
je 0x495432
push ebx
call fcn.004c95d0
mov edi, eax
add esp, 4
test edi, edi
jne 0x495437
mov ecx, dword [ebp - 4]
mov edx, esi
call fcn.004c9e10
mov edi, eax
test edi, edi
jne 0x495437
lea ebx, [eax + 0x20]
lea eax, [edi + 0x40]
jmp 0x49517e
mov edx, dword [ebp + 8]
mov dword [ebp - 8], 0x80
cmp ebx, 0x80
jbe 0x495168
test edx, edx
je 0x495432
push ebx
call fcn.004c2810
mov edi, eax
add esp, 4
test edi, edi
jne 0x495437
test esi, esi
je 0x495432
mov ecx, dword [ebp - 4]
call fcn.004c26c0
mov edi, eax
test edi, edi
jne 0x495437
mov eax, dword [ebp - 4]
mov ecx, eax
movups xmm0, xmmword [eax]
movups xmmword [esi], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esi + 0x10], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [esi + 0x20], xmm0
call fcn.004c2580
mov edi, eax
test edi, edi
jne 0x495437
lea ebx, [eax + 0x30]
lea eax, [ebx + 0x50]
jmp 0x49517e
mov edx, dword [ebp + 8]
mov dword [ebp - 8], 0x80
cmp ebx, 0x80
jbe 0x495168
test edx, edx
je 0x495432
push ebx
call fcn.004c2810
mov edi, eax
add esp, 4
test edi, edi
jne 0x495437
test esi, esi
je 0x495432
mov ecx, dword [ebp - 4]
call fcn.004c26c0
mov edi, eax
test edi, edi
jne 0x495437
mov eax, dword [ebp - 4]
push eax
movups xmm0, xmmword [eax]
movups xmmword [esi], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esi + 0x10], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [esi + 0x20], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [esi + 0x30], xmm0
call fcn.004c53f0
mov edi, eax
add esp, 4
test edi, edi
jne 0x495437
lea ebx, [eax + 0x40]
lea eax, [ebx + 0x40]
jmp 0x49517e
movaps xmm2, xmmword [0x515d20]
add eax, 0x30
movaps xmm3, xmmword [str.6666666666666666]
add esi, 0x10
nop
movups xmm1, xmmword [esi - 0x10]
add ecx, 0x40
lea eax, [eax + 0x40]
lea esi, [esi + 0x40]
movaps xmm0, xmm1
pxor xmm1, xmm3
pxor xmm0, xmm2
movups xmmword [esi - 0x50], xmm1
movups xmm1, xmmword [esi - 0x40]
movups xmmword [eax - 0x70], xmm0
movaps xmm0, xmm1
pxor xmm1, xmm3
pxor xmm0, xmm2
movups xmmword [esi - 0x40], xmm1
movups xmm1, xmmword [esi - 0x30]
movups xmmword [esi + 0x40], xmm0
movaps xmm0, xmm1
pxor xmm1, xmm3
pxor xmm0, xmm2
movups xmmword [esi - 0x30], xmm1
movups xmm1, xmmword [esi - 0x20]
movups xmmword [eax - 0x50], xmm0
movaps xmm0, xmm1
pxor xmm1, xmm3
pxor xmm0, xmm2
movups xmmword [eax - 0x40], xmm0
movups xmmword [esi - 0x20], xmm1
cmp ecx, ebx
jb 0x4953c0
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, 0xffffff53
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xffffff53
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret