Function at 0x417480
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, 0x438410
push esi
push ebx
sub esp, 0x18
mov esi, dword [ebp + 8]
movzx eax, byte [0x438412]
movzx ecx, byte [0x438410]
movzx ebx, byte [esi + 2]
movzx edx, byte [esi + 1]
xor cl, byte [esi]
mov esi, dword [ebp + 8]
sub bl, al
mov byte [ebp - 0xd], bl
movzx ebx, byte [0x438413]
sub dl, byte [0x438411]
mov byte [ebp - 0xe], bl
movzx eax, byte [esi + 3]
mov esi, dword [ebp + 8]
movzx ebx, byte [0x438414]
xor byte [ebp - 0xe], al
mov eax, dword [ebp + 8]
mov byte [ebp - 0xf], bl
movzx ebx, byte [eax + 4]
movzx eax, byte [0x438415]
xor byte [ebp - 0xf], bl
movzx ebx, byte [esi + 5]
mov esi, dword [ebp + 8]
sub bl, al
mov byte [ebp - 0x10], bl
movzx ebx, byte [esi + 6]
movzx eax, byte [0x438416]
sub bl, al
movzx eax, byte [0x438417]
mov byte [ebp - 0x11], bl
mov byte [ebp - 0x12], al
mov ebx, dword [ebp + 8]
movzx eax, byte [ebx + 7]
mov dword [ebp - 0x24], 8
xor byte [ebp - 0x12], al
lea esi, [esi]
movzx ebx, byte [ebp - 0x12]
sub cl, dl
sub dl, cl
mov byte [ebp - 0x16], dl
movzx edx, byte [ebp - 0xd]
mov byte [ebp - 0x13], cl
movzx ecx, byte [ebp - 0xe]
sub dl, byte [ebp - 0xe]
movzx eax, byte [ebp - 0xf]
sub cl, dl
mov byte [ebp - 0x19], cl
movzx ecx, byte [ebp - 0x11]
sub al, byte [ebp - 0x10]
mov byte [ebp - 0x14], dl
sub cl, byte [ebp - 0x12]
movzx edx, byte [ebp - 0x10]
sub bl, cl
sub dl, al
mov byte [ebp - 0x18], bl
movzx ebx, byte [ebp - 0x13]
sub byte [ebp - 0x16], dl
sub bl, al
sub al, bl
mov byte [ebp - 0x15], bl
movzx ebx, byte [ebp - 0x14]
mov byte [ebp - 0x1c], al
movzx eax, byte [ebp - 0x15]
sub dl, byte [ebp - 0x16]
sub bl, cl
sub cl, bl
mov byte [ebp - 0x17], bl
sub al, byte [ebp - 0x17]
sub byte [ebp - 0x1c], cl
movzx ebx, byte [ebp - 0x18]
sub byte [ebp - 0x17], al
mov byte [ebp - 0x1a], al
sub byte [ebp - 0x19], bl
movzx eax, byte [ebp - 0x1c]
mov byte [ebp - 0x1b], cl
sub bl, byte [ebp - 0x19]
sub byte [ebp - 0x1b], al
movzx ecx, byte [ebp - 0x16]
sub dl, bl
sub bl, dl
sub cl, byte [ebp - 0x19]
sub byte [ebp - 0x19], cl
mov byte [ebp - 0x1d], cl
sub bl, byte [edi + 8]
movzx eax, bl
movzx ebx, byte [edi + 9]
movzx ecx, byte [eax + 0x438310]
mov byte [ebp - 0x12], bl
xor byte [ebp - 0x12], cl
xor dl, byte [edi + 0xa]
movzx ebx, byte [edi + 0xb]
movzx esi, dl
movzx eax, byte [esi + 0x438210]
sub al, bl
mov byte [ebp - 0x11], al
movzx ecx, byte [edi + 0xc]
xor byte [ebp - 0x19], cl
movzx edx, byte [ebp - 0x19]
movzx ebx, byte [edi + 0xd]
movzx eax, byte [edx + 0x438210]
sub al, bl
mov byte [ebp - 0x10], al
movzx ecx, byte [edi + 0xe]
sub byte [ebp - 0x1d], cl
movzx esi, byte [ebp - 0x1d]
movzx ebx, byte [edi + 0xf]
movzx edx, byte [esi + 0x438310]
mov byte [ebp - 0xf], bl
xor byte [ebp - 0xf], dl
movzx eax, byte [edi + 0x10]
sub byte [ebp - 0x1b], al
movzx ebx, byte [ebp - 0x1b]
movzx ecx, byte [edi + 0x11]
movzx edx, byte [ebx + 0x438310]
mov byte [ebp - 0xe], cl
xor byte [ebp - 0xe], dl
movzx eax, byte [edi + 0x12]
xor byte [ebp - 0x1c], al
movzx esi, byte [ebp - 0x1c]
movzx ecx, byte [edi + 0x13]
movzx ebx, byte [esi + 0x438210]
sub bl, cl
mov byte [ebp - 0xd], bl
movzx edx, byte [edi + 0x14]
xor byte [ebp - 0x17], dl
movzx eax, byte [ebp - 0x17]
movzx ecx, byte [edi + 0x16]
movzx edx, byte [eax + 0x438210]
sub dl, byte [edi + 0x15]
sub byte [ebp - 0x1a], cl
movzx ebx, byte [ebp - 0x1a]
movzx ecx, byte [edi + 0x17]
add edi, 0x10
xor cl, byte [ebx + 0x438310]
dec dword [ebp - 0x24]
jns 0x417520
mov edi, dword [ebp + 8]
mov byte [edi], cl
mov byte [edi + 1], dl
movzx ebx, byte [ebp - 0xd]
mov byte [edi + 2], bl
movzx eax, byte [ebp - 0xe]
mov byte [edi + 3], al
movzx edx, byte [ebp - 0xf]
mov byte [edi + 4], dl
movzx ecx, byte [ebp - 0x10]
mov byte [edi + 5], cl
movzx ebx, byte [ebp - 0x11]
mov byte [edi + 6], bl
movzx eax, byte [ebp - 0x12]
mov byte [edi + 7], al
add esp, 0x18
pop ebx
pop esi
pop edi
pop ebp
ret