Function at 0x4a3e92
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
push 4
cdq
pop ecx
idiv ecx
mov esi, dword [ebp + 0x10]
test eax, eax
mov dword [ebp - 4], edx
jle 0x4a3ec0
mov edi, dword [ebp + 8]
mov ecx, esi
sub edi, esi
mov edx, eax
mov ebx, dword [edi + ecx]
mov dword [ecx], ebx
add ecx, 4
dec edx
jne 0x4a3eb5
cmp dword [ebp + 0xc], 0x20
jge 0x4a3ed6
mov ecx, dword [ebp - 4]
xor edx, edx
shl ecx, 3
inc edx
shl edx, cl
lea eax, [esi + eax*4]
or dword [eax], edx
lea eax, [esi + 0x20]
mov edx, dword [eax - 4]
xor esi, esi
lea ecx, [eax - 0x14]
mov edi, dword [ecx - 0xc]
xor edi, dword [ecx + 8]
xor edi, edx
xor edi, esi
xor edi, dword [ecx]
add ecx, 4
xor edi, 0x9e3779b9
rol edi, 0xb
mov edx, edi
mov dword [ecx + 0x10], edx
inc esi
cmp esi, 0x84
jl 0x4a3ee1
sub eax, 0x50
mov dword [ebp + 8], 4
mov edi, dword [eax + 0x50]
mov edx, dword [eax + 0x5c]
mov ebx, dword [eax + 0x54]
mov esi, dword [eax + 0x58]
mov ecx, edi
or edi, edx
xor edx, ebx
and ebx, ecx
xor ecx, esi
xor esi, edx
and edx, edi
or ecx, ebx
xor edx, ecx
mov dword [ebp + 0x10], esi
mov esi, edx
xor edi, ebx
xor esi, ebx
or esi, edi
xor esi, dword [ebp + 0x10]
mov ebx, dword [eax + 0x68]
mov dword [ebp + 0xc], edx
or edx, esi
xor edx, dword [ebp + 0xc]
and ecx, edi
xor ecx, dword [ebp + 0x10]
xor edx, edi
mov edi, dword [eax + 0x6c]
mov dword [eax + 0x50], edx
mov edx, dword [ebp + 0xc]
mov dword [eax + 0x58], edx
mov edx, dword [eax + 0x60]
mov dword [eax + 0x5c], ecx
mov ecx, edx
and edx, ebx
xor edx, edi
mov dword [eax + 0x54], esi
mov esi, dword [eax + 0x64]
mov edi, edx
xor edi, esi
xor ebx, edi
mov edi, ecx
or edi, dword [eax + 0x6c]
xor ecx, ebx
xor edi, esi
mov esi, ecx
or esi, edi
xor esi, edx
and edx, edi
xor ecx, edx
mov edx, ecx
xor edx, edi
xor edx, esi
not ecx
mov dword [eax + 0x6c], ecx
mov ecx, dword [eax + 0x70]
mov dword [eax + 0x68], edx
mov edx, dword [eax + 0x78]
not ecx
mov dword [eax + 0x64], esi
mov dword [ebp + 0x10], edi
mov edi, dword [eax + 0x74]
mov esi, ecx
and ecx, edi
not edx
xor edx, ecx
mov dword [eax + 0x60], ebx
mov ebx, dword [eax + 0x7c]
or ecx, ebx
xor edi, ecx
xor ecx, esi
or esi, edi
xor ebx, edx
or edx, ecx
and edx, esi
mov dword [ebp + 0xc], esi
xor edi, ebx
mov esi, edx
xor ecx, edi
and esi, edi
xor esi, ecx
mov dword [eax + 0x70], edx
and edx, ecx
xor edx, dword [ebp + 0xc]
mov dword [eax + 0x7c], esi
mov esi, dword [eax + 0x88]
mov dword [eax + 0x74], edx
mov dword [eax + 0x78], ebx
mov ebx, dword [eax + 0x84]
lea ecx, [eax + 0x80]
mov edx, dword [ecx]
mov dword [ebp + 0xc], ecx
mov ecx, dword [eax + 0x8c]
xor ecx, edx
mov edi, ecx
and edi, ebx
mov edx, esi
xor edx, ebx
mov ebx, dword [ebp + 0xc]
mov ebx, dword [ebx]
xor edi, ebx
mov dword [ebp + 0x10], edi
mov edi, ecx
or edi, ebx
xor edi, edx
xor edx, ecx
xor ecx, esi
or esi, dword [ebp + 0x10]
mov ebx, ecx
xor ebx, dword [ebp + 0x10]
xor esi, edx
or ecx, edi
not edx
or edx, dword [ebp + 0x10]
mov dword [eax + 0x88], esi
xor ebx, edx
mov dword [ebp - 4], edx
mov dword [eax + 0x8c], edi
mov edx, ecx
xor ecx, dword [ebp - 4]
xor edx, ebx
mov ebx, dword [ebp + 0xc]
mov dword [eax + 0x84], ecx
mov dword [ebx], edx
mov eax, ebx
mov edi, dword [eax + 0x14]
mov edx, dword [eax + 0x18]
mov esi, dword [eax + 0x1c]
mov ebx, dword [eax + 0x10]
mov ecx, edi
and ecx, edx
xor ecx, esi
mov dword [ebp + 0xc], edx
xor edx, ecx
xor ecx, edi
and esi, edi
xor edi, ebx
mov dword [ebp + 0xc], edi
xor esi, dword [ebp + 0xc]
mov edi, edx
or edi, ebx
xor edi, ecx
xor ecx, esi
and esi, edi
xor esi, edx
xor edx, ecx
not edx
and ecx, edi
xor ecx, edx
and edx, edi
xor edx, dword [ebp + 0xc]
mov dword [eax + 0x10], ecx
mov ecx, dword [eax + 0x2c]
xor edx, esi
mov dword [eax + 0x14], edx
mov edx, dword [eax + 0x20]
mov dword [eax + 0x1c], edi
mov edi, dword [eax + 0x28]
mov dword [eax + 0x18], esi
mov esi, ecx
and ecx, edx
not edi
xor edx, esi
xor ecx, edi
mov dword [ebp + 0xc], edx
mov edx, dword [eax + 0x24]
xor edx, ecx
mov ebx, esi
or ebx, edi
xor ebx, dword [ebp + 0xc]
or dword [ebp + 0xc], edx
xor esi, dword [ebp + 0xc]
xor ebx, edx
xor esi, ecx
mov edi, ecx
or edi, dword [ebp + 0xc]
not ecx
xor edi, ebx
xor esi, edi
mov dword [eax + 0x28], esi
and esi, ebx
xor esi, ecx
mov ecx, dword [eax + 0x38]
mov dword [ebp + 0x10], ebx
mov ebx, dword [eax + 0x34]
mov dword [eax + 0x24], edx
mov edx, dword [eax + 0x3c]
mov dword [eax + 0x2c], esi
mov esi, dword [eax + 0x30]
xor esi, ebx
xor ebx, edx
not edx
xor ecx, edx
mov dword [eax + 0x20], edi
mov dword [ebp + 0xc], ebx
mov edi, esi
and edi, ebx
xor edi, ecx
or ecx, ebx
xor ebx, edx
xor ebx, ecx
and edx, edi
xor edx, esi
xor ebx, edi
xor ecx, esi
mov dword [ebp + 0xc], ebx
mov ebx, edx
mov dword [eax + 0x34], edx
or edx, dword [ebp + 0xc]
not ecx
xor edx, ecx
mov ecx, dword [eax + 0x48]
and ebx, esi
xor ebx, dword [ebp + 0xc]
mov esi, dword [eax + 0x4c]
mov dword [eax + 0x3c], edx
mov edx, dword [eax + 0x44]
xor edx, esi
mov dword [eax + 0x38], ebx
mov ebx, dword [eax + 0x40]
not esi
xor ecx, esi
xor esi, ebx
mov dword [eax + 0x30], edi
mov dword [ebp + 0xc], edx
mov edi, esi
and edi, edx
xor edi, ecx
xor edx, esi
and ecx, edx
xor ebx, edx
xor ecx, ebx
mov dword [ebp + 0xc], ecx
and ebx, edi
mov ecx, edi
or ecx, edx
xor esi, ebx
mov edx, esi
or edx, ebx
xor edx, dword [ebp + 0xc]
mov dword [eax + 0x40], edi
mov edi, esi
xor ecx, ebx
and edi, dword [ebp + 0xc]
xor edi, ecx
dec dword [ebp + 8]
not edx
mov dword [eax + 0x44], edi
mov dword [eax + 0x48], edx
mov dword [eax + 0x4c], esi
jne 0x4a3f11
mov edi, dword [eax + 0x50]
mov edx, dword [eax + 0x5c]
mov ebx, dword [eax + 0x54]
mov esi, dword [eax + 0x58]
mov ecx, edi
or edi, edx
xor edx, ebx
and ebx, ecx
xor ecx, esi
xor esi, edx
and edx, edi
or ecx, ebx
xor edx, ecx
mov dword [ebp + 0x10], esi
mov esi, edx
xor edi, ebx
xor esi, ebx
or esi, edi
xor esi, dword [ebp + 0x10]
mov dword [ebp + 0xc], edx
or edx, esi
xor edx, dword [ebp + 0xc]
and ecx, edi
xor edx, edi
xor ecx, dword [ebp + 0x10]
pop edi
mov dword [eax + 0x50], edx
mov edx, dword [ebp + 0xc]
mov dword [eax + 0x54], esi
pop esi
mov dword [eax + 0x58], edx
mov dword [eax + 0x5c], ecx
pop ebx
leave
ret 0xc