Function at 0x50f636
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x23c
mov edx, dword [esp + 0x254]
mov esi, dword [esp + 0x250]
test edx, edx
jle 0x510897
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
mov ebp, dword [esi + 0x18]
mov dword [esp + 0xe4], eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x104], ebx
mov ecx, dword [esi + 0x20]
mov ebx, dword [esi + 0x24]
mov dword [esp + 0x108], edi
mov dword [esp + 0x120], ebp
mov edi, dword [esi + 0x28]
mov ebp, dword [esi + 0x2c]
mov dword [esp + 0x124], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], ebx
mov ecx, dword [esi + 0x34]
mov ebx, dword [esi + 0x38]
mov dword [esp + 0xd4], edi
mov dword [esp + 0xd8], ebp
mov edi, dword [esi + 0x3c]
mov ebp, dword [esi + 0x40]
mov dword [esp + 0x70], eax
mov eax, dword [esi + 0x44]
mov dword [esp + 0x10c], ebx
mov dword [esp + 0xec], ecx
mov dword [esp + 0x110], edi
mov dword [esp + 0x128], ebp
mov dword [esp + 0x12c], eax
mov ecx, dword [esi + 0x48]
mov ebx, dword [esi + 0x4c]
mov edi, dword [esi + 0x50]
mov ebp, dword [esi + 0x54]
mov eax, dword [esi + 0x58]
mov dword [esp + 0x30], ecx
mov ecx, dword [esi + 0x5c]
mov dword [esp + 0x158], ebx
mov dword [esp + 0xdc], edi
mov ebx, dword [esi + 0x60]
mov edi, dword [esi + 0x64]
mov dword [esp + 0xe0], ebp
mov dword [esp + 0xf0], eax
mov ebp, dword [esi + 0x68]
mov eax, dword [esi + 0x6c]
mov dword [esp + 0xf4], ecx
mov ecx, dword [esi + 0x70]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0x114], edi
mov ebx, dword [esi + 0x74]
mov edi, dword [esi + 0x78]
mov dword [esp + 0x130], ebp
mov dword [esp + 0x134], eax
mov ebp, dword [esi + 0x7c]
mov eax, dword [esi + 0x80]
mov dword [esp + 0x150], ecx
mov ecx, dword [esi + 0x84]
mov dword [esp + 0x50], edi
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x98], eax
mov dword [esp + 0xf8], ecx
mov ebx, dword [esi + 0x88]
mov edi, dword [esi + 0x8c]
mov ebp, dword [esi + 0x90]
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x98]
mov dword [esp + 0x118], ebx
mov ebx, dword [esi + 0x9c]
mov dword [esp + 0x11c], edi
mov dword [esp + 0x138], ebp
mov edi, dword [esi + 0xa0]
mov ebp, dword [esi + 0xa4]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x160], ecx
mov eax, dword [esi + 0xa8]
mov ecx, dword [esi + 0xac]
mov dword [esp + 0x164], ebx
mov ebx, dword [esi + 0xb0]
mov dword [esp + 0x10], edi
mov dword [esp + 0x58], ebp
mov edi, dword [esi + 0xb4]
mov ebp, dword [esi + 0xb8]
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], ecx
mov eax, dword [esi + 0xbc]
mov ecx, dword [esi + 0xc0]
mov dword [esp + 0xb0], ebx
mov ebx, dword [esi + 0xc4]
mov dword [esp + 0xc0], edi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x140], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], ebx
mov ecx, dword [esi]
mov edi, dword [esi + 4]
lea esi, [edx*8 + 0x4c0340]
mov dword [esp + 0x230], 0x4c0340
mov dword [esp + 0x234], esi
lea esi, [esi]
mov edx, dword [esp + 0xd4]
mov ebp, dword [esp + 0xd8]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0xfc]
xor edx, ecx
xor edx, dword [esp + 0xdc]
xor ebp, edi
xor edx, dword [esp + 0x50]
xor ebp, dword [esp + 0xe0]
xor ebp, dword [esp + 0x60]
xor ebp, dword [esp + 0x58]
xor eax, edx
mov edx, dword [esp + 0xe4]
xor edx, dword [esp + 0x70]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x7c], ebp
mov ebp, dword [esp + 0xe8]
xor ebp, dword [esp + 0xec]
mov esi, edx
xor esi, dword [esp + 0xf0]
mov edx, dword [esp + 0x104]
xor esi, dword [esp + 0x98]
xor edx, dword [esp + 0x10c]
xor ebp, dword [esp + 0xf4]
xor ebp, dword [esp + 0xf8]
xor ebx, esi
mov esi, edx
xor esi, dword [esp + 0xb8]
xor esi, dword [esp + 0x118]
mov dword [esp + 0xa8], ebx
xor eax, ebp
mov ebp, dword [esp + 0xb0]
mov ebx, dword [esp + 0x108]
xor ebx, dword [esp + 0x110]
mov dword [esp + 0xac], eax
xor ebx, dword [esp + 0x114]
xor ebx, dword [esp + 0x11c]
xor ebp, esi
mov dword [esp + 0x80], ebp
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x120]
xor edx, dword [esp + 0x128]
xor eax, ebx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x124]
xor eax, dword [esp + 0x12c]
mov esi, edx
xor esi, dword [esp + 0x130]
xor esi, dword [esp + 0x138]
mov edx, dword [esp + 0x148]
xor esi, dword [esp + 0x38]
mov ebx, eax
xor ebx, dword [esp + 0x134]
mov eax, dword [esp + 0x14c]
xor ebx, dword [esp + 0x13c]
xor ebx, dword [esp + 0x140]
xor edx, dword [esp + 0x30]
xor eax, dword [esp + 0x158]
mov dword [esp + 0x88], esi
mov ebp, edx
xor ebp, dword [esp + 0x150]
mov edx, dword [esp + 0xac]
mov esi, eax
xor esi, dword [esp + 0x15c]
xor ebp, dword [esp + 0x160]
xor esi, dword [esp + 0x164]
xor ebp, dword [esp + 0x40]
xor esi, dword [esp + 0x48]
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x68], ebp
mov ebx, eax
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x68]
shld eax, edx, 1
shld edx, ebx, 1
xor eax, esi
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x28], eax
mov ebp, dword [esp + 0x28]
xor ebx, edx
xor ebp, ecx
xor edi, ebx
mov dword [esp + 0xcc], ebp
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
mov edx, dword [esp + 0x78]
mov dword [esp + 0xd0], edi
mov ebp, dword [esp + 0x8c]
mov edi, ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xa4], ebx
shld ecx, esi, 1
shld esi, edi, 1
xor edx, ecx
mov ecx, dword [esp + 0x88]
mov edi, dword [esp + 0xac]
xor eax, esi
mov esi, dword [esp + 0xa8]
mov dword [esp + 0xc8], edx
mov dword [esp + 0xa0], eax
mov ebx, ecx
shld ecx, ebp, 1
shld ebp, ebx, 1
mov eax, ecx
mov ebx, dword [esp + 0x6c]
mov ecx, ebp
mov ebp, dword [esp + 0x68]
xor esi, eax
xor ecx, edi
mov edi, dword [esp + 0x80]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x78]
mov eax, ebp
shld ebp, ebx, 1
shld ebx, eax, 1
xor ebx, dword [esp + 0x84]
xor edi, ebp
mov eax, ecx
mov ebp, ebx
mov ebx, dword [esp + 0x7c]
shld ecx, ebx, 1
shld ebx, eax, 1
mov eax, dword [esp + 0x88]
xor ebx, dword [esp + 0x8c]
xor eax, ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x18], eax
xor ecx, edx
mov edx, dword [esp + 0xec]
xor edx, dword [esp + 0xa0]
mov dword [esp + 0x168], ecx
mov eax, dword [esp + 0x168]
mov dword [esp + 0x16c], edx
mov edx, dword [esp + 0x16c]
mov ecx, eax
shrd eax, edx, 0x14
shrd edx, ecx, 0x14
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], edx
xor eax, dword [esp + 0x18]
mov edx, dword [esp + 0x158]
xor edx, ebx
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], edx
mov edx, dword [esp + 0x170]
mov ecx, dword [esp + 0x174]
mov eax, edx
shld edx, ecx, 0x14
shld ecx, eax, 0x14
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xc0]
xor ecx, dword [esp + 0x20]
xor edx, esi
mov dword [esp + 0x178], edx
mov eax, dword [esp + 0x178]
mov dword [esp + 0x17c], ecx
mov edx, dword [esp + 0x17c]
mov ecx, eax
shrd eax, edx, 3
shrd edx, ecx, 3
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0xb4], edx
xor eax, dword [esp + 0x18]
mov edx, dword [esp + 0x15c]
xor edx, ebx
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], edx
mov edx, dword [esp + 0x180]
mov ecx, dword [esp + 0x184]
mov eax, edx
shrd edx, ecx, 0x19
shrd ecx, eax, 0x19
mov dword [esp + 0x228], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x22c], ecx
xor edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x58]
xor ecx, dword [esp + 0xa4]
mov dword [esp + 0x188], edx
mov dword [esp + 0x18c], ecx
mov eax, dword [esp + 0x188]
mov edx, dword [esp + 0x18c]
mov ecx, eax
shld eax, edx, 0x12
shld edx, ecx, 0x12
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x154], edx
mov edx, dword [esp + 0x108]
xor edx, dword [esp + 0x20]
xor eax, esi
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], edx
mov edx, dword [esp + 0x190]
mov ecx, dword [esp + 0x194]
mov eax, edx
shrd edx, ecx, 2
shrd ecx, eax, 2
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x114]
xor ecx, dword [esp + 0x20]
xor edx, esi
mov dword [esp + 0x198], edx
mov eax, dword [esp + 0x198]
mov dword [esp + 0x19c], ecx
mov edx, dword [esp + 0x19c]
mov ecx, eax
shrd eax, edx, 0x15
shrd edx, ecx, 0x15
mov dword [esp + 8], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x134]
xor eax, edi
xor edx, ebp
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x1a0]
mov dword [esp + 0x1a4], edx
mov edx, dword [esp + 0x1a4]
mov ecx, eax
shld eax, edx, 0x19
shld edx, ecx, 0x19
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x160]
xor eax, dword [esp + 0x18]
mov dword [esp + 0xbc], edx
mov dword [esp + 0x1a8], eax
mov edx, dword [esp + 0x164]
xor edx, ebx
mov dword [esp + 0x1ac], edx
mov edx, dword [esp + 0x1a8]
mov ecx, dword [esp + 0x1ac]
mov eax, edx
shld edx, ecx, 8
shld ecx, eax, 8
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0xc4], ecx
mov ecx, dword [esp + 0x140]
xor edx, edi
xor ecx, ebp
mov dword [esp + 0x1b0], edx
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x1b4], ecx
mov edx, dword [esp + 0x1b4]
mov ecx, eax
shrd eax, edx, 8
shrd edx, ecx, 8
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x144], edx
xor eax, dword [esp + 0x28]
mov edx, dword [esp + 0x60]
xor edx, dword [esp + 0xa4]
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], edx
mov edx, dword [esp + 0x1b8]
mov ecx, dword [esp + 0x1bc]
mov eax, edx
shrd edx, ecx, 0x17
shrd ecx, eax, 0x17
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x148]
xor edx, dword [esp + 0x18]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14c]
mov dword [esp + 0x1c0], edx
xor ecx, ebx
mov eax, dword [esp + 0x1c0]
mov dword [esp + 0x1c4], ecx
mov edx, dword [esp + 0x1c4]
mov ecx, eax
shld eax, edx, 0x1b
shld edx, ecx, 0x1b
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x18]
xor eax, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
xor edx, ebx
mov dword [esp + 0x1c8], eax
mov ecx, dword [esp + 0x1c8]
mov dword [esp + 0x1cc], edx
mov ebx, dword [esp + 0x1cc]
mov edx, dword [esp + 0xfc]
mov eax, ecx
shld ecx, ebx, 0xe
shld ebx, eax, 0xe
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x100]
xor ebx, dword [esp + 0xa0]
xor edx, eax
mov dword [esp + 0x1d0], edx
mov edx, dword [esp + 0x1d0]
mov dword [esp + 0x1d4], ebx
mov ecx, dword [esp + 0x1d4]
mov ebx, edx
shld edx, ecx, 2
shld ecx, ebx, 2
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x128]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x12c]
xor edx, edi
xor ecx, ebp
mov dword [esp + 0x1d8], edx
mov dword [esp + 0x1dc], ecx
mov ecx, dword [esp + 0x1d8]
mov ebx, dword [esp + 0x1dc]
mov edx, ecx
shrd ecx, ebx, 9
shrd ebx, edx, 9
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0xf8]
xor ebx, dword [esp + 0xa0]
xor ecx, eax
mov dword [esp + 0x1e0], ecx
mov dword [esp + 0x1e4], ebx
mov ecx, dword [esp + 0x1e0]
mov edx, dword [esp + 0x1e4]
mov ebx, dword [esp + 0xd4]
xor ebx, dword [esp + 0x28]
mov eax, ecx
shrd ecx, edx, 0x13
shrd edx, eax, 0x13
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0xd8]
xor ecx, dword [esp + 0xa4]
mov dword [esp + 0x1e8], ebx
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x1e8]
mov dword [esp + 0x1ec], ecx
mov eax, dword [esp + 0x1ec]
mov ebx, edx
mov ecx, dword [esp + 0x120]
shrd edx, eax, 0x1c
shrd eax, ebx, 0x1c
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x124]
xor ecx, edi
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x1f0]
xor edx, ebp
xor ebp, dword [esp + 0x13c]
mov dword [esp + 0x1f4], edx
mov ebx, dword [esp + 0x1f4]
mov ecx, eax
mov edx, dword [esp + 0x138]
shld eax, ebx, 0x1c
shld ebx, ecx, 0x1c
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x118]
xor edx, edi
mov dword [esp + 0x1f8], edx
mov dword [esp + 0x1fc], ebp
mov edi, dword [esp + 0x1f8]
mov dword [esp + 0x9c], ebx
xor eax, esi
mov ebx, dword [esp + 0x1fc]
mov edx, dword [esp + 0x11c]
mov dword [esp + 0x200], eax
mov eax, dword [esp + 0x20]
mov ebp, edi
shld edi, ebx, 0x15
xor edx, eax
mov dword [esp + 0x204], edx
mov ecx, edi
mov edi, dword [esp + 0x200]
shld ebx, ebp, 0x15
mov ebp, dword [esp + 0x204]
xor esi, dword [esp + 0x10c]
mov edx, edi
shld edi, ebp, 0xf
shld ebp, edx, 0xf
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0xf0]
mov dword [esp + 0x1c], ebp
xor edi, dword [esp + 0xc8]
mov ebp, dword [esp + 0xf4]
xor ebp, dword [esp + 0xa0]
mov dword [esp + 0x210], esi
mov esi, dword [esp + 0x110]
mov dword [esp + 0x208], edi
mov edi, dword [esp + 0x208]
mov dword [esp + 0x20c], ebp
mov ebp, dword [esp + 0x20c]
xor esi, eax
mov eax, dword [esp + 0x210]
mov dword [esp + 0x214], esi
mov edx, edi
mov esi, dword [esp + 0xa4]
xor esi, dword [esp + 0xe0]
shld edi, ebp, 0xa
shld ebp, edx, 0xa
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x214]
mov dword [esp + 0x24], ebp
mov ebp, eax
mov edx, dword [esp + 0x28]
xor edx, dword [esp + 0xdc]
mov dword [esp + 0x21c], esi
shld eax, edi, 6
shld edi, ebp, 6
mov ebp, dword [esp + 0xc8]
xor ebp, dword [esp + 0xe4]
mov dword [esp + 0x218], edx
mov dword [esp + 0x60], eax
mov edx, dword [esp + 0x21c]
mov eax, dword [esp + 0x218]
mov dword [esp + 0x64], edi
mov dword [esp + 0x220], ebp
mov esi, dword [esp + 0xa0]
xor esi, dword [esp + 0xe8]
mov edi, eax
shld eax, edx, 3
shld edx, edi, 3
mov dword [esp + 0x224], esi
mov esi, dword [esp + 0x220]
mov edi, dword [esp + 0x224]
mov ebp, esi
shld esi, edi, 1
shld edi, ebp, 1
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 8]
not esi
not edi
and esi, ebx
mov ebp, edi
mov edi, dword [esp]
mov dword [esp + 0xa0], esi
and ebp, ecx
mov esi, dword [esp + 0xa0]
xor ebp, edi
xor esi, dword [esp + 4]
mov edi, ecx
not edi
mov dword [esp + 0xe4], ebp
mov ebp, edi
and ebp, dword [esp + 0x70]
mov edi, dword [esp + 8]
mov dword [esp + 0xe8], esi
mov esi, ebx
not esi
and esi, dword [esp + 0x74]
xor ebp, edi
mov edi, dword [esp + 0x70]
mov dword [esp + 0x104], ebp
mov ebp, dword [esp + 0xcc]
mov dword [esp + 0xa0], esi
mov esi, dword [esp + 0xa0]
not edi
xor esi, dword [esp + 0xc]
and edi, ebp
not ebp
xor edi, ecx
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x120], edi
mov dword [esp + 0x108], esi
mov esi, dword [esp + 0x74]
not ecx
and ecx, dword [esp + 4]
not esi
and esi, dword [esp + 0xd0]
xor esi, ebx
mov ebx, dword [esp]
mov dword [esp + 0x124], esi
and ebp, ebx
mov edi, ebp
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
xor edi, ebp
mov ebp, dword [esp + 0x30]
xor ecx, esi
mov dword [esp + 0x148], edi
mov edi, dword [esp + 0x34]
mov dword [esp + 0x14c], ecx
mov ebx, ebp
not ebx
mov ecx, edi
mov esi, ebx
mov ebx, dword [esp + 0x98]
not ecx
and esi, eax
mov edi, ecx
mov ecx, edx
mov ebp, esi
mov esi, dword [esp + 0x9c]
and edi, edx
xor ebp, ebx
mov ebx, eax
not ecx
mov dword [esp + 0xd4], ebp
mov ebp, dword [esp + 0x50]
not ebx
xor esi, edi
mov edi, ebx
and ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0xd8], esi
and edi, ebp
mov ebp, dword [esp + 0x50]
mov esi, edi
mov edi, dword [esp + 0x34]
xor esi, ebx
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0xb0]
mov ebx, ebp
xor edi, ecx
mov ecx, dword [esp + 0x54]
not ebx
mov dword [esp + 0xec], edi
mov edi, dword [esp + 0xb4]
and ebx, esi
not ecx
xor ebx, eax
and ecx, edi
mov dword [esp + 0x10c], ebx
mov ebx, dword [esp + 0x98]
xor ecx, edx
mov edx, esi
mov eax, edi
not edx
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x110], ecx
mov ecx, edx
not eax
mov edx, dword [esp + 0x50]
and ecx, ebx
mov edi, eax
mov ebp, ecx
mov ecx, dword [esp + 0x54]
and edi, esi
xor ebp, edx
mov eax, edi
mov edx, ebx
mov ebx, dword [esp + 0x30]
not edx
mov dword [esp + 0x128], ebp
xor eax, ecx
mov edi, edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x12c], eax
mov eax, esi
mov esi, dword [esp + 0x34]
and edi, ebx
not eax
mov ecx, eax
mov ebp, edi
mov edi, dword [esp + 0xb4]
and ecx, esi
xor ebp, edx
mov eax, ecx
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x60]
xor eax, edi
mov ebx, dword [esp + 0xb8]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x64]
mov edx, ebp
not edx
not eax
mov ebp, edx
mov edx, ebx
mov ecx, eax
mov eax, dword [esp + 0xbc]
and ebp, ebx
mov esi, ebp
mov ebx, dword [esp + 0xc4]
not edx
xor esi, edi
mov edi, dword [esp + 0x60]
and ecx, eax
xor ecx, dword [esp + 0x2c]
mov dword [esp + 0xdc], esi
not eax
mov esi, edx
mov edx, dword [esp + 0x64]
mov ebp, eax
and ebp, ebx
mov dword [esp + 0xe0], ecx
mov ecx, dword [esp + 0xc0]
xor edx, ebp
mov dword [esp + 0xf4], edx
and esi, ecx
mov edx, ecx
mov ecx, dword [esp + 0x150]
mov eax, esi
not edx
xor eax, edi
mov ebp, edx
mov edi, dword [esp + 0xb8]
and ebp, ecx
mov dword [esp + 0xf0], eax
mov eax, ebx
mov ebx, dword [esp + 0x154]
not eax
mov esi, ebp
mov ebp, dword [esp + 0xbc]
mov edx, eax
xor esi, edi
mov dword [esp + 0xb8], esi
mov esi, dword [esp + 0x28]
and edx, ebx
mov eax, ebx
xor edx, ebp
not eax
and eax, dword [esp + 0x2c]
mov dword [esp + 0x114], edx
mov edx, ecx
mov ebp, dword [esp + 0xc4]
not edx
mov edi, edx
and edi, esi
mov esi, dword [esp + 0x28]
xor eax, ebp
mov edx, edi
mov edi, dword [esp + 0xc0]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x2c]
xor edx, edi
mov edi, dword [esp + 0x64]
mov dword [esp + 0x130], edx
mov edx, esi
mov esi, dword [esp + 0x60]
not edx
not eax
mov ebp, edx
and eax, edi
and ebp, esi
xor eax, ebx
mov edx, ebp
xor edx, ecx
mov dword [esp + 0x150], edx
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x5c]
mov edx, eax
mov eax, dword [esp + 0x10]
not edx
mov ebp, ecx
mov ecx, dword [esp + 0x24]
mov edi, edx
not ebp
and ebp, dword [esp + 0x24]
and edi, ebx
xor ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov esi, edi
xor esi, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x50], esi
mov dword [esp + 0x60], ebp
mov ebp, ecx
mov ecx, dword [esp + 0x1c]
mov edx, eax
mov eax, dword [esp + 0x58]
not ebp
not edx
and ebp, dword [esp + 0x1c]
mov edi, edx
xor ebp, dword [esp + 0x5c]
and edi, ebx
mov ebx, dword [esp + 0x144]
mov esi, edi
mov edi, dword [esp + 0x20]
xor esi, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x98], esi
mov esi, ecx
mov ecx, dword [esp + 0x140]
mov dword [esp + 0xf8], ebp
not esi
mov edx, eax
and esi, ebx
mov eax, ebx
not edx
not eax
mov ebp, edx
mov edx, ecx
and ebp, ecx
not edx
xor edi, ebp
xor esi, dword [esp + 0x24]
and eax, dword [esp + 0x14]
xor eax, dword [esp + 0x1c]
mov dword [esp + 0x118], edi
mov ebp, edx
mov edi, dword [esp + 0x18]
mov dword [esp + 0x11c], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x10]
and ebp, esi
xor edi, ebp
mov ebp, dword [esp + 0x14]
mov edx, eax
mov dword [esp + 0x138], edi
mov esi, dword [esp + 0x58]
not edx
mov edi, dword [esp + 0x5c]
mov eax, ebp
not eax
and edx, esi
mov esi, dword [esp + 0x22c]
and eax, edi
xor edx, ecx
mov ecx, dword [esp + 0x4c]
xor eax, ebx
mov dword [esp + 0x160], edx
mov ebx, dword [esp + 0x228]
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x48]
mov ebp, ecx
mov ecx, dword [esp + 0x90]
not ebp
mov edx, eax
and ebp, esi
xor ebp, dword [esp + 0x94]
not edx
mov edi, edx
mov edx, ebx
and edi, ebx
not edx
mov eax, edi
mov edi, dword [esp + 0x38]
mov dword [esp + 0x58], ebp
xor eax, ecx
mov ebp, edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov eax, esi
not eax
and eax, dword [esp + 0x3c]
and ebp, edi
xor eax, dword [esp + 0x4c]
mov ecx, ebp
mov edi, dword [esp + 0x40]
xor ecx, edx
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x38]
not ebp
and ebp, dword [esp + 0x44]
mov edx, eax
not edx
mov ecx, edx
xor ebp, esi
and ecx, edi
mov dword [esp + 0xc0], ebp
mov edi, dword [esp + 0x38]
mov eax, ecx
mov ecx, dword [esp + 0x90]
mov ebp, dword [esp + 0x3c]
xor eax, ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x40]
mov edx, eax
mov eax, ebx
mov ebx, dword [esp + 0x94]
not edx
not eax
mov esi, edx
mov edx, ecx
and esi, ecx
and eax, ebx
not edx
xor esi, edi
xor eax, ebp
mov dword [esp + 0x38], esi
mov dword [esp + 0x140], eax
mov eax, ebx
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x40]
mov esi, edx
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x44]
not eax
mov edx, dword [esp]
and esi, ecx
mov ecx, dword [esp + 0xcc]
xor esi, edi
and eax, ebx
mov ebx, dword [esp + 0xd0]
xor eax, ebp
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x230]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 4]
mov ebp, edx
not ebp
xor ebx, dword [esi + 4]
xor ecx, dword [esi]
mov edi, eax
and ebp, dword [esp + 8]
mov eax, dword [esp + 0xc]
not edi
add esi, 8
mov dword [esp + 0x230], esi
and eax, edi
mov edi, ebx
xor ecx, ebp
xor edi, eax
cmp esi, dword [esp + 0x234]
jne 0x50f876
mov esi, dword [esp + 0x250]
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0xdc]
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0x50]
mov dword [esi], ecx
mov ecx, dword [esp + 0xd4]
mov dword [esi + 4], edi
mov dword [esi + 0x2c], ebx
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x58]
mov dword [esi + 0x28], ecx
mov dword [esi + 0x50], ebp
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0xe4]
mov dword [esi + 0x54], edx
mov dword [esi + 0x78], eax
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0x70]
mov dword [esi + 0x7c], edi
mov dword [esi + 0xa0], ecx
mov edi, dword [esp + 0xec]
mov ecx, dword [esp + 0xf0]
mov dword [esi + 0xa4], ebx
mov dword [esi + 8], ebp
mov ebx, dword [esp + 0xf4]
mov ebp, dword [esp + 0x98]
mov dword [esi + 0xc], edx
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edi
mov dword [esi + 0x58], ecx
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x80], ebp
mov edx, dword [esp + 0xf8]
mov eax, dword [esp + 0xfc]
mov edi, dword [esp + 0x100]
mov ecx, dword [esp + 0x104]
mov ebx, dword [esp + 0x108]
mov ebp, dword [esp + 0x10c]
mov dword [esi + 0x84], edx
mov dword [esi + 0xa8], eax
mov edx, dword [esp + 0x110]
mov eax, dword [esp + 0xb8]
mov dword [esi + 0xac], edi
mov dword [esi + 0x10], ecx
mov edi, dword [esp + 0x114]
mov ecx, dword [esp + 0x118]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x38], ebp
mov dword [esi + 0x3c], edx
mov ebp, dword [esp + 0xb0]
mov edx, dword [esp + 0xc0]
mov dword [esi + 0x60], eax
mov dword [esi + 0x64], edi
mov eax, dword [esp + 0x120]
mov edi, dword [esp + 0x124]
mov dword [esi + 0x88], ecx
mov ebx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x128]
mov dword [esi + 0xb0], ebp
mov dword [esi + 0xb4], edx
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edi
mov dword [esi + 0x40], ecx
mov dword [esi + 0x8c], ebx
mov ebx, dword [esp + 0x12c]
mov ebp, dword [esp + 0x130]
mov edx, dword [esp + 0x134]
mov eax, dword [esp + 0x138]
mov edi, dword [esp + 0x13c]
mov ecx, dword [esp + 0x38]
mov dword [esi + 0x44], ebx
mov dword [esi + 0x68], ebp
mov ebx, dword [esp + 0x140]
mov ebp, dword [esp + 0x148]
mov dword [esi + 0x6c], edx
mov dword [esi + 0x90], eax
mov edx, dword [esp + 0x14c]
mov eax, dword [esp + 0x30]
mov dword [esi + 0x94], edi
mov dword [esi + 0xb8], ecx
mov dword [esi + 0xbc], ebx
mov dword [esi + 0x20], ebp
mov dword [esi + 0x24], edx
mov dword [esi + 0x48], eax
mov edi, dword [esp + 0x158]
mov ecx, dword [esp + 0x150]
mov ebx, dword [esp + 0x15c]
mov ebp, dword [esp + 0x160]
mov edx, dword [esp + 0x164]
mov eax, dword [esp + 0x40]
mov dword [esi + 0x4c], edi
mov dword [esi + 0x70], ecx
mov dword [esi + 0x74], ebx
mov dword [esi + 0x98], ebp
mov dword [esi + 0x9c], edx
mov dword [esi + 0xc0], eax
mov edi, dword [esp + 0x48]
mov dword [esi + 0xc4], edi
add esp, 0x23c
pop ebx
pop esi
pop edi
pop ebp
ret