Function at 0x98b178
Capabilities:
Encode data using xor

Disassembly:
pushal
call 0x98b17e
pop ebp
sub ebp, 6
sub ebp, 0x58b178
jmp 0x98b1dc
jmp 0x98b1e5
mov eax, 0x58b178
add eax, ebp
add eax, 0x93
mov ecx, 0x5b1
mov edx, 0x17b9d654
xor byte [eax], dl
inc eax
dec ecx
jne 0x98b1fc
jmp 0x98b20f
fistp word [ecx + 0x5468dddf]
push esp
push esp
aad 0x95
lodsb al, byte [esi]
push esp
push esp
push esp
push edi
cdq
in al, dx
push eax
push esp
push esp
push esp
out dx, al
jl 0x98b27b
push esp
push esp
mov dword [0xdf9c57b6], eax
aad 0x58
push esp
push esp
push esp
push edi
xchg ecx, eax
add al, 4
cmp al, 0x58
pop ebx
pop edx
push esp
cmp al, 0x3d
neg byte [esi]
push esp
push ebp
js 0x98b2b4
cmp al, 0xd
shr dword [ebp + eax + 0x545451bc], cl
push esp
mov ebp, 0x5454547c
add dword [eax], eax
or edi, ebx
rcr dword [esp + edx*2 + 0x54], 1
push esp
ffreep st(1)
pop eax
push esp
push esp
push esp
invalid
invalid
push ecx
sbb al, 0x5b
rcr byte [edx], 1
push esp
push esp
push esp
pop ebx
fcomp qword [esp + edx*2]
push esp
push esp
xor bl, bh
dec eax
insd dword es:[edi], dx
aam 0xaf
mov esp, 0x544ed05b
push esp
push esp
aam 0xaf
mov ebp, 0x5445d05b
push esp
push esp
xor dl, ch
scasd eax, dword es:[edi]
stosd dword es:[edi], eax
jno 0x98b339
rol byte [ecx + 0x54], 1
push esp
push esp
adc eax, 0xabab98bd
stosd dword es:[edi], eax
jge 0x98b303
insd dword es:[edi], dx
push ebp
xlatb
xchg ebp, eax
push ecx
xlatb
mov esp, 0xabe9bd50
stosd dword es:[edi], eax
stosd dword es:[edi], eax
jge 0x98b2fa
insd dword es:[edi], dx
push esi
xlatb
xchg ebp, eax
push edx
xlatb
mov esi, 0x51bcd750
mov ebp, 0xabababff
mov esp, 0xabffbd51
stosd dword es:[edi], eax
stosd dword es:[edi], eax
or dword [esi - 0x20feaba8], edx
mov eax, 0xdf010302
and dword [eax - 0x21], ebx
sub dword [eax + ebp*4 - 0x1a], ebx
aam 0xde
push edx
aad 0x92
push ebp
push esp
push esp
push esp
fcom qword [ebx - 0x2b]
xchg ebx, eax
push ebp
push esp
push esp
push esp
out dx, eax
push esi
push esp
push esp
push esp
push esi
xchg byte [ebx - 0x2f], bl
push ecx
push esp
push esp
push esp
fiadd word [edx + 0x12]
inc esi
xchg byte [ebx - 0x29], bl
mov word [ebx - 0x79a95455], gs
pop ebx
rcl dword [ecx + 0x54]
push esp
push esp
fiadd word [edx + 0x12]
inc esi
xchg byte [ebx - 0x29], bl
push esp
push esp
push esp
xchg esp, eax
push esi
xchg byte [ebx - 0x2f], bl
push ecx
push esp
push esp
push esp
fiadd word [edx + 0x12]
inc esi
xchg byte [ebx - 0x29], bl
jle 0x98b3c0
push esp
push esp
push esi
xchg byte [ebx - 0x2f], bl
push ecx
push esp
push esp
push esp
fiadd word [edx + 0x12]
inc esi
xchg byte [edi - 0x6c], al
push esi
xchg byte [ebx - 0x2f], bl
push ecx
push esp
push esp
push esp
fiadd word [edx + 0x12]
inc esi
xchg byte [edi - 0x6c], al
push esi
xchg byte [ebx - 0x2f], bl
push ecx
push esp
push esp
push esp
fiadd word [edx + 0x12]
inc esi
xchg byte [edi - 0x6c], al
push esi
xchg byte [ebx - 0x2f], bl
push ecx
push esp
push esp
push esp
fiadd word [edx + 0x12]
inc esi
xchg byte [edi - 0x6c], al
pop ebx
rcl byte [edx + 0x54]
push esp
push esp
fisttp word [ebx + 0x57de8c7f]
fcom qword [ebx + 0x13]
out dx, eax
push esi
push esp
push esp
push esp
mov ebp, 0xababab24
stosd dword es:[edi], eax
stosd dword es:[edi], eax
in al, dx
push ebp
push esp
push esp
push esp
push esi
xchg byte [ebx - 0x2f], bl
push ecx
push esp
push esp
push esp
fiadd word [edx + 0x12]
inc esi
xchg byte [edi - 0x6c], al
push esi
xchg byte [ebx - 0x2f], bl
push ecx
push esp
push esp
push esp
fiadd word [edx + 0x12]
inc esi
xchg byte [ebx - 0x2a], bl
mov ch, byte [ebx - 0x68805455]
out dx, eax
push ebp
push esp
push esp
push esp
pop ebx
shl dword [eax + 0x54], 1
push esp
push esp
in eax, dx
push ebp
push esp
push esp
push esp
push esi
xchg byte [ebx - 0x2f], bl
push ecx
push esp
push esp
push esp
fiadd word [edx + 0x12]
inc esi
xchg byte [edi - 0x63], al
push esi
xchg byte [ebx - 0x2f], bl
push ecx
push esp
push esp
push esp
fiadd word [edx + 0x12]
inc esi
xchg byte [ebx - 0x2a], bl
mov ch, byte [ebx - 0x20fd5455]
mov dword [0xf0a7a17f], eax
or bh, byte [ebp - 0x545454a4]
sbb al, 0x95
mov ah, 0x5c
ficom word [edx + 0x12]
fistp qword [ebp + ebp*8 + 0x54545455]
push esi
xchg byte [ebx - 0x2f], bl
push ecx
push esp
push esp
push esp
fiadd word [edx + 0x12]
inc esi
xchg byte [edi - 0x63], al
push esi
xchg byte [ebx - 0x2f], bl
push ecx
push esp
push esp
push esp
fiadd word [edx + 0x12]
inc esi
xchg byte [ebx - 0x2a], bl
mov ch, byte [ebx - 0x532a5455]
push esp
sub dword [esp + edx*2 - 0x2b], edx
lea ebp, [ebx - 0x2a545455]
lodsb al, byte [esi]
push esp
push ecx
push esp
push esp
aad 0x8d
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
aad 0xac
aam 0x54
push esp
push esp
aad 0x85
push esp
push esp
push esp
push esp
aad 0xac
aam 0x54
push esp
push esp
aad 0x85
push esp
push esp
push esp
push esp
add bl, bh
mov dword [0xf0a7a47f], eax
or bh, byte [ebp - 0x54545531]
ficom word [edx + 0x12]
popfd
xchg esp, eax
mov esp, 0x4ed05b55
push esp
push esp
push esp
aad 0x85
push esi
push esp
push esp
push esp
fistp qword [edx + eax - 0x5b805c21]
cmpsd dword [esi], dword es:[edi]
invalid