Function at 0x10060250
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov eax, dword [esi + 0x234]
test byte [eax + 0x24], 4
jne 0x10060299
cmp byte [esi + 0x21c], 0
je 0x10060299
mov al, byte [esi + 0x140]
cmp al, 0x10
je 0x1006028b
cmp al, 0x20
je 0x10060284
cmp al, 0x40
jne 0x10060299
push str.o16
jmp 0x10060290
push str.o32
push esi
call fcn.1006d900
add esp, 8
mov eax, dword [esi + 0x234]
test byte [eax + 0x24], 8
jne 0x100602ce
cmp byte [esi + 0x21d], 0
je 0x100602ce
mov al, byte [esi + 0x140]
cmp al, 0x10
je 0x100602c0
cmp al, 0x20
je 0x1006032f
cmp al, 0x40
jne 0x100602ce
push str.a32
push esi
call fcn.1006d900
add esp, 8
mov al, byte [esi + 0x21b]
test al, al
je 0x10060308
cmp dword [esi + 0x158], 0x9d
je 0x10060308
cmp dword [esi + 0x188], 0x9d
je 0x10060308
movzx ecx, al
dec ecx
call fcn.1006d8a0
push eax
push 0x100a8240
push esi
call fcn.1006d900
add esp, 0xc
cmp byte [esi + 0x21e], 0
je 0x1006031f
push str.lock
push esi
call fcn.1006d900
add esp, 8
cmp byte [esi + 0x220], 0
je 0x10060336
push str.rep
jmp 0x10060354
push str.a16
jmp 0x100602c5
cmp byte [esi + 0x221], 0
je 0x10060346
push str.repe
jmp 0x10060354
cmp byte [esi + 0x222], 0
je 0x1006035d
push str.repne
push esi
call fcn.1006d900
add esp, 8
mov ecx, dword [esi + 0x154]
cmp ecx, 0x38c
jge 0x100603c6
movzx eax, cl
xor edx, edx
imul eax, eax, 0xd
xorps xmm0, xmm0
movups xmmword [0x100e47b8], xmm0
mov byte [0x100e47c8], 0
mov bl, al
mov dword [esp + 0xc], eax
mov eax, ecx
xor bl, 0x6e
shl eax, 4
add eax, ecx
sub eax, 0x100e47b8
lea edi, [eax + 0x100a8910]
nop
mov cl, byte [edi + edx + 0x100e47b8]
mov al, cl
add cl, byte [esp + 0xc]
xor al, bl
add cl, dl
mov byte [edx + 0x100e47b8], al
add bl, cl
inc edx
cmp edx, 0x11
jl 0x100603a0
mov eax, 0x100e47b8
jmp 0x100603c8
xor eax, eax
push eax
push 0x100a7c74
push esi
call fcn.1006d900
add esp, 0xc
cmp dword [esi + 0x158], 0
je 0x1006046f
push 0x100a8258
push esi
xor ebx, ebx
call fcn.1006d900
add esp, 8
cmp dword [esi + 0x158], 0x9d
jne case.0x10060452.522
mov ecx, dword [esi + 0x188]
cmp ecx, 0x9f
je case.0x10060452.521
cmp ecx, 0xa1
je case.0x10060452.521
test ecx, ecx
je case.0x10060452.521
mov ax, word [esi + 0x15c]
cmp ax, word [esi + 0x18c]
jne case.0x10060452.521
cmp ecx, 0x9c
jne case.0x10060452.522
cmp dword [esi + 0x190], 2
jne case.0x10060452.522
mov eax, dword [esi + 0x154]
add eax, 0xfffffdf7
cmp eax, 0x32
ja case.0x10060452.522
movzx eax, byte [eax + 0x10060558]
jmp dword [eax*4 + 0x10060550]
mov ebx, 1
push ebx
lea edx, [esi + 0x158]
mov ecx, esi
call fcn.1005fe20
add esp, 4
cmp dword [esi + 0x188], 0
je 0x100604d6
push 0x100a824c
push esi
call fcn.1006d900
add esp, 8
cmp dword [esi + 0x188], 0x9d
jne 0x100604c3
mov ax, word [esi + 0x15c]
cmp ax, word [esi + 0x18c]
je 0x100604c3
cmp dword [esi + 0x158], 0x9c
jne 0x100604bc
mov eax, dword [esi + 0x160]
sub eax, 0x45
cmp eax, 5
jbe 0x100604c3
mov eax, 1
jmp 0x100604c5
xor eax, eax
push eax
lea edx, [esi + 0x188]
mov ecx, esi
call fcn.1005fe20
add esp, 4
cmp dword [esi + 0x1b8], 0
je 0x10060522
push 0x100a824c
push esi
xor edi, edi
call fcn.1006d900
add esp, 8
cmp dword [esi + 0x1b8], 0x9d
jne 0x10060511
mov ax, word [esi + 0x1bc]
mov ecx, 1
cmp ax, word [esi + 0x18c]
cmovne edi, ecx
push edi
lea edx, [esi + 0x1b8]
mov ecx, esi
call fcn.1005fe20
add esp, 4
cmp dword [esi + 0x1e8], 0
je 0x10060548
push 0x100a824c
push esi
call fcn.1006d900
push 0
lea edx, [esi + 0x1e8]
mov ecx, esi
call fcn.1005fe20
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret