Function at 0x7c80a174
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push edi
mov edi, dword [ebp + 8]
cmp edi, 0xea60
jae 0x7c820628
mov eax, dword [0x7c885380]
cmp edi, eax
push esi
jne 0x7c80a330
mov esi, dword [0x7c8856d0]
mov eax, dword [ebp + 0x14]
test eax, eax
push ebx
je 0x7c836bcb
cmp dword [ebp + 0x1c], 0
jl 0x7c836bcb
mov ebx, dword [ebp + 0x10]
xor edx, edx
cmp ebx, edx
je 0x7c836bcb
cmp dword [ebp + 0x1c], edx
je 0x7c80a1d7
cmp dword [ebp + 0x18], edx
je 0x7c836bcb
cmp ebx, dword [ebp + 0x18]
je 0x7c836bcb
cmp eax, 0xffffffff
jle 0x7c80a321
cmp esi, edx
je 0x7c84cbbd
mov ecx, dword [esi + 4]
cmp ecx, edx
jne 0x7c84cc36
mov ecx, dword [ebp + 0xc]
and ecx, 0x200
mov dword [ebp + 0x14], ecx
jne 0x7c80a20b
test byte [ebp + 0xc], 0x70
jne 0x7c84cc64
test dword [ebp + 0xc], 0xfffff98f
jne 0x7c84cc64
mov ecx, dword [ebp + 0x20]
test ecx, ecx
mov edi, dword [ebp + 0x24]
lea edx, [ebx + eax*2]
jne 0x7c80a229
test edi, edi
je 0x7c80a277
and dword [ebp + 0x20], 0
cmp dword [ebp + 0x20], 0
mov eax, dword [esi + 8]
mov ax, word [eax + 4]
jne 0x7c832dfd
test ecx, ecx
jne 0x7c820296
test edi, edi
je 0x7c820315
push dword [ebp + 0xc]
and dword [edi], 0
cmp dword [ebp + 0x14], 0
push edi
push eax
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push edx
push dword [ebp + 0x10]
push esi
jne 0x7c832d0c
call fcn.7c80bdb9
pop ebx
pop esi
pop edi
pop ebp
ret 0x20
cmp dword [ebp + 0x14], edi
mov dword [ebp + 0x20], 1
jne 0x7c80a22d
push dword [ebp + 0xc]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push edx
push ebx
push esi
call fcn.7c80a29b
jmp 0x7c80a270
mov ecx, ebx
call fcn.7c80a374
inc eax
xor edx, edx
jmp 0x7c80a1e0
mov ecx, dword [0x7c88566c]
cmp edi, ecx
jne 0x7c80a345
mov esi, dword [0x7c88562c]
jmp 0x7c80a19d
test edi, edi
jne 0x7c83078a
mov edi, eax
jmp 0x7c80a197
mov eax, dword [esi + 0x18]
test eax, eax
jne 0x7c84cc6e
xor eax, eax
test eax, eax
jne 0x7c84cc7a
movzx ax, byte [ecx]
jmp 0x7c80a246
lea edi, [ebp + 0x20]
jmp 0x7c80a24e
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edi
call fcn.7c82064d
jmp 0x7c80a272
cmp edi, 0x2a
je 0x7c84ca89
cmp edi, 2
je 0x7c84cbab
cmp edi, 3
jne 0x7c82f1e4
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0xc4]
cmp eax, dword [0x7c8853a8]
jne 0x7c84ca90
mov eax, dword [0x7c885350]
test eax, eax
je 0x7c82f1e4
mov eax, dword [eax + 8]
movzx edi, word [eax]
test edi, edi
je 0x7c84cb95
cmp edi, 1
je 0x7c84cba0
cmp edi, 2
je 0x7c84cbab
mov ecx, edi
call fcn.7c80d24e
mov esi, eax
jmp 0x7c80a19d
cmp edi, 1
jne 0x7c82f18c
mov edi, ecx
jmp 0x7c80a33a
dec ecx
hlt
dec eax
push ebp
in al, 0xc3
out 0xa8, eax
sahf
xchg edi, eax
shr byte [0x83a8d1bb], 1
aas
dec esp
mov esp, 0xf73e045a
aaa
lea esp, [ecx + 0xae27c0d]
xchg esi, eax
mov eax, 0x6a6d4f3e
adc byte [ebx - 0x30], dh
daa
scasb al, byte es:[edi]
nop
or bh, al
les edx, [ebp + 0x6ce28bb5]
movsd dword es:[edi], dword [esi]
das
outsd dx, dword [esi]
popfd
call 0x4b93de6b
push cs
cmpsd dword [esi], dword es:[edi]
mov byte [0x67afdbfc], al
mov es, word [ecx]
neg byte ds:[ebx]
cld
fld xword [edi + 0x3e018e67]
neg byte [ebx]
stosb byte es:[edi], al
push cs
pop esp
jns 0x7c832cec
push dword [eax + 0x18]
sub esp, dword [ebx + 0x50]
dec ecx
loopne 0x7c832d80
push ebp
pop esp
xchg edx, eax
stosd dword es:[edi], eax
jne 0x7c832d6c
cmc
je 0x7c832d4a
adc dl, ch
xchg ebx, eax
std
ret
mov ah, byte [edi]
rol byte [edi], cl
mov ecx, dword [0xbced09f3]
jo 0x7c832df3
movsb byte es:[edi], byte [esi]
jo 0x7c832de6
sub al, 0x77
cmpsd dword [esi], dword es:[edi]
das
rol byte [esi + 0x145f87c4], 1
cmc
mov ebx, 0xe9d4cefc
les esi, [ebp - 0x74fa04d1]
inc eax
jge 0x7c832dc2
wait
jge 0x7c832e28
mov dh, 0x4a
or esp, ebp
xchg edx, eax
aad 0x45
sub al, 0xf5
outsb dx, byte [esi]
xchg ecx, eax
ror al, 0xe6
mov ch, 0xe0
invalid
fmul st(2), st(0)
pop edi
dec esp
inc esi
mov byte [0xf3029bb7], al
lodsd eax, dword [esi]
cli
mov ecx, 0xc3618a45
add dl, bh
pop es
mov dl, 0xf1
mov cl, 0xa0
inc edi
mov bl, byte [ebx + 0x4ad23810]
xor ebp, edx
test dword es:[edx + edx*2 + 0x71], 0x95908e44
ror edi, cl
mov ch, 0x3f
push edx
jno 0x7c832e2d
mov ss, word [eax - 0x4a302c6b]
aas
invalid
xor dh, dh
and ebp, dword [edi + 0x49]
sal dword [edx - 0x5269fb2b], 1
xchg esi, eax
lodsd eax, dword [esi]
cmp ch, byte [0xad658ad9]
sbb dh, ch
push ebx
add al, 0x66
mov eax, dword [0xc96da6b0]
cld
insb byte es:[edi], dx
add bl, byte cs:[edi + 0x38]
invalid
and al, 0x32
cmp cl, byte [ecx - 0x723c2c20]
sub dword [esi - 0x40], edx
mov dl, 8
add eax, 0xf4bf98c4
dec eax
cmp esi, esi
add ch, byte [ecx - 0x63]
iretd
dec eax
mov edx, dword [edx + 0x3b]
ret 0x5470
das
push ebp
or ecx, esp
cmp edx, edi
mov ebx, 0x4ead5370
dec esi
imul ebp, dword [edx - 0x1b2e6fe3], 0x44
mov edx, 0x920ec44d
push cs
xchg edx, eax
invalid
or eax, 0xb6593152
add edx, dword [esp + ebp*8 + 0x64bd3a23]
rcr dword [eax - 0x2f], 0xd9
xchg dword [ebp - 0x55], edx
push esp
xchg dword [ecx + 0x6c39872a], edx
sbb edx, dword [bp - 0x6af6]
pop eax
xor byte [ebx], 0x21
bound esp, qword [ecx + 0x213381c6]
xchg esi, eax
mov edx, 0x292eb84b
inc ebx
dec esi
hlt
add edx, ebp
inc ebp
sbb al, 0x8e
inc edi
add byte [ebx - 0xa90bbc8], ah
mov dword [0xf56f4438], eax
xor dword [eax - 0x707f4778], ecx
in eax, 0x3f
stosb byte es:[edi], al
jne 0x7c84cc75
adc dword [ecx], esp
inc edx
or al, 0xe1
lodsb al, byte [esi]
cld
mov edx, esi
mov ecx, 0x6af2e2ff
jne 0x7c84ccdd
mov ebp, 0xb8813d33
push ebx
scasd eax, dword es:[edi]
stc
xchg edi, eax
jl 0x7c84ccdb
adc dword [ecx], edi
fsubr st(7), st(0)
dec ebp
cmp edi, 0xffffff86
sub byte [eax + 0x6c], al
push es
sbb al, bh
pop esp
add edx, edx
rol dword [edi + 0x2e60d61f], cl
dec edx
jmp 0x378730d0
add dh, byte [ecx - 0x72]
push edx
bswap ebp
push ds
mov ss, word [edx + 0xf]
int 0x1e
nop
xchg ecx, eax
push 0xfffffffffffffff6
stc
test eax, 0x5a7d49b2
mov bl, 0xdd
sub dword [edi + edi*2], edx
loope 0x7c84cc85
xchg edx, eax
push esi
out 0x47, al
adc ebp, ebp
sar byte [esi - 0x1769e733], cl
jmp 0x7c84ccf2