Function at 0xdfd150
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x130
mov dword [esp + 0x10], 0x733e6d09
mov dword [esp + 0x14], 0x77d171c3
mov dword [esp + 0x18], 0x7bd675d5
mov dword [esp + 0x1c], 0x7fce7939
mov dword [esp + 0x20], 0x43067dcc
mov dword [esp + 0x24], 0x47f241e1
mov dword [esp + 0x28], 0x4b2f45e5
lea eax, [esp + 0x2c]
mov word [esp + 0x2c], 0x4948
mov dword [esp + 0x32], 0
mov dword [esp + 0x2e], 0
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0x25
ja 0xdfd22b
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
movzx edi, byte [esp + ecx + 0x10]
lea ecx, [esi - 0x46a74232]
lea edx, [esi + edi]
add edx, 0xb958bdce
add esi, 0xce
and esi, edi
and ecx, edi
add ecx, esi
mov esi, ecx
xor esi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, esi
add cl, 0x5e
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0x26
jb 0xdfd1d0
lea esi, [esp + 0x10e]
lea edx, [esp + 0x10]
mov ecx, 7
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x12a]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea ebx, [esp + 0x7c]
push ebx
push 0
push 0
push 0xe
push esi
push 0
call dword [0xe28fdc]
mov edi, dword [esp + 0x7c]
test edi, edi
jns 0xdfd277
mov eax, 0xffffffff
jmp 0xdfd27a
lea eax, [edi + edi]
push eax
call fcn.00e14fa0
add esp, 4
mov esi, eax
push ebx
push edi
push eax
push 0xe
lea eax, [esp + 0x11e]
push eax
push 0
call dword [0xe28fdc]
mov dword [esp + 0x10], 0xb5a0d68
mov dword [esp + 0x14], 0x7790969
mov dword [esp + 0x18], 0x3630573
mov dword [esp + 0x1c], 0x1f63017b
mov dword [esp + 0x20], 0x1b1a1d93
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov byte [esp + 0x38], 0
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0x28
ja 0xdfd359
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
movzx edi, byte [esp + ecx + 0x10]
lea ecx, [edx + edi]
add ecx, 0x45d84482
add edx, 0x45d84482
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0x72
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0x29
jb 0xdfd310
lea edi, [esp + 0xfa]
lea ebx, [esp + 0x10]
mov edx, ebx
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x10e]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x7c]
mov ecx, eax
add ecx, 9
jns 0xdfd391
mov eax, 0xffffffff
jmp 0xdfd396
add eax, eax
add eax, 0x12
push eax
call fcn.00e14fa0
add esp, 4
mov edi, eax
movzx ecx, word [esi]
test cx, cx
je 0xdfd3c1
lea edx, [esi + 2]
mov eax, edi
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0xdfd3b0
mov word [eax], 0
movzx ecx, word [esp + 0xfa]
test cx, cx
je 0xdfd3f1
lea edx, [esp + 0xfc]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0xdfd3e0
mov word [eax], 0
lea eax, [esp + 0xa8]
push eax
push edi
call fcn.00e19cb0
add esp, 8
not eax
shr eax, 0x1f
mov eax, dword [eax*4 + 0xe23004]
mov ecx, 0x5fee6c4d
xor ecx, dword [0xe2300c]
add eax, ecx
inc eax
mov dword [esp + 0x78], edi
jmp eax