Function at 0x40fa73
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
mov esi, edx
mov edx, dword [esi]
push edi
mov edi, edx
ror edi, 8
and edi, 0xff00ff00
rol edx, 8
and edx, 0xff00ff
or edi, edx
mov edx, dword [esi + 4]
xor edi, dword [ecx]
mov ebx, edx
ror ebx, 8
and ebx, 0xff00ff00
rol edx, 8
and edx, 0xff00ff
or ebx, edx
mov edx, dword [esi + 8]
xor ebx, dword [ecx + 4]
mov dword [ebp - 0x10], edi
mov dword [ebp - 4], ebx
mov ebx, edx
ror ebx, 8
and ebx, 0xff00ff00
rol edx, 8
and edx, 0xff00ff
or ebx, edx
mov edx, dword [esi + 0xc]
xor ebx, dword [ecx + 8]
mov esi, edx
ror esi, 8
and esi, 0xff00ff00
rol edx, 8
and edx, 0xff00ff
or esi, edx
xor esi, dword [ecx + 0xc]
mov edx, ebx
mov dword [ebp - 8], esi
mov esi, dword [ebp - 4]
sar esi, 0x10
and esi, 0xff
mov esi, dword [eax + esi*4 + 4]
sar edx, 8
and edx, 0xff
mov edx, dword [eax + edx*4 + 4]
ror edx, 0x10
ror esi, 8
xor edx, esi
mov esi, dword [ebp - 8]
and esi, 0xff
mov esi, dword [eax + esi*4 + 4]
rol esi, 8
xor edx, esi
mov dword [ebp - 0x14], ebx
mov esi, edi
sar esi, 0x18
and esi, 0xff
xor edx, dword [eax + esi*4 + 4]
mov esi, dword [ebp - 8]
xor edx, dword [ecx + 0x10]
sar ebx, 0x10
sar esi, 8
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
and esi, 0xff
mov esi, dword [eax + esi*4 + 4]
ror esi, 0x10
ror ebx, 8
xor esi, ebx
mov ebx, edi
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
rol ebx, 8
xor esi, ebx
mov ebx, dword [ebp - 4]
sar ebx, 0x18
and ebx, 0xff
xor esi, dword [eax + ebx*4 + 4]
xor esi, dword [ecx + 0x14]
mov ebx, dword [ebp - 8]
sar ebx, 0x10
sar edi, 8
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
and edi, 0xff
mov edi, dword [eax + edi*4 + 4]
ror ebx, 8
ror edi, 0x10
xor ebx, edi
mov edi, dword [ebp - 4]
and edi, 0xff
mov edi, dword [eax + edi*4 + 4]
rol edi, 8
xor ebx, edi
mov edi, dword [ebp - 0x14]
sar edi, 0x18
and edi, 0xff
xor ebx, dword [eax + edi*4 + 4]
mov edi, dword [ebp - 4]
xor ebx, dword [ecx + 0x18]
sar edi, 8
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0x10]
sar ebx, 0x10
and edi, 0xff
mov edi, dword [eax + edi*4 + 4]
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
ror edi, 0x10
ror ebx, 8
xor edi, ebx
mov ebx, dword [ebp - 0x14]
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
rol ebx, 8
xor edi, ebx
mov ebx, dword [ebp - 8]
sar ebx, 0x18
and ebx, 0xff
xor edi, dword [eax + ebx*4 + 4]
add ecx, 0x20
xor edi, dword [ecx - 4]
mov dword [ebp - 8], edi
mov edi, dword [ebp + 8]
sar edi, 1
dec edi
mov dword [ebp + 8], edi
je 0x40feb3
jmp 0x40fc43
mov edi, dword [ebp - 0xc]
sar edi, 8
and edi, 0xff
mov edi, dword [eax + edi*4 + 4]
ror edi, 0x10
mov ebx, esi
sar ebx, 0x10
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
ror ebx, 8
xor edi, ebx
mov ebx, dword [ebp - 8]
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
rol ebx, 8
xor edi, ebx
mov ebx, edx
sar ebx, 0x18
and ebx, 0xff
xor edi, dword [eax + ebx*4 + 4]
mov ebx, dword [ebp - 0xc]
xor edi, dword [ecx]
sar ebx, 0x10
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 8]
sar edi, 8
and edi, 0xff
mov edi, dword [eax + edi*4 + 4]
ror edi, 0x10
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
ror ebx, 8
xor edi, ebx
mov ebx, edx
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
rol ebx, 8
xor edi, ebx
mov ebx, esi
sar ebx, 0x18
and ebx, 0xff
xor edi, dword [eax + ebx*4 + 4]
xor edi, dword [ecx + 4]
mov dword [ebp - 4], edi
mov edi, dword [ebp - 8]
sar edi, 0x10
and edi, 0xff
mov ebx, dword [eax + edi*4 + 4]
mov edi, edx
sar edi, 8
and edi, 0xff
mov edi, dword [eax + edi*4 + 4]
ror ebx, 8
ror edi, 0x10
xor ebx, edi
mov edi, esi
and edi, 0xff
mov edi, dword [eax + edi*4 + 4]
rol edi, 8
xor ebx, edi
mov edi, dword [ebp - 0xc]
sar edi, 0x18
sar edx, 0x10
and edi, 0xff
xor ebx, dword [eax + edi*4 + 4]
sar esi, 8
xor ebx, dword [ecx + 8]
and edx, 0xff
mov edx, dword [eax + edx*4 + 4]
and esi, 0xff
mov edi, dword [eax + esi*4 + 4]
ror edi, 0x10
ror edx, 8
xor edi, edx
mov edx, dword [ebp - 0xc]
and edx, 0xff
mov edx, dword [eax + edx*4 + 4]
rol edx, 8
xor edi, edx
mov edx, dword [ebp - 8]
mov dword [ebp - 0x14], ebx
mov esi, dword [ebp - 4]
sar edx, 0x18
and edx, 0xff
xor edi, dword [eax + edx*4 + 4]
mov edx, ebx
xor edi, dword [ecx + 0xc]
sar esi, 0x10
and esi, 0xff
mov esi, dword [eax + esi*4 + 4]
sar edx, 8
and edx, 0xff
mov edx, dword [eax + edx*4 + 4]
ror edx, 0x10
ror esi, 8
xor edx, esi
mov esi, edi
and esi, 0xff
mov esi, dword [eax + esi*4 + 4]
rol esi, 8
xor edx, esi
mov esi, dword [ebp - 0x10]
sar ebx, 0x10
sar esi, 0x18
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
and esi, 0xff
xor edx, dword [eax + esi*4 + 4]
mov esi, edi
xor edx, dword [ecx + 0x10]
sar esi, 8
and esi, 0xff
mov esi, dword [eax + esi*4 + 4]
ror esi, 0x10
ror ebx, 8
xor esi, ebx
mov ebx, dword [ebp - 0x10]
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
rol ebx, 8
xor esi, ebx
mov ebx, dword [ebp - 4]
sar ebx, 0x18
and ebx, 0xff
xor esi, dword [eax + ebx*4 + 4]
mov ebx, dword [ebp - 0x10]
xor esi, dword [ecx + 0x14]
mov dword [ebp - 8], edi
sar edi, 0x10
and edi, 0xff
mov edi, dword [eax + edi*4 + 4]
sar ebx, 8
ror edi, 8
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
ror ebx, 0x10
xor edi, ebx
mov ebx, dword [ebp - 4]
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
rol ebx, 8
xor edi, ebx
mov ebx, dword [ebp - 0x14]
sar ebx, 0x18
and ebx, 0xff
xor edi, dword [eax + ebx*4 + 4]
xor edi, dword [ecx + 0x18]
mov dword [ebp - 0xc], edi
mov edi, dword [ebp - 4]
sar edi, 8
and edi, 0xff
mov ebx, dword [eax + edi*4 + 4]
mov edi, dword [ebp - 0x10]
sar edi, 0x10
and edi, 0xff
mov edi, dword [eax + edi*4 + 4]
ror ebx, 0x10
ror edi, 8
xor ebx, edi
mov edi, dword [ebp - 0x14]
and edi, 0xff
mov edi, dword [eax + edi*4 + 4]
rol edi, 8
xor ebx, edi
mov edi, dword [ebp - 8]
sar edi, 0x18
and edi, 0xff
xor ebx, dword [eax + edi*4 + 4]
add ecx, 0x20
xor ebx, dword [ecx - 4]
dec dword [ebp + 8]
mov dword [ebp - 8], ebx
jne 0x40fc43
mov edi, edx
sar edi, 0x18
and edi, 0xff
mov edi, dword [eax + edi*4 + 4]
and edi, 0xffff0000
shl edi, 8
mov ebx, esi
sar ebx, 0x10
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
and ebx, 0xff0000
xor edi, ebx
mov ebx, dword [ebp - 0xc]
sar ebx, 8
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
and ebx, 0xff00
xor edi, ebx
mov ebx, dword [ebp - 8]
and ebx, 0xff
movzx ebx, byte [eax + ebx*4 + 5]
xor edi, ebx
xor edi, dword [ecx]
mov ebx, edi
ror ebx, 8
and ebx, 0xff00ff00
rol edi, 8
and edi, 0xff00ff
or ebx, edi
mov edi, dword [ebp + 0xc]
mov dword [edi], ebx
mov ebx, dword [ebp - 0xc]
sar ebx, 0x10
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
and ebx, 0xff0000
mov edi, esi
sar edi, 0x18
and edi, 0xff
mov edi, dword [eax + edi*4 + 4]
and edi, 0xffff0000
shl edi, 8
xor edi, ebx
mov ebx, dword [ebp - 8]
sar ebx, 8
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
and ebx, 0xff00
xor edi, ebx
mov ebx, edx
and ebx, 0xff
movzx ebx, byte [eax + ebx*4 + 5]
xor edi, ebx
xor edi, dword [ecx + 4]
mov ebx, edi
ror ebx, 8
and ebx, 0xff00ff00
rol edi, 8
and edi, 0xff00ff
or ebx, edi
mov edi, dword [ebp + 0xc]
mov dword [edi + 4], ebx
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 8]
sar ebx, 0x10
sar edi, 0x18
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
and edi, 0xff
mov edi, dword [eax + edi*4 + 4]
and ebx, 0xff0000
and edi, 0xffff0000
shl edi, 8
xor edi, ebx
mov ebx, edx
sar ebx, 8
and ebx, 0xff
mov ebx, dword [eax + ebx*4 + 4]
and ebx, 0xff00
xor edi, ebx
mov ebx, esi
and ebx, 0xff
movzx ebx, byte [eax + ebx*4 + 5]
xor edi, ebx
xor edi, dword [ecx + 8]
sar edx, 0x10
mov ebx, edi
ror ebx, 8
and ebx, 0xff00ff00
rol edi, 8
and edi, 0xff00ff
or ebx, edi
mov edi, ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebx + 8], edi
mov edi, dword [ebp - 8]
sar edi, 0x18
and edi, 0xff
mov edi, dword [eax + edi*4 + 4]
and edx, 0xff
mov edx, dword [eax + edx*4 + 4]
and edi, 0xffff0000
shl edi, 8
and edx, 0xff0000
xor edi, edx
sar esi, 8
and esi, 0xff
mov edx, dword [eax + esi*4 + 4]
and edx, 0xff00
xor edi, edx
mov edx, dword [ebp - 0xc]
and edx, 0xff
movzx eax, byte [eax + edx*4 + 5]
xor edi, eax
xor edi, dword [ecx + 0xc]
mov ecx, edi
ror ecx, 8
and ecx, 0xff00ff00
rol edi, 8
and edi, 0xff00ff
or ecx, edi
pop edi
pop esi
mov dword [ebx + 0xc], ecx
pop ebx
mov esp, ebp
pop ebp
ret