Function at 0x7c80bdb9
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x18]
and dword [ebp - 4], 0
test edx, edx
mov ecx, dword [eax + 0x1c]
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
je 0x7c8203d3
mov ecx, dword [ebp + 0x14]
mov esi, dword [eax + 8]
add edx, ecx
cmp word [esi + 2], 1
mov esi, dword [ebp + 0xc]
mov dword [ebp + 0x18], edx
jne 0x7c84bcf6
mov edi, dword [ebp + 0x10]
sub edi, esi
sar edi, 1
sub edx, ecx
cmp edx, edi
mov dword [ebp - 4], edi
jl 0x7c84bcb5
test byte [ebp + 0x25], 4
jne 0x7c812fd8
test edi, edi
jle 0x7c80be3e
mov edx, dword [ebp - 4]
mov dword [ebp + 0xc], edx
movzx edx, word [esi]
mov edi, dword [ebp - 8]
mov dl, byte [edx + edi]
mov byte [ecx], dl
mov edi, dword [eax + 8]
mov bx, word [edi + 4]
cmp dl, bl
je 0x7c81ae84
inc esi
inc esi
inc ecx
dec dword [ebp + 0xc]
jne 0x7c80be1c
cmp esi, dword [ebp + 0x10]
jb 0x7c84beff
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret 0x20
test edi, edi
jle 0x7c80be3e
mov edx, dword [ebp - 4]
mov dword [ebp + 0xc], edx
movzx edx, word [esi]
mov edi, dword [ebp - 8]
mov dl, byte [edx + edi]
mov byte [ecx], dl
mov edi, dword [eax + 0xc]
movzx edx, dl
mov dx, word [edi + edx*2]
cmp dx, word [esi]
jne 0x7c84bcbf
mov edx, dword [eax + 8]
mov bx, word [edx + 4]
cmp byte [ecx], bl
je 0x7c84bccc
inc esi
inc esi
inc ecx
dec dword [ebp + 0xc]
jne 0x7c812fe6
jmp 0x7c80be3e
mov dx, word [esi]
cmp dx, word [edi + 8]
je 0x7c80be36
cmp bx, word [ebp + 0x1c]
mov edx, dword [ebp + 0x20]
mov dword [edx], 1
je 0x7c80be36
mov dl, byte [ebp + 0x1c]
mov byte [ecx], dl
jmp 0x7c80be36
mov ecx, dword [eax + 8]
cmp word [ecx + 2], 1
jne 0x7c84bb77
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
sub ecx, esi
sar ecx, 1
test byte [ebp + 0x25], 4
mov dword [ebp - 4], ecx
je 0x7c8203f9
jmp 0x7c838d09
cmp esi, dword [ebp + 0x10]
jae 0x7c80be47
mov dx, word [esi]
mov ebx, dword [ebp - 8]
mov ecx, dword [eax + 8]
movzx edi, dx
mov bl, byte [edi + ebx]
cmp bl, byte [ecx + 4]
je 0x7c83960e
inc esi
inc esi
jmp 0x7c8203f9
or al, 0x57
aaa
or al, byte [ecx + 0x5b5778c8]
invalid
sub cl, byte [edi + eax - 0x33b509c0]
and bh, dh
mov al, byte [0x41cd6f64]
fisub dword [esi + 0x42a76cde]
rcl byte [ebx - 3]
iretd
mov dword [edi + 0x70], ebx
push eax
insd dword es:[edi], dx
cwde
in al, dx
xor byte [ebp - 0x758bae93], al
aas
rol bl, 0xa8
pop eax
sbb byte [edi], 0x14
popfd
sbb dl, al
sti
adc edx, dword [ebp - 0xf11667c]
and al, 0xfb
aas
sub dh, byte [esi - 0x48b6caeb]
aas
invalid
test byte [ecx - 0x52], 0xa6
out 0x66, eax
xchg edx, eax
adc ebp, dword [edi - 0x37793e0c]
sbb eax, 0xbc836119
pop ecx
insd dword es:[edi], dx
inc ebx
mov eax, 0x191fd2bf
mov ebp, esi
rol dword [esi + 0x61191dc8], 0x83
mov esp, 0xb8436d59
mov edi, 0x8b191fd2
out dx, al
rcr byte [edi], cl
sbb dword [ebx + 0x1a807fee], ecx
not byte [ecx - 0x53]
jg 0x7c84bc53
sbb dh, dh
push ecx
lodsd eax, dword [esi]
jns 0x7c84bcee
dec ebp
aas
aaa
xchg ebx, eax
invalid
xchg byte [ebp + 0x31], al
les edi, [eax + 0x1d]
pop esi
cmp cl, cl
leave
mov byte [0x435aa24f], al
sbb ch, byte [edx - 0x22cb8815]
sbb al, 0x60
and esi, dword [edx - 0x779e0db8]
mov ah, 0xd4
loope 0x7c84bd6b
stosb byte es:[edi], al
invalid
std
aam 0x29
dec ebp
add dword [esi + 0x63075303], esi
wait
pop esp
push esp
push ebp
sal byte [esi + 0x7c], 1
adc dl, al
jnp 0x7c84bd9d
xchg dword [edi - 0x237f77a4], ebp
leave
iretd
jno 0x7c84bd4d
mov eax, 0x583778f8
aas
stosd dword es:[edi], eax
aaa
dec esp
int 0x7f
sub eax, eax
mov esi, 0x7800c484
lodsd eax, dword [esi]
outsd dx, dword [esi]
and bh, byte [bp + si]
cmpsb byte [esi], byte es:[edi]
inc ebp
cmpsb byte [esi], byte es:[edi]
sub edi, edx
xchg bh, cl
stosb byte es:[edi], al
invalid
add bl, dl
out dx, al
add dword [ebx + 0x20], esp
jae 0x7c84bdf5
mov dword [0x540c0bbc], eax
sub dword [edi - 0x70], ebx
xlatb
or byte [0x79db927b], dl
xor dword [ecx - 0x775fccba], 0xffffff8b
invalid
retf
retf