Function at 0x7c83509e
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x7c836275
push edi
mov edi, dword [ebp + 0x14]
test edi, edi
jge 0x7c80d019
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x7c80d00d
sub eax, edx
lea edi, [eax + 1]
mov eax, dword [ebp + 0x18]
push ebx
push esi
mov esi, dword [eax]
test esi, esi
je 0x7c83506f
push 0x7f
pop ebx
cmp edi, ebx
jg 0x7c83506f
test edi, edi
je 0x7c847336
push ebx
push esi
push edi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.7c80d074
xor ebx, ebx
cmp eax, ebx
je 0x7c847348
mov ecx, dword [ebp + 0x18]
and word [esi + eax*2], 0
mov dword [ecx], esi
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], eax
xor eax, eax
inc eax
pop esi
pop ebx
pop edi
pop ebp
ret 0x18
inc esp
mov ch, 0x6e
std
inc esp
mov bh, 0x26
sub dword [edx + 0xc4c8ef9], ecx
int1
inc ecx
mov esp, 0xa4b9818b
jne 0x7c83509c
mov bh, 0xbe
fdivrp st(3)
push ecx
xchg esi, eax
xor al, 0xad
jnp 0x7c835093
in eax, dx
in eax, dx
or esi, ecx
aam 0x6d
or dword [ebp - 0x35], ebx
xchg ebp, eax
xor eax, 0x1876b61c
push cs
mov dh, 0x76
sbb byte [esi], cl
jnp 0x7c8350a6
mov eax, 0xd8efe655
iretd
fmul st(7)
mov byte [edi + 0x19], dl
sti
jno 0x7c835038
fmul st(7)
imul edx, dword [edx + 0x60], 0x28
stosd dword es:[edi], eax
mov bh, 0xf1
xchg esi, eax
fdivp st(0)
je 0x7c8350ee
fstp st(7)
shr dword [eax + ecx*2 - 0x78], 0x38
push edi
scasb al, byte es:[edi]
retf
sar ebx, cl
sub al, 0x4c
invalid
imul edi, dword [ecx + 0xd59a17f], 0x534cb63b
sti
pop ecx
pop ebx
scasb al, byte es:[edi]
mov al, 0x93
pop ecx
inc ecx
pop edx
jmp 0x7c835065
invalid
add ecx, dword [ebx + 0x551e327]
out 0x3b, al
xchg ebp, edx
mov esp, 0x7d89ab12
clc
mov ecx, ecx
js 0x7c8362d4
aas
push eax
or byte [edx], ch
push 0x7e
popfd
mov ebp, 0x370b9f0
pop ebp
int 0x79
push ds
ja 0x7c8362e8
das
or dword [esp + ecx*2 - 0x3c], ebp
jmp 0x7c836358
outsd dx, dword [esi]
iretd
imul byte [ebp + 0x445f7ae3]
and eax, dword [ecx + 0x6e3ad4d3]
scasb al, byte es:[edi]
inc eax
invalid
xchg ah, bl
mov ebp, 0x5bd9737e
mov dh, 0x2a
invalid
xchg ebp, eax
add byte [eax - 0x73], 0xdf
and ebp, edi
sti
les esp, [ebx + 0x13]
jb 0x7c836392
sbb al, 0x85
lodsd eax, dword [esi]
mov edi, 0x6f4cf6c1
jb 0x7c836394
jecxz 0x7c836342
dec esp
loopne 0x7c83632f
jne 0x7c836335
or eax, 0x71385e8f
xchg esi, eax
cmp al, 0x5b
add bh, 0xae
inc esp
mov esp, 0x26ef153a
les esi, [ebx]
sti
mov cl, 0xe4
movsd dword es:[edi], dword [esi]
adc byte [esp + 0x2a], dl
sbb dword [ebx + 0x25], eax
inc ebx
and eax, 0x42a90269
aad 0x8b
imul eax, dword [edx], 0x8bd542a9
sbb eax, 0xa4a7a07d
inc ebx
int 0x1d
mov dword [edx - 0x6d], ebp
cld
sbb bl, dh
xchg dword [esi + ecx], edx
ret 0x964a
in eax, 8
call dword [esi + 0x574bf824]
cdq
movsd dword es:[edi], dword [esi]
jp 0x7c847325
fbld tbyte [ebx - 0xe]
sar dword [esi + 0x11f13472], 0xfa
das
inc ecx
invalid
iretd
loope 0x7c847355
and byte [esi + 0x56], dl
jp 0x7c84736d
nop
jmp 0x7c8472ee
into
or byte [0xcdd2ac07], dl
fsub dword [eax - 0x17]
sbb edx, eax
loopne 0x7c84731b
invalid
ror ch, cl
jmp 0x7c84cbce
imul edi, dword [edx + edi*8 - 0x3f40f6d5], 0x73c80ad8
jne 0x7c847373
rcr al, 0xa
cwde
salc
out 0x87, eax
mov ecx, 0xb8a561f3
invalid
push ebp
stosd dword es:[edi], eax
ja 0x7c84cc02
xchg edx, eax
adc al, byte [edx + ecx + 0x14]
cld
cwde
xchg edi, eax
aam 0xc9
dec edi
push esp
movsd dword es:[edi], dword [esi]
inc ebp
jl 0x7c84cb68
adc esp, dword [edi]
cmp byte [edi - 0x612abe82], ch
and edi, dword [eax - 0x430aa2c6]
cli
mov eax, dword [0xa95c5548]
stc
push cs
mov word [edx + 0x61], es
pop edi
aam 0xd2
jl 0x7c84cc47
adc edx, ebp
mov byte [edx + 0x7f], 0xc0
in eax, 0x84
popal
invalid
mov eax, dword [0x213381c6]
push edi
cmp eax, 0xc3712a8f
pop esp
and eax, 0xf3179ec6
pop ds
iretd