Function at 0x4189e5
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov ecx, dword [ebp + 0xc]
shl ecx, 4
test ecx, ecx
mov dword [ebp - 0xc], 0x89abcdef
mov dword [ebp - 8], 0x1234567
jle 0x41919b
mov eax, dword [ebp + 8]
add eax, 0x1d0
dec ecx
push ebx
shr ecx, 4
inc ecx
push esi
mov dword [ebp - 4], ecx
push edi
mov edi, dword [eax + 0x50]
mov ebx, dword [eax + 0x68]
mov esi, dword [eax + 0x54]
mov edx, dword [eax - 0x11c]
and edx, dword [eax + 4]
and ebx, edi
mov ecx, dword [eax - 0x120]
and ecx, dword [eax]
mov edi, dword [eax + 0x6c]
xor ecx, ebx
xor ecx, dword [eax - 0x1d0]
and edi, esi
xor edx, edi
xor edx, dword [eax - 0x1cc]
mov esi, dword [eax + 0x70]
xor edx, dword [eax + 0x74]
xor ecx, esi
xor ecx, dword [ebp - 0xc]
xor edx, dword [ebp - 8]
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, 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 + 0x58]
and esi, ebx
mov ebx, dword [eax + 0x74]
mov dword [eax + 0xf8], edi
mov edi, dword [eax + 0x5c]
and ebx, edi
xor edx, ebx
xor edx, dword [eax - 0x1c4]
xor ecx, esi
xor ecx, dword [eax - 0x1c8]
mov esi, dword [eax + 0x7c]
xor ecx, dword [eax + 0x78]
xor edx, esi
xor ecx, dword [ebp - 0xc]
xor edx, dword [ebp - 8]
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 + 0xc], 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 + 0xc]
xor ecx, edi
xor ecx, dword [eax - 0x1c0]
mov edi, dword [esi]
xor edx, ebx
xor edx, dword [eax - 0x1bc]
mov esi, dword [esi + 4]
xor ecx, edi
xor ecx, dword [ebp - 0xc]
xor edx, esi
xor edx, dword [ebp - 8]
mov dword [ebp - 0x30], esi
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 - 0x30]
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 - 0xc]
xor edx, dword [ebp - 8]
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 - 0xc]
xor edx, dword [ebp - 8]
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
xor ebx, edx
mov dword [eax + 0x118], edi
mov edx, dword [eax - 0xf4]
and edx, dword [eax + 0x2c]
mov edi, dword [eax + 0x94]
and edi, dword [eax + 0x7c]
mov ecx, dword [eax - 0xf8]
and ecx, dword [eax + 0x28]
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 - 8]
xor ecx, esi
xor ecx, dword [ebp - 0xc]
mov dword [eax + 0x11c], ebx
mov edi, ecx
mov ebx, edx
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 + 0xc]
mov dword [eax + 0x120], edi
mov edi, esi
and edi, dword [ebx]
mov ebx, dword [eax + 0x9c]
and ebx, dword [ebp - 0x30]
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 - 0xc]
xor edx, dword [ebp - 8]
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 - 0xc]
xor edx, dword [ebp - 8]
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 - 0x14], ecx
mov ecx, dword [eax + 0xb4]
mov dword [ebp - 0x10], 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 - 0x14]
xor edx, dword [ebp - 0x10]
xor ecx, dword [ebp - 0xc]
xor edx, dword [ebp - 8]
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 - 0x14]
and edi, esi
mov esi, dword [ebp - 0x10]
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 - 0xc]
mov esi, dword [ebp - 8]
mov dword [eax + 0x13c], ebx
xor edx, esi
mov edi, ecx
mov ebx, edx
shrd edi, ebx, 0xf
xor ecx, edi
shr ebx, 0xf
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]
mov dword [eax + 0x144], ebx
and edi, dword [eax + 0xa0]
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 - 0xc]
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 - 0xc]
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 [ebp - 0x1c], ecx
mov ecx, dword [eax + 0xd4]
mov dword [eax + 0x150], edi
mov edi, dword [ebp - 0x14]
and edi, dword [eax + 0xc8]
xor ebx, edx
mov edx, dword [eax - 0xbc]
and edx, dword [eax + 0x64]
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax - 0xc0]
and ecx, dword [eax + 0x60]
mov dword [ebp - 0x3c], edi
mov edi, dword [ebp - 0x10]
and edi, dword [eax + 0xcc]
xor ecx, dword [ebp - 0x3c]
xor edx, edi
xor ecx, dword [eax - 0x170]
xor edx, dword [eax - 0x16c]
xor ecx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x18]
xor ecx, dword [ebp - 0xc]
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 - 0x24], ecx
mov ecx, dword [eax + 0xdc]
mov dword [eax + 0x158], edi
mov edi, dword [eax + 0xb8]
mov dword [eax + 0x15c], ebx
mov ebx, dword [ebp - 0x1c]
and ebx, edi
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x20], ecx
mov ecx, dword [eax - 0xb8]
and ecx, dword [eax + 0x68]
mov dword [ebp - 0x44], ebx
xor ecx, dword [ebp - 0x44]
mov ebx, dword [eax + 0xbc]
xor ecx, dword [eax - 0x168]
and edi, ebx
xor ecx, dword [ebp - 0x24]
xor edx, edi
xor edx, dword [eax - 0x164]
xor ecx, dword [ebp - 0xc]
xor edx, dword [ebp - 0x20]
mov edi, ecx
xor edx, esi
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 [eax + 0x160], edi
mov edi, dword [eax + 0xc0]
mov dword [eax + 0x164], ebx
mov ebx, dword [ebp - 0x24]
and ebx, edi
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [eax + 0xe4]
mov dword [ebp - 0x28], ecx
mov ecx, dword [eax - 0xb0]
and ecx, dword [eax + 0x70]
mov dword [ebp - 0x4c], ebx
xor ecx, dword [ebp - 0x4c]
mov ebx, dword [eax + 0xc4]
xor ecx, dword [eax - 0x160]
and edi, ebx
xor ecx, dword [ebp - 0x2c]
xor edx, edi
xor edx, dword [eax - 0x15c]
xor ecx, dword [ebp - 0xc]
xor edx, dword [ebp - 0x28]
mov edi, ecx
xor edx, esi
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
shl edi, 0x1f
xor edi, ecx
xor ebx, edx
mov ecx, dword [eax - 0xa8]
and ecx, dword [eax + 0x78]
mov edx, dword [eax - 0xa4]
and edx, dword [eax + 0x7c]
mov dword [eax + 0x168], edi
mov edi, dword [eax + 0xc8]
mov dword [eax + 0x16c], ebx
mov ebx, dword [ebp - 0x2c]
and ebx, edi
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0x54], ebx
mov ebx, dword [eax + 0xcc]
xor ecx, dword [ebp - 0x54]
and edi, 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 - 0xc]
xor edx, esi
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 - 0xc]
and eax, 0x2425cfa0
mov edx, esi
shr edx, 0x1f
xor eax, edx
mov edx, dword [ebp - 0xc]
mov ecx, esi
shld esi, edx, 1
and ecx, 0x7311c281
xor edi, edi
shl edx, 1
xor ecx, edi
xor eax, edx
xor ecx, esi
dec dword [ebp - 4]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 8], ecx
jne 0x418a1a
pop edi
pop esi
pop ebx
leave
ret