Function at 0xffda534
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
xor eax, eax
push esi
push edi
lea edi, [ebp - 0x24]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
cmp dword [ebp + 0x18], 0x10
lea edi, [ebp - 0x14]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
jbe 0xffda55e
mov esi, 0x80090004
jmp 0xffda8ac
mov esi, dword [ebp + 8]
mov eax, 0x660e
cmp esi, eax
push ebx
ja 0xffda667
je 0xffda650
mov eax, esi
sub eax, 0x6601
je 0xffda620
dec eax
je 0xffda5f1
dec eax
je 0xffda5c1
sub eax, 6
jne 0xffda67a
push 0x180
call fcn.0ffe82b0
mov ebx, eax
test ebx, ebx
mov dword [ebp - 4], ebx
je 0xffda6b8
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.0ffe5aa0
push dword [ebp + 0xc]
push ebx
call fcn.0ffe5af0
jmp 0xffda6e2
push 0x180
call fcn.0ffe82b0
mov ebx, eax
test ebx, ebx
mov dword [ebp - 4], ebx
je 0xffda6b8
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.0ffe5aa0
push dword [ebp + 0xc]
push ebx
call fcn.0ffe5b30
jmp 0xffda6e2
push 0x80
call fcn.0ffe82b0
mov ebx, eax
test ebx, ebx
mov dword [ebp - 4], ebx
je 0xffda6b8
mov eax, dword [ebp + 0x10]
mov ecx, eax
shl ecx, 3
push ecx
push eax
push dword [ebp + 0xc]
push ebx
call fcn.0ffe5b70
jmp 0xffda6e2
push 0x80
call fcn.0ffe82b0
mov ebx, eax
test ebx, ebx
mov dword [ebp - 4], ebx
je 0xffda6b8
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.0ffe5aa0
push dword [ebp + 0xc]
push ebx
call fcn.0ffe5890
jmp 0xffda6e2
push 0x1e4
call fcn.0ffe82b0
mov ebx, eax
test ebx, ebx
mov dword [ebp - 4], ebx
je 0xffda6b8
push 0xa
jmp 0xffda6d9
mov eax, esi
sub eax, 0x660f
je 0xffda6c4
dec eax
je 0xffda6a5
sub eax, 0x1f1
je 0xffda684
mov esi, 0x80090008
jmp 0xffda8ab
push 0x102
call fcn.0ffe82b0
mov ebx, eax
test ebx, ebx
mov dword [ebp - 4], ebx
je 0xffda6b8
push dword [ebp + 0xc]
push dword [ebp + 0x10]
push ebx
call fcn.0ffe546d
jmp 0xffda6e2
push 0x1e4
call fcn.0ffe82b0
mov ebx, eax
test ebx, ebx
mov dword [ebp - 4], ebx
jne 0xffda6c0
push 8
pop esi
jmp 0xffda8a1
push 0xe
jmp 0xffda6d9
push 0x1e4
call fcn.0ffe82b0
mov ebx, eax
test ebx, ebx
mov dword [ebp - 4], ebx
je 0xffda6b8
push 0xc
push dword [ebp + 0xc]
push ebx
call fcn.0ffe52e0
cmp dword [ebp + 0x24], 1
mov edx, 0x6801
jne 0xffda72f
cmp esi, edx
je 0xffda72f
mov ecx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
mov eax, ecx
shr ecx, 2
lea edi, [ebp - 0x24]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x20]
test esi, esi
je 0xffda72c
xor ecx, ecx
cmp eax, ecx
jbe 0xffda72c
lea eax, [ebp - 0x24]
sub esi, eax
lea eax, [ebp + ecx - 0x24]
mov bl, byte [esi + eax]
xor byte [eax], bl
inc ecx
cmp ecx, dword [ebp + 0x18]
jb 0xffda71a
mov ebx, dword [ebp - 4]
mov esi, dword [ebp + 8]
cmp esi, 0x6601
je 0xffda82c
cmp esi, 0x6602
je 0xffda803
cmp esi, 0x6603
je 0xffda7da
cmp esi, 0x6609
je 0xffda7da
cmp esi, 0x660d
jbe 0xffda7d0
cmp esi, 0x6610
jbe 0xffda7a1
cmp esi, edx
jne 0xffda7d0
mov ecx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
mov eax, ecx
shr ecx, 2
cmp dword [ebp + 0x24], 1
lea edi, [ebp - 0x14]
je 0xffda786
mov esi, dword [ebp + 0x1c]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 0x18]
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
call fcn.0ffe5320
jmp 0xffda853
cmp dword [ebp + 0x24], 1
jne 0xffda7bc
push 1
push ebx
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0ffe52a0
jmp 0xffda859
push 0
push ebx
push dword [ebp + 0x1c]
lea eax, [ebp - 0x14]
push eax
call fcn.0ffe52a0
jmp 0xffda853
mov esi, 0x80090008
jmp 0xffda8a1
cmp dword [ebp + 0x24], 1
jne 0xffda7f2
push 1
push ebx
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0ffe47e0
jmp 0xffda859
push 0
push ebx
push dword [ebp + 0x1c]
lea eax, [ebp - 0x14]
push eax
call fcn.0ffe47e0
jmp 0xffda853
cmp dword [ebp + 0x24], 1
jne 0xffda81b
push 1
push ebx
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0ffe3a00
jmp 0xffda859
push 0
push ebx
push dword [ebp + 0x1c]
lea eax, [ebp - 0x14]
push eax
call fcn.0ffe3a00
jmp 0xffda853
cmp dword [ebp + 0x24], 1
jne 0xffda844
push 1
push ebx
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0ffe2960
jmp 0xffda859
push 0
push ebx
push dword [ebp + 0x1c]
lea eax, [ebp - 0x14]
push eax
call fcn.0ffe2960
cmp dword [ebp + 0x24], 1
jne 0xffda85e
mov esi, dword [ebp + 0x1c]
jmp 0xffda883
mov esi, dword [ebp + 0x20]
xor ecx, ecx
cmp esi, ecx
je 0xffda880
cmp dword [ebp + 0x18], ecx
jbe 0xffda880
lea eax, [ebp - 0x14]
sub esi, eax
lea eax, [ebp + ecx - 0x14]
mov dl, byte [esi + eax]
xor byte [eax], dl
inc ecx
cmp ecx, dword [ebp + 0x18]
jb 0xffda871
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x18]
lea edi, [ebp - 0x14]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0xffda894
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0xffda89f
mov esi, 0x80090020
jmp 0xffda8a1
xor esi, esi
test ebx, ebx
je 0xffda8ab
push ebx
call fcn.0ffe82e0
pop ebx
pop edi
mov eax, esi
pop esi
leave
ret 0x20