Function at 0x10923bf
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x12d3ad4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x18]
push ebx
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x14], eax
xor eax, eax
push esi
push edi
mov word [ebp - 0x10], ax
lea edi, [ebp - 0xe]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
xor edi, edi
cmp dword [ebp + 0xc], edi
mov dword [ebp - 0x18], ecx
jl 0x1092557
test byte [ebp + 8], 2
mov esi, 0x1003690
je 0x109247a
call fcn.012049f6
jl 0x10923cc
sub al, 0xd0
cmp byte [edi + 0x18202c], 0
pushal
pushal
add al, 0xc
ror byte [ebx + 0x75df3bcb], 0x17
call int.0121d60e
inc esp
jmp [ebx]
call fcn.01077ff4
clc
add eax, dword [eax]
and byte [edi + 0x2b], al
adc bh, bl
fisub dword [0x2be74080]
mov al, byte [0x10845f6]
je 0x109287b
mov eax, dword [0x12d2c30]
cmp eax, 0x12d2c30
je 0x109287b
call fcn.01254918
push ebx
add byte [eax], al
and byte [edi + esi*4 - 0x485f7fd4], bl
sub al, 0x80
or byte [esi + 0x508b200c], ch
cmp al, 0xb9
or byte [eax], al
add byte [eax], cl
and edx, ecx
cmp edx, ecx
jne 0x109287b
call fcn.0125bfba
arpl word [edx + 0x3d5100b0], di
and al, byte [eax]
pushfd
sub al, 0xa0
pop es
add byte [eax], al
or byte [ebx - 0x28c417ab], 0x75
pop ss
call fcn.01031025
sbb esi, 0xe0804011
sub al, 0x70
jl 0x10924db
sub al, 0
sub dword [eax], eax
add byte [eax - 0x75], ah
salc
call fcn.0121067f
std
pushal
pop es
pushal
mov eax, dword [eax]
add al, ah
inc eax
cld
sub al, 0x40
cmp al, 0xfc
sub al, 0xd0
mov ecx, ebx
cmp ebx, edi
jne 0x1092520
mov ecx, esi
call fcn.01077ff4
popal
add byte [eax], al
mov al, byte [0x502be618]
ret
add byte [eax], al
call fcn.01031025
sti
xor eax, 0xd3f04014
sub al, 0x10
in al, dx
shr dword [eax + edx*8], cl
insd dword es:[edi], dx
add byte [eax], al
jo 0x1092555
cmpsd dword [esi], dword es:[edi]
and ebx, dword [eax + eax]
cmpsb byte [esi], byte es:[edi]
add byte [eax], al
shr byte [eax], 0xa2
sub edx, dword [eax]
sub al, 0xa2
sub edx, eax
or ch, byte [ebp - 0x30c4cfd6]
je 0x109264e
mov eax, ecx
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, di
jne 0x109258e
call fcn.01077ff4
das
add byte [eax], al
pushal
or al, 9
sub eax, 0x6e55e00
push eax
or byte [ecx], cl
sub eax, 0x4a1fe840
and byte [eax], al
sbb eax, dword [eax]
add al, ah
adc byte [edx], dh
sub al, 0x50
and al, byte [0x32143022]
sub al, 0x70
sub eax, edx
sar eax, 1
cmp eax, 5
jbe 0x1092638
call fcn.0121067f
add dl, byte [edi + 0x23]
adc byte [eax + eax], bh
add byte [eax], dh
pop esp
sbb ch, byte [eax + esi*8]
pop eax
sbb ch, byte [eax + edx]
mov eax, dword [ebp - 0x18]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
or byte [eax + 0x40], al
cmp cx, di
jne 0x10925e6
call fcn.01031025
and byte [0x19204009], 0x2d
pushal
sbb al, 0x19
sub eax, 0x6d40
and al, ch
jne 0x10925e8
pop ss
add byte [ebx], bl
and cl, byte [edx]
mov al, 0x5e
add byte [eax], al
ror byte [eax - 0x2d], 0x2c
mov al, 0x44
shr dword [eax], cl
call fcn.01031025
xchg eax, ecx
adc al, 0xc0
enter 0x2cd1, 0x50
invalid
xor eax, eax
mov ecx, dword [ebp - 0x18]
push 5
lea eax, [ecx + eax*2]
push eax
push 6
lea eax, [ebp - 0x10]
push eax
call fcn.0106d4d5
test byte [ebp + 8], 2
mov esi, 0x1003690
je 0x1092740
call int.0121d60e
fadd qword [esp + ebp + 0xec2f590]
mov al, byte [0x80000045]
fadd dword [esp + ebp + 0x3ebe820]
cli
inc dword [eax]
lodsd eax, dword [esi]
pop eax
add byte [0x7ce00001], 0x56
sub al, 0x20
call fcn.01032a62
add byte [ebp + 0x1058058], ch
add al, ah
jl 0x10926d7
sub al, 0x60
xor edx, edi
push ds
loopne 0x1092670
cdq
sbb al, 0
adc esi, dword [0xf12fc0b0]
and eax, dword [eax + 0x48]
or eax, 0x8d302c
add byte [eax + 0x3bec4d8b], dh
iretd
mov ecx, 0xb9f4b02c
sub al, 0x40
push ss
add byte [eax], al
shr al, 0xea
dec eax
and byte [eax], al
mov eax, 0x54300000
retf 0x402b
add byte [esi], ch
add byte [eax], al
or byte [ebx + eax*2 + 0x2dcc402c], 0x21
invalid
test byte [ebp + 8], 1
je 0x109287b
call fcn.01077ff4
sbb byte [ebx], al
add al, ah
mov eax, 0xc5e02cea
loopne 0x109271d
or al, al
mov ah, 0xea
sub al, 0xe0
call fcn.01077ff4
inc esi
add al, byte [eax]
inc eax
push eax
push esi
sub al, 0xb0
mov ebx, 0x4cb01efb
push esi
sub al, 0xa0
call fcn.01254918
sub al, 0
add byte [eax - 0x60], al
fld xword [ebx]
shl byte [ebx + ebx*8 - 0x68ad0fd5], 0x26
and byte [ecx + 0x12d2c30], ah
cmp eax, 0x12d2c30
je 0x109287b
call fcn.01032a62
sub byte [eax + 0x58], bl
and byte [eax + 0x10700000], bh
sub al, 0x2c
jo 0x1092756
push 0x22
or byte [ebx + 0x8b93c50], 0
add byte [ecx], al
and edx, ecx
cmp edx, ecx
jne 0x109287b
mov ecx, dword [ebp - 0x18]
cmp ecx, edi
jne 0x10927c9
mov ecx, esi
call fcn.01031025
out dx, eax
adc byte [ebx], bl
loopne 0x10927ff
invalid
mov eax, dword [0xa128502c]
sub al, 0x90
or al, byte [eax]
sub al, 0x50
sub byte [ecx + 0xa902c], ah
add byte [eax + 0x39], dl
jge 0x10927cd
je 0x1092825
call fcn.0125bfba
inc ecx
outsd dx, dword [esi]
mov dl, 0x80
cmp eax, 0xd4800dca
wait
sub al, 0x30
pop dword [eax]
add byte [eax + 0x17de82e8], ah
add byte [ebx - 0x10dfea5f], dl
add dword [eax], eax
adc eax, 0x1ef20
jo 0x109281a
jge 0x1092834
adc byte [eax], dl
jge 0x1092838
inc eax
call fcn.01254918
adc eax, 0x38400000
and eax, 0x253c602c
cmp al, 0x25
sub al, 0x60
jge 0x10927d4
and dl, byte [eax - 0x17138a75]
retf 0xfe57
call fcn.01077ff4
sbb eax, 0xd4600001
inc esp
sub al, 0x60
xchg ebx, eax
sbb byte [ecx], ah
inc eax
rol byte [esp + ebp - 0x50], 1
and dword [eax - 0x30], eax
inc esp
sub al, 0xb0
call fcn.01077ff4
inc ebx
add byte [eax], al
loopne 0x1092820
hlt
call fcn.012049f6
mov al, 4
das
mov al, 0xb4
add al, 0x2f
and byte [ebp], 0
mov al, 0x4b
xor eax, 0x4d8be003
cld
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0128e47a
leave
ret 0x14