Function at 0x45e700
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push 0
push 0
mov eax, dword [esp + 0x20]
cmp eax, 2
jb 0x45e712
xor eax, eax
mov ebx, dword [eax*4 + 0x4ef090]
mov dword [esp], ebx
mov eax, dword [eax*4 + 0x4ef098]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x18]
lea edi, [esi + 0x200]
mov eax, 5
cmp dword [esp + 0x24], 0
je 0x45e741
add eax, 3
push eax
mov eax, dword [esi]
mov ebx, dword [esi + 0x80]
mov ecx, dword [esi + 0x100]
mov edx, dword [esi + 0x180]
mov dword [edi], eax
mov dword [edi + 4], ebx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
mov eax, dword [esi + 4]
mov ebx, dword [esi + 0x84]
mov ecx, dword [esi + 0x104]
mov edx, dword [esi + 0x184]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], ecx
mov dword [edi + 0x1c], edx
mov eax, dword [esi + 8]
mov ebx, dword [esi + 0x88]
mov ecx, dword [esi + 0x108]
mov edx, dword [esi + 0x188]
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ebx
mov dword [edi + 0x28], ecx
mov dword [edi + 0x2c], edx
mov eax, dword [esi + 0xc]
mov ebx, dword [esi + 0x8c]
mov ecx, dword [esi + 0x10c]
mov edx, dword [esi + 0x18c]
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], ebx
mov dword [edi + 0x38], ecx
mov dword [edi + 0x3c], edx
add esi, 0x10
add edi, 0x40
sub dword [esp], 1
jne 0x45e741
pop eax
cmp dword [esp + 0x24], 0
je 0x45ee9f
mov esi, dword [esp + 0x18]
movq mm6, qword [0x4ef020]
movq mm7, qword [0x4ef030]
movq mm0, qword [esi + 0x200]
movq mm1, qword [esi + 0x208]
movq mm2, mm0
movq mm3, mm1
pxor mm0, mm6
pxor mm1, mm6
pxor mm2, mm7
pxor mm3, mm7
movq qword [esi + 0x400], mm0
movq qword [esi + 0x408], mm1
movq qword [esi + 0x500], mm2
movq qword [esi + 0x508], mm3
movq mm0, qword [esi + 0x210]
movq mm1, qword [esi + 0x218]
movq mm2, mm0
movq mm3, mm1
pxor mm0, mm6
pxor mm1, mm6
pxor mm2, mm7
pxor mm3, mm7
movq qword [esi + 0x410], mm0
movq qword [esi + 0x418], mm1
movq qword [esi + 0x510], mm2
movq qword [esi + 0x518], mm3
movq mm0, qword [esi + 0x220]
movq mm1, qword [esi + 0x228]
movq mm2, mm0
movq mm3, mm1
pxor mm0, mm6
pxor mm1, mm6
pxor mm2, mm7
pxor mm3, mm7
movq qword [esi + 0x420], mm0
movq qword [esi + 0x428], mm1
movq qword [esi + 0x520], mm2
movq qword [esi + 0x528], mm3
movq mm0, qword [esi + 0x230]
movq mm1, qword [esi + 0x238]
movq mm2, mm0
movq mm3, mm1
pxor mm0, mm6
pxor mm1, mm6
pxor mm2, mm7
pxor mm3, mm7
movq qword [esi + 0x430], mm0
movq qword [esi + 0x438], mm1
movq qword [esi + 0x530], mm2
movq qword [esi + 0x538], mm3
movq mm0, qword [esi + 0x240]
movq mm1, qword [esi + 0x248]
movq mm2, mm0
movq mm3, mm1
pxor mm0, mm6
pxor mm1, mm6
pxor mm2, mm7
pxor mm3, mm7
movq qword [esi + 0x440], mm0
movq qword [esi + 0x448], mm1
movq qword [esi + 0x540], mm2
movq qword [esi + 0x548], mm3
movq mm0, qword [esi + 0x250]
movq mm1, qword [esi + 0x258]
movq mm2, mm0
movq mm3, mm1
pxor mm0, mm6
pxor mm1, mm6
pxor mm2, mm7
pxor mm3, mm7
movq qword [esi + 0x450], mm0
movq qword [esi + 0x458], mm1
movq qword [esi + 0x550], mm2
movq qword [esi + 0x558], mm3
movq mm0, qword [esi + 0x260]
movq mm1, qword [esi + 0x268]
movq mm2, mm0
movq mm3, mm1
pxor mm0, mm6
pxor mm1, mm6
pxor mm2, mm7
pxor mm3, mm7
movq qword [esi + 0x460], mm0
movq qword [esi + 0x468], mm1
movq qword [esi + 0x560], mm2
movq qword [esi + 0x568], mm3
movq mm0, qword [esi + 0x270]
movq mm1, qword [esi + 0x278]
movq mm2, mm0
movq mm3, mm1
pxor mm0, mm6
pxor mm1, mm6
pxor mm2, mm7
pxor mm3, mm7
movq qword [esi + 0x470], mm0
movq qword [esi + 0x478], mm1
movq qword [esi + 0x570], mm2
movq qword [esi + 0x578], mm3
movq mm0, qword [esi + 0x280]
movq mm1, qword [esi + 0x288]
movq mm2, mm0
movq mm3, mm1
pxor mm0, mm6
pxor mm1, mm6
pxor mm2, mm7
pxor mm3, mm7
movq qword [esi + 0x480], mm0
movq qword [esi + 0x488], mm1
movq qword [esi + 0x580], mm2
movq qword [esi + 0x588], mm3
movq mm0, qword [esi + 0x290]
movq mm1, qword [esi + 0x298]
movq mm2, mm0
movq mm3, mm1
pxor mm0, mm6
pxor mm1, mm6
pxor mm2, mm7
pxor mm3, mm7
movq qword [esi + 0x490], mm0
movq qword [esi + 0x498], mm1
movq qword [esi + 0x590], mm2
movq qword [esi + 0x598], mm3
movq mm0, qword [esi + 0x2a0]
movq mm1, qword [esi + 0x2a8]
movq mm2, mm0
movq mm3, mm1
pxor mm0, mm6
pxor mm1, mm6
pxor mm2, mm7
pxor mm3, mm7
movq qword [esi + 0x4a0], mm0
movq qword [esi + 0x4a8], mm1
movq qword [esi + 0x5a0], mm2
movq qword [esi + 0x5a8], mm3
movq mm0, qword [esi + 0x2b0]
movq mm1, qword [esi + 0x2b8]
movq mm2, mm0
movq mm3, mm1
pxor mm0, mm6
pxor mm1, mm6
pxor mm2, mm7
pxor mm3, mm7
movq qword [esi + 0x4b0], mm0
movq qword [esi + 0x4b8], mm1
movq qword [esi + 0x5b0], mm2
movq qword [esi + 0x5b8], mm3
movq mm0, qword [esi + 0x2c0]
movq mm1, qword [esi + 0x2c8]
movq mm2, mm0
movq mm3, mm1
pxor mm0, mm6
pxor mm1, mm6
pxor mm2, mm7
pxor mm3, mm7
movq qword [esi + 0x4c0], mm0
movq qword [esi + 0x4c8], mm1
movq qword [esi + 0x5c0], mm2
movq qword [esi + 0x5c8], mm3
movq mm0, qword [esi + 0x2d0]
movq mm1, qword [esi + 0x2d8]
movq mm2, mm0
movq mm3, mm1
pxor mm0, mm6
pxor mm1, mm6
pxor mm2, mm7
pxor mm3, mm7
movq qword [esi + 0x4d0], mm0
movq qword [esi + 0x4d8], mm1
movq qword [esi + 0x5d0], mm2
movq qword [esi + 0x5d8], mm3
movq mm0, qword [esi + 0x2e0]
movq mm1, qword [esi + 0x2e8]
movq mm2, mm0
movq mm3, mm1
pxor mm0, mm6
pxor mm1, mm6
pxor mm2, mm7
pxor mm3, mm7
movq qword [esi + 0x4e0], mm0
movq qword [esi + 0x4e8], mm1
movq qword [esi + 0x5e0], mm2
movq qword [esi + 0x5e8], mm3
movq mm0, qword [esi + 0x2f0]
movq mm1, qword [esi + 0x2f8]
movq mm2, mm0
movq mm3, mm1
pxor mm0, mm6
pxor mm1, mm6
pxor mm2, mm7
pxor mm3, mm7
movq qword [esi + 0x4f0], mm0
movq qword [esi + 0x4f8], mm1
movq qword [esi + 0x5f0], mm2
movq qword [esi + 0x5f8], mm3
mov esi, dword [esp + 0x18]
mov edi, 0x4ef040
lea ecx, [esi + 0x680]
lea esi, [esi + 0x480]
call dword [esp + 4]
mov esi, dword [esp + 0x18]
movq qword [esi + 0x200], mm0
movq qword [esi + 0x210], mm1
movq qword [esi + 0x220], mm2
movq qword [esi + 0x230], mm3
movq qword [esi + 0x240], mm4
mov edi, 0x4ef040
lea ecx, [esi + 0x680]
lea esi, [esi + 0x580]
call dword [esp + 4]
mov esi, dword [esp + 0x18]
movq qword [esi + 0x250], mm0
movq qword [esi + 0x260], mm1
movq qword [esi + 0x270], mm2
movq qword [esi + 0x280], mm3
movq qword [esi + 0x290], mm4
lea edi, [esi + 0x200]
lea ecx, [esi + 0x680]
lea esi, [esi + 0x380]
call dword [esp + 4]
mov esi, dword [esp + 0x18]
movq qword [esi + 0x400], mm0
movq qword [esi + 0x410], mm1
movq qword [esi + 0x420], mm2
movq qword [esi + 0x430], mm3
movq qword [esi + 0x440], mm4
movq mm0, qword [section.sect_4]
movq qword [esi + 0x450], mm0
pxor mm1, mm1
movq qword [esi + 0x460], mm1
movq qword [esi + 0x470], mm1
movq qword [esi + 0x480], mm1
movq qword [esi + 0x490], mm1
movq qword [esi + 0x4a0], mm1
movq qword [esi + 0x4b0], mm1
movq qword [esi + 0x4c0], mm1
movq qword [esi + 0x4d0], mm1
movq qword [esi + 0x4e0], mm1
movq mm2, qword [0x4ef010]
movq qword [esi + 0x4f0], mm2
lea edi, [esi + 0x250]
lea ecx, [esi + 0x680]
lea esi, [esi + 0x480]
call dword [esp + 4]
mov esi, dword [esp + 0x18]
movq qword [esi + 0x2a0], mm0
movq qword [esi + 0x2b0], mm1
movq qword [esi + 0x2c0], mm2
movq qword [esi + 0x2d0], mm3
movq qword [esi + 0x2e0], mm4
movq qword [esi + 0x2f0], mm0
movq qword [esi + 0x300], mm1
movq qword [esi + 0x310], mm2
movq qword [esi + 0x320], mm3
movq qword [esi + 0x330], mm4
mov esi, dword [esp + 0x18]
mov edi, 0x4ef048
lea ecx, [esi + 0x688]
lea esi, [esi + 0x488]
call dword [esp + 4]
mov esi, dword [esp + 0x18]
movq qword [esi + 0x208], mm0
movq qword [esi + 0x218], mm1
movq qword [esi + 0x228], mm2
movq qword [esi + 0x238], mm3
movq qword [esi + 0x248], mm4
mov edi, 0x4ef048
lea ecx, [esi + 0x688]
lea esi, [esi + 0x588]
call dword [esp + 4]
mov esi, dword [esp + 0x18]
movq qword [esi + 0x258], mm0
movq qword [esi + 0x268], mm1
movq qword [esi + 0x278], mm2
movq qword [esi + 0x288], mm3
movq qword [esi + 0x298], mm4
lea edi, [esi + 0x208]
lea ecx, [esi + 0x688]
lea esi, [esi + 0x388]
call dword [esp + 4]
mov esi, dword [esp + 0x18]
movq qword [esi + 0x408], mm0
movq qword [esi + 0x418], mm1
movq qword [esi + 0x428], mm2
movq qword [esi + 0x438], mm3
movq qword [esi + 0x448], mm4
movq mm0, qword [section.sect_4]
movq qword [esi + 0x458], mm0
pxor mm1, mm1
movq qword [esi + 0x468], mm1
movq qword [esi + 0x478], mm1
movq qword [esi + 0x488], mm1
movq qword [esi + 0x498], mm1
movq qword [esi + 0x4a8], mm1
movq qword [esi + 0x4b8], mm1
movq qword [esi + 0x4c8], mm1
movq qword [esi + 0x4d8], mm1
movq qword [esi + 0x4e8], mm1
movq mm2, qword [0x4ef010]
movq qword [esi + 0x4f8], mm2
lea edi, [esi + 0x258]
lea ecx, [esi + 0x688]
lea esi, [esi + 0x488]
call dword [esp + 4]
mov esi, dword [esp + 0x18]
movq qword [esi + 0x2a8], mm0
movq qword [esi + 0x2b8], mm1
movq qword [esi + 0x2c8], mm2
movq qword [esi + 0x2d8], mm3
movq qword [esi + 0x2e8], mm4
movq qword [esi + 0x2f8], mm0
movq qword [esi + 0x308], mm1
movq qword [esi + 0x318], mm2
movq qword [esi + 0x328], mm3
movq qword [esi + 0x338], mm4
mov esi, dword [esp + 0x18]
movq mm0, qword [section.sect_4]
movq qword [esi + 0x450], mm0
movq qword [esi + 0x458], mm0
movq qword [esi + 0x550], mm0
movq qword [esi + 0x558], mm0
pxor mm1, mm1
movq qword [esi + 0x460], mm1
movq qword [esi + 0x468], mm1
movq qword [esi + 0x560], mm1
movq qword [esi + 0x568], mm1
movq qword [esi + 0x470], mm1
movq qword [esi + 0x478], mm1
movq qword [esi + 0x570], mm1
movq qword [esi + 0x578], mm1
movq qword [esi + 0x480], mm1
movq qword [esi + 0x488], mm1
movq qword [esi + 0x580], mm1
movq qword [esi + 0x588], mm1
movq qword [esi + 0x490], mm1
movq qword [esi + 0x498], mm1
movq qword [esi + 0x590], mm1
movq qword [esi + 0x598], mm1
movq qword [esi + 0x4a0], mm1
movq qword [esi + 0x4a8], mm1
movq qword [esi + 0x5a0], mm1
movq qword [esi + 0x5a8], mm1
movq qword [esi + 0x4b0], mm1
movq qword [esi + 0x4b8], mm1
movq qword [esi + 0x5b0], mm1
movq qword [esi + 0x5b8], mm1
movq qword [esi + 0x4c0], mm1
movq qword [esi + 0x4c8], mm1
movq qword [esi + 0x5c0], mm1
movq qword [esi + 0x5c8], mm1
movq qword [esi + 0x4d0], mm1
movq qword [esi + 0x4d8], mm1
movq qword [esi + 0x5d0], mm1
movq qword [esi + 0x5d8], mm1
movq qword [esi + 0x4e0], mm1
movq qword [esi + 0x4e8], mm1
movq qword [esi + 0x5e0], mm1
movq qword [esi + 0x5e8], mm1
movq mm2, qword [0x4ef010]
movq qword [esi + 0x4f0], mm2
movq qword [esi + 0x4f8], mm2
movq qword [esi + 0x5f0], mm2
movq qword [esi + 0x5f8], mm2
xor ebx, ebx
mov edx, dword [esp]
lea ecx, [ecx]
mov esi, dword [esp + 0x18]
movq mm0, qword [esi + 0x2a0]
movq mm1, qword [esi + 0x2b0]
movq mm2, qword [esi + 0x2c0]
movq mm3, qword [esi + 0x2d0]
movq mm4, qword [esi + 0x2e0]
movq qword [esi + 0x400], mm0
movq qword [esi + 0x410], mm1
movq qword [esi + 0x420], mm2
movq qword [esi + 0x430], mm3
movq qword [esi + 0x440], mm4
lea edi, [esi + 0x200]
lea ecx, [esi + 0x680]
lea esi, [esi + 0x480]
call edx
mov esi, dword [esp + 0x18]
movq qword [esi + 0x500], mm0
movq qword [esi + 0x510], mm1
movq qword [esi + 0x520], mm2
movq qword [esi + 0x530], mm3
movq qword [esi + 0x540], mm4
lea edi, [esi + 0x250]
lea ecx, [esi + 0x680]
lea esi, [esi + 0x580]
call edx
mov esi, dword [esp + 0x18]
movq qword [esi + 0x2a0], mm0
movq qword [esi + 0x2b0], mm1
movq qword [esi + 0x2c0], mm2
movq qword [esi + 0x2d0], mm3
movq qword [esi + 0x2e0], mm4
pxor mm0, qword [esi + 0x2f0]
pxor mm1, qword [esi + 0x300]
pxor mm2, qword [esi + 0x310]
pxor mm3, qword [esi + 0x320]
pxor mm4, qword [esi + 0x330]
movq qword [esi + 0x2f0], mm0
movq qword [esi + 0x300], mm1
movq qword [esi + 0x310], mm2
movq qword [esi + 0x320], mm3
movq qword [esi + 0x330], mm4
mov esi, dword [esp + 0x18]
movq mm0, qword [esi + 0x2a8]
movq mm1, qword [esi + 0x2b8]
movq mm2, qword [esi + 0x2c8]
movq mm3, qword [esi + 0x2d8]
movq mm4, qword [esi + 0x2e8]
movq qword [esi + 0x408], mm0
movq qword [esi + 0x418], mm1
movq qword [esi + 0x428], mm2
movq qword [esi + 0x438], mm3
movq qword [esi + 0x448], mm4
lea edi, [esi + 0x208]
lea ecx, [esi + 0x688]
lea esi, [esi + 0x488]
call edx
mov esi, dword [esp + 0x18]
movq qword [esi + 0x508], mm0
movq qword [esi + 0x518], mm1
movq qword [esi + 0x528], mm2
movq qword [esi + 0x538], mm3
movq qword [esi + 0x548], mm4
lea edi, [esi + 0x258]
lea ecx, [esi + 0x688]
lea esi, [esi + 0x588]
call edx
mov esi, dword [esp + 0x18]
movq qword [esi + 0x2a8], mm0
movq qword [esi + 0x2b8], mm1
movq qword [esi + 0x2c8], mm2
movq qword [esi + 0x2d8], mm3
movq qword [esi + 0x2e8], mm4
pxor mm0, qword [esi + 0x2f8]
pxor mm1, qword [esi + 0x308]
pxor mm2, qword [esi + 0x318]
pxor mm3, qword [esi + 0x328]
pxor mm4, qword [esi + 0x338]
movq qword [esi + 0x2f8], mm0
movq qword [esi + 0x308], mm1
movq qword [esi + 0x318], mm2
movq qword [esi + 0x328], mm3
movq qword [esi + 0x338], mm4
add ebx, 1
cmp ebx, dword [esp + 0x1c]
jb 0x45eff0
mov esi, dword [esp + 0x18]
lea edi, [esi + 0x200]
push 5
mov eax, dword [edi]
mov ebx, dword [edi + 4]
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xc]
mov dword [esi], eax
mov dword [esi + 0x80], ebx
mov dword [esi + 0x100], ecx
mov dword [esi + 0x180], edx
mov eax, dword [edi + 0x10]
mov ebx, dword [edi + 0x14]
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
mov dword [esi + 4], eax
mov dword [esi + 0x84], ebx
mov dword [esi + 0x104], ecx
mov dword [esi + 0x184], edx
mov eax, dword [edi + 0x20]
mov ebx, dword [edi + 0x24]
mov ecx, dword [edi + 0x28]
mov edx, dword [edi + 0x2c]
mov dword [esi + 8], eax
mov dword [esi + 0x88], ebx
mov dword [esi + 0x108], ecx
mov dword [esi + 0x188], edx
mov eax, dword [edi + 0x30]
mov ebx, dword [edi + 0x34]
mov ecx, dword [edi + 0x38]
mov edx, dword [edi + 0x3c]
mov dword [esi + 0xc], eax
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x10c], ecx
mov dword [esi + 0x18c], edx
add esi, 0x10
add edi, 0x40
sub dword [esp], 1
jne 0x45f215
pop eax
pop ecx
pop eax
pop edi
pop esi
pop ebx
emms
ret 0x10