Function at 0x496193
Capabilities:
Encode data using xor

Disassembly:
push ebp
lea ebp, [esp - 0xdc]
sub esp, 0x15c
mov eax, dword [0x4d4430]
xor eax, ebp
mov dword [ebp + 0xd8], eax
mov eax, dword [ebp + 0xe4]
push esi
xor edx, edx
add eax, 2
push edi
movzx esi, byte [eax - 2]
movzx edi, byte [eax - 1]
shl esi, 8
or esi, edi
movzx edi, byte [eax]
shl esi, 8
or esi, edi
movzx edi, byte [eax + 1]
shl esi, 8
or esi, edi
mov dword [ebp + edx*4 - 0x68], esi
inc edx
add eax, 4
cmp edx, 0x10
jb 0x4961bb
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x70], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x78], eax
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x74], eax
mov eax, dword [ecx + 0x18]
push 0x40
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x60]
pop esi
mov edi, dword [eax + 0x2c]
xor edi, dword [eax + 0x18]
xor edi, dword [eax - 8]
xor edi, dword [eax]
add eax, 4
dec esi
rol edi, 1
mov dword [eax + 0x34], edi
jne 0x496207
mov esi, dword [ecx + 0x60]
xor eax, eax
xor esi, 0xaf1e4c
mov dword [ebp - 0x7c], esi
mov edi, dword [ebp - 0x74]
xor edi, dword [ebp - 0x78]
mov esi, dword [ebp - 0x70]
and edi, edx
xor edi, dword [ebp - 0x74]
rol esi, 5
add esi, edi
add esi, dword [ebp + eax*4 - 0x68]
mov edi, dword [ebp - 0x78]
add esi, dword [ebp - 0x7c]
add dword [ebp - 0x6c], esi
mov esi, dword [ebp - 0x6c]
rol edx, 0x1e
xor edi, edx
and edi, dword [ebp - 0x70]
rol esi, 5
xor edi, dword [ebp - 0x78]
add esi, edi
add esi, dword [ebp + eax*4 - 0x64]
mov edi, edx
add esi, dword [ebp - 0x7c]
add dword [ebp - 0x74], esi
rol dword [ebp - 0x70], 0x1e
xor edi, dword [ebp - 0x70]
mov esi, dword [ebp - 0x74]
and edi, dword [ebp - 0x6c]
rol esi, 5
xor edi, edx
add esi, edi
add esi, dword [ebp + eax*4 - 0x60]
add esi, dword [ebp - 0x7c]
add dword [ebp - 0x78], esi
rol dword [ebp - 0x6c], 0x1e
mov edi, dword [ebp - 0x6c]
xor edi, dword [ebp - 0x70]
mov esi, dword [ebp - 0x78]
and edi, dword [ebp - 0x74]
rol esi, 5
xor edi, dword [ebp - 0x70]
add esi, edi
add esi, dword [ebp + eax*4 - 0x5c]
mov edi, dword [ebp - 0x6c]
add esi, dword [ebp - 0x7c]
add edx, esi
rol dword [ebp - 0x74], 0x1e
xor edi, dword [ebp - 0x74]
mov esi, edx
and edi, dword [ebp - 0x78]
rol esi, 5
xor edi, dword [ebp - 0x6c]
add esi, edi
add esi, dword [ebp + eax*4 - 0x58]
add esi, dword [ebp - 0x7c]
add dword [ebp - 0x70], esi
rol dword [ebp - 0x78], 0x1e
add eax, 5
cmp eax, 0x14
jb 0x49622b
cmp eax, 0x28
jae 0x496390
mov esi, dword [ecx + 0x60]
xor esi, 0x34f48c74
mov dword [ebp - 0x7c], esi
mov edi, dword [ebp - 0x74]
xor edi, dword [ebp - 0x78]
mov esi, dword [ebp - 0x70]
rol esi, 5
xor edi, edx
add esi, edi
add esi, dword [ebp + eax*4 - 0x68]
mov edi, dword [ebp - 0x78]
add esi, dword [ebp - 0x7c]
add dword [ebp - 0x6c], esi
mov esi, dword [ebp - 0x6c]
rol edx, 0x1e
rol esi, 5
xor edi, edx
xor edi, dword [ebp - 0x70]
add esi, edi
add esi, dword [ebp + eax*4 - 0x64]
mov edi, dword [ebp - 0x6c]
add esi, dword [ebp - 0x7c]
xor edi, edx
add dword [ebp - 0x74], esi
rol dword [ebp - 0x70], 0x1e
xor edi, dword [ebp - 0x70]
mov esi, dword [ebp - 0x74]
rol esi, 5
add esi, edi
add esi, dword [ebp + eax*4 - 0x60]
add esi, dword [ebp - 0x7c]
add dword [ebp - 0x78], esi
rol dword [ebp - 0x6c], 0x1e
mov edi, dword [ebp - 0x6c]
xor edi, dword [ebp - 0x74]
mov esi, dword [ebp - 0x78]
xor edi, dword [ebp - 0x70]
rol esi, 5
add esi, edi
add esi, dword [ebp + eax*4 - 0x5c]
mov edi, dword [ebp - 0x6c]
add esi, dword [ebp - 0x7c]
add edx, esi
rol dword [ebp - 0x74], 0x1e
xor edi, dword [ebp - 0x74]
mov esi, edx
xor edi, dword [ebp - 0x78]
rol esi, 5
add esi, edi
add esi, dword [ebp + eax*4 - 0x58]
add esi, dword [ebp - 0x7c]
add dword [ebp - 0x70], esi
rol dword [ebp - 0x78], 0x1e
add eax, 5
cmp eax, 0x28
jb 0x4962ef
cmp eax, 0x3c
jae 0x496476
mov esi, dword [ecx + 0x60]
mov dword [ebp - 0x80], esi
xor dword [ebp - 0x80], 0xd536db09
push ebx
mov edi, dword [ebp - 0x78]
or edi, edx
and edi, dword [ebp - 0x74]
mov ebx, dword [ebp - 0x78]
mov esi, dword [ebp - 0x70]
rol esi, 5
and ebx, edx
or edi, ebx
add esi, edi
add esi, dword [ebp + eax*4 - 0x68]
add esi, dword [ebp - 0x80]
add dword [ebp - 0x6c], esi
mov esi, dword [ebp - 0x6c]
rol edx, 0x1e
mov edi, edx
or edi, dword [ebp - 0x70]
mov dword [ebp - 0x7c], edx
and edx, dword [ebp - 0x70]
and edi, dword [ebp - 0x78]
rol esi, 5
or edi, edx
add esi, edi
add esi, dword [ebp + eax*4 - 0x64]
mov edi, dword [ebp - 0x6c]
add esi, dword [ebp - 0x80]
add dword [ebp - 0x74], esi
rol dword [ebp - 0x70], 0x1e
and edi, dword [ebp - 0x70]
mov esi, dword [ebp - 0x6c]
or esi, dword [ebp - 0x70]
mov edx, dword [ebp - 0x74]
and esi, dword [ebp - 0x7c]
rol edx, 5
or esi, edi
add edx, esi
add edx, dword [ebp + eax*4 - 0x60]
add edx, dword [ebp - 0x80]
add dword [ebp - 0x78], edx
rol dword [ebp - 0x6c], 0x1e
mov esi, dword [ebp - 0x6c]
or esi, dword [ebp - 0x74]
mov edi, dword [ebp - 0x6c]
and esi, dword [ebp - 0x70]
and edi, dword [ebp - 0x74]
mov edx, dword [ebp - 0x78]
rol edx, 5
or esi, edi
add edx, esi
add edx, dword [ebp + eax*4 - 0x5c]
add edx, dword [ebp - 0x80]
add dword [ebp - 0x7c], edx
rol dword [ebp - 0x74], 0x1e
mov esi, dword [ebp - 0x74]
or esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x74]
and esi, dword [ebp - 0x6c]
and edi, dword [ebp - 0x78]
mov edx, dword [ebp - 0x7c]
rol edx, 5
or esi, edi
add edx, esi
add edx, dword [ebp + eax*4 - 0x58]
add edx, dword [ebp - 0x80]
add dword [ebp - 0x70], edx
rol dword [ebp - 0x78], 0x1e
mov edx, dword [ebp - 0x7c]
add eax, 5
cmp eax, 0x3c
jb 0x4963a7
pop ebx
cmp eax, 0x50
jae 0x49652c
mov esi, dword [ecx + 0x60]
xor esi, 0x904fa603
mov dword [ebp - 0x7c], esi
mov edi, dword [ebp - 0x74]
xor edi, dword [ebp - 0x78]
mov esi, dword [ebp - 0x70]
rol esi, 5
xor edi, edx
add esi, edi
add esi, dword [ebp + eax*4 - 0x68]
mov edi, dword [ebp - 0x78]
add esi, dword [ebp - 0x7c]
add dword [ebp - 0x6c], esi
mov esi, dword [ebp - 0x6c]
rol edx, 0x1e
rol esi, 5
xor edi, edx
xor edi, dword [ebp - 0x70]
add esi, edi
add esi, dword [ebp + eax*4 - 0x64]
mov edi, dword [ebp - 0x6c]
add esi, dword [ebp - 0x7c]
xor edi, edx
add dword [ebp - 0x74], esi
rol dword [ebp - 0x70], 0x1e
xor edi, dword [ebp - 0x70]
mov esi, dword [ebp - 0x74]
rol esi, 5
add esi, edi
add esi, dword [ebp + eax*4 - 0x60]
add esi, dword [ebp - 0x7c]
add dword [ebp - 0x78], esi
rol dword [ebp - 0x6c], 0x1e
mov edi, dword [ebp - 0x6c]
xor edi, dword [ebp - 0x74]
mov esi, dword [ebp - 0x78]
xor edi, dword [ebp - 0x70]
rol esi, 5
add esi, edi
add esi, dword [ebp + eax*4 - 0x5c]
mov edi, dword [ebp - 0x6c]
add esi, dword [ebp - 0x7c]
add edx, esi
rol dword [ebp - 0x74], 0x1e
xor edi, dword [ebp - 0x74]
mov esi, edx
xor edi, dword [ebp - 0x78]
rol esi, 5
add esi, edi
add esi, dword [ebp + eax*4 - 0x58]
add esi, dword [ebp - 0x7c]
add dword [ebp - 0x70], esi
rol dword [ebp - 0x78], 0x1e
add eax, 5
cmp eax, 0x50
jb 0x49648b
mov eax, dword [ecx + 8]
add eax, dword [ebp - 0x70]
pop edi
mov dword [ecx + 8], eax
mov eax, dword [ecx + 0xc]
add eax, edx
mov dword [ecx + 0xc], eax
mov eax, dword [ecx + 0x10]
add eax, dword [ebp - 0x78]
pop esi
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 0x14]
add eax, dword [ebp - 0x74]
mov dword [ecx + 0x14], eax
mov eax, dword [ecx + 0x18]
add eax, dword [ebp - 0x6c]
mov dword [ecx + 0x18], eax
mov ecx, dword [ebp + 0xd8]
xor ecx, ebp
xor eax, eax
call fcn.0040c660
add ebp, 0xdc
leave
ret