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

Disassembly:
pushfd
test byte [0x10048965], 0x65
jne 0x10048966
lodsd eax, dword [esi]
push esp
mov ebx, 0x2080dfd0
push ss
push edx
das
fst dword [ebp + 0x17b14d32]
xchg ebp, eax
xor cl, byte [ebp - 0x4f]
pop ss
xor al, 0x20
inc eax
popfd
push ebp
mov ebp, esp
push ebx
pushfd
test byte [0x100489bb], 0xb6
jne 0x100489bc
loop 0x1004895e
xor esi, dword [ebx - 0x5242782]
xchg esp, eax
fdiv dword [ebx - 0x7e1fa7c1]
fxch st(6)
imul byte [ebx - 0x19e266d8]
sub byte [edi], 0x83
dec esi
sbb eax, dword [ecx - 0x61815902]
aam 0xc5
rol esp, 1
adc eax, 0xcd1beee7
and al, byte [ebx + 0x20e4cc56]
push esp
or al, 0x19
inc edi
pop esp
fld dword [ecx]
push es
and byte [eax + 0x2f], 0xc9
adc esi, dword [ecx]
sub al, ah
adc dword [eax + 0x16], 0xffffffe9
cmp byte [ecx + 0xb], dl
popfd
push edi
xor edi, edi
push edi
push 0x80
pushfd
test byte [0x10048a71], 0xbf
jne 0x10048a72
int 0xfb
rcl byte [0xdb5d0e28], cl
lahf
adc al, 0x1c
pushfd
cmp ch, byte [ecx]
push 0x43645686
sbb al, 0x25
outsd dx, dword [esi]
and eax, 0x337dc13
aad 0xd6
xor byte [esi], ch
and al, 0xa6
rcl byte [eax], 0xa4
pop esp
in al, dx
cmp eax, 0xcdb7ea58
sbb al, 0x63
dec ebx
sbb al, 0x32
mov dl, 0x19
out 0x7a, eax
movsd dword es:[edi], dword [esi]
out dx, al
cmpsb byte [esi], byte es:[edi]
out dx, eax
adc ah, byte [edx + 0x5bf0cdb6]
imul edi, dword [edi], 0x6c
fucomi st(1)
pop esi
adc al, 0x68
and esp, dword [edx - 0x26]
xchg ebp, eax
imul ebp, ecx, 0x77
and dword [ebx - 0x6d], eax
cmp esi, dword [edx + 0x4a9efd91]
push edx
cmp al, 0xe
add eax, 0x8e68f4a1
int3
popfd
push 3
push edi
push 1
push connect
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
pushfd
test byte [0x10048b29], 0xbf
jne 0x10048b2a
mov edi, 0x94850f
add byte [eax], al
xchg dword [esi - 0x16], esi
adc eax, 0xcd9e5708
dec edx
fimul word [eax]
mov dword [eax - 0x25], 0xe3997b9
adc dword [edi + 0x73], ecx
add al, 0x4e
add al, 0x13
dec ebx
psubq mm5, qword [ebx + 0x653dcfad]
and eax, dword [ebx]
add byte [ecx + 0x10], 0xa1
mov dl, 0x73
mov ebx, 0x79cc8dc9
pop ecx
pop ebx
dec eax
sbb dword [esi - 0x16], esp
imul byte [ecx - 0x75]
int 0xc4
adc bl, byte [ebx]
pop ebp
xchg ecx, eax
ja 0x10048a8f
int3
lodsd eax, dword [esi]
mov esi, 0x4b8c0a90
dec ecx
pop esi
pop es
xchg dword [esi], ebx
pop ecx
xchg esp, eax
mov bl, 0xf
cli
push ss
cmpsb byte [esi], byte es:[edi]
jns 0x10048adc
enter 0x2e9, 0xffffffffffffffc2
and cl, byte [edi - 0x7b]
mov eax, 0xa9b49e8f
or eax, 0xffffffe5
test al, 0xde
aam 0x46
sub ch, byte [eax + 0x5368cdf3]
xor ebx, ebp
adc al, 0x3c
cdq
out dx, al
mov esp, 0x5430921a
cwde
lodsd eax, dword [esi]
inc edx
stosb byte es:[edi], al
jo 0x10048ac2
invalid
mov edi, 0xf00ec181
scasd eax, dword es:[edi]
fmul dword [eax - 6]
ja 0x10048af9
cmp dword [eax - 0x39], 0x92d891e4
xchg ebp, eax
test al, ch
push edx
pop edi
popfd
cmp ebx, 0xffffffff
jne 0x10048b37
xor eax, eax
jmp 0x1004904d
push esi
push edi
pushfd
test byte [0x10048c45], 0xd0
jne 0x10048c46
in eax, dx
cmpsb byte [esi], byte es:[edi]
test byte [ecx + 0x12078152], cl
mov bh, 0x15
pop esp
dec ecx
or edx, dword [esi + 0x2e]
int 0x45
xor ebx, dword [ebp + 0x50]
push eax
add al, byte [ebp - 0x24]
add ebx, dword [esp + edi*2 - 0x2cb955e3]
lodsb al, byte [esi]
dec ebp
xchg dword [ecx - 0x5576c1f9], eax
stosb byte es:[edi], al
xlatb
sar dword [eax], 1
sbb dword ss:[ebx - 0x7b3e0359], 0xb92e8bdc
push esp
cmpsd dword [esi], dword es:[edi]
xor ebx, ecx
add eax, 0xa7e9b060
fstp qword [ebx]
push ebx
jo 0x10048bf9
lodsd eax, dword [esi]
and al, 0x4a
aaa
out 0xe2, eax
call 0xbba3b5a0
cmp byte [edi + 7], ah
jnp 0x10048b5a
rcr edi, 0x13
fist word [ebx]
into
test dword [edi - 0x4a726aec], ebx
dec eax
outsd dx, dword [esi]
mov dh, 0xef
movsd dword es:[edi], dword [esi]
insd dword es:[edi], dx
int 0x52
cmp eax, 0x607105c8
jae 0x10048b98
mov eax, 0x412fcb31
pop ds
fld dword [eax - 5]
mov eax, dword [0x67358c26]
in al, 0x25
in al, 0x25
sbb dword [ebx], edx
mov byte [ecx + 0x56], ch
mov eax, dword [0xc696cdc2]
loop 0x10048b6c
mov al, byte [0xee14aa4d]
outsb dx, byte [esi]
sub edi, dword [eax - 0x19]
js 0x10048bbe
cmp eax, 0x728fc943
rcl ecx, cl
mov esi, 0x5ee705ee
mov dh, byte [ecx]
cmc
sub byte [edi - 0x2c], 0x46
bound edx, qword [edi + 0x15781b66]
xchg edi, eax
sbb di, word [eax + 0x15]
sub edx, ecx
push esp
mov eax, 0x66f77ba8
pop ebp
pop bp
push ecx
pop ebp
das
insb byte es:[edi], dx
sbb al, 0x9b
jbe 0x10048c25
out dx, al
xor ecx, esp
test eax, 0x6f95dfdf
adc cl, dh
pop esi
fist word [ebp + 0x5ece126f]
idiv dword [edx + 0x41f76c54]
jbe 0x10048c41
in al, dx
dec edx
movsd dword es:[edi], dword [esi]
pop ebx
sbb bh, al
in eax, 0x48
xor eax, 0xea0c7f54
sal byte [ebx + 0x1942dea4], 1
sahf
jb 0x10048bed
mov al, 0x54
inc edi
jbe 0x10048c08
push ebx
repne movsb byte es:[edi], byte [esi]
sar dword [ecx + 0x2e479279], 0xc9
cwde
mov dl, 0x7d
add al, 0x9c
shr bl, cl
dec esi
popfd
lea eax, [ebp + 8]
push eax
mov esi, 0x50c
or byte [eax - 0x42], dl
or al, 5
add byte [eax], al
push esi
pushfd
test byte [0x10048c6f], 0x68
jne 0x10048d70
into
pop ebx
or al, 0xc3
pop ds
js 0x10048cbb
bound ebp, qword [edx - 0x7f5aa702]
loop 0x10048c84
jae 0x10048cb4
ja 0x10048c49
jns 0x10048ca3
sub byte [ecx], 0xdf
mov al, byte [0x8102a1f9]
xchg ah, bh
jns 0x10048ce8
sar byte [eax + 0x7adb32f5], 0x6a
fstp xword [edx + 0x6a]
pop ss
out 0xde, eax
push ebp
clc
sub al, 0x82
out 0xdd, eax
int1
ja 0x10048ce7
insb byte es:[edi], dx
enter 0xffffffffffffd784, 0xffffffffffffffd7
or al, 0x55
push ebp
mov eax, dword [0xc5084988]
mov word [ebx + edx*8 + 0x3c2c8d5c], gs
lea ebp, [esp + edi]
or bh, byte [edi + 0x4b43cd16]
loop 0x10048c80
adc ebx, eax
cmp al, 0x3c
call 0x678f7e28
int1
mov dl, byte [edi - 0x38]
fisubr dword [ecx - 0x1f]
push edi
enter 0x69da, 0xffffffffffffffe1
mov al, byte [0xc3037dbd]
mov dl, 0xf4
jle 0x10048d02
outsd dx, dword [esi]
js 0x10048c47
add ch, byte [edx + 0x5e]
xlatb
sbb ah, 0xe9
or dword [edx + 0x1b], esp
jnp 0x10048d3c
jnp 0x10048cb6
stosb byte es:[edi], al
out 0xdd, al
or byte [ecx], dh
inc esi
cmpsb byte [esi], byte es:[edi]
fisttp qword [eax]
xor dword [esi - 0x5a], eax
stosb byte es:[edi], al
test byte [ebp + 0x3b634cc6], bh
jb 0x10048cd8
aam 0xb4
mov ah, 0x51
push ecx
fist dword [esi - 0x1a]
call 0xd7e9f493
dec ebx
cmpsb byte [esi], byte es:[edi]
pop ss
sbb byte [esi - 0x7b], ah
jae 0x10048ccf
xchg edx, eax
pop ss
test byte [ecx - 0x1e9351e], ch
xor dword [edi - 0x141bbff5], esp
xchg ecx, eax
push esp
inc esi
int1
mov eax, dword fs:[ebp + 0x58]
aam 0xdd
sbb al, 0xb5
pop edx
xor esp, ebx
ror byte [ecx - 0x3629da8c], 1
sbb dword [esi], 0xffffffa2
sal byte [0x3292233c], 1
fcmovbe st(0), st(4)
cmp esp, dword [ecx]
jle 0x10048d37
cmpsd dword [esi], dword es:[edi]
or eax, dword [eax - 0x1c]
jmp 0x10048c99
imul edi, dword [edi], 0x3f
cld
inc edx
sbb byte [eax + ecx*2 - 0xb], 0xe4
push ebx
or ecx, dword [edi]
cmpsb byte [esi], byte es:[edi]
invalid
mov al, 0xc5
xchg ebp, eax
cwde
sub ah, byte [ecx - 0xc]
jns 0x10048cfa
movsd dword es:[edi], dword es:[esi]
or dl, byte [edi]
adc dword [ebp - 0x60159f39], ebx
sbb byte [edi + 0x30aa4ca], al
sbb byte [eax], al
cmp eax, 0xfecd5c5
cmp cl, byte [ebp + 0x6a732268]
jae 0x10048dc9
lodsd eax, dword [esi]
dec ebx
out dx, eax
xchg ebx, eax
and eax, dword [ebx]
mov eax, dword [0x9094788e]
nop
cmpsd dword [esi], dword es:[edi]
std
push es
fmul dword [esi - 0x26]
popfd
push dword [ebp + 0xc]
pushfd
test byte [0x10048e4a], 0xba
jne 0x10048e4b
rcl byte [edi]
cmp dword [ebp + 0x4da45f65], 0x45
xchg dword [edi + 0x75], esi
xchg esi, eax
stosd dword es:[edi], eax
push ebp
in eax, dx
add byte [edi - 0x7b38164d], bh
push esp
loop 0x10048dfb
push 0xffffffffffffffe1
pop edi
ja 0x10048d69
dec ebp
and byte [edi], ch
in al, dx
mov esp, edx
mov edx, ebp
loopne 0x10048d39
inc ebx
cwde
jmp dword [esi - 0x3d]
add dword [ebp - 0x2c8ac931], 0xe
sbb ah, bl
jno 0x10048e12
jo 0x10048d5d
push cs
jnp 0x10048d98
jle 0x10048e01
or esp, dword [edx - 0x2ec09556]
mov al, 0x2c
mov edx, 0x624e55d5
adc dword [edi + edi*4 + 0x7ea32364], 0x708b2825
shr byte [edx + ebp*2], cl
dec esi
bound eax, qword [ecx + 0x2364bf94]
mov dword [0x8b28257e], eax
jo 0x10048db0
sub al, 0x6a
add esp, ebx
test eax, 0x298d2336
xchg dword [edi], eax
shl byte [ecx - 0x22], 0x4d
imul edi, dword [ebp - 0x4e], 0xffffffc4
salc
mov esi, 0xf3a93b01
sub esi, dword [eax - 3]
pushal
out dx, al
dec ebp
cmp eax, 0x2a6ebd46
cli
sub bh, dl
test dword [eax + 0x2c569a30], 0x4ece2798
sbb dword [ebx + 0x6e], edx
shl dword [eax + 0x695a82cc], 1
mov al, byte [0x695a82cc]
movsd dword es:[edi], dword [esi]
salc
xchg esi, eax
stosd dword es:[edi], eax
xchg ebp, eax
pop es
mul byte [ebx - 0x54]
out dx, eax
mov bh, byte [edx + 0x16]
insd dword es:[edi], dx
or byte [eax + 0x48], dl
lds ebp, [ebp - 0x51]
sub eax, 0x3e5fd3d9
xor eax, 0x9ae8ce8c
sub dword [esi], esp
xor al, 0x80
sti
shr dword [esi + 0x40], cl
add al, 0x81
mov dword [0xa9cc8b35], eax
sar cl, 1
jnp 0x10048dd0
xchg edi, eax
push ds
popfd
mov dword [ebp + 8], edi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
adc al, 0x10
pushfd
test byte [0x10048f4f], 0x1a
jne 0x10048f50
mov esp, 0x517511a
adc dword [edi], esi
cwde
outsb dx, byte [esi]
sti
and eax, 0xbcd731
pop es
les ebp, [ecx]
adc dword [eax - 0x1e], esp
pushal
or edi, edx
cmp eax, 0x846895c6
or cl, byte [ebp - 0x67]
js 0x10048e38
jns 0x10048ef3
out 0x4a, al
xchg ebx, eax
mov ebp, 0x1799273a
pushal
push 0xd
sub al, 0x10
shr dword [eax], cl
xor eax, 0x1c4d3eca
sbb byte fs:[esi + 0x10], dh
mov dword [0x5d4f16b], eax
insb byte es:[edi], dx
call dword [ebx + 0x43]
add ah, cl
out dx, al
jbe 0x10048e54
std
daa
pop edx
mov dword [0x7d8af4a], eax
cdq
mov edx, 0xfb77ada7
xor edx, edi
std
sub eax, 0x1fa68e5d
jb 0x10048e96
jbe 0x10048f38
lahf
pop ebp
mov al, byte [0x94a4]
mov eax, dword [0x65f0f2a3]
cmp esp, ebp
inc ecx
mov dword [0x3b65f0f2], eax
in eax, 0x41
mov byte [esi], dl
aad 0xea
mov ecx, 0x8333f2d2
mov ecx, 0x89a0404f
pushfd
int 0x53
sub dword [edi], ebx
or edi, 0xffffff91
lahf
or dword [esi], eax
push esi
jbe 0x10048ed0
push ebp
sbb ecx, dword [eax]
insb byte es:[edi], dx
jle 0x10048f45
push edx
nop
add byte [edi], ah
loopne 0x10048f57
and byte [ebx - 2], bl
sub bl, byte [ecx - 0x40]
sub ebp, dword [0x66f263af]
int 0xcc
cmp al, 0x11
inc ebp
xor dword [esi + 0xe29e8a7], ecx
pop es
add eax, 0x883f4c21
or dword [esi], esp
lds edx, [edi - 0x2d]
mov dword [ebp - 4], esi
sbb eax, 0xc340ac10
div edi
popal
call 0xf874ba34
mov eax, 0x4a59046
aaa
mov ch, ch
out 0xa9, al
test byte [esi + 0xdeda761], ch
push 0x2e
xor dword [ecx], 0xf6def6a
xor dword [edx], ebx
xor dword [edx - 0x11], ebp
insd dword es:[edi], dx
rdtsc
sbb dh, byte [edi + 0x42]
ja 0x10048f90
js 0x10048f8d
popfd
test eax, eax
jne 0x10049053
add byte [eax], al
pushfd
test byte [0x10049041], 0xb3
jne 0x10049042
jns 0x10048eed
or al, 0x4f
mov bh, 0x34
adc eax, 0x718c0c00
add byte [edi + 0x7c9fc1c0], bh
in al, dx
xchg ebp, eax
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
push ds
lodsd eax, dword [esi]
xor ecx, dword [eax + ecx*8 + 0xd13d126]
pop ebx
xor al, 0xd7
das
jecxz 0x10048f7b
sbb esi, esp
fdiv st(3), st(0)
pop esi
sbb byte [ecx + 0x6e], dl
into
cmpsd dword [esi], dword es:[edi]
lea eax, [edx + 0x65]
in al, 0x70
aam 0x75
sub esp, eax
jg 0x10048f4c
arpl word [ebp - 0xaf3380c], di
xor byte [ebx], ch
xchg esp, eax
js 0x10049010
push 0xe26f7a14
ror byte [ebx - 0x512794ad], cl
aam 0x64
inc edx
imul dword [ebx - 0x3951dfa2]
push cs
mov ch, 0x9d
inc eax
xchg ecx, eax
adc dword [eax + 0x78955242], ebp
pushal
or al, 0xc9
xor bl, ah
dec ebx
cmp dword [eax - 0x45], ebx
pop ebp
inc ebx
xchg esp, eax
mov eax, dword [0x411c4042]
and al, 0xb6
or ah, byte [edi + ebx*8]
mov ecx, 0xa679334b
test dword [eax + eax*8 - 0x272ecf18], esi
adc ah, byte [edi]
mov ebx, 0xfd716d51
dec esi
or bh, ch
out dx, eax
or al, 0xb8
or al, 0xa4
loopne 0x10048ff9
jg 0x10049034
aam 0xf4
into
out dx, al
jle 0x10049009
insd dword es:[edi], dx
and al, 0xa
push ebx
adc byte [esi + 0x3a], ch
daa
fdivp st(4)
push esi
dec edi
sti
sub al, byte [eax - 0x32]
pop ebp
pushal
rcl ch, cl
cwde
sub ecx, dword [ecx - 0x1eb2f207]
pushfd
out dx, al
fld qword [ecx + 0x471b9782]
jae 0x10048fde
enter 0x1972, 0x2c
cmpsb byte [esi], byte es:[edi]
add esi, dword [ebx]
in al, dx
xor dword [ebx], ebx
cwde
adc eax, 0x78419f70
insb byte es:[edi], dx
inc edi
inc esi
popfd
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
pop esi
pop edi
pop ebx
pop ebp
ret 8
cmp dword [ebp + 8], esi
je 0x10049063
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
jmp 0x1004904c
xor edi, edi
inc edi
jmp 0x10049058