Function at 0x109c1ffc
Capabilities:
Encode data using xor

Disassembly:
jmp 0x109c2006
pushal
call 0x109c200c
pop ebp
sub ebp, 0x10
sub ebp, 0x9c1ffc
mov al, byte [esp + 0x28]
cmp al, 1
je 0x109c2030
popal
xor eax, eax
inc eax
ret 0xc
jmp 0x109c2039
mov eax, 0x9c1ffc
add eax, ebp
add eax, 0x63
mov ecx, 0x5a7
mov edx, 0x1d9fa57e
xor byte [eax], dl
inc eax
dec ecx
jne 0x109c2050
jmp 0x109c2063
cmc
mov bl, 0xf5
test dword [edx + 0x7e], 0xbfff7e7e
xchg byte [esi + 0x7e], bh
jle 0x109c20ef
mov bl, 0xc6
jns 0x109c20f4
jle 0x109c20f6
les edx, [esi + 0x7e]
jle 0x109c20fb
mov dword [ebp + edi*2 + 0x72fff5b6], ebx
jle 0x109c2104
jle 0x109c2105
mov ebx, 0xba162e2e
lds ebx, [edi + 0x7e]
push ss
dec ecx
sbb al, byte [esi + edi*2]
jg 0x109c20e9
pop edx
push ss
nop
pushf
inc eax
xchg esi, eax
jnp 0x109c211e
jle 0x109c2120
xchg edi, eax
push esi
jle 0x109c2124
jle 0x109c20d3
sub ah, byte [ebx]
cmc
sti
jbe 0x109c212c
jle 0x109c212e
cmc
jmp 0x109c2125
jle 0x109c2153
jle 0x109c20ed
mov edx, 0x167e5fc5
dec ecx
sbb al, byte [esi + edi*2]
jg 0x109c2134
pop edx
sbb bl, byte [edx - 0x7e]
div dword [edx + 0x5a]
pop edx
xchg esi, eax
jnp 0x109c216b
jle 0x109c216d
xchg edi, eax
cmp edi, dword [esi + edi*2 + 0x7e]
sbb bl, byte [edx - 0x7e]
not dword [edx + 0x5a]
pop edx
xor bh, 0x52
pop edx
sub ah, byte [ebx]
or dword [ebx], 0x760b8172
xchg esi, eax
or esi, dword [edx - 0x7f]
or esi, dword [esi - 0x6a]
or al, 0x7e
jle 0x109c2186
jle 0x109c2185
jle 0x109c20fe
cmc
ret
std
xchg esi, eax
jnp 0x109c2158
jno 0x109c211e
xor byte [esi + 0x7e], bh
jle 0x109c21a5
jle 0x109c219a
div byte [esi]
jle 0x109c21ab
jle 0x109c21ac
jle 0x109c2147
sbb ch, dh
cmc
bound eax, qword [edi - 2]
test dword [esi + 0x7e64fa71], edx
jle 0x109c21b9
inc edi
inc byte [ebp + 0x64fa7196]
jle 0x109c21b8
xchg esi, eax
jno 0x109c2131
jle 0x109c21b8
jle 0x109c213a
inc byte [ebp + 0x6ffa7197]
jle 0x109c21c1
test dword [edi + 0x7e6ffa71], edx
jle 0x109c21c2
jle 0x109c215d
sbb bh, bh
test dword [ecx + 0x6bfa715b], eax
inc dword [ebp - 0x58ea47f]
imul edi, dword [esi + 0x7e], 0x7e
aas
sbb dword [ebx + 0x71], 0x7e7e6bfa
jle 0x109c21cc
jle 0x109c218f
xchg edi, eax
mov dl, 0x81
add dword [ecx + 0x7f473257], 0xfd7bbffd
inc edi
jg 0x109c2157
mov edi, 0x7a96fd7b
xchg edi, eax
xchg esi, eax
jp 0x109c20f7
ret
std
xchg esp, eax
jp 0x109c216c
xchg esi, eax
jnp 0x109c2109
aad 0x81
add dword [ecx + 0x7e72bc23], 0x2892f52b
sub dword [ebx], ebp
cmc
or esi, dword [edx - 0xb]
add esi, dword [esi - 0x7e]
jbe 0x109c2109
or ah, 0xfe
hlt
int3
jle 0x109c220f
idiv byte [ecx - 1]
mov ecx, 0x7e7e7e7f
lds edi, [esi + edi*2 + 0x7e]
jl 0x109c221a
jle 0x109c221b
jle 0x109c221c
jle 0x109c221b
jl 0x109c214c
lodsb al, byte [esi]
jno 0x109c219d
jnp 0x109c2222
jle 0x109c2224
jle 0x109c219b
hlt
push 0x71ac6c38
lodsb al, byte [esi]
jno 0x109c21aa
std
cmpsb byte [esi], byte es:[edi]
add dword [ecx + 0x71ac7c81], 0x7e7e7bfb
jle 0x109c21ae
hlt
push 0x71ac6c38
std
adc al, 0x7e
jle 0x109c2241
jle 0x109c2242
jle 0x109c2212
dec ebp
mov esi, 0xfb71ac7c
jnp 0x109c224a
jle 0x109c224c
hlt
hlt
push 0x6dac6c38
insb byte es:[edi], dx
lodsb al, byte [esi]
insd dword es:[edi], dx
mov esi, 0x7e78fa71
jno 0x109c2211
js 0x109c2297
jle 0x109c2299
jle 0x109c2211
cmc
mov eax, dword [0x7df4a655]
idiv byte [ecx + 0x39]
jns 0x109c225d
lds edi, [esi + edi*2 + 0x7e]
jle 0x109c21c1
push cs
add dword [ecx + 0x7e7fc681], 0xac7c7e7e
jle 0x109c22b0
lodsb al, byte [esi]
jno 0x109c2232
jnp 0x109c22b7
jle 0x109c22b9
hlt
mov esi, 0xfb71ac7c
jl 0x109c21f0
jno 0x109c2241
jnp 0x109c22c6
jle 0x109c22c8
hlt
cmp byte [esp + ebp*4 + 0x71], ch
cld
mov al, byte [0x55818181]
mov ebp, 0x7e7e7fc5
jle 0x109c22ce
sti
dec edx
jle 0x109c22df
jle 0x109c222a
jg 0x109c22e3
jle 0x109c22e5
jle 0x109c22e4
jl 0x109c2215
lodsb al, byte [esi]
jno 0x109c2266
jnp 0x109c22eb
jle 0x109c22ed
hlt
fisub dword [eax]
xchg edi, eax
jbe 0x109c2215
add dword [ecx + 0x769ebf36], 0xf53878f4
mov edi, 0x78f4769e
cmp ch, dh
jbe 0x109c228f
js 0x109c22d5
cmc
xchg esi, eax
invalid
lodsb al, byte [esi]
insd dword es:[edi], dx
mov bh, 0x7c
lodsb al, byte [esi]
jno 0x109c22b2
jnp 0x109c2337
jle 0x109c2339
hlt
inc dword [esi + 0x7e7e037e]
jle 0x109c22cd
jle 0x109c234a
jmp dword [edi - 0x7e7e7e7f]
cmpsd dword [esi], dword es:[edi]
add dword [ecx - 0x79007e7f], 0x7e7e7b7e
jnp 0x109c2355
jle 0x109c22d8
jmp dword [edi - 0x7e7e7e7f]
cmpsd dword [esi], dword es:[edi]
add dword [ecx - 0x79007e7f], 0x7e7e7efe
xchg dh, bh
jle 0x109c2361
jle 0x109c22e4
jmp [edi + 0x7e7e7e7e]
scasd eax, dword es:[edi]
jle 0x109c2366
jle 0x109c2368
inc dword [esi + 0x7e7e7efe]
xchg dh, bh
jle 0x109c236d
jle 0x109c22f0
jmp [edi + 0x7e7e7e7e]
scasd eax, dword es:[edi]
jle 0x109c2372
jle 0x109c2374
sub ch, dh
mov dword [ebp - 0x72], edx
invalid
cmc
mov ecx, 0x9bf52021
and edi, dword [esi + esi*2 + 0x4af5217e]
jbe 0x109c23b7
and ebp, esi
dec edx
pop edx
sbb bl, byte [edx + 0x7a]
xchg edi, eax
jp 0x109c23c2
jle 0x109c23c4
xchg edi, eax
fdivr qword [ebp + edi*4 - 0x1d9e7d3a]
jle 0x109c23cd
mov byte [edx + 0x7d7ee261], 0xbb
invalid
mov ebx, 0x7d0abeff
jle 0x109c23d5
invalid
dec esi
outsb dx, byte [esi]
aaa
jno 0x109c2362
sti
mov byte [ecx + 0x7a978181], al
add dword [ecx + 0x7e7a9781], 0x77337e7e
jle 0x109c23ed
jle 0x109c23a4
ja 0x109c232f
mov esp, 0x2a5f2637
fistp word [ebp + 0x1961d2a]
mov eax, dword [0x5fa2a1a1]
idiv edx
aaa
pop edi
sub bl, bh
popfd
sub bl, byte [0xa1a10196]
mov eax, dword [0xfaf75fa2]
aaa
sub dl, cl
popfd
aaa
sub ah, byte [0xa1a19591]
mov eax, dword [0xf62a798a]
mov eax, dword [0x20a5ee2a]
pop ebx
mov eax, dword [0xaea1a1a1]
and eax, 0xa1a1a1e7
mov byte [0xa9662077], al
mov eax, dword [0x4820a1a1]
test eax, 0x20a1a1a1
pop eax
mov eax, dword [0xaea1a1a1]
and eax, 0x5e5e5e75
mov eax, dword [0x5e7525ae]
pop esi
pop esi
invalid
dec ecx
lodsd eax, dword [esi]
and al, byte [ecx - 0x52]
and byte [ecx - 0x5e], bl
mov eax, dword [0x24aea1a1]
lodsb al, byte [esi]
scasb al, byte es:[edi]
and al, 0xac
mov eax, dword [0x2ac7a1a1]
cmpsb byte [esi], byte es:[edi]
and byte [ecx + 0x5e], al
scasb al, byte es:[edi]
mov eax, dword [0xa063a2a1]
mov ecx, 0x6622e8e8
mov dword [0x5e5e6948], eax
pop esi
dec eax
movsd dword es:[edi], dword [esi]
mov eax, dword [0x9b47a1a1]
invalid
mov eax, dword [0xfe9b47a1]
nop
sbb dword [ebp - 0x42], ebx
cmp eax, 0x2064a2a1
popal
mov esp, 0x18a1a1a5
dec esp
mov al, byte [0x351ba1a1]
std
or eax, 0xe1b191e5
call 0x6ef348c0
pop esi
pop esi
dec eax
movsd dword es:[edi], dword [esi]
mov eax, dword [0x77b6a1a1]
inc esi
adc eax, 0xbe094bbe
mov dword [edx], eax
mov ch, 0x35
xor eax, 0xb6cb3635
dec edx
cmp dword [0x3584b13a], esi
xor eax, 0x4dbea235
cmp dword [edx + 0x51b8f336], esp
adc ecx, ecx
mov esp, 0xa0ca1131
sub dword [edi + ecx*2 + 0x35], edx
mov ah, 0xcd
xor eax, 0x3a353535
mov al, 0x27
xor eax, 0x72be3535
cmp dword [esi], esi
mov eax, 0xbcc91151
xor dword [ecx], edx
retf 0x1da0