Function at 0x10055b58
Capabilities:
Encode data using xor
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
mov eax, dword [0x10170c30]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push edi
push 0x103
lea eax, [ebp - 0x107]
push 0
pushfd
test byte [0x10055c71], 0x5a
jne 0x10055c72
test edx, ebp
add byte [eax], al
add byte [ebp + 0x4c428388], dl
jmp 0x10055bcd
xchg ebp, eax
mov byte [ebx + 0x3eeb4c42], al
cmp byte [edi + 0x13b37b84], ch
and dword [eax], 0xffffffaa
aad 0x90
fistp dword [edi + 0x66]
popal
xchg ebp, eax
or dword [edi + 0x74], ebp
dec edx
inc edi
not byte [edi - 0xa214b45]
push esi
test dword [ebp - 0x63db1888], eax
jl 0x10055b83
je 0x10055b89
int3
in eax, dx
push es
imul esp, dword [eax], 0xffffffcd
jge 0x10055bf5
inc ebp
sub cl, dh
xlatb
sub al, 0xf7
push esp
adc dword [ecx], esp
daa
or ebp, edi
insb byte es:[edi], dx
nop
ror dword [0xcde885a5], 0xd8
push 0xee0925b
add ah, cl
stosd dword es:[edi], eax
movsd dword es:[edi], dword [esi]
rcr byte [edi], 1
adc eax, 0x505b0447
inc edi
add al, 0x5b
push eax
mov al, byte [0x2483efb7]
mov edx, 0xd03b1e02
loopne 0x10055c7d
pop ss
das
insd dword es:[edi], dx
jbe 0x10055c1f
in eax, dx
nop
mov dword [0xdbeed0df], eax
add eax, dword ds:[eax + 0xfd806b]
push ebx
adc eax, 0x5584746
mov edx, 0xf689bc0d
fstp qword [ebp + 0x638c08a3]
xchg byte [ebp - 0x413abb38], ch
or eax, 0xddf689bc
popfd
mov dword [0x86638c08], eax
lodsd eax, dword [esi]
enter 0xffffffffffffc544, 0xffffffffffffffbe
out 0x34, al
jbe 0x10055ca1
dec eax
nop
add dword [esi], edx
add ch, byte [ecx]
mov esi, 0x623a5219
je 0x10055c24
xor bl, byte [eax + 0x45]
add dh, 0x29
sub al, 0xf8
xor al, 0x44
rol dword [ebx + ebx*8 - 0x48], cl
bound ecx, qword [edi]
cli
lodsb al, byte [esi]
adc dword [esi], eax
inc ebx
cmpsd dword [si], dword es:[di]
into
jae 0x10055ca3
jo 0x10055c97
inc esi
sbb dword [ebx], esi
or dword [eax - 0x7b], ebx
or al, 0xae
and al, byte [ebx + 0x2c1fb623]
inc esi
fimul dword [0x69489783]
popfd
push eax
mov edi, ecx
mov byte [ebp - 0x108], 0
pushfd
test byte [0x10055d54], 0x44
jne 0x10055d55
adc eax, dword [esi - 0x62]
pop ebp
fsubp st(7)
mov dl, 0xf9
push ebx
int3
and eax, 0xbfc81316
jge 0x10055cd3
popal
xchg esi, eax
insd dword es:[edi], dx
jb 0x10055ce3
cmpsd dword [esi], dword es:[edi]
test eax, 0x9a7c7bef
mov ds, word [edx + 0x11]
xchg byte [ecx - 0x2d235296], bh
test dword [edi + edx - 0x4d], ecx
push esp
adc al, 0x2e
xchg byte [ebp - 0x8a8b2ef], ah
mov ah, 0xa4
add eax, 0x61f52616
js 0x10055d0f
push ecx
and eax, 0x634336c6
adc eax, 0x8c53a943
mov dword [0x3645ed0a], eax
mov word [ebx + 0x3645ed0a], fs
bnd jo 0x10055c62
xchg byte [eax + 0x37], bh
js 0x10055d15
pushfd
dec edx
sub byte [edi + 0x2681ac60], 0x1d
inc eax
jne 0x10055c8b
lodsb al, byte [esi]
and dword [esi], 0x7540641d
mov al, byte [0xeb334a5b]
pop ebx
dec edx
xor ebp, ebx
sub cl, dl
pushfd
je 0x10055c91
adc al, 0x98
loopne 0x10055d59
pop edi
cwde
adc dword [ebx + 0x3d], ecx
pop ebp
or byte [ebp + esi*4 - 0x2f799f84], cl
xor edx, esi
mov ebx, gs
dec ecx
sub cl, 0x79
js 0x10055cc2
fnstenv [edx - 0x69]
std
imul ebx, dword [edx - 0x3d], 0xffffff9c
jge 0x10055d85
ret
pop eax
into
mov ch, 0xde
mov al, byte [0xca2a973d]
dec ebp
mov esi, 0x8a5ea3f0
cdq
jo 0x10055cc0
test byte [ebx - 0x1c441bdd], bl
pop ebp
and al, 0xf8
jae 0x10055cdb
clc
mov al, 0xb7
fbld tbyte [edx + 0x5b429e84]
in al, dx
inc esp
pop ebx
push esi
xchg ecx, eax
cmc
sti
insb byte es:[edi], dx
imul ebp, dword [eax - 4], 0x1c
inc ebp
nop
jg 0x10055d29
js 0x10055d29
mul dword [ecx + 0x32]
pop ecx
popfd
call fcn.1011df60
or byte [eax + eax], 0x9c
or al, 0
pushfd
test byte [0x10055dac], 0x71
jne 0x10055dad
aad 0xbb
mov eax, dword [0x6fe84227]
xchg esp, eax
insb byte es:[edi], dx
sub dword [eax - 0x6b68ad7a], 0xffffffd8
dec ebx
test al, 0xd
stc
popfd
enter 0x6a8b, 0x6c
cmp esi, esp
add ebx, dword [eax + 0xe8cac3e]
push cs
cmp eax, 0x9a819d98
jnp 0x10055da7
mov edx, 0xcac729f2
push ebx
cmp dh, byte [ecx - 0x66a5f11c]
push 0x2a013c03
cmp byte [esi - 0x6212b90], dl
xlatb
out dx, al
int 0x3b
int 0x22
xchg esp, eax
pushfd
pop esp
cmp ecx, ebp
and dl, byte [esp + ebx*4 - 0x3b7c62a4]
or al, 0x8d
test eax, edi
invalid
popfd
add esp, 0xc
lea eax, [ebp - 0x108]
push eax
mov ecx, edi
call fcn.100550e5
pushfd
test byte [0x10055dfb], 0xd7
jne 0x10055efc
mov dword [0x5f333b85], edi
loop 0x10055d58
sar dword [ecx + edx*4 + 0x53], 1
test dword [ebx], eax
xor dword [esi - 0x77a92d34], esi
rcl byte [esi - 0x78], cl
shr dword [esi + 0x68526514], cl
rol dword [ecx + eax*2], 1
jo 0x10055d78
mov bh, 0xf6
cmp dword [ebp - 0x386ce16], edi
sub byte [edi + 0x20], ah
popal
test eax, 0x3b0710bc
cmc
aam 0xc7
lodsb al, byte [esi]
clc
or ah, byte [esi + 0x60b51050]
dec ecx
xchg ebx, eax
popal
mov cl, 0xef
test ah, dh
xor dword [0x48a9040f], eax
je 0x10055dde
sbb al, 0xe2
add byte [ebx], bh
das
not bh
stosb byte es:[edi], al
push esi
shl dword [eax], cl
outsb dx, byte [esi]
inc ebx
xchg esp, eax
or byte [edi - 0x7f0605e3], ch
mov dl, ch
mov ch, byte [ecx]
out 0x18, eax
jo 0x10055e4e
movsb byte es:[edi], byte [esi]
or al, 0x63
insb byte es:[edi], dx
pop ecx
shl dword [edx + 0x41], 1
add eax, 0xdd7edebc
inc edi
jb 0x10055e46
mov eax, 0x5e595e67
pop esi
pop ecx
pop esi
xor eax, 0xe7f6ef9d
mov ecx, 0x48ea1578
mov eax, dword [0xb78c5311]
xor ebp, dword cs:[edi]
les ecx, ds:[ebp - 0x1f5871c2]
bts dword [edx], ebp
push edx
push ss
leave
sbb eax, 0xb1a88eba
and dword [edi - 0x80], 0xffffffd0
shr dword [ebx + 0x5f1c511], 0xc1
xor byte [edi], ch
out 0x3f, eax
cdq
and eax, 0x3b7a8866
push ds
aad 0x9d
xchg edi, eax
pop eax
pop ds
sub esi, edx
and al, 0x8b
pop esp
sub esi, 0x2db14429
shl dword cs:[ebx + 0x485fc332], 0xfe
mov cl, dh
pop ebx
dec edx
or al, 0xc2
or byte [esi - 0x1b], al
adc eax, 0x36f0df81
popal
adc al, byte [0x87f112ef]
cmp dl, ch
dec ebp
int1
out 0xcb, al
add al, 0xd2
xor eax, 0xb2e14ab7
xor al, 0x26
stosd dword es:[edi], eax
inc byte [esi - 0x54]
sbb byte [edi + eax*4 - 0x5a60aedb], cl
pop es
clc
lahf
out 0xd, eax
mov bl, 0x5b
and edx, dword [esi - 0xd]
test byte [esi - 0x1e526a7c], ah
insb byte es:[edi], dx
cmpsd dword [esi], dword es:[edi]
fsubr dword [edx - 0x2ba38a07]
ror byte [edx - 9], 0x73
mov bl, 0x38
mov eax, 0xbf6f4405
adc dl, byte [ebx + 0x33]
movsb byte es:[edi], byte [esi]
in al, 0xdd
ljmp 0xd204:0xcbe6f14d
push cs
movsb byte es:[edi], byte [esi]
salc
mov dl, 0xe0
adc byte [esi], dl
popfd
lea eax, [ebp - 0x108]
pushfd
test byte [0x10055f3c], 0x78
jne 0x1005603d
cmp al, 0x5f
add eax, 0x850f7810
sub al, 1
add byte [eax], al
scasd eax, dword es:[edi]
cmpsb byte [esi], byte es:[edi]
aaa
adc byte [eax], 0x15
jle 0x10055eb3
in al, dx
dec esp
mov word [ebx], gs
clc
xchg ebx, edi
mov dword [0x172ec4d9], eax
aaa
jg 0x10055f32
xor eax, 0x5750ddd9
sahf
sbb dword [ebx + 0x61], esp
pop edi
pop esp
mov esp, 0x2c7f09e4
mov al, 0x79
mov al, byte [0x90954ac2]
sal byte [ecx - 7], 0xd6
mov dword [0x8abc292b], eax
pop esi
or eax, 0x5f575b0b
jb 0x10055ef5
fiadd dword [esi + 0x62]
mov edx, 0xaf336e94
adc edx, dword [edx - 0x51b9b54]
in al, 0xfa
and al, 0x58
mov bl, 0x86
or al, 0xdf
cmpsd dword [esi], dword es:[edi]
rol esp, cl
cdq
out 0xb4, eax
push ecx
jnp 0x10055f5d
and byte [ebx], bh
movsb byte es:[edi], byte ds:[esi]
push ebp
movsb byte es:[edi], byte [esi]
jge 0x10055fb6
and ebx, eax
arpl word [eax], di
in al, 0x92
xchg ebp, eax
cld
push es
lahf
nop
jb 0x10055f06
loop 0x10055f1a
in al, 0x79
cmp eax, 0x122fbe34
int1
int1
dec edi
sal edx, 1
dec eax
jno 0x10055fcb
pop ebx
xor ch, cl
js 0x10055f9c
and al, byte [ebp - 0x50324cbc]
inc esp
mov bl, 0xcd
scasd eax, dword es:[edi]
dec eax
jnp 0x10055fcb
mov ebp, 0xaee1a04b
pop ebp
enter 0xfffffffffffff631, 0xffffffffffffff88
fimul word [eax - 0x1260e5ed]
xchg ebx, eax
das
ja 0x1005602f
js 0x10055fcf
pop ss
jno 0x10055fff
test al, 0x51
scasb al, byte es:[edi]
fsubr qword [0x13665e58]
insb byte es:[edi], dx
pop eax
pop esi
adc sp, word [ebp + 0x6c]
jnp 0x1005600a
cld
push 0xf311a16
xor dword [edi], ecx
aas
js 0x10055fbf
out dx, eax
xlatb
push ebx
and byte [eax + 0x4a151474], 0xc1
xor byte [eax - 0x571729a8], al
loopne 0x10056029
out 0x90, eax
pop ds
jbe 0x10056031
xchg ebx, eax
out dx, al
xchg ecx, eax
call 0x936536c8
dec edi
inc esi
or dword [eax + 0x1d], edx
sbb dword [eax], edx
sbb byte [ebx + 0x55], bl
sbb byte [ecx - 0x7d899964], cl
pop ss
xor dword [ebx + 0x5991f9a9], eax
salc
adc eax, 0x25a2e416
xchg ecx, eax
add al, 0xa0
adc byte [edi], 0x31
sub dword [ecx - 0x29a66e07], 0x15
push ss
in al, 0xa2
and eax, 0xa3a00491
push eax
jno 0x1005604e
mov dword [0x43a7150], eax
xor al, 0x69
rcr word [eax], cl
out 0xc4, eax
xor al, 0x4d
add al, 0x34
imul esp, dword [esi - 0x2d], 0x34c4e718
dec ebp
adc dword [edi + eax*2], esp
js 0x10055ffa
call 0xabb48713
adc edx, dword [esi + 0x14]
sbb eax, ecx
inc esi
mov ah, 0x37
push esi
adc al, 0x19
enter 0xffffffffffffb446, 0x37
aaa
push cs
adc dl, ah
push esi
add eax, 0x56ce0102
pop ss
xor bh, byte [edx - 0x64]
popfd
push 0x101468bc
push eax
call fcn.1011f7ae
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
jne 0x1005605f
invalid
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.1011e48a
leave
ret
push esi
pushfd
test byte [0x10056089], 0xea
jne 0x1005608a
sbb al, 0x51
inc ebp
adc ecx, ebp
xchg edi, eax
cmc
or al, byte [ecx + 0x58]
inc ecx
int1
push 0x40da89d5
inc eax
mov dh, 0x48
xchg edx, eax
jne 0x10056010
pop edx
dec eax
or dword [ebp - 0x26ba9e4b], ebx
outsd dx, dword [esi]
popfd
push ebx
mov esi, 0x744
pushfd
test byte [0x10056107], 0x4b
jne 0x10056108
sti
rol byte [edi + 0x3c6046f0], 1
add al, 0x37
sti
sub al, 0xf0
fild dword [edi + 0x54]
add al, 0x7f
mov dword [ebp + 0x4f39539d], edi
mov esp, 0xd2871597
and eax, 0xd1e8d5dd
push 0x75
or bh, byte [ecx]
fimul dword [0xb67f323]
or ah, cl
and al, 0x17
sub edx, dword [ebp + 0x40]
aas
lahf
popfd
mov dword [0xca6f880], eax
fst dword [esp + edi*2 - 0x6a]
fidiv word [ebp + 0x2c81afda]
push ss
pop ebp
mov dword [edi], ecx
push ebx
pop ds
lahf
dec edx
jns 0x1005612a
test eax, 0x64195fe2
sub dword [ecx + 0x6c], eax
dec esi
inc esp
pop ebp
out dx, al
mov ch, cl
imul edi, dword [ebp - 0x1984f31e], 0x1f0cbca6
add al, 0x30
int1
lodsb al, byte [esi]
dec ebp
mov cl, 0x98
popfd
push esi
push 1
add edi, 4
push edi
call fcn.1011f678
add esp, 0x10
cmp eax, esi
je 0x1005612d
xor esi, esi
push ebx
call fcn.1011e7c5
pop ecx
mov eax, esi
pop esi
jmp 0x10056051
invalid
xor esi, esi
inc esi
jmp 0x1005611e