Function at 0x4652f4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov ebx, 0x14
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
add ecx, 0xa4
mov edx, dword [edx]
mov eax, dword [eax + 4]
mov dword [ebp - 4], ecx
mov ecx, edx
mov edi, eax
and ecx, 0x1f
dec ebx
push ecx
mov ecx, 0x20
pop esi
sub ecx, esi
mov esi, dword [ebp - 4]
mov esi, dword [esi]
sub edi, esi
shl edi, cl
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx]
sub eax, ecx
mov ecx, edx
and ecx, 0x1f
shr eax, cl
or edi, eax
xor edi, edx
mov eax, edi
mov edi, edx
mov ecx, eax
and ecx, 0x1f
push ecx
mov ecx, 0x20
pop esi
sub ecx, esi
mov esi, dword [ebp - 4]
mov esi, dword [esi - 4]
sub edi, esi
shl edi, cl
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx - 4]
add dword [ebp - 4], 0xfffffff8
sub edx, ecx
mov ecx, eax
and ecx, 0x1f
shr edx, cl
or edi, edx
xor edi, eax
test ebx, ebx
mov edx, edi
ja 0x465319
mov ecx, dword [ebp + 8]
mov ebx, 0x14
mov ecx, dword [ecx + 4]
sub eax, ecx
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov eax, dword [eax]
sub edx, eax
mov dword [ecx], edx
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
add ecx, 0xa4
mov eax, dword [edx + 0xc]
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + 8]
mov dword [ebp - 8], ecx
mov ecx, edx
mov edi, eax
and ecx, 0x1f
dec ebx
push ecx
mov ecx, 0x20
pop esi
sub ecx, esi
mov esi, dword [ebp - 8]
mov esi, dword [esi]
sub edi, esi
shl edi, cl
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
sub eax, ecx
mov ecx, edx
and ecx, 0x1f
shr eax, cl
or edi, eax
xor edi, edx
mov eax, edi
mov edi, edx
mov ecx, eax
and ecx, 0x1f
push ecx
mov ecx, 0x20
pop esi
sub ecx, esi
mov esi, dword [ebp - 8]
mov esi, dword [esi - 4]
sub edi, esi
shl edi, cl
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx - 4]
add dword [ebp - 8], 0xfffffff8
sub edx, ecx
mov ecx, eax
and ecx, 0x1f
shr edx, cl
or edi, edx
xor edi, eax
test ebx, ebx
mov edx, edi
ja 0x4653b5
mov ecx, dword [ebp + 8]
mov ebx, 0x14
mov ecx, dword [ecx + 0xc]
sub eax, ecx
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov eax, dword [eax + 8]
sub edx, eax
mov dword [ecx + 8], edx
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
add ecx, 0xa4
mov eax, dword [edx + 0x14]
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + 0x10]
mov dword [ebp - 0xc], ecx
mov ecx, edx
mov edi, eax
and ecx, 0x1f
dec ebx
push ecx
mov ecx, 0x20
pop esi
sub ecx, esi
mov esi, dword [ebp - 0xc]
mov esi, dword [esi]
sub edi, esi
shl edi, cl
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx]
sub eax, ecx
mov ecx, edx
and ecx, 0x1f
shr eax, cl
or edi, eax
xor edi, edx
mov eax, edi
mov edi, edx
mov ecx, eax
and ecx, 0x1f
push ecx
mov ecx, 0x20
pop esi
sub ecx, esi
mov esi, dword [ebp - 0xc]
mov esi, dword [esi - 4]
sub edi, esi
shl edi, cl
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx - 4]
add dword [ebp - 0xc], 0xfffffff8
sub edx, ecx
mov ecx, eax
and ecx, 0x1f
shr edx, cl
or edi, edx
xor edi, eax
test ebx, ebx
mov edx, edi
ja 0x465453
mov ecx, dword [ebp + 8]
mov ebx, 0x14
mov ecx, dword [ecx + 0x14]
sub eax, ecx
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x14], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov eax, dword [eax + 0x10]
sub edx, eax
mov dword [ecx + 0x10], edx
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
add ecx, 0xa4
mov eax, dword [edx + 0x1c]
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + 0x18]
mov dword [ebp - 0x10], ecx
mov ecx, edx
mov edi, eax
and ecx, 0x1f
dec ebx
push ecx
mov ecx, 0x20
pop esi
sub ecx, esi
mov esi, dword [ebp - 0x10]
mov esi, dword [esi]
sub edi, esi
shl edi, cl
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx]
sub eax, ecx
mov ecx, edx
and ecx, 0x1f
shr eax, cl
or edi, eax
xor edi, edx
mov eax, edi
mov edi, edx
mov ecx, eax
and ecx, 0x1f
push ecx
mov ecx, 0x20
pop esi
sub ecx, esi
mov esi, dword [ebp - 0x10]
mov esi, dword [esi - 4]
sub edi, esi
shl edi, cl
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx - 4]
add dword [ebp - 0x10], 0xfffffff8
sub edx, ecx
mov ecx, eax
and ecx, 0x1f
shr edx, cl
or edi, edx
xor edi, eax
test ebx, ebx
mov edx, edi
ja 0x4654f1
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x1c]
sub eax, ecx
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov eax, dword [eax + 0x18]
sub edx, eax
mov dword [ecx + 0x18], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret