Function at 0x40df20
Capabilities:
Encode data using xor

Disassembly:
push ecx
push ebx
push ebp
mov ebp, dword [esp + 0x10]
movzx eax, byte [ebp]
mov byte [edi + 0xf0], al
movzx ecx, byte [ebp + 1]
mov byte [edi + 0xf4], cl
movzx edx, byte [ebp + 2]
mov byte [edi + 0xf8], dl
movzx eax, byte [ebp + 3]
mov byte [edi + 0xfc], al
movzx ecx, byte [ebp + 4]
mov byte [edi + 0xf1], cl
movzx edx, byte [ebp + 5]
mov byte [edi + 0xf5], dl
movzx eax, byte [ebp + 6]
mov byte [edi + 0xf9], al
movzx ecx, byte [ebp + 7]
mov byte [edi + 0xfd], cl
movzx edx, byte [ebp + 8]
push esi
lea esi, [edi + 0xf0]
mov byte [edi + 0xf2], dl
movzx eax, byte [ebp + 9]
mov byte [edi + 0xf6], al
movzx ecx, byte [ebp + 0xa]
mov byte [edi + 0xfa], cl
movzx edx, byte [ebp + 0xb]
mov byte [edi + 0xfe], dl
movzx eax, byte [ebp + 0xc]
mov byte [edi + 0xf3], al
movzx ecx, byte [ebp + 0xd]
mov byte [edi + 0xf7], cl
movzx edx, byte [ebp + 0xe]
mov byte [edi + 0xfb], dl
movzx eax, byte [ebp + 0xf]
mov byte [edi + 0xff], al
movzx ecx, byte [edi + 0xe3]
xor byte [esi], cl
movzx edx, byte [edi + 0xe2]
xor byte [esi + 4], dl
mov eax, dword [edi + 0xe0]
shr eax, 8
xor byte [esi + 8], al
movzx ecx, byte [edi + 0xe0]
xor byte [esi + 0xc], cl
movzx edx, byte [edi + 0xe7]
xor byte [esi + 1], dl
movzx eax, byte [edi + 0xe6]
xor byte [esi + 5], al
mov ecx, dword [edi + 0xe4]
shr ecx, 8
xor byte [esi + 9], cl
movzx edx, byte [edi + 0xe4]
xor byte [esi + 0xd], dl
movzx eax, byte [edi + 0xeb]
xor byte [esi + 2], al
movzx ecx, byte [edi + 0xea]
xor byte [esi + 6], cl
mov edx, dword [edi + 0xe8]
shr edx, 8
xor byte [esi + 0xa], dl
movzx eax, byte [edi + 0xe8]
xor byte [esi + 0xe], al
movzx ecx, byte [edi + 0xef]
xor byte [esi + 3], cl
movzx edx, byte [edi + 0xee]
xor byte [esi + 7], dl
mov eax, dword [edi + 0xec]
shr eax, 8
xor byte [esi + 0xb], al
movzx ecx, byte [edi + 0xec]
xor byte [esi + 0xf], cl
lea ebx, [edi + 0xd8]
mov dword [esp + 0xc], 0xd
mov eax, esi
call fcn.0040c490
movzx edx, byte [esi + 6]
movzx ecx, byte [esi + 5]
mov al, byte [esi + 7]
mov byte [esi + 7], dl
movzx edx, byte [esi + 4]
mov byte [esi + 6], cl
movzx ecx, byte [esi + 0xa]
mov byte [esi + 4], al
mov al, byte [esi + 8]
mov byte [esi + 5], dl
movzx edx, byte [esi + 0xb]
mov byte [esi + 8], cl
movzx ecx, byte [esi + 0xd]
mov byte [esi + 0xa], al
mov al, byte [esi + 9]
mov byte [esi + 0xb], al
mov al, byte [esi + 0xc]
mov byte [esi + 9], dl
movzx edx, byte [esi + 0xe]
mov byte [esi + 0xc], cl
movzx ecx, byte [esi + 0xf]
push esi
mov byte [esi + 0xd], dl
mov byte [esi + 0xe], cl
mov byte [esi + 0xf], al
call fcn.0040c600
movzx edx, byte [ebx - 5]
xor byte [esi], dl
movzx eax, byte [ebx - 6]
xor byte [esi + 4], al
mov ecx, dword [ebx - 8]
shr ecx, 8
xor byte [esi + 8], cl
movzx edx, byte [ebx - 8]
xor byte [esi + 0xc], dl
movzx eax, byte [ebx - 1]
xor byte [esi + 1], al
movzx ecx, byte [ebx - 2]
xor byte [esi + 5], cl
mov edx, dword [ebx - 4]
shr edx, 8
xor byte [esi + 9], dl
movzx eax, byte [ebx - 4]
xor byte [esi + 0xd], al
movzx ecx, byte [ebx + 3]
xor byte [esi + 2], cl
movzx edx, byte [ebx + 2]
xor byte [esi + 6], dl
mov eax, dword [ebx]
shr eax, 8
xor byte [esi + 0xa], al
movzx ecx, byte [ebx]
xor byte [esi + 0xe], cl
movzx edx, byte [ebx + 7]
xor byte [esi + 3], dl
movzx eax, byte [ebx + 6]
xor byte [esi + 7], al
mov ecx, dword [ebx + 4]
shr ecx, 8
xor byte [esi + 0xb], cl
movzx edx, byte [ebx + 4]
xor byte [esi + 0xf], dl
add esp, 4
sub ebx, 0x10
dec dword [esp + 0xc]
jne 0x40e083
mov eax, esi
call fcn.0040c490
movzx ecx, byte [esi + 6]
movzx edx, byte [esi + 5]
mov al, byte [esi + 7]
mov byte [esi + 6], dl
movzx edx, byte [esi + 0xa]
mov byte [esi + 7], cl
movzx ecx, byte [esi + 4]
mov byte [esi + 4], al
mov al, byte [esi + 8]
mov byte [esi + 8], dl
movzx edx, byte [esi + 0xd]
mov byte [esi + 5], cl
movzx ecx, byte [esi + 0xb]
mov byte [esi + 0xa], al
mov al, byte [esi + 9]
mov byte [esi + 0xb], al
mov al, byte [esi + 0xc]
mov byte [esi + 0xc], dl
movzx edx, byte [esi + 0xf]
mov byte [esi + 9], cl
movzx ecx, byte [esi + 0xe]
mov byte [esi + 0xe], dl
mov byte [esi + 0xd], cl
mov byte [esi + 0xf], al
movzx eax, byte [edi + 3]
xor byte [esi], al
movzx ecx, byte [edi + 2]
xor byte [esi + 4], cl
mov edx, dword [edi]
shr edx, 8
xor byte [esi + 8], dl
movzx eax, byte [edi]
xor byte [esi + 0xc], al
movzx ecx, byte [edi + 7]
xor byte [esi + 1], cl
movzx edx, byte [edi + 6]
xor byte [esi + 5], dl
mov eax, dword [edi + 4]
shr eax, 8
xor byte [esi + 9], al
movzx ecx, byte [edi + 4]
xor byte [esi + 0xd], cl
movzx edx, byte [edi + 0xb]
xor byte [esi + 2], dl
movzx eax, byte [edi + 0xa]
xor byte [esi + 6], al
mov ecx, dword [edi + 8]
shr ecx, 8
xor byte [esi + 0xa], cl
movzx edx, byte [edi + 8]
xor byte [esi + 0xe], dl
movzx eax, byte [edi + 0xf]
xor byte [esi + 3], al
movzx ecx, byte [edi + 0xe]
xor byte [esi + 7], cl
mov edx, dword [edi + 0xc]
shr edx, 8
xor byte [esi + 0xb], dl
movzx eax, byte [edi + 0xc]
xor byte [esi + 0xf], al
movzx ecx, byte [edi + 0x100]
xor cl, byte [esi]
movzx edx, byte [edi + 0x101]
movzx eax, byte [edi + 0x102]
mov byte [edi + 0x110], cl
xor dl, byte [edi + 0xf4]
movzx ecx, byte [edi + 0x103]
mov byte [edi + 0x111], dl
xor al, byte [edi + 0xf8]
movzx edx, byte [edi + 0x104]
mov byte [edi + 0x112], al
xor cl, byte [edi + 0xfc]
movzx eax, byte [edi + 0x105]
mov byte [edi + 0x113], cl
xor dl, byte [edi + 0xf1]
movzx ecx, byte [edi + 0x106]
mov byte [edi + 0x114], dl
xor al, byte [edi + 0xf5]
mov byte [edi + 0x115], al
xor cl, byte [edi + 0xf9]
movzx edx, byte [edi + 0x107]
movzx eax, byte [edi + 0x108]
mov byte [edi + 0x116], cl
xor dl, byte [edi + 0xfd]
movzx ecx, byte [edi + 0x109]
mov byte [edi + 0x117], dl
xor al, byte [edi + 0xf2]
movzx edx, byte [edi + 0x10a]
mov byte [edi + 0x118], al
xor cl, byte [edi + 0xf6]
movzx eax, byte [edi + 0x10b]
mov byte [edi + 0x119], cl
xor dl, byte [edi + 0xfa]
movzx ecx, byte [edi + 0x10c]
mov byte [edi + 0x11a], dl
xor al, byte [edi + 0xfe]
movzx edx, byte [edi + 0x10d]
mov byte [edi + 0x11b], al
xor cl, byte [edi + 0xf3]
movzx eax, byte [edi + 0x10e]
mov byte [edi + 0x11c], cl
xor dl, byte [edi + 0xf7]
movzx ecx, byte [edi + 0x10f]
mov byte [edi + 0x11d], dl
xor al, byte [edi + 0xfb]
mov byte [edi + 0x11e], al
xor cl, byte [edi + 0xff]
xor eax, eax
mov byte [edi + 0x11f], cl
nop
mov dl, byte [eax + ebp]
mov byte [edi + eax + 0x100], dl
inc eax
cmp eax, 0x10
jl 0x40e360
cmp dword [esp + 0x18], 0
mov dword [edi + 0x120], 0
je 0x40e3c5
movzx esi, byte [edi + 0x11f]
cmp esi, 1
jl 0x40e392
cmp esi, 0x10
jle 0x40e397
mov esi, 0x10
mov ecx, 0xf
cmp esi, ecx
jg 0x40e3bf
mov eax, edi
sub eax, esi
add eax, 0x11f
lea esp, [esp]
mov dl, byte [eax]
mov byte [edi + ecx + 0x110], dl
dec ecx
dec eax
cmp ecx, esi
jge 0x40e3b0
mov dword [edi + 0x120], esi
pop esi
pop ebp
pop ebx
pop ecx
ret