Function at 0x10060da0
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 0x10060de9
cmp byte [esi + 0x21c], 0
je 0x10060de9
mov al, byte [esi + 0x140]
cmp al, 0x10
je 0x10060ddb
cmp al, 0x20
je 0x10060dd4
cmp al, 0x40
jne 0x10060de9
push str.o16
jmp 0x10060de0
push str.o32
push esi
call fcn.1006e460
add esp, 8
mov eax, dword [esi + 0x234]
test byte [eax + 0x24], 8
jne 0x10060e1e
cmp byte [esi + 0x21d], 0
je 0x10060e1e
mov al, byte [esi + 0x140]
cmp al, 0x10
je 0x10060e10
cmp al, 0x20
je 0x10060e7f
cmp al, 0x40
jne 0x10060e1e
push str.a32
push esi
call fcn.1006e460
add esp, 8
mov al, byte [esi + 0x21b]
test al, al
je 0x10060e58
cmp dword [esi + 0x158], 0x9d
je 0x10060e58
cmp dword [esi + 0x188], 0x9d
je 0x10060e58
movzx ecx, al
dec ecx
call fcn.1006e400
push eax
push 0x100aa1d0
push esi
call fcn.1006e460
add esp, 0xc
cmp byte [esi + 0x21e], 0
je 0x10060e6f
push str.lock
push esi
call fcn.1006e460
add esp, 8
cmp byte [esi + 0x220], 0
je 0x10060e86
push str.rep
jmp 0x10060ea4
push str.a16
jmp 0x10060e15
cmp byte [esi + 0x221], 0
je 0x10060e96
push str.repe
jmp 0x10060ea4
cmp byte [esi + 0x222], 0
je 0x10060ead
push str.repne
push esi
call fcn.1006e460
add esp, 8
mov ecx, dword [esi + 0x154]
cmp ecx, 0x38c
jge 0x10060f16
movzx eax, cl
xor edx, edx
imul eax, eax, 0xd
xorps xmm0, xmm0
movups xmmword [0x100e64a8], xmm0
mov byte [0x100e64b8], 0
mov bl, al
mov dword [esp + 0xc], eax
mov eax, ecx
xor bl, 0x6e
shl eax, 4
add eax, ecx
sub eax, 0x100e64a8
lea edi, [eax + 0x100aa8c0]
nop
mov cl, byte [edi + edx + 0x100e64a8]
mov al, cl
add cl, byte [esp + 0xc]
xor al, bl
add cl, dl
mov byte [edx + 0x100e64a8], al
add bl, cl
inc edx
cmp edx, 0x11
jl 0x10060ef0
mov eax, 0x100e64a8
jmp 0x10060f18
xor eax, eax
push eax
push 0x100a9c3c
push esi
call fcn.1006e460
add esp, 0xc
cmp dword [esi + 0x158], 0
je 0x10060fbf
push 0x100aa1f4
push esi
xor ebx, ebx
call fcn.1006e460
add esp, 8
cmp dword [esi + 0x158], 0x9d
jne case.0x10060fa2.522
mov ecx, dword [esi + 0x188]
cmp ecx, 0x9f
je case.0x10060fa2.521
cmp ecx, 0xa1
je case.0x10060fa2.521
test ecx, ecx
je case.0x10060fa2.521
mov ax, word [esi + 0x15c]
cmp ax, word [esi + 0x18c]
jne case.0x10060fa2.521
cmp ecx, 0x9c
jne case.0x10060fa2.522
cmp dword [esi + 0x190], 2
jne case.0x10060fa2.522
mov eax, dword [esi + 0x154]
add eax, 0xfffffdf7
cmp eax, 0x32
ja case.0x10060fa2.522
movzx eax, byte [eax + 0x100610a8]
jmp dword [eax*4 + 0x100610a0]
mov ebx, 1
push ebx
lea edx, [esi + 0x158]
mov ecx, esi
call fcn.10060970
add esp, 4
cmp dword [esi + 0x188], 0
je 0x10061026
push 0x100aa208
push esi
call fcn.1006e460
add esp, 8
cmp dword [esi + 0x188], 0x9d
jne 0x10061013
mov ax, word [esi + 0x15c]
cmp ax, word [esi + 0x18c]
je 0x10061013
cmp dword [esi + 0x158], 0x9c
jne 0x1006100c
mov eax, dword [esi + 0x160]
sub eax, 0x45
cmp eax, 5
jbe 0x10061013
mov eax, 1
jmp 0x10061015
xor eax, eax
push eax
lea edx, [esi + 0x188]
mov ecx, esi
call fcn.10060970
add esp, 4
cmp dword [esi + 0x1b8], 0
je 0x10061072
push 0x100aa208
push esi
xor edi, edi
call fcn.1006e460
add esp, 8
cmp dword [esi + 0x1b8], 0x9d
jne 0x10061061
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.10060970
add esp, 4
cmp dword [esi + 0x1e8], 0
je 0x10061098
push 0x100aa208
push esi
call fcn.1006e460
push 0
lea edx, [esi + 0x1e8]
mov ecx, esi
call fcn.10060970
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret