Function at 0x100f300
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
cmp edx, 0x1c
jne 0x100ef6e
mov edx, dword [ecx + 0x10]
mov eax, 0x3b
test edx, edx
je 0x100ef77
xor eax, eax
mov dword [ecx], fcn.00dcffb0
dec eax
ret
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
cmp edi, 0x19
jg 0x100f33e
lea ecx, [edi - 0xb]
xor eax, eax
cmp ecx, 5
jbe switch.0x0100f337
cmp edi, 0xfffffffc
je case.0x100f337.15
mov ecx, esi
mov edx, edi
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
jmp 0x100ef5d
jmp dword [ecx*4 + 0x11318c0]
cmp edi, 0x1a
je 0x100f912
cmp edi, 0x1c
jne case.0x100f337.12
mov eax, 0x3c
jmp case.0x100f337.15
mov eax, dword [esp + 0x2c]
mov edx, 0x10112d0
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x30]
and edx, 1
mov dword [esp + 0xc], eax
mov eax, 0x10112d0
xor edx, eax
movzx ecx, byte [0x11741f3]
cmp edx, 0xffffffff
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x100f4ad
mov al, byte [0x11741f3]
cmp edx, 0xffffffff
mov ah, 1
sete cl
not cl
and cl, 3
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0x11741f3], ah
jne 0x100f397
mov ecx, 0x10112d0
mov edx, 0x10112d0
movzx eax, al
and ecx, 1
xor ecx, edx
cmp ecx, 0xffffffff
sete dl
not dl
and dl, 3
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x100f3fb
cmp ecx, 0xffffffff
movzx edx, byte [0x11741f3]
sete al
not al
and al, 3
movzx eax, al
bt edx, eax
jae 0x100f3dd
jmp 0x100f4ad
xor edx, edx
cmp ecx, 0xffffffff
movzx ecx, byte [0x11741f3]
sete dl
xor edx, 0x70eb31bb
add edx, 0x808
mov eax, edx
and al, 7
movzx eax, al
bt ecx, eax
jb 0x100f486
mov dword [esp + 8], ebp
mov ebp, 0x11741e8
xor eax, eax
mov dword [esp + 4], ebx
mov dword [esp], esi
mov ebx, dword [ebp]
mov ecx, eax
mov esi, edx
inc eax
shl esi, cl
xor cl, 0x1f
xor ebx, edx
shr edx, cl
mov dword [ebp], ebx
or edx, esi
not ebx
add ebp, 4
imul edx, ebx
cmp eax, 2
jne 0x100f434
mov ecx, 0x10112d0
mov eax, 0x10112d0
and ecx, 1
xor ecx, eax
mov al, 1
cmp ecx, 0xffffffff
sete cl
not cl
and cl, 3
shl al, cl
or byte [0x11741f3], al
mov esi, dword [esp]
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 8]
mov ecx, 0x10112d0
mov eax, 0x10112d0
and ecx, 1
xor ecx, eax
mov al, 0xfe
cmp ecx, 0xffffffff
sete cl
not cl
and cl, 3
xor cl, 7
rol al, cl
and byte [0x11741f3], al
mov eax, dword [ebx + 0x40]
mov ecx, dword [esp + 0xc]
lea eax, [ecx + eax*2]
push 0x11741e8
push ebp
push eax
push ebx
call dword [ebx + 0x18]
add esp, 0x10
test eax, eax
je 0x100f4d9
mov dword [esi], 0x100f9d0
mov eax, 0xb
jmp case.0x100f337.15
mov dword [esp + 8], ebp
mov ebp, 0x100ed10
mov edx, 0x100ed10
mov dword [esp + 4], ebx
mov dword [esp], esi
xor eax, eax
not ebp
movzx esi, byte [0x1174203]
and ebp, 1
mov ecx, ebp
add ecx, edx
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2]
bt esi, eax
jb 0x100f62f
mov al, byte [0x1174203]
mov esi, ebp
xor ecx, ecx
mov ah, 1
add esi, edx
sete cl
mov ebx, ecx
xor ebx, 5
lea ecx, [ebx + ecx*2]
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0x1174203], ah
jne 0x100f519
mov edx, 0x100ed10
mov ecx, 0x100ed10
xor ebx, ebx
movzx eax, al
not edx
and edx, 1
mov esi, edx
add esi, ecx
sete bl
mov esi, ebx
xor ebx, 5
lea ebx, [ebx + esi*2]
xor bl, 7
movzx esi, bl
bt eax, esi
jae 0x100f58d
mov esi, edx
xor eax, eax
add esi, ecx
movzx esi, byte [0x1174203]
sete al
mov ebx, eax
xor ebx, 5
lea eax, [ebx + eax*2]
bt esi, eax
jae 0x100f56b
jmp 0x100f62f
xor eax, eax
add edx, ecx
movzx esi, byte [0x1174203]
sete al
mov ecx, eax
xor ecx, 0xda4407dd
lea edx, [ecx + eax*2]
mov eax, edx
and al, 7
movzx eax, al
bt esi, eax
jb 0x100f604
mov ebp, 0x11741f4
xor eax, eax
mov esi, dword [ebp]
mov ecx, eax
mov ebx, edx
inc eax
shl ebx, cl
xor cl, 0x1f
xor esi, edx
shr edx, cl
mov dword [ebp], esi
or edx, ebx
not esi
add ebp, 4
imul edx, esi
cmp eax, 3
jne 0x100f5b9
mov ecx, 0x100ed10
mov eax, 0x100ed10
xor edx, edx
not ecx
and ecx, 1
add ecx, eax
sete dl
mov eax, edx
xor eax, 5
lea ecx, [eax + edx*2]
mov dl, 1
shl dl, cl
or byte [0x1174203], dl
mov ecx, 0x100ed10
mov eax, 0x100ed10
xor edx, edx
not ecx
and ecx, 1
add ecx, eax
sete dl
mov eax, edx
xor eax, 5
lea ecx, [eax + edx*2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0x1174203], al
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0xc]
mov eax, dword [ebx + 0x40]
lea eax, [ecx + eax*2]
push 0x11741f4
mov ebp, dword [esp + 0xc]
push ebp
push eax
push ebx
call dword [ebx + 0x18]
add esp, 0x10
test eax, eax
je 0x100f666
mov eax, dword [esp]
mov dword [eax], 0x100fa10
mov eax, 0x21
jmp case.0x100f337.15
mov edx, 0x1010230
movzx ecx, byte [0x1174213]
mov esi, dword [esp]
imul edx, edx
and edx, 3
cmp edx, 2
setb al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x100f789
mov al, byte [0x1174213]
cmp edx, 2
mov ah, 1
setb cl
or cl, 4
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0x1174213], ah
jne 0x100f694
mov ecx, 0x1010230
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 2
setb dl
or dl, 4
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x100f6ee
cmp ecx, 2
movzx edx, byte [0x1174213]
setb al
or al, 4
movzx eax, al
bt edx, eax
jae 0x100f6d2
jmp 0x100f789
xor edx, edx
cmp ecx, 1
movzx ecx, byte [0x1174213]
seta dl
xor edx, 0x836798c1
add edx, 0x27c
mov eax, edx
and al, 7
movzx eax, al
bt ecx, eax
jb 0x100f768
mov ebp, 0x1174204
xor eax, eax
mov esi, dword [ebp]
mov ecx, eax
mov ebx, edx
inc eax
shl ebx, cl
xor cl, 0x1f
xor esi, edx
shr edx, cl
mov dword [ebp], esi
or edx, ebx
not esi
add ebp, 4
imul edx, esi
cmp eax, 3
jne 0x100f71c
mov eax, 0x1010230
imul eax, eax
and eax, 3
cmp eax, 2
mov al, 1
setb cl
or cl, 4
shl al, cl
or byte [0x1174213], al
mov esi, dword [esp]
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 8]
mov eax, 0x1010230
imul eax, eax
and eax, 3
cmp eax, 2
mov al, 0xfe
setb cl
or cl, 4
xor cl, 7
rol al, cl
and byte [0x1174213], al
mov eax, dword [ebx + 0x40]
mov ecx, dword [esp + 0xc]
lea eax, [ecx + eax*2]
push 0x1174204
push ebp
push eax
push ebx
call dword [ebx + 0x18]
add esp, 0x10
test eax, eax
je 0x100f7b5
mov dword [esi], 0x100fa40
mov eax, 0x27
jmp case.0x100f337.15
mov ebp, 0x100ed50
mov edx, 0x100ed50
movzx ecx, byte [0x1174223]
and ebp, 1
inc ebp
mov eax, ebp
xor eax, edx
setne al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x100f8db
mov al, byte [0x1174223]
mov ecx, ebp
mov ah, 1
xor ecx, edx
setne cl
or cl, 4
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0x1174223], ah
jne 0x100f7e4
mov ebp, 0x100ed50
mov ecx, 0x100ed50
movzx eax, al
and ebp, 1
inc ebp
mov edx, ebp
xor edx, ecx
setne dl
or dl, 4
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x100f844
mov eax, ebp
movzx edx, byte [0x1174223]
xor eax, ecx
setne al
or al, 4
movzx eax, al
bt edx, eax
jae 0x100f827
jmp 0x100f8db
xor edx, edx
xor ebp, ecx
movzx ecx, byte [0x1174223]
sete dl
xor edx, 0x9ac95ba9
or edx, 4
mov eax, edx
and al, 5
movzx eax, al
bt ecx, eax
jb 0x100f8b8
mov ebp, 0x1174214
xor eax, eax
mov esi, dword [ebp]
mov ecx, eax
mov ebx, edx
inc eax
shl ebx, cl
xor cl, 0x1f
xor esi, edx
shr edx, cl
mov dword [ebp], esi
or edx, ebx
not esi
add ebp, 4
imul edx, esi
cmp eax, 3
jne 0x100f86e
mov ecx, 0x100ed50
mov eax, 0x100ed50
and ecx, 1
inc ecx
xor ecx, eax
mov al, 1
setne cl
or cl, 4
shl al, cl
or byte [0x1174223], al
mov esi, dword [esp]
mov ebx, dword [esp + 4]
mov ecx, 0x100ed50
mov eax, 0x100ed50
and ecx, 1
inc ecx
xor ecx, eax
mov al, 0xfe
setne cl
or cl, 4
xor cl, 7
rol al, cl
and byte [0x1174223], al
mov eax, dword [ebx + 0x40]
mov ecx, dword [esp + 0xc]
lea eax, [ecx + eax*2]
push 0x1174214
push dword [esp + 0xc]
push eax
push ebx
call dword [ebx + 0x18]
add esp, 0x10
test eax, eax
je case.0x100f337.12
mov dword [esi], 0x100fa70
mov eax, 0x11
jmp case.0x100f337.15
mov eax, 0x38
jmp case.0x100f337.15
mov dword [esi], 0x100faa0
mov eax, 3
jmp case.0x100f337.15
mov eax, 0x37
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret