Function at 0xffdabb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
lea ebp, [esp - 0x64]
sub esp, 0x134
push ebx
push esi
push edi
xor edi, edi
test word [ebp + 0x78], 0xfbea
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x38], edi
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x58], edi
mov dword [ebp + 0x40], edi
je 0xffdabe4
mov esi, 0x80090009
jmp 0xffdaf16
push edi
push dword [ebp + 0x6c]
call fcn.0ffdf81e
mov esi, eax
cmp esi, edi
mov dword [ebp + 0x44], esi
jne 0xffdac00
mov esi, 0x80090001
jmp 0xffdaf16
mov ebx, dword [ebp + 0x70]
push ebx
push esi
call fcn.0ffd82d7
test eax, eax
je 0xffdacac
lea eax, [ebp + 0x50]
push eax
push 1
push dword [ebp + 0x6c]
push dword [ebp + 0x74]
call fcn.0ffdf839
cmp eax, edi
je 0xffdac3c
cmp eax, 0x80090020
jne 0xffdaf10
mov esi, 0x80090002
jmp 0xffdaf16
mov eax, dword [ebp + 0x50]
cmp dword [eax + 4], 0x4c02
jne 0xffdac5b
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push ebx
push eax
push esi
call fcn.0ffe1cfe
jmp 0xffdaf10
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp + 0x60]
push eax
push dword [ebp + 0x78]
push ebx
push esi
call fcn.0ffd8395
cmp eax, edi
jne 0xffdaf10
cmp ebx, 0x6601
mov esi, 0x6603
jne 0xffdac8b
mov dword [ebp + 0x60], 8
jmp 0xffdaca7
cmp ebx, 0x6609
jne 0xffdac9c
mov dword [ebp + 0x60], 0x10
jmp 0xffdaca7
cmp ebx, esi
jne 0xffdaca7
mov dword [ebp + 0x60], 0x18
cmp dword [ebp + 0x40], edi
je 0xffdacb6
mov esi, 0x80090008
jmp 0xffdaf16
mov eax, dword [ebp + 0x50]
test byte [eax + 0x14], 1
jne 0xffdac32
push 0xc
pop ecx
xor eax, eax
lea edi, [ebp - 0x20]
rep stosd dword es:[edi], eax
xor edi, edi
push edi
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp - 0x20]
push eax
push 2
push dword [ebp + 0x74]
mov dword [ebp + 0x4c], 0x30
push dword [ebp + 0x6c]
call sym.RSAENH.dll_CPGetHashParam
test eax, eax
jne 0xffdacfb
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0xffdaf10
cmp ebx, esi
je 0xffdad1b
cmp ebx, 0x660e
je 0xffdad1b
cmp ebx, 0x660f
je 0xffdad1b
cmp ebx, 0x6610
jne 0xffdae4d
lea eax, [ebp + 0x54]
push eax
mov eax, dword [ebp + 0x50]
push edi
push edi
push dword [eax + 4]
push dword [ebp + 0x6c]
call sym.RSAENH.dll_CPCreateHash
test eax, eax
je 0xffdacf0
lea eax, [ebp + 0x58]
push eax
mov eax, dword [ebp + 0x50]
push edi
push edi
push dword [eax + 4]
push dword [ebp + 0x6c]
call sym.RSAENH.dll_CPCreateHash
test eax, eax
je 0xffdacf0
push 0x10
pop ecx
mov eax, 0x36363636
lea edi, [ebp - 0xa0]
rep stosd dword es:[edi], eax
push 0x10
mov eax, 0x5c5c5c5c
pop ecx
lea edi, [ebp - 0x60]
rep stosd dword es:[edi], eax
xor esi, esi
xor eax, eax
cmp dword [ebp + 0x4c], esi
jbe 0xffdad86
mov cl, byte [ebp + eax - 0x20]
xor byte [ebp + eax - 0xa0], cl
xor byte [ebp + eax - 0x60], cl
inc eax
cmp eax, dword [ebp + 0x4c]
jb 0xffdad71
push esi
push 0x40
lea eax, [ebp - 0xa0]
push eax
push dword [ebp + 0x54]
push dword [ebp + 0x6c]
call sym.RSAENH.dll_CPHashData
test eax, eax
je 0xffdacf0
push esi
push 0x40
lea eax, [ebp - 0x60]
push eax
push dword [ebp + 0x58]
push dword [ebp + 0x6c]
call sym.RSAENH.dll_CPHashData
test eax, eax
je 0xffdacf0
xor eax, eax
lea edi, [ebp + 0x10]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 0x14
pop ebx
stosd dword es:[edi], eax
push 0
stosd dword es:[edi], eax
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp + 0x10]
push eax
push 2
push dword [ebp + 0x54]
mov dword [ebp + 0x48], ebx
push dword [ebp + 0x6c]
call sym.RSAENH.dll_CPGetHashParam
test eax, eax
je 0xffdacf0
mov ecx, dword [ebp + 0x48]
mov eax, ecx
shr ecx, 2
lea esi, [ebp + 0x10]
lea edi, [ebp - 0x20]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp + 0x24]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 0
stosd dword es:[edi], eax
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x24]
push eax
push 2
push dword [ebp + 0x58]
mov dword [ebp + 0x3c], ebx
push dword [ebp + 0x6c]
call sym.RSAENH.dll_CPGetHashParam
test eax, eax
je 0xffdacf0
mov ecx, dword [ebp + 0x3c]
mov edi, dword [ebp + 0x48]
mov ebx, dword [ebp + 0x70]
mov eax, ecx
shr ecx, 2
lea edi, [ebp + edi - 0x20]
lea esi, [ebp + 0x24]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x60]
mov eax, ecx
shr ecx, 2
lea esi, [ebp - 0x20]
lea edi, [ebp - 0xd0]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
test byte [ebp + 0x78], 1
rep movsb byte es:[edi], byte [esi]
je 0xffdae74
mov dword [ebp + 0x38], 1
lea eax, [ebp + 0x5c]
push eax
xor esi, esi
push esi
push esi
lea eax, [ebp - 0xd0]
push eax
push dword [ebp + 0x6c]
push dword [ebp + 0x60]
push dword [ebp + 0x38]
push ebx
call fcn.0ffd7b36
cmp eax, esi
jne 0xffdaf10
mov ebx, dword [ebp + 0x78]
and ebx, 4
je 0xffdaedf
mov eax, dword [ebp + 0x44]
mov eax, dword [eax + 0x194]
cmp eax, esi
je 0xffdaeb8
cmp eax, 1
je 0xffdaeb8
mov eax, dword [ebp + 0x5c]
mov dword [eax + 0x40], esi
jmp 0xffdaec2
mov eax, dword [ebp + 0x5c]
mov dword [eax + 0x40], 0xb
mov ecx, dword [eax + 0x40]
mov esi, dword [ebp + 0x60]
mov edx, ecx
shr ecx, 2
lea esi, [ebp + esi - 0x20]
lea edi, [eax + 0x44]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0xffdaee2
mov eax, dword [ebp + 0x5c]
mov esi, dword [ebp + 0x7c]
push eax
push 2
push esi
call fcn.0ffdf87e
test eax, eax
jne 0xffdaf10
cmp dword [ebp + 0x60], 5
jne 0xffdaf14
test byte [ebp + 0x78], 0x10
jne 0xffdaf14
test ebx, ebx
jne 0xffdaf14
push dword [esi]
push dword [ebp + 0x6c]
call fcn.0ffda8f6
test eax, eax
je 0xffdaf14
mov esi, eax
jmp 0xffdaf16
xor esi, esi
xor eax, eax
test esi, esi
sete al
xor ebx, ebx
cmp dword [ebp + 0x44], ebx
mov edi, eax
je 0xffdaf46
cmp dword [ebp + 0x54], ebx
je 0xffdaf36
push dword [ebp + 0x54]
push dword [ebp + 0x6c]
call sym.RSAENH.dll_CPDestroyHash
cmp dword [ebp + 0x58], ebx
je 0xffdaf46
push dword [ebp + 0x58]
push dword [ebp + 0x6c]
call sym.RSAENH.dll_CPDestroyHash
cmp edi, ebx
jne 0xffdaf5e
cmp dword [ebp + 0x5c], ebx
je 0xffdaf57
push dword [ebp + 0x5c]
call fcn.0ffd7cab
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, edi
pop edi
pop esi
pop ebx
add ebp, 0x64
leave
ret 0x14