Function at 0x10055557
Capabilities:
Encode data using xor
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
mov eax, dword [0x10170c30]
pushfd
test byte [0x100555bf], 0x12
jne 0x100556c0
add ch, cl
add dh, dh
adc al, 0xea
int 2
not byte [edx + ebp*8]
aad 0x24
cmp dh, dh
inc edx
in al, dx
dec eax
adc eax, ebp
pop ebp
inc ecx
loopne 0x10055572
aad 0xe5
std
mov ecx, 0x716abbc5
cmp dword [di + 0x12], ebp
jne 0x1005557c
push edi
sub dword [edx - 0x6e54e71e], 0xf87a8cd7
or dword [ebx + 0x3c], eax
mov edx, 0xeaed7473
rcl dword [eax + 0x6dcc1f61], cl
je 0x100555b9
stosb byte es:[edi], al
shr dh, cl
mov edx, 0xed131756
adc dword [eax - 0x1196356b], eax
pop ebp
les eax, [eax]
xchg bh, bh
cmpsd dword [esi], dword es:[edi]
into
xchg byte [0x301ec939], ah
test dword [esp + eax*8], 0xf91cb5ae
xor eax, 0x3430a592
fisttp word [edi - 0xb]
call 0x36ec16ff
push es
into
jl 0x10055616
retf 0xee69
mov al, 0x34
mov dl, 0xf3
pop edx
push ebp
int1
invalid
xchg byte [ebp + 0x78], ch
cmc
cdq
imul ebp, dword [eax - 0x71dd57e9], 0xbdcb8247
js 0x1005560c
cmp dword [bx - 0x7da], edi
mov dh, 0x63
cmp dword [edi + 0x63b6f826], edi
out 0x86, al
push ebp
xor esi, dword [edi + ebp*2]
xor al, 0x6f
in eax, dx
cmc
push edx
sub al, 0xd2
mov edx, 0xc24ced2
je 0x10055634
mov ebx, 0xa40a962b
test al, 9
salc
jns 0x10055699
rol al, 1
cld
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
outsb dx, byte [esi]
movsb byte es:[edi], byte [esi]
push ebp
stosd dword es:[edi], eax
and dword [esi - 0x5422140d], edi
mov dh, 0xfa
jne 0x100556a3
adc al, byte [esi - 0x6d]
xchg edx, eax
adc esp, dword [0x3a54bcec]
adc eax, 0xc47b4c21
dec esp
dec ebp
nop
test dword [edx - 0x65], 0x7a5a6bdb
ror dword [ebx - 0x3177ab59], 0xd0
or dl, dl
jnp 0x10055661
inc esp
xchg dword [edx], edi
mov word [ebp - 0x29], gs
mov al, byte [0x1389cbb4]
xor esp, dword [eax - 0x68]
movsb byte es:[edi], byte [esi]
jle 0x100555fa
sub dword ds:[ebp + 0x67], ebx
cmp dword [ecx + 0x4b], edi
xor eax, 0x9546b5d0
sbb dword [edx - 0x6c9bf3ad], edi
test edi, ecx
dec ebx
cmp ebp, dword [edi - 0x6ca4be14]
aad 0x9a
dec eax
fldcw word [esi]
dec byte [ebx - 0x4fe5489b]
mov bh, 0x1a
mov al, 3
sub eax, dword [ebp + ebx + 0x51]
dec ebp
xor ch, byte [esi - 0x141d9f80]
add ebp, dword [ebx]
inc esp
sbb eax, 0xae324d51
scasb al, byte es:[edi]
and byte [eax - 0x1e], 0xeb
pushal
loop 0x10055693
arpl dx, di
in eax, 0xc2
sbb dword [edi + ecx*4 - 0x6d], 0xef93c689
inc edx
or byte [eax - 0x10], 0xd9
aas
in eax, 0x95
xchg edi, eax
dec ecx
jns 0x100556a5
pop esp
invalid
popfd
xor eax, ebp
mov dword [ebp - 4], eax
pushfd
test byte [0x1005576f], 0x68
je 0x10055770
mov cl, byte [ecx + 0x17]
std
push esp
xchg dword [ebx - 0xf], edi
or al, 0x4f
mov dh, 0x59
and byte [ebx - 0x6208fcf9], cl
popfd
and ecx, dword [eax + 0x13e538db]
xchg edi, eax
xor dl, ch
loopne 0x100556d8
mov edi, 0xb86d51d1
shl al, cl
add bl, byte [edi - 0x28ae050c]
fmul dword [esi + 0x1644a667]
mov al, 0x8a
ja 0x1005569c
fisttp word [ecx - 0x69]
xchg ebx, eax
mov dword [ecx], eax
inc ebx
jbe 0x100556ad
outsb dx, byte [esi]
adc dword [ebp - 0x24], edx
stc
aad 0x81
sbb byte [ebx - 0x7e13e510], dl
fsub dword [ecx - 0x61]
push ebx
lds esi, [ecx]
inc edi
nop
pop eax
je 0x100556e5
mov eax, 0x57a5f846
clc
dec eax
lds esp, [ecx]
mov ebx, 0xab10dca9
sbb al, 0x1b
leave
scasb al, byte es:[edi]
xchg byte [ecx + 0x5f73149c], cl
cwde
jae 0x100556d8
test al, 0x99
push ecx
scasd eax, dword es:[edi]
test byte [eax + 3], al
xchg esi, eax
dec ebp
mov dl, 0x7f
fisttp word [edx - 0x5e]
sbb al, 0xe2
enter 0x4d1b, 0xffffffffffffff85
xlatb
outsd dx, dword [esi]
mov ah, 0xcb
add esp, 0x504658a4
dec edx
and al, byte [ecx - 0x70]
or al, 0x8b
xor byte [esp + ecx*8 - 0xa], cl
sbb dl, al
xchg ebx, eax
popfd
push ebx
push edi
push 0x103
lea eax, [ebp - 0x107]
pushfd
test byte [0x100557a4], 0x10
jne 0x100557a5
xor edx, dword [ebp + 0x11]
xor ebx, esi
fsubr qword [esi + 0x4d]
sub byte [esi], 0xfe
stc
out dx, al
mov eax, dword [0xef3ae002]
sal esp, cl
jnp 0x100557aa
sbb dl, byte [edx]
push ebp
add al, 0xe9
in eax, 0xb9
popfd
push 0
pushfd
test byte [0x1005580e], 0xa0
jne 0x1005580f
add eax, 0x1005580e
mov al, byte [0x4e325d75]
adc al, 0x94
xor cl, byte [esi + 0x14]
xchg esp, eax
int 0xc1
and edi, dword [eax - 6]
cmp al, 0x4d
push es
dec eax
popfd
call 0xc256d4ab
in eax, dx
or ch, bh
pop esp
sbb ebp, edx
fistp qword [esi + 0x70]
in eax, 0x20
push es
mov ch, 0x4b
push ebx
mov ebx, 0x9e03a832
jg 0x10055767
mov fs, word [ecx - 0x19]
or byte [eax], ch
mov ecx, 0x8f123040
in eax, dx
in al, 0xf9
or eax, dword [ecx + 0x3a49309c]
fidivr dword [ebx - 0x2bea2247]
xor eax, 0x13a846a
loop 0x10055849
dec esi
sub al, 0xa4
sti
push ds
mul dword [ecx - 0x79e5c949]
sar dl, cl
cli
frstor dword [ecx]
pop es
enter 0x4d0, 0x6e
add al, 0x6e
popfd
push eax
mov edi, ecx
mov byte [ebp - 0x108], 0
pushfd
test byte [0x100558de], 0x12
jne 0x100558df
invalid
sub dl, byte [eax]
pop edx
jbe 0x1005587a
pushfd
add byte [ecx + 0x55], al
int1
cmc
ja 0x100558b3
mov ch, 0x39
and al, 0x5f
aaa
cmpsd dword [esi], dword es:[edi]
mov bh, 0x9d
dec edx
jb 0x10055807
mov dl, 0x27
imul edx, dword [edx], 0xffffffaf
out dx, al
xchg esi, eax
sub eax, 0x8587cc74
ja 0x1005580d
je 0x10055817
xchg dword [ebp + 0x6ffdbe77], eax
std
outsd dx, dword [esi]
insd dword es:[edi], dx
dec esp
dec esp
cmp byte ss:[ecx + 0x65], ch
mov esp, 0xbbe5c7ef
and bh, ch
insd dword es:[edi], dx
mov ebx, 0xcd1a807b
push edi
das
sbb eax, 0x5bfc104
add eax, 0x55ef7707
arpl word [ebx], sp
pop ds
pop esi
ja 0x10055850
aaa
cli
les esp, gs:[ebp - 0x64]
les esp, [ebp - 0x64]
imul ebp, dword [ebx - 0x44], 0
pop ss
or byte [edi + 0x6409f32c], 0xfa
add eax, 0xd6dde225
mov ah, 0x91
or dword [edx + edi*8 + 5], esp
and eax, 0xb4d6dde2
xchg ecx, eax
aad 0x45
inc edi
push eax
cmp al, byte [ebp - 0x33]
int 7
push ebp
imul ebx, dword [0x942f13c], 0x55062a4e
rcl edx, 4
jnp 0x1005583c
imul ecx, ebp, 0x589f4c04
xchg ebx, eax
fnstsw word [eax - 0x12ac0d82]
mov eax, 0xed53f27e
push ebx
in eax, dx
call 0x80d3b177
add esp, eax
salc
fstp xword [edi + 0x2b]
pop ss
ja 0x10055886
loopne 0x100558f7
aad 0xc4
xchg edi, eax
cdq
jnp 0x100558c8
cdq
cmp al, 0x53
pushal
push ss
jl 0x100558b1
out 0xe8, eax
dec esi
test al, 0xc4
pushfd
mov dword [0xf4e90b1e], eax
popfd
call fcn.1011df60
xchg byte [eax + eax], cl
add esp, 0xc
lea eax, [ebp - 0x108]
push eax
mov ecx, edi
call fcn.100550e5
lea eax, [ebp - 0x108]
push 0x10146a8c
test eax, edi
invalid
pushfd
test byte [0x10055a05], 0x57
jne 0x10055a06
fcomp dword [eax - 0x1520f347]
mov ecx, dword [ebx - 0xd1cfd4a]
aad 5
out dx, al
push eax
mov ebx, 0x1170854c
fdivr dword [ecx + 0x70]
jecxz 0x10055901
sti
push edi
sbb al, 0xbb
mov dl, 0xf
sbb dword [eax - 0x74167093], edi
sal byte [ebx], cl
xor dword [eax + 8], ebx
mov al, 0xce
push ds
fld dword [ebx]
xor esi, dword [ecx]
pop eax
or byte [eax + 0x3d91ece], dh
mov ecx, 0x58537a49
mov byte [edx + edx*8 + 0x4c9ce0b7], dl
mov al, byte [0x7abd2876]
js 0x100558e2
xchg edx, eax
mov bl, al
cmc
loop 0x10055936
and byte [ebx - 0x4b8eec23], 0x30
add eax, 0xf0b5e3d2
pop ds
xchg esi, eax
dec esi
push cs
sbb eax, 0x459bdb10
wait
inc ebp
fisttp word [edi]
lodsb al, byte [esi]
test dh, cl
sbb ebx, dword [ebp - 0x79]
adc eax, 0xc1d9aa66
sbb dword [esi + 0xf], edi
nop
inc esp
jecxz 0x100559d8
mov eax, edi
cmp ebx, dword [ebx + 0x1c]
mov edx, 0xac769a68
xchg esi, eax
js 0x10055967
fisubr dword fs:[esi]
push ecx
push ss
aam 0xa3
imul ebx, dword [ecx + 0x2aeed7ee], 0x67
and edi, dword [eax + ebp*8]
mov byte [eax - 0x57ec9fa4], bh
add eax, 0xdceed7df
sar dword [eax + esi*8 + 0x15], 1
sbb byte [ebx + esi*2 - 0x51], 0x17
imul edi, dword [ecx + edi*2 - 0x2d], 0xc3859b95
inc edx
xor al, 0x13
mov dl, 0xc4
push cs
lea edx, [edx - 0x6089faf5]
cmp byte [ebx + edx - 0x7c0c9325], dl
lahf
dec ebx
push eax
pop edx
push es
inc ebp
sahf
push 0xffffffffffffffb6
aaa
push cs
jae 0x1005596c
cmpsd dword [esi], dword es:[edi]
sub ch, byte [esp + edx*8]
or eax, dword [esi]
cmp eax, 0xc7683be3
sbb dword [ebx - 0x1317a370], ebp
and dword [ecx], 0xffffffd9
pop edi
push ebx
arpl word [edi + edx + 0x3d], cx
test al, 0x4c
jle 0x100559b1
sub eax, 0xe1285b61
das
jno 0x100559d1
movsb byte es:[edi], byte [esi]
xchg esp, eax
popfd
push eax
call fcn.1011f7ae
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
jne 0x10055a23
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.1011e48a
leave
ret
push esi
push ebx
mov esi, 0x744
pop es
add byte [eax], al
push esi
push 1
add edi, 4
push edi
call fcn.10120084
dec esi
cmpsb byte [esi], byte es:[edi]
or al, 0
add esp, 0x10
pushfd
test byte [0x10055b3c], 0x29
jne 0x10055b3d
lodsb al, byte [esi]
sub byte [edx + 0x5b014586], cl
and edi, dword [ecx + 0x2dc111b7]
and ch, byte [di - 0x2eae]
or ch, byte [edi]
mov al, byte [0x2d2dfd7e]
sbb esi, ebx
and dh, cl
pop edx
cmp al, 0x17
out dx, al
outsb dx, byte [esi]
push 0x2e
sti
push ebp
xor byte [edx + 0x15], bh
push ds
xchg edx, eax
mov eax, 0xcdaf8a7a
mov dh, 0x49
adc ah, byte [ebp + 0x2d7ea62a]
loop 0x10055a27
ror dword [0xb628e5de], 1
xor byte [ebx + 0x2d], dl
push eax
in eax, 0xa4
adc dword [ecx + ebp*2 - 0x7f], edi
inc ebp
xor byte [esi], ah
stosb byte es:[edi], al
sahf
pop ecx
sbb dword [ecx], ecx
fsub dword [ecx - 0x28018f6d]
sbb ebp, dword [ecx - 0x128c65ba]
pushal
neg byte [ecx]
sub al, 0x4c
inc ebx
jo 0x10055a32
sbb byte [ebx], ch
insb byte es:[edi], dx
or ch, byte [edx - 0x3b]
arpl word [eax - 0xeff7a1a], bx
adc al, 0xe7
div edx
push ds
pop ds
int3
popfd
cmp eax, esi
je 0x10055b53
xor esi, esi
push ebx
call fcn.1011e7c5
pop ecx
mov eax, esi
pop esi
jmp 0x10055a15
xor esi, esi
inc esi
jmp 0x10055b44