Function at 0xf04004
Capabilities:
Encode data using xor

Disassembly:
jmp 0xf0400e
pushal
call 0xf04014
pop ebp
sub ebp, 0x10
sub ebp, 0xb04004
jmp 0xf0402a
mov eax, 0xb04004
add eax, ebp
add eax, 0x4c
mov ecx, 0x59f
mov edx, 0x2b9cee0
xor byte [eax], dl
inc eax
dec ecx
adc byte [eax + 0x49], al
jne 0xf04041
test esi, esi
invalid
invalid
jmp 0xf04054
imul ebp, dword [0xe0dc696b], 0xffffffe0
loopne 0xf040be
imul ebx, esp, 0x61e0e0e0
loopne 0xf0403c
popal
and dword [eax], ebx
loopne 0xf04041
loopne 0xf04042
loopne 0xf04046
jecxz 0xf04091
sub eax, 0xe0e0e658
loopne 0xf040c4
pop eax
out 0xe0, al
loopne 0xf04049
pop edx
enter 0xffffffffffffe0e0, 0xffffffffffffffe0
pop ss
add ah, bl
sub byte [ebx + 0x61], ch
in al, dx
loopne 0xf04057
loopne 0xf0405c
and eax, 0x1cc4846d
imul esp, esp, 0xc4846dc4
in al, 0xc4
insd dword es:[edi], dx
test ah, al
les ebx, [ecx + ebp*2]
sbb al, 0x69
in al, 0xc4
mov byte [ebx + edi + 0x4088e0c0], al
test byte [edi - 0x20], ch
loope 0xf04060
outsd dx, dword [esi]
loopne 0xf04074
int3
les ecx, [eax + 0x6447bff5]
or ch, ah
mov ch, dh
mov edi, 0xe5086447
in eax, 0xe0
loopne 0xf0407f
loopne 0xf0407e
loopne 0xf040a9
or edx, ecx
loopne 0xf04083
retf 0xe0e0
loopne 0xf0405a
insd dword es:[edi], dx
mov esp, es
loopne 0xf04115
imul esp, dword [ebp - 0x18], 0xffffffe0
loopne 0xf0408f
call 0x6cd12190
jne 0xf0409e
imul esi, dword [ebp - 0x14], 0xffffffe0
loopne 0xf04095
loopne 0xf04094
loopne 0xf04121
imul ebp, dword [ebp - 0x10], 0xffffffe0
loopne 0xf0409b
insd dword es:[edi], dx
invalid
and dword [ecx], ecx
loop 0xf04090
shl edx, 1
arpl word [edx], sp
in al, 0xa9
loop 0xf04124
and ah, ah
test eax, 0x1f1465ef
out dx, eax
adc al, 0x1f
pop ds
pop ds
mov ebp, 0x6be0ec22
loopne 0xf0413a
insb byte es:[edi], dx
invalid
les esi, [ecx - 0x1f1f1af8]
loopne 0xf040f2
shl edx, cl
loopne 0xf040cd
mov ch, 0x6b
or al, 0x1f
xchg ebp, eax
imul ecx, dword [edi + ebx], 0xffffff95
in al, dx
pop ds
xchg ebp, eax
call 0xe1d0c702
loopne 0xf04167
pop ebp
call 0xd4d121e2
sub ebx, edx
xor ah, byte [ebx + 8]
loopne 0xf040e1
shr dword [ecx], cl
sal dword [edx], cl
arpl word [eax], cx
in eax, 0xa8
out dx, eax
scasb al, byte es:[edi]
loopne 0xf040ee
loopne 0xf040ff
push 0xe0e0e0a8
xchg byte [ebx - 4], ch
cld
fldenv [eax + 0x1b]
or bh, ch
cli
loopne 0xf04101
loopne 0xf04183
sbb ecx, dword [ecx]
out dx, eax
or edi, ebp
int1
loopne 0xf0410a
loopne 0xf040b2
popal
sbb ebx, dword [edi]
invalid
pop ds
pop ds
leave
lodsb al, byte [esi]
fabs
arpl word [ecx], sp
in eax, 0x63
or ah, ah
or dword [ebp + 0x1f], ebx
pop ds
pop ds
leave
mov ah, 0xd9
loop 0xf041b3
and esi, esp
arpl word [edx], cx
in al, 0x63
or ch, ah
or dword [ebx + 0x1f], ecx
pop ds
pop ds
mov ebp, 0xb5e0ec22
in al, dx
loopne 0xf04117
imul ecx, dword [esi + esi*4], 0xffffffb7
mov ch, 0x6b
xchg ebp, eax
in al, dx
imul ebx, dword [ebp + 0x60521ce8], 0x6a
or al, 0xb6
mov bh, 0xb5
imul edx, dword [ebp - 0x17629414], 0x1c
push edx
call 0x6b50938d
sbb al, 0x52
pushal
push 0xffffffffffffffe6
popal
out 0x61, al
loope 0xf04156
loopne 0xf04158
push 0xe12761e7
loopne 0xf0415f
loopne 0xf041dc
pop ebx
loop 0xf04163
loopne 0xf04165
loop 0xf041b9
out dx, eax
in eax, 0xe0
loopne 0xf0416c
loopne 0xf0416d
loopne 0xf041f8
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor ch, bh
arpl word [eax], di
mul byte [esi + 0x63ef32f2]
cmp byte [edi], bl
pop ds
pop ds
pop ds
loop 0xf041cc
out dx, eax
in eax, 0xe0
loopne 0xf04180
loopne 0xf0420b
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
mul byte [esi + 0x63ef32f2]
mov ah, al
loopne 0xf0418b
xor ch, bh
arpl word [edx - 0x2c1f1f20], cx
loopne 0xf0418a
loopne 0xf0417f
shl dword [eax], cl
loop 0xf041e1
and dl, ah
xor ch, bh
out dx, eax
in eax, 0xe0
loopne 0xf04195
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor ch, bh
xor ch, bh
arpl dx, cx
loope 0xf0419f
loopne 0xf041a3
xor ch, bh
in eax, 0xe0
loopne 0xf041a8
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor dh, bl
xor dh, bl
and dl, ah
xor ch, bh
in eax, 0xe0
loopne 0xf041b7
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor dh, bl
and dl, ah
and dl, ah
xor ch, bh
in eax, 0xe0
in eax, 0xe0
loopne 0xf041c6
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor dh, bl
and dl, ah
xor ch, bh
out dx, eax
in eax, 0xe0
loopne 0xf041d5
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor dh, bl
and bh, ch
and bh, ch
out 0xe0, al
loopne 0xf041e2
imul edi, dword [edi], 0xffffffcb
cmp byte [edx - 0x1d], ch
push 0xe25ba7e7
loopne 0xf041ef
pop ebx
loop 0xf041ee
loopne 0xf041f0
loopne 0xf0421a
or dword [eax + 0x581f1f1f], edx
nop
pop ds
pop ds
pop ds
pop eax
loope 0xf041f8
loopne 0xf041fa
loop 0xf0424e
out dx, eax
in eax, 0xe0
loopne 0xf04202
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor dh, bl
and dl, ah
xor ch, bh
loop 0xf0425d
out dx, eax
in eax, 0xe0
loopne 0xf04211
loopne 0xf04210
loopne 0xf0429c
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor ch, bh
mul byte [esi + 0x62ef32f2]
pop ds
out dx, eax
bound edi, qword [esi]
pop ds
pop ds
pop ds
retf
aam 0xe0
loopne 0xf04229
pop ecx
loope 0xf0422c
loopne 0xf0422e
loop 0xf04282
out dx, eax
in eax, 0xe0
loopne 0xf04236
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor dh, bl
sub edx, esp
xor ch, bh
loop 0xf04291
out dx, eax
in eax, 0xe0
loopne 0xf04245
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor ch, bh
xor ch, bh
bound edi, qword [esi]
pop ds
pop ds
pop ds
mov dh, 0x6b
pop ss
retf
out 0xa6, al
imul ecx, dword [eax], 0x59
loope 0xf04269
loopne 0xf0426b
loop 0xf042bf
out dx, eax
in eax, 0xe0
loopne 0xf04273
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor dh, bl
sub edx, esp
xor ch, bh
mul byte [esi + 0x29f332f2]
loop 0xf042ce
out dx, eax
in eax, 0xe0
loopne 0xf04282
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor ch, bh
bound edi, qword [esi]
pop ds
pop ds
pop ds
popal
sbb al, ah
popfd
loopne 0xf04293
popal
cmp dword [edi], ebx
pop ds
pop ds
pop ds
popal
sbb al, ah
in eax, 0xe0
loopne 0xf04321
popal
cmp dword [edi], ebx
pop ds
pop ds
pop ds
popal
sbb byte [eax - 0x20], ah
loopne 0xf042ab
popal
xor eax, esp
loopne 0xf042b0
loopne 0xf04333
sbb byte [eax - 0x20], ah
loopne 0xf042b7
popal
xor eax, esp
loopne 0xf042bc
loopne 0xf04294
mov dh, 0x6b
pop ss
imul edx, dword [edi], 0xffffffcb
adc byte [ebx], dl
inc esp
mov esi, 0x1f1e7b09
retf
adc eax, dword [esi + edi*4 + 9]
jnp 0xf04306
pop ds
pop ds
push 0xffffffffffffffe6
cmpsb byte [esi], byte es:[edi]
out 0xa6, al
shr dword [ecx], cl
and byte [eax], cl
loope 0xf042e2
cli
loopne 0xf042d7
loopne 0xf0435a
xor edx, esp
loopne 0xf042dd
loopne 0xf0436a
or byte [esi + 0x10cb176b], dh
adc eax, dword [esi + edi*4 + 0x5b]
inc esp
mov esi, 0xe0e0e15b
loopne 0xf04317
loope 0xf042eb
loopne 0xf042ed
or dword [ebx - 0x42e0e0e2], edx
retf
xchg ebx, eax
push ds
pop ds
pop ds
mov ebp, 0x6be89dcb
daa
mov edi, 0xbd056bbe
and ch, al
loopne 0xf042e0
imul edx, esp, 0xffffffc4
insd dword es:[edi], dx
test ah, al
in al, 9
in al, 0xe0
loopne 0xf0430d
les ebp, [ebp - 0x7c]
invalid
jecxz 0xf04346
iretd
mov al, byte [0x25e3e050]
jecxz 0xf0435d
popal
and byte [ebx + 0x59e0e0e3], dh
js 0xf04323
loopne 0xf04323
pop edx
mov dword [ebx - 0xf2f93fc], esp
add al, 0x6c
sal al, 1
mov al, byte [0x1665efa9]
pop ds
pop ds
pop ds
or esp, esp
loopne 0xf04336
loopne 0xf042f5
push 0xffffffffffffffe4
in al, 0xe
ja 0xf04360
add dh, bh
mov ch, 2
xor eax, 0x898929be
div dword [ebp + 0x29be3502]
mov dword [ecx + 0x2778a89], ecx
add dh, byte [0x898929be]
mov dword [edx + 0x2570277], ecx
iretd
push edi
add cl, bh
mov ch, 2
or eax, 0x8989bdb9
mov dword [edx - 0x7621fdaf], esp
add al, dh
lea ecx, [eax]
jae 0xf04309
mov dword [ecx - 0x30f27977], ecx
mov dword [ecx + 0x85f8a89], ecx
dec esi
or dword [ecx + 0x60088989], 0x89898981
or byte [eax - 0x77], dh
mov dword [ecx + 0x5d0d8689], ecx
jbe 0xf04418
or dword [ecx + 0x70088989], 0x89898989
xchg byte [0x7676765d], cl
out dx, eax
jbe 0xf04393
add cl, byte [esi + 0xa856148]
imul eax, dword [esi - 0x76758ef8], 0xc868989
test byte [ecx + 0x2ef8989], cl
mov cs, word [eax]
imul esi, dword [esi - 0x7a], 0x4b8a8989
mov byte [ecx + 0x4e0ac0c0], dl
mov esp, dword [eax + 0x41]
jbe 0xf04444
jbe 0xf04430
lea ecx, [ecx + 0x25018989]
std
stosd dword es:[edi], eax
xor dword [ebp - 0x7576c637], ecx
dec esp
or byte [ecx + 0x73], cl
mov cl, byte [ecx - 0x7787cf77]
mov dword [ecx - 0x19b310cd], ecx
scasd eax, dword es:[edi]
mov ecx, 0x86c0c999
or al, 0x7f
jbe 0xf0446e
jbe 0xf0445a
lea ecx, [ecx - 0x12bd7677]
imul ebp, dword [esi + 0x68], 0xd3986418
push 0xd8536418
outsd dx, dword [esi]
out dx, eax
out dx, eax
out dx, eax
in al, dx
adc dword [eax + edx*4 - 0x1d], ebp
out dx, eax
loopne 0xf04483
inc edx
out dx, eax
out dx, eax
out dx, eax
js 0xf04482
xchg edi, eax
jecxz 0xf04499
in al, dx
sub dword [edi + 0x1437a10], edi
mov edi, 0x1437a10
popal
out dx, eax
outsb dx, byte [esi]
pop ss
out dx, eax
out dx, eax
out dx, eax
out dx, eax
loopne 0xf0449c
jecxz 0xf04423
out dx, eax
out dx, eax
test al, 0xe3
in al, dx
sub dword [edi + 0x1577a10], edi
popal
out dx, eax
insb byte es:[edi], dx
nop
jecxz 0xf04435
loopne 0xf044b3
xchg edx, eax
out dx, eax
out dx, eax
out dx, eax
insb byte es:[edi], dx
nop
out dx, eax
out dx, eax
loopne 0xf044bc
in eax, 0xef
out dx, eax
out dx, eax
insb byte es:[edi], dx
nop
invalid
loopne 0xf044c7
mov dl, 0xef
out dx, eax
out dx, eax
bound ecx, qword [ebx - 0x3c99ec35]
retf
insb byte es:[edi], dx
xchg edx, eax
out dx, eax
out dx, eax
loopne 0xf044df
stosb byte es:[edi], al
out dx, eax
out dx, eax
out dx, eax
mov byte fs:[0xe4bdbfef], al
loopne 0xf044e7
jmp 0xbfe03475
out dx, eax
out dx, eax
out dx, eax
mov esi, 0xefefe006
out dx, eax
in al, dx
and dword [esi + 0x2e], ebp
in eax, dx
out dx, eax
out dx, eax
out dx, eax
bound ecx, qword [ebx - 0x1c99ec35]
retf
jge 0xf044fd
add dword [ecx - 0x11], esp
sti
retf
sub ch, bl
out dx, eax
out dx, eax
out dx, eax
push es
pop esi
adc byte [eax], dl
adc byte [edx - 0x1004d792], dh
out dx, eax
out dx, eax
push es
cmpsb byte [esi], byte es:[edi]
adc byte [eax], dl
adc byte [ebx - 0x1025ef75], bh
adc byte [eax], dl
mov ebx, 0xefda108b
out dx, eax
out dx, eax
out dx, eax
xchg dword [edi], ebx
stosb byte es:[edi], al
pop edi
out dx, eax
bound ecx, qword [ebx - 0x3c99ec35]
retf
retf
imul ebx, edi, 0xffffffc7
out dx, eax
out dx, eax
out dx, eax
in al, dx
sub dword [eax], edx
btc dword [edi - 0x7e553076], eax
xchg byte [eax - 0x4030717e], cl
popfd
sbb byte [ebx - 0x7f647376], 0x9d
iretd
mov edi, 0x8a9b809d
mov word [ebx - 0x66306280], ds
mov bl, byte [ebp - 0x7e7f7964]
iretd