Function at 0xd54e7c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffcc
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 0x19], cl
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
call fcn.00d44548
xor eax, eax
push ebp
push 0xd54692
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
call fcn.00d440f8
cmp dword [ebp - 0x14], 0
je 0xd55264
cmp dword [ebp - 0x18], 0
je 0xd55264
lea ecx, [ebp - 0x34]
lea eax, [ebp - 0x18]
mov edx, 0x400
call fcn.00d54d7c
mov edx, dword [ebp - 0x34]
lea eax, [ebp - 0x18]
call fcn.00d44190
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x18]
call fcn.00d44190
lea eax, [ebp - 0x20]
call fcn.00d445b0
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x20]
call fcn.00d44358
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
call fcn.00d44358
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
call fcn.00d44358
mov edx, eax
lea eax, [ebp - 0x2c]
call fcn.00d446e4
push 0x414
call fcn.00d456d4
pop ecx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0xd55264
mov ebx, dword [ebp - 0x24]
cmp dword [ebp - 0x10], 0
ja 0xd54f8e
mov dword [ebx + 0x400], 1
mov dword [ebx + 0x404], 3
mov dword [ebx + 0x408], 5
mov dword [ebx + 0x40c], 7
mov dword [ebx + 0x410], 0xb
xor esi, esi
mov eax, 0xff
sub eax, esi
mov dword [ebx + esi*4], eax
inc esi
cmp esi, 0x100
jne 0xd54f79
jmp 0xd54ffb
xor esi, esi
mov dword [ebx + esi*4], esi
inc esi
cmp esi, 0x100
jne 0xd54f90
xor eax, eax
mov dword [ebp - 8], eax
mov byte [ebp - 9], 0
mov esi, 0xff
push ebp
mov eax, esi
call fcn.00d54dd8
pop ecx
and eax, 0xff
mov edi, dword [ebx + esi*4]
mov edx, dword [ebx + eax*4]
mov dword [ebx + esi*4], edx
mov dword [ebx + eax*4], edi
dec esi
test esi, esi
jne 0xd54faa
mov eax, dword [ebx + 4]
mov dword [ebx + 0x400], eax
mov eax, dword [ebx + 0xc]
mov dword [ebx + 0x404], eax
mov eax, dword [ebx + 0x14]
mov dword [ebx + 0x408], eax
mov eax, dword [ebx + 0x1c]
mov dword [ebx + 0x40c], eax
xor eax, eax
mov al, byte [ebp - 9]
mov eax, dword [ebx + eax*4]
mov dword [ebx + 0x410], eax
cmp byte [ebp - 0x19], 0
jne 0xd55133
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
dec eax
test eax, eax
jl 0xd55112
inc eax
mov dword [ebp - 0x30], eax
xor esi, esi
mov eax, dword [ebx + 0x400]
mov eax, dword [ebx + eax*4]
add eax, dword [ebx + 0x404]
and eax, 0xff
mov dword [ebx + 0x404], eax
mov eax, dword [ebx + 0x400]
inc eax
and eax, 0xff
mov dword [ebx + 0x400], eax
mov eax, dword [ebx + 0x410]
mov edi, dword [ebx + eax*4]
mov edx, dword [ebx + 0x404]
mov edx, dword [ebx + edx*4]
mov dword [ebx + eax*4], edx
mov eax, dword [ebx + 0x40c]
mov eax, dword [ebx + eax*4]
mov edx, dword [ebx + 0x404]
mov dword [ebx + edx*4], eax
mov eax, dword [ebx + 0x400]
mov eax, dword [ebx + eax*4]
mov edx, dword [ebx + 0x40c]
mov dword [ebx + edx*4], eax
mov eax, dword [ebx + 0x400]
mov dword [ebx + eax*4], edi
mov eax, dword [ebx + edi*4]
add eax, dword [ebx + 0x408]
and eax, 0xff
mov dword [ebx + 0x408], eax
mov edx, dword [ebx + 0x40c]
mov edi, dword [ebx + edx*4]
mov edx, dword [ebx + 0x410]
add edi, dword [ebx + edx*4]
add edi, dword [ebx + eax*4]
and edi, 0xff
mov eax, dword [ebp - 0x14]
call fcn.00d44558
movzx eax, byte [eax + esi]
mov dword [ebx + 0x40c], eax
mov eax, dword [ebx + 0x404]
mov eax, dword [ebx + eax*4]
mov edx, dword [ebx + 0x400]
add eax, dword [ebx + edx*4]
and eax, 0xff
mov eax, dword [ebx + eax*4]
mov edx, dword [ebx + edi*4]
mov edx, dword [ebx + edx*4]
xor edx, dword [ebx + 0x40c]
xor eax, edx
mov dword [ebx + 0x410], eax
lea eax, [ebp - 0x2c]
call fcn.00d445b0
mov dl, byte [ebx + 0x410]
mov byte [eax + esi], dl
inc esi
dec dword [ebp - 0x30]
jne 0xd5501a
mov eax, dword [ebp - 0x2c]
call fcn.00d44358
push eax
lea eax, [ebp - 0x2c]
call fcn.00d445b0
mov edx, eax
mov eax, dword [ebp + 8]
pop ecx
call fcn.00d441e8
jmp 0xd5525c
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
dec eax
test eax, eax
jl 0xd55240
inc eax
mov dword [ebp - 0x30], eax
xor esi, esi
mov eax, dword [ebx + 0x400]
mov eax, dword [ebx + eax*4]
add eax, dword [ebx + 0x404]
and eax, 0xff
mov dword [ebx + 0x404], eax
mov eax, dword [ebx + 0x400]
inc eax
and eax, 0xff
mov dword [ebx + 0x400], eax
mov eax, dword [ebx + 0x410]
mov edi, dword [ebx + eax*4]
mov edx, dword [ebx + 0x404]
mov edx, dword [ebx + edx*4]
mov dword [ebx + eax*4], edx
mov eax, dword [ebx + 0x40c]
mov eax, dword [ebx + eax*4]
mov edx, dword [ebx + 0x404]
mov dword [ebx + edx*4], eax
mov eax, dword [ebx + 0x400]
mov eax, dword [ebx + eax*4]
mov edx, dword [ebx + 0x40c]
mov dword [ebx + edx*4], eax
mov eax, dword [ebx + 0x400]
mov dword [ebx + eax*4], edi
mov eax, dword [ebx + edi*4]
add eax, dword [ebx + 0x408]
and eax, 0xff
mov dword [ebx + 0x408], eax
mov edx, dword [ebx + 0x40c]
mov edi, dword [ebx + edx*4]
mov edx, dword [ebx + 0x410]
add edi, dword [ebx + edx*4]
add edi, dword [ebx + eax*4]
and edi, 0xff
mov eax, dword [ebp - 0x14]
call fcn.00d44558
movzx eax, byte [eax + esi]
mov dword [ebx + 0x410], eax
mov eax, dword [ebx + 0x404]
mov eax, dword [ebx + eax*4]
mov edx, dword [ebx + 0x400]
add eax, dword [ebx + edx*4]
and eax, 0xff
mov eax, dword [ebx + eax*4]
mov edx, dword [ebx + edi*4]
mov edx, dword [ebx + edx*4]
xor edx, dword [ebx + 0x410]
xor eax, edx
mov dword [ebx + 0x40c], eax
lea eax, [ebp - 0x2c]
call fcn.00d445b0
mov dl, byte [ebx + 0x40c]
mov byte [eax + esi], dl
inc esi
dec dword [ebp - 0x30]
jne 0xd55148
mov eax, dword [ebp - 0x2c]
call fcn.00d44358
push eax
lea eax, [ebp - 0x2c]
call fcn.00d445b0
mov edx, eax
mov eax, dword [ebp + 8]
pop ecx
call fcn.00d441e8
mov eax, dword [ebp - 0x24]
call fcn.00d43448
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xd54699
lea eax, [ebp - 0x34]
call fcn.00d440f8
lea eax, [ebp - 0x2c]
call fcn.00d440f8
lea eax, [ebp - 0x20]
call fcn.00d440f8
lea eax, [ebp - 0x18]
call fcn.00d440f8
ret