Function at 0x7df0d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push esi
mov esi, dword [ebp + 8]
test esi, esi
je 0x7df329
cmp dword [esi + 0x38], 0
je 0x7df329
cmp dword [esi + 0x9c], 0
je 0x7df0fe
push esi
call fcn.007ded00
add esp, 4
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 8]
push eax
push esi
call fcn.007df5c0
add esp, 0x10
test eax, eax
je 0x7df121
mov eax, 0xffffff99
pop esi
mov esp, ebp
pop ebp
ret
push ebx
push edi
push 0x90
call fcn.007a35a7
mov edi, eax
add esp, 4
test edi, edi
je 0x7df16e
push 0x4000
call fcn.007a35a7
mov ecx, dword [ebp + 8]
add esp, 4
mov edx, dword [ebp + 0x14]
mov dword [edi + 0x44], ecx
mov ecx, dword [ebp - 4]
mov dword [edi], eax
mov dword [edi + 0x48], ecx
mov dword [edi + 0x4c], 0
mov dword [edi + 0x8c], edx
test eax, eax
jne 0x7df17a
push edi
call fcn.007a2dd1
add esp, 4
pop edi
pop ebx
mov eax, 0xffffff98
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0xc]
mov dword [edi + 0x40], 0
test ecx, ecx
je 0x7df18d
mov eax, dword [esi + 0x54]
mov dword [ecx], eax
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x7df1c5
mov dword [ecx], 6
mov eax, dword [esi + 0x50]
and eax, 6
sub eax, 2
je 0x7df1bf
sub eax, 2
je 0x7df1b7
sub eax, 2
jne 0x7df1c5
mov dword [ecx], 1
jmp 0x7df1c5
mov dword [ecx], 2
jmp 0x7df1c5
mov dword [ecx], 9
movups xmm0, xmmword [esi]
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x54]
mov dword [edi + 0x54], eax
mov eax, dword [esi + 0x20]
mov dword [edi + 0x80], eax
mov eax, dword [esi + 0x2c]
mov dword [edi + 0x50], 0
mov dword [edi + 0x84], ecx
mov dword [edi + 0x88], eax
mov dword [edi + 0x18], 0
movups xmmword [edi + 0x60], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [edi + 0x70], xmm0
cmp ecx, 8
jne 0x7df240
test edx, edx
jne 0x7df240
push 0x38
push str.1.2.11
lea eax, [edi + 4]
mov dword [edi + 0x24], edx
push 0xfffffffffffffff1
push eax
mov dword [edi + 0x28], edx
mov dword [edi + 0x2c], edx
mov dword [eax], edx
mov dword [edi + 8], edx
call fcn.007e1630
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x7df317
mov dword [edi + 0x40], 1
mov eax, dword [esi + 0x60]
mov dword [edi + 0x58], eax
mov eax, dword [esi + 0x64]
mov dword [edi + 0x5c], eax
mov eax, dword [ebp - 8]
add eax, 0x1e
mov dword [edi + 8], 0
add eax, dword [esi + 0x98]
mov dword [edi + 0x3c], eax
mov dword [esi + 0x9c], edi
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x7df30e
call fcn.007e1f40
push eax
lea ebx, [esi + 0xa4]
mov dword [esi + 0xb0], eax
push ebx
push edi
call fcn.007decb0
mov ecx, dword [esi + 0x9c]
push 0
mov eax, dword [ecx + 0x88]
add eax, dword [ecx + 0x3c]
push eax
push dword [esi + 0x20]
mov eax, dword [esi + 0x10]
push dword [esi + 0x1c]
call eax
add esp, 0x1c
test eax, eax
jne 0x7df16e
push 0xc
lea eax, [ebp - 0x14]
push eax
push dword [esi + 0x20]
mov eax, dword [esi + 4]
push dword [esi + 0x1c]
call eax
add esp, 0x10
cmp eax, 0xc
jb 0x7df16e
xor edi, edi
mov edx, dword [esi + 0xb0]
push edx
push ebx
call fcn.007dec80
xor byte [ebp + edi - 0x14], al
movsx eax, byte [ebp + edi - 0x14]
push eax
push edx
push ebx
call fcn.007dfd80
inc edi
add esp, 0x14
cmp edi, 0xc
jl 0x7df2d3
mov eax, dword [esi + 0x9c]
add dword [eax + 0x3c], 0xc
mov dword [esi + 0xa0], 1
pop edi
pop ebx
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
push edi
call fcn.007a2dd1
add esp, 4
mov eax, ebx
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
mov eax, 0xffffff9a
pop esi
mov esp, ebp
pop ebp
ret