Function at 0x49af20
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x28
mov eax, dword [esp + 0x30]
push ebx
push ebp
mov ebp, dword [esp + 0x34]
push esi
mov esi, dword [ecx + 0x14]
push edi
mov edi, dword [ecx + 0x10]
test eax, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], esi
ja 0x49af52
cmp ebp, 0x20
jb 0x49b043
mov edx, dword [ecx + 0x1c]
mov eax, dword [ecx + 0x18]
mov ebp, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
mov dword [esp + 0x24], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x20], eax
mov eax, dword [ecx]
mov esi, edx
mov ecx, 1
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
shr esi, 0x1f
xor edi, edi
call fcn.004a5400
or edi, edx
mov edx, ebx
or esi, eax
xor eax, eax
shr edx, 0x19
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov ecx, 7
mov eax, ebp
mov edx, ebx
call fcn.004a5400
mov ecx, dword [esp + 0x14]
or ecx, eax
mov eax, dword [esp + 0x10]
or eax, edx
mov edx, dword [esp + 0x24]
add esi, ecx
mov ebx, edx
adc edi, eax
mov eax, dword [esp + 0x20]
mov ecx, 0x12
xor ebp, ebp
shr ebx, 0xe
call fcn.004a5400
or ebx, eax
mov eax, dword [esp + 0x28]
or ebp, edx
mov edx, dword [esp + 0x2c]
add esi, ebx
mov ebx, edx
adc edi, ebp
mov ecx, 0xc
shr ebx, 0x14
xor ebp, ebp
call fcn.004a5400
mov ecx, dword [esp + 0x34]
or ebx, eax
or ebp, edx
mov edx, dword [esp + 0x30]
add esi, ebx
push ecx
adc edi, ebp
push edx
push edi
push esi
call fcn.0049b240
mov esi, dword [esp + 0x18]
mov ecx, dword [esi + 0xc]
push ecx
mov ecx, dword [esi + 8]
push ecx
push edx
push eax
call fcn.0049b240
mov ecx, dword [esi + 0x14]
push ecx
mov ecx, dword [esi + 0x10]
push ecx
push edx
push eax
call fcn.0049b240
mov ecx, dword [esi + 0x1c]
push ecx
mov ecx, dword [esi + 0x18]
push ecx
push edx
push eax
call fcn.0049b240
mov edi, eax
mov esi, edx
mov ebp, dword [esp + 0x3c]
jmp 0x49b04f
add edi, 0x165667c5
adc esi, 0x27d4eb2f
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x1c]
add edi, ebp
mov dword [esp + 0x3c], ebx
adc esi, edx
and ebp, 0x1f
cmp ebp, 8
mov dword [esp + 0x10], ebp
jb 0x49b11a
shr ebp, 3
mov dword [esp + 0x14], ebp
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
push 0xc2b2ae3d
push 0x27d4eb4f
push edx
push eax
call fcn.004a53c0
mov ebx, edx
mov ecx, 0x1f
shr ebx, 1
xor ebp, ebp
call fcn.004a5400
or ebp, edx
or ebx, eax
push 0x9e3779b1
push 0x85ebca87
push ebp
push ebx
call fcn.004a53c0
xor esi, edx
xor edi, eax
mov ebx, dword [esp + 0x3c]
mov ebp, esi
shr ebp, 5
add ebx, 8
mov dword [esp + 0x1c], ebp
mov ecx, 0x1b
mov eax, edi
mov edx, esi
mov dword [esp + 0x3c], ebx
xor ebp, ebp
call fcn.004a5400
mov ecx, dword [esp + 0x1c]
or ebp, edx
push 0x61c8864e
or ecx, eax
push 0x7a143579
push ebp
push ecx
call fcn.004a53c0
mov edi, 0xc2b2ae63
mov esi, 0x85ebca77
mov ebp, dword [esp + 0x10]
sub edi, eax
mov eax, dword [esp + 0x14]
sbb esi, edx
sub ebp, 8
dec eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], eax
jne 0x49b076
cmp ebp, 4
jb 0x49b185
mov eax, dword [ebx]
push 0x9e3779b1
push 0x85ebca87
push 0
push eax
add ebx, 4
call fcn.004a53c0
xor esi, edx
xor edi, eax
mov edx, esi
xor eax, eax
shr edx, 9
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], edx
mov ecx, 0x17
mov eax, edi
mov edx, esi
call fcn.004a5400
mov ecx, dword [esp + 0x3c]
or ecx, eax
mov eax, dword [esp + 0x1c]
or eax, edx
push 0x3d4d51c2
push 0xd82b14b1
push eax
push ecx
call fcn.004a53c0
mov edi, 0x9e3779f9
mov esi, 0x165667b1
sub edi, eax
sbb esi, edx
sub ebp, 4
test ebp, ebp
je 0x49b1e5
xor eax, eax
push 0x27d4eb2f
mov al, byte [ebx]
push 0x165667c5
push 0
push eax
inc ebx
call fcn.004a53c0
xor esi, edx
xor edi, eax
mov edx, esi
xor eax, eax
shr edx, 0x15
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], edx
mov ecx, 0xb
mov eax, edi
mov edx, esi
call fcn.004a5400
mov ecx, dword [esp + 0x3c]
or ecx, eax
mov eax, dword [esp + 0x1c]
or eax, edx
push 0x9e3779b1
push 0x85ebca87
push eax
push ecx
call fcn.004a53c0
dec ebp
mov edi, eax
mov esi, edx
jne 0x49b189
mov ecx, esi
xor edx, edx
shr ecx, 1
xor edx, esi
push 0xc2b2ae3d
xor ecx, edi
push 0x27d4eb4f
push edx
push ecx
call fcn.004a53c0
mov ecx, 0x1d
mov esi, eax
mov edi, edx
call fcn.004a5380
xor edx, edi
xor eax, esi
push 0x165667b1
push 0x9e3779f9
push edx
push eax
call fcn.004a53c0
mov ecx, edx
mov esi, eax
mov eax, ecx
pop edi
xor eax, esi
xor edx, edx
pop esi
pop ebp
xor edx, ecx
pop ebx
add esp, 0x28
ret 8