Function at 0x40d610
Capabilities:
Encode data using xor

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0x10]
movzx eax, byte [ebp]
push esi
push edi
mov edi, dword [esp + 0x14]
mov byte [edi + 0xb0], al
movzx ecx, byte [ebp + 1]
mov byte [edi + 0xb4], cl
movzx edx, byte [ebp + 2]
mov byte [edi + 0xb8], dl
movzx eax, byte [ebp + 3]
mov byte [edi + 0xbc], al
movzx ecx, byte [ebp + 4]
mov byte [edi + 0xb1], cl
movzx edx, byte [ebp + 5]
lea esi, [edi + 0xb0]
mov byte [edi + 0xb5], dl
movzx eax, byte [ebp + 6]
mov byte [edi + 0xb9], al
movzx ecx, byte [ebp + 7]
mov byte [edi + 0xbd], cl
movzx edx, byte [ebp + 8]
mov byte [edi + 0xb2], dl
movzx eax, byte [ebp + 9]
mov byte [edi + 0xb6], al
movzx ecx, byte [ebp + 0xa]
mov byte [edi + 0xba], cl
movzx edx, byte [ebp + 0xb]
mov byte [edi + 0xbe], dl
movzx eax, byte [ebp + 0xc]
mov byte [edi + 0xb3], al
movzx ecx, byte [ebp + 0xd]
mov byte [edi + 0xb7], cl
movzx edx, byte [ebp + 0xe]
mov byte [edi + 0xbb], dl
movzx eax, byte [ebp + 0xf]
mov byte [edi + 0xbf], al
movzx ecx, byte [edi + 0xa3]
xor byte [esi], cl
movzx edx, byte [edi + 0xa2]
xor byte [esi + 4], dl
mov eax, dword [edi + 0xa0]
shr eax, 8
xor byte [esi + 8], al
movzx ecx, byte [edi + 0xa0]
xor byte [esi + 0xc], cl
movzx edx, byte [edi + 0xa7]
xor byte [esi + 1], dl
movzx eax, byte [edi + 0xa6]
xor byte [esi + 5], al
mov ecx, dword [edi + 0xa4]
shr ecx, 8
xor byte [esi + 9], cl
movzx edx, byte [edi + 0xa4]
xor byte [esi + 0xd], dl
movzx eax, byte [edi + 0xab]
xor byte [esi + 2], al
movzx ecx, byte [edi + 0xaa]
xor byte [esi + 6], cl
mov edx, dword [edi + 0xa8]
shr edx, 8
xor byte [esi + 0xa], dl
movzx eax, byte [edi + 0xa8]
xor byte [esi + 0xe], al
movzx ecx, byte [edi + 0xaf]
xor byte [esi + 3], cl
movzx edx, byte [edi + 0xae]
xor byte [esi + 7], dl
mov eax, dword [edi + 0xac]
shr eax, 8
xor byte [esi + 0xb], al
movzx ecx, byte [edi + 0xac]
xor byte [esi + 0xf], cl
lea ebx, [edi + 0x98]
mov dword [esp + 0x14], 9
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 + 0x14]
jne 0x40d777
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 + 0xc0]
xor cl, byte [esi]
movzx edx, byte [edi + 0xc1]
movzx eax, byte [edi + 0xc2]
mov byte [edi + 0xd0], cl
xor dl, byte [edi + 0xb4]
movzx ecx, byte [edi + 0xc3]
mov byte [edi + 0xd1], dl
xor al, byte [edi + 0xb8]
movzx edx, byte [edi + 0xc4]
mov byte [edi + 0xd2], al
xor cl, byte [edi + 0xbc]
movzx eax, byte [edi + 0xc5]
mov byte [edi + 0xd3], cl
xor dl, byte [edi + 0xb1]
movzx ecx, byte [edi + 0xc6]
mov byte [edi + 0xd4], dl
xor al, byte [edi + 0xb5]
mov byte [edi + 0xd5], al
xor cl, byte [edi + 0xb9]
movzx edx, byte [edi + 0xc7]
movzx eax, byte [edi + 0xc8]
mov byte [edi + 0xd6], cl
xor dl, byte [edi + 0xbd]
movzx ecx, byte [edi + 0xc9]
mov byte [edi + 0xd7], dl
xor al, byte [edi + 0xb2]
movzx edx, byte [edi + 0xca]
mov byte [edi + 0xd8], al
xor cl, byte [edi + 0xb6]
movzx eax, byte [edi + 0xcb]
mov byte [edi + 0xd9], cl
xor dl, byte [edi + 0xba]
movzx ecx, byte [edi + 0xcc]
mov byte [edi + 0xda], dl
xor al, byte [edi + 0xbe]
movzx edx, byte [edi + 0xcd]
mov byte [edi + 0xdb], al
xor cl, byte [edi + 0xb3]
movzx eax, byte [edi + 0xce]
mov byte [edi + 0xdc], cl
xor dl, byte [edi + 0xb7]
movzx ecx, byte [edi + 0xcf]
mov byte [edi + 0xdd], dl
xor al, byte [edi + 0xbb]
mov byte [edi + 0xde], al
xor cl, byte [edi + 0xbf]
xor eax, eax
mov byte [edi + 0xdf], cl
mov dl, byte [eax + ebp]
mov byte [edi + eax + 0xc0], dl
inc eax
cmp eax, 0x10
jl 0x40da53
cmp dword [esp + 0x1c], 0
mov dword [edi + 0xe0], 0
je 0x40dab5
movzx esi, byte [edi + 0xdf]
cmp esi, 1
jl 0x40da85
cmp esi, 0x10
jle 0x40da8a
mov esi, 0x10
mov ecx, 0xf
cmp esi, ecx
jg 0x40daaf
mov eax, edi
sub eax, esi
add eax, 0xdf
lea esp, [esp]
mov dl, byte [eax]
mov byte [edi + ecx + 0xd0], dl
dec ecx
dec eax
cmp ecx, esi
jge 0x40daa0
mov dword [edi + 0xe0], esi
pop edi
pop esi
pop ebp
pop ebx
ret