Function at 0x405736
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
push ebx
shl ecx, 4
push esi
push edi
mov dword [ebp - 0x10], 0x89abcdef
mov dword [ebp - 0xc], 0x1234567
test ecx, ecx
jle 0x405ecc
add eax, 0x1d0
dec ecx
shr ecx, 4
inc ecx
mov dword [ebp - 8], ecx
mov edx, dword [eax - 0x11c]
and edx, dword [eax + 4]
mov edi, dword [eax + 0x6c]
and edi, dword [eax + 0x54]
mov ebx, dword [eax + 0x68]
and ebx, dword [eax + 0x50]
mov ecx, dword [eax - 0x120]
and ecx, dword [eax]
xor edx, edi
xor edx, dword [eax - 0x1cc]
xor ecx, ebx
xor ecx, dword [eax - 0x1d0]
xor edx, dword [eax + 0x74]
mov esi, dword [eax + 0x70]
xor edx, dword [ebp - 0xc]
xor ecx, esi
xor ecx, dword [ebp - 0x10]
mov ebx, edx
mov edi, ecx
shrd edi, ebx, 0xa
xor ecx, edi
and esi, dword [eax + 0x58]
shr ebx, 0xa
xor edx, ebx
mov edi, ecx
mov ebx, edx
shld ebx, edi, 0xb
xor ebx, edx
mov edx, dword [eax - 0x114]
and edx, dword [eax + 0xc]
shl edi, 0xb
xor edi, ecx
mov ecx, dword [eax - 0x118]
and ecx, dword [eax + 8]
mov dword [eax + 0xfc], ebx
mov ebx, dword [eax + 0x74]
and ebx, dword [eax + 0x5c]
xor ecx, esi
xor ecx, dword [eax - 0x1c8]
mov esi, dword [eax + 0x7c]
xor ecx, dword [eax + 0x78]
xor edx, ebx
xor edx, dword [eax - 0x1c4]
xor ecx, dword [ebp - 0x10]
xor edx, esi
xor edx, dword [ebp - 0xc]
mov dword [eax + 0xf8], edi
mov edi, ecx
mov ebx, edx
shrd edi, ebx, 5
xor ecx, edi
shr ebx, 5
xor edx, ebx
mov edi, ecx
mov ebx, edx
shld ebx, edi, 0x18
shl edi, 0x18
xor edi, ecx
xor ebx, edx
mov edx, dword [eax - 0x10c]
and edx, dword [eax + 0x14]
lea ecx, [eax + 0x80]
mov dword [ebp - 4], ecx
mov ecx, dword [eax - 0x110]
and ecx, dword [eax + 0x10]
mov dword [eax + 0x100], edi
mov edi, dword [eax + 0x60]
and edi, dword [eax + 0x78]
mov dword [eax + 0x104], ebx
mov ebx, dword [eax + 0x64]
and ebx, esi
mov esi, dword [ebp - 4]
xor ecx, edi
xor ecx, dword [eax - 0x1c0]
mov edi, dword [esi]
mov esi, dword [esi + 4]
xor edx, ebx
xor edx, dword [eax - 0x1bc]
xor ecx, edi
mov dword [ebp - 0x34], esi
xor edx, esi
xor ecx, dword [ebp - 0x10]
xor edx, dword [ebp - 0xc]
mov esi, ecx
mov ebx, edx
shrd esi, ebx, 0xd
xor ecx, esi
shr ebx, 0xd
xor edx, ebx
mov esi, ecx
mov ebx, edx
shld ebx, esi, 9
xor ebx, edx
mov edx, dword [eax - 0x104]
and edx, dword [eax + 0x1c]
shl esi, 9
xor esi, ecx
mov ecx, dword [eax - 0x108]
and ecx, dword [eax + 0x18]
mov dword [eax + 0x108], esi
mov esi, dword [eax + 0x68]
and esi, edi
mov edi, dword [eax + 0x6c]
and edi, dword [ebp - 0x34]
xor ecx, esi
xor ecx, dword [eax - 0x1b8]
mov esi, dword [eax + 0x88]
xor edx, edi
xor edx, dword [eax - 0x1b4]
xor ecx, esi
xor edx, dword [eax + 0x8c]
xor ecx, dword [ebp - 0x10]
xor edx, dword [ebp - 0xc]
mov dword [eax + 0x10c], ebx
mov edi, ecx
mov ebx, edx
shrd edi, ebx, 0xa
xor ecx, edi
shr ebx, 0xa
xor edx, ebx
mov edi, ecx
mov ebx, edx
shld ebx, edi, 0x10
shl edi, 0x10
xor edi, ecx
mov ecx, dword [eax - 0x100]
and ecx, dword [eax + 0x20]
xor ebx, edx
mov edx, dword [eax - 0xfc]
and edx, dword [eax + 0x24]
mov dword [eax + 0x110], edi
mov edi, dword [eax + 0x70]
and edi, esi
mov esi, dword [eax + 0x74]
and esi, dword [eax + 0x8c]
xor ecx, edi
xor ecx, dword [eax - 0x1b0]
xor edx, esi
xor edx, dword [eax - 0x1ac]
mov esi, dword [eax + 0x90]
xor edx, dword [eax + 0x94]
xor ecx, esi
xor ecx, dword [ebp - 0x10]
xor edx, dword [ebp - 0xc]
mov dword [eax + 0x114], ebx
mov edi, ecx
mov ebx, edx
shrd edi, ebx, 0xb
shr ebx, 0xb
xor ecx, edi
xor edx, ebx
mov edi, ecx
mov ebx, edx
shld ebx, edi, 0xf
shl edi, 0xf
xor edi, ecx
mov ecx, dword [eax - 0xf8]
xor ebx, edx
and ecx, dword [eax + 0x28]
mov edx, dword [eax - 0xf4]
mov dword [eax + 0x118], edi
mov dword [eax + 0x11c], ebx
and edx, dword [eax + 0x2c]
mov edi, dword [eax + 0x94]
and edi, dword [eax + 0x7c]
and esi, dword [eax + 0x78]
xor edx, edi
xor edx, dword [eax - 0x1a4]
xor ecx, esi
xor ecx, dword [eax - 0x1a8]
xor edx, dword [eax + 0x9c]
mov esi, dword [eax + 0x98]
xor edx, dword [ebp - 0xc]
xor ecx, esi
xor ecx, dword [ebp - 0x10]
mov ebx, edx
mov edi, ecx
shrd edi, ebx, 0xc
xor ecx, edi
shr ebx, 0xc
xor edx, ebx
mov edi, ecx
mov ebx, edx
shld ebx, edi, 9
xor ebx, edx
mov edx, dword [eax - 0xec]
and edx, dword [eax + 0x34]
shl edi, 9
xor edi, ecx
mov ecx, dword [eax - 0xf0]
and ecx, dword [eax + 0x30]
mov dword [eax + 0x124], ebx
mov ebx, dword [ebp - 4]
mov dword [eax + 0x120], edi
mov edi, esi
and edi, dword [ebx]
mov ebx, dword [eax + 0x9c]
and ebx, dword [ebp - 0x34]
xor ecx, edi
xor ecx, dword [eax - 0x1a0]
xor edx, ebx
xor edx, dword [eax - 0x19c]
xor ecx, dword [eax + 0xa0]
xor edx, dword [eax + 0xa4]
xor ecx, dword [ebp - 0x10]
xor edx, dword [ebp - 0xc]
mov edi, ecx
mov ebx, edx
shrd edi, ebx, 2
xor ecx, edi
shr ebx, 2
xor edx, ebx
mov edi, ecx
mov ebx, edx
shld ebx, edi, 0x1b
xor ebx, edx
mov edx, dword [eax - 0xe4]
and edx, dword [eax + 0x3c]
shl edi, 0x1b
xor edi, ecx
mov ecx, dword [eax - 0xe8]
and ecx, dword [eax + 0x38]
mov dword [eax + 0x128], edi
mov edi, dword [eax + 0xa0]
and edi, dword [eax + 0x88]
mov dword [eax + 0x12c], ebx
mov ebx, dword [eax + 0xa4]
and ebx, dword [eax + 0x8c]
xor ecx, edi
xor ecx, dword [eax - 0x198]
xor edx, ebx
xor edx, dword [eax - 0x194]
xor ecx, dword [eax + 0xa8]
xor edx, dword [eax + 0xac]
xor ecx, dword [ebp - 0x10]
xor edx, dword [ebp - 0xc]
mov edi, ecx
mov ebx, edx
shrd edi, ebx, 7
xor ecx, edi
shr ebx, 7
xor edx, ebx
mov edi, ecx
mov ebx, edx
shld ebx, edi, 0xf
xor ebx, edx
mov edx, dword [eax - 0xdc]
and edx, dword [eax + 0x44]
shl edi, 0xf
xor edi, ecx
mov ecx, dword [eax + 0xb0]
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax + 0xb4]
mov dword [ebp - 0x14], ecx
mov ecx, dword [eax - 0xe0]
and ecx, dword [eax + 0x40]
mov dword [eax + 0x130], edi
mov edi, dword [eax + 0xa8]
and edi, dword [eax + 0x90]
mov dword [eax + 0x134], ebx
mov ebx, dword [eax + 0xac]
and ebx, dword [eax + 0x94]
xor ecx, edi
xor ecx, dword [eax - 0x190]
xor edx, ebx
xor edx, dword [eax - 0x18c]
xor ecx, dword [ebp - 0x18]
xor edx, dword [ebp - 0x14]
xor ecx, dword [ebp - 0x10]
xor edx, dword [ebp - 0xc]
mov edi, ecx
mov ebx, edx
shrd edi, ebx, 0xe
xor ecx, edi
shr ebx, 0xe
xor edx, ebx
mov edi, ecx
mov ebx, edx
shld ebx, edi, 6
shl edi, 6
xor edi, ecx
mov ecx, dword [eax - 0xd8]
and ecx, dword [eax + 0x48]
xor ebx, edx
mov edx, dword [eax - 0xd4]
and edx, dword [eax + 0x4c]
mov dword [eax + 0x138], edi
mov edi, dword [ebp - 0x18]
and edi, esi
mov esi, dword [ebp - 0x14]
and esi, dword [eax + 0x9c]
xor ecx, edi
xor ecx, dword [eax - 0x188]
xor edx, esi
xor edx, dword [eax - 0x184]
xor ecx, dword [eax + 0xb8]
xor edx, dword [eax + 0xbc]
xor ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov dword [eax + 0x13c], ebx
xor edx, esi
mov edi, ecx
mov ebx, edx
shrd edi, ebx, 0xf
shr ebx, 0xf
xor ecx, edi
xor edx, ebx
mov edi, ecx
mov ebx, edx
shld ebx, edi, 2
shl edi, 2
xor edi, ecx
mov ecx, dword [eax - 0xd0]
and ecx, dword [eax + 0x50]
xor ebx, edx
mov edx, dword [eax - 0xcc]
and edx, dword [eax + 0x54]
mov dword [eax + 0x140], edi
mov edi, dword [eax + 0xb8]
and edi, dword [eax + 0xa0]
mov dword [eax + 0x144], ebx
mov ebx, dword [eax + 0xbc]
and ebx, dword [eax + 0xa4]
xor ecx, edi
xor ecx, dword [eax - 0x180]
xor edx, ebx
xor edx, dword [eax - 0x17c]
xor ecx, dword [eax + 0xc0]
xor edx, dword [eax + 0xc4]
xor ecx, dword [ebp - 0x10]
xor edx, esi
mov edi, ecx
mov ebx, edx
shrd edi, ebx, 7
xor ecx, edi
shr ebx, 7
xor edx, ebx
mov edi, ecx
mov ebx, edx
shld ebx, edi, 0x1d
xor ebx, edx
mov edx, dword [eax - 0xc4]
and edx, dword [eax + 0x5c]
shl edi, 0x1d
xor edi, ecx
mov ecx, dword [eax - 0xc8]
and ecx, dword [eax + 0x58]
mov dword [eax + 0x148], edi
mov edi, dword [eax + 0xc0]
and edi, dword [eax + 0xa8]
mov dword [eax + 0x14c], ebx
mov ebx, dword [eax + 0xc4]
and ebx, dword [eax + 0xac]
xor ecx, edi
xor ecx, dword [eax - 0x178]
xor edx, ebx
xor edx, dword [eax - 0x174]
xor ecx, dword [eax + 0xc8]
xor edx, dword [eax + 0xcc]
xor ecx, dword [ebp - 0x10]
xor edx, esi
mov edi, ecx
mov ebx, edx
shrd edi, ebx, 0xd
xor ecx, edi
shr ebx, 0xd
xor edx, ebx
mov edi, ecx
mov ebx, edx
shld ebx, edi, 8
shl edi, 8
xor edi, ecx
mov ecx, dword [eax + 0xd0]
mov dword [eax + 0x150], edi
mov edi, dword [ebp - 0x18]
and edi, dword [eax + 0xc8]
xor ebx, edx
mov edx, dword [eax - 0xbc]
and edx, dword [eax + 0x64]
mov dword [ebp - 0x20], ecx
mov ecx, dword [eax + 0xd4]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [eax - 0xc0]
and ecx, dword [eax + 0x60]
mov dword [ebp - 0x40], edi
xor ecx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x14]
and edi, dword [eax + 0xcc]
xor ecx, dword [eax - 0x170]
xor edx, edi
xor edx, dword [eax - 0x16c]
xor ecx, dword [ebp - 0x20]
xor edx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0x10]
mov dword [eax + 0x154], ebx
xor edx, esi
mov edi, ecx
mov ebx, edx
shrd edi, ebx, 0xb
shr ebx, 0xb
xor ecx, edi
xor edx, ebx
mov edi, ecx
mov ebx, edx
shld ebx, edi, 0xf
xor ebx, edx
mov edx, dword [eax - 0xb4]
and edx, dword [eax + 0x6c]
shl edi, 0xf
xor edi, ecx
mov ecx, dword [eax + 0xd8]
mov dword [ebp - 0x28], ecx
mov ecx, dword [eax + 0xdc]
mov dword [ebp - 0x24], ecx
mov ecx, dword [eax - 0xb8]
and ecx, dword [eax + 0x68]
mov dword [eax + 0x15c], ebx
mov ebx, dword [ebp - 0x20]
and ebx, dword [eax + 0xb8]
mov dword [eax + 0x158], edi
mov edi, dword [ebp - 0x1c]
and edi, dword [eax + 0xbc]
xor ecx, ebx
xor ecx, dword [eax - 0x168]
xor edx, edi
xor edx, dword [eax - 0x164]
xor ecx, dword [ebp - 0x28]
xor edx, dword [ebp - 0x24]
xor ecx, dword [ebp - 0x10]
mov dword [ebp - 0x48], ebx
xor edx, esi
mov edi, ecx
mov ebx, edx
shrd edi, ebx, 7
xor ecx, edi
shr ebx, 7
xor edx, ebx
mov edi, ecx
mov ebx, edx
shld ebx, edi, 5
xor ebx, edx
mov edx, dword [eax - 0xac]
and edx, dword [eax + 0x74]
shl edi, 5
xor edi, ecx
mov ecx, dword [eax + 0xe0]
mov dword [ebp - 0x30], ecx
mov ecx, dword [eax + 0xe4]
mov dword [eax + 0x164], ebx
mov ebx, dword [ebp - 0x28]
and ebx, dword [eax + 0xc0]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [eax - 0xb0]
and ecx, dword [eax + 0x70]
mov dword [eax + 0x160], edi
mov edi, dword [ebp - 0x24]
and edi, dword [eax + 0xc4]
xor ecx, ebx
xor ecx, dword [eax - 0x160]
xor edx, edi
xor edx, dword [eax - 0x15c]
xor ecx, dword [ebp - 0x30]
xor edx, dword [ebp - 0x2c]
xor ecx, dword [ebp - 0x10]
mov dword [ebp - 0x50], ebx
xor edx, esi
mov edi, ecx
mov ebx, edx
shrd edi, ebx, 6
shr ebx, 6
xor ecx, edi
xor edx, ebx
mov edi, ecx
mov ebx, edx
shld ebx, edi, 0x1f
xor ebx, edx
mov edx, dword [eax - 0xa4]
and edx, dword [eax + 0x7c]
shl edi, 0x1f
xor edi, ecx
mov ecx, dword [eax - 0xa8]
and ecx, dword [eax + 0x78]
mov dword [eax + 0x16c], ebx
mov ebx, dword [ebp - 0x30]
and ebx, dword [eax + 0xc8]
mov dword [eax + 0x168], edi
mov edi, dword [ebp - 0x2c]
and edi, dword [eax + 0xcc]
xor ecx, ebx
xor ecx, dword [eax - 0x158]
xor edx, edi
xor edx, dword [eax - 0x154]
xor ecx, dword [eax + 0xe8]
xor edx, dword [eax + 0xec]
xor ecx, dword [ebp - 0x10]
xor edx, esi
mov dword [ebp - 0x58], ebx
mov ebx, edx
mov edi, ecx
shrd edi, ebx, 0xc
xor ecx, edi
shr ebx, 0xc
xor edx, ebx
mov ebx, edx
mov edi, ecx
shld ebx, edi, 9
xor ebx, edx
shl edi, 9
xor edi, ecx
mov dword [eax + 0x170], edi
mov dword [eax + 0x174], ebx
mov eax, dword [ebp - 0x10]
and eax, 0x2425cfa0
mov edx, esi
shr edx, 0x1f
xor eax, edx
mov edx, dword [ebp - 0x10]
mov ecx, esi
shld esi, edx, 1
and ecx, 0x7311c281
xor edi, edi
add edx, edx
xor ecx, edi
xor eax, edx
xor ecx, esi
dec dword [ebp - 8]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc], ecx
jne 0x405765
pop edi
pop esi
pop ebx
leave
ret