Function at 0x418550
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffcc
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 8], eax
mov ebx, 0x10
mov dl, 0x19
mov eax, dword [esi + ebx*4 - 0x3c]
call fcn.0041757c
mov edi, eax
mov dl, 0xe
mov eax, dword [esi + ebx*4 - 0x3c]
call fcn.0041757c
xor edi, eax
mov eax, dword [esi + ebx*4 - 0x3c]
shr eax, 3
xor edi, eax
mov dword [ebp - 0xc], edi
mov dl, 0xf
mov eax, dword [esi + ebx*4 - 8]
call fcn.0041757c
mov edi, eax
mov dl, 0xd
mov eax, dword [esi + ebx*4 - 8]
call fcn.0041757c
xor edi, eax
mov eax, edi
mov edx, dword [esi + ebx*4 - 8]
shr edx, 0xa
xor eax, edx
mov edx, dword [esi + ebx*4 - 0x40]
add edx, dword [ebp - 0xc]
add edx, dword [esi + ebx*4 - 0x1c]
add eax, edx
mov dword [esi + ebx*4], eax
inc ebx
cmp ebx, 0x40
jne 0x418563
mov edi, dword [ebp - 8]
mov edi, dword [edi]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x28], eax
xor ebx, ebx
mov eax, 0x666c84
mov dword [ebp - 0x34], eax
mov dl, 0x1e
mov eax, edi
call fcn.0041757c
push eax
mov dl, 0x13
mov eax, edi
call fcn.0041757c
pop edx
xor edx, eax
push edx
mov dl, 0xa
mov eax, edi
call fcn.0041757c
pop edx
xor edx, eax
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x10]
and eax, edi
mov edx, dword [ebp - 0x14]
and edx, edi
xor eax, edx
mov edx, dword [ebp - 0x10]
and edx, dword [ebp - 0x14]
xor eax, edx
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x2c], eax
mov dl, 0x1a
mov eax, dword [ebp - 0x1c]
call fcn.0041757c
push eax
mov dl, 0x15
mov eax, dword [ebp - 0x1c]
call fcn.0041757c
pop edx
xor edx, eax
push edx
mov dl, 7
mov eax, dword [ebp - 0x1c]
call fcn.0041757c
mov edx, eax
pop eax
xor eax, edx
mov edx, dword [ebp - 0x1c]
and edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
not ecx
and ecx, dword [ebp - 0x24]
xor edx, ecx
mov dword [ebp - 0x30], edx
add eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
add eax, dword [edx]
add eax, dword [esi + ebx*4]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 4]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 4]
add edi, dword [ebp - 0x2c]
inc ebx
add dword [ebp - 0x34], 4
cmp ebx, 0x40
jne 0x418612
mov eax, dword [ebp - 8]
add edi, dword [eax]
mov eax, dword [ebp - 8]
mov dword [eax], edi
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
add eax, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
mov dword [edx + 4], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
add eax, dword [ebp - 0x14]
mov edx, dword [ebp - 8]
mov dword [edx + 8], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
add eax, dword [ebp - 0x18]
mov edx, dword [ebp - 8]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x10]
add eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 8]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
add eax, dword [ebp - 0x20]
mov edx, dword [ebp - 8]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
add eax, dword [ebp - 0x24]
mov edx, dword [ebp - 8]
mov dword [edx + 0x18], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1c]
add eax, dword [ebp - 0x28]
mov edx, dword [ebp - 8]
mov dword [edx + 0x1c], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret