Function at 0x100c5ec0
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Encrypt data using speck

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100ebba8
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x80
mov eax, dword [0x100fc040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, dword [0x100fc0a4]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x100c6517
mov eax, dword [0x1012bbbc]
add eax, 0xffffffcc
xor eax, 0x418206d6
cmp dword [eax + ecx], 0
jne 0x100c6517
cmp byte [0x1010402c], 0
je 0x100c5ffa
mov esi, dword [ecx + 0xba90]
mov eax, dword [0x10131980]
cmp esi, eax
jle 0x100c5fea
lea edi, [esi + esi*4]
shl edi, 2
nop
mov edx, dword [ecx + 0xba84]
mov ecx, dword [0x1012b990]
add edx, 0xffffffec
push ecx
mov dword [esp], 0x40800000
add edx, edi
push 0x7f
push 0
push 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x88], 0x40000000
mov dword [ebp - 0x84], 0x40000000
mov dword [ebp - 0x80], 0x40000000
mov dword [ebp - 0x34], 0xc0000000
mov dword [ebp - 0x30], 0xc0000000
mov dword [ebp - 0x2c], 0xc0000000
mov eax, dword [ecx]
lea ecx, [ebp - 0x28]
push 0xff
push ecx
lea ecx, [ebp - 0x88]
mov eax, dword [eax + 4]
push ecx
lea ecx, [ebp - 0x34]
push ecx
mov ecx, dword [0x1012b990]
push edx
call eax
mov eax, dword [0x10131980]
dec esi
mov ecx, dword [ebp - 0x1c]
add edi, 0xffffffec
cmp esi, eax
jg 0x100c5f50
mov ecx, dword [ecx + 0xba90]
cmp ecx, eax
je 0x100c5ffa
mov dword [0x10131980], ecx
mov esi, dword [0x1012c620]
test esi, esi
je 0x100c6517
mov ecx, dword [0x1012c634]
test ecx, ecx
je 0x100c6517
mov eax, dword [0x1012b9b4]
cmp dword [0x10131984], ecx
je 0x100c6040
movss xmm0, dword [eax + 0x20]
addss xmm0, dword [eax + 0x10]
mov dword [0x10131984], ecx
movss dword [0x1010e418], xmm0
jmp 0x100c6517
movss xmm0, dword [eax + 0x10]
comiss xmm0, dword [0x1010e418]
jb 0x100c6517
mov eax, dword [0x1012c630]
mov edx, dword [0x1012c62c]
dec eax
add ecx, eax
mov dword [0x1010e418], 0x7f7fffff
mov eax, dword [0x1012c628]
dec edx
and edx, ecx
mov ecx, dword [0x1012c61c]
dec ecx
add ecx, esi
mov eax, dword [eax + edx*4]
mov edx, dword [0x1012c618]
dec edx
and edx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x38], xmm0
movups xmmword [ebp - 0x78], xmm0
movq xmm0, qword [eax + 0x10]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x60], eax
mov eax, dword [0x1012c614]
movq qword [ebp - 0x68], xmm0
mov eax, dword [eax + edx*4]
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
add ecx, 8
mov eax, dword [eax + 0x28]
call eax
imul edi, eax, 0x54c
cmp byte [ebp - 0x38], 0
jne 0x100c64fc
cmp byte [ebp - 0x77], 0
jne 0x100c6211
movaps xmm0, xmmword [0x100f1a20]
mov eax, 0x10
xorps xmm0, xmmword [str.cG__KJ]
mov dword [ebp - 0x68], 0x5d0e415a
mov dword [ebp - 0x64], 0x4f4b5c5e
mov word [ebp - 0x60], 0x244a
mov byte [ebp - 0x5e], 0x2e
movups xmmword [ebp - 0x78], xmm0
xor byte [ebp + eax - 0x78], 0x2e
inc eax
cmp eax, 0x1b
jb 0x100c6100
lea edx, [ebp - 0x78]
lea ecx, [ebp - 0x40]
call fcn.10034b00
mov dword [ebp - 4], 0
lea edx, [ebp - 0x40]
mov eax, dword [0x100f0338]
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x1c], 0x41000000
push eax
call fcn.10037190
add esp, 8
mov edx, eax
mov byte [ebp - 4], 1
mov ecx, dword [0x1012bb5c]
cmp ecx, dword [0x1012bb60]
je 0x100c6183
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov dword [edx], 0
mov dword [edx + 4], 0
add dword [0x1012bb5c], 8
jmp 0x100c618a
push edx
push ecx
call fcn.10037650
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x100c61b8
or esi, 0xffffffff
mov eax, esi
lock xadd dword [ecx + 4], eax
jne 0x100c61b8
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x18]
lock xadd dword [ecx + 8], esi
dec esi
jne 0x100c61b8
mov eax, dword [ecx]
call dword [eax + 4]
sub esp, 0x18
lea eax, [ebp - 0x40]
mov ecx, esp
push eax
call fcn.10036ef0
push 0x100fc0a0
call fcn.1003e0a0
inc dword [edi + 0x1010e5e0]
add esp, 0x1c
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xf
jbe 0x100c6517
mov edx, dword [ebp - 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100c64f0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100c64f0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov eax, dword [0x1012c61c]
mov ecx, dword [0x1012c620]
dec eax
mov edx, dword [0x1012c618]
add ecx, eax
mov eax, dword [0x1012c614]
dec edx
and edx, ecx
mov eax, dword [eax + edx*4]
movss xmm1, dword [eax + 0x14]
movss xmm0, dword [eax + 0x18]
movaps xmm3, xmm1
subss xmm1, dword [ebp - 0x68]
subss xmm3, dword [ebp - 0x74]
movaps xmm2, xmm0
subss xmm0, dword [ebp - 0x64]
subss xmm2, dword [ebp - 0x70]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
call fcn.100298f0
mulss xmm2, xmm2
movaps xmm1, xmm0
mulss xmm3, xmm3
addss xmm2, xmm3
movaps xmm0, xmm2
call fcn.100298f0
comiss xmm0, xmm1
jbe 0x100c637b
movaps xmm0, xmmword [0x100f1a20]
mov eax, 0x10
xorps xmm0, xmmword [str.cG__KJ]
mov dword [ebp - 0x68], 0x410e415a
mov dword [ebp - 0x64], 0x5b424d4d
mov dword [ebp - 0x60], 0x4041475d
mov word [ebp - 0x5c], 0x2e24
movups xmmword [ebp - 0x78], xmm0
xor byte [ebp + eax - 0x78], 0x2e
inc eax
cmp eax, 0x1e
jb 0x100c62b7
lea edx, [ebp - 0x78]
lea ecx, [ebp - 0x40]
call fcn.10034b00
mov dword [ebp - 4], 2
lea edx, [ebp - 0x40]
mov eax, dword [0x100f0338]
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x18], 0x41000000
push eax
call fcn.10037190
add esp, 8
mov edx, eax
mov byte [ebp - 4], 3
mov ecx, dword [0x1012bb5c]
cmp ecx, dword [0x1012bb60]
je 0x100c633a
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov dword [edx], 0
mov dword [edx + 4], 0
add dword [0x1012bb5c], 8
jmp 0x100c6341
push edx
push ecx
call fcn.10037650
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x100c61b8
or esi, 0xffffffff
mov eax, esi
lock xadd dword [ecx + 4], eax
jne 0x100c61b8
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x18]
lock xadd dword [ecx + 8], esi
dec esi
jne 0x100c61b8
jmp 0x100c61b3
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x414]
cmp eax, 4
jne 0x100c6391
inc dword [edi + vtable.type_info.0]
jmp 0x100c63b6
cmp eax, 3
jne 0x100c639e
inc dword [edi + 0x1010e5a0]
jmp 0x100c63b6
cmp eax, 2
jne 0x100c63ab
inc dword [edi + 0x1010ea4c]
jmp 0x100c63b6
cmp eax, 7
jne 0x100c63b6
inc dword [edi + 0x1010e5a8]
movaps xmm0, xmmword [str.cG__KJ]
inc dword [edi + 0x1010e5e0]
movaps xmm2, xmmword [0x100f1a20]
movups xmmword [ebp - 0x7c], xmm0
mov dword [ebp - 0x18], eax
xor eax, eax
movaps xmm0, xmmword [0x100f14e0]
movups xmmword [ebp - 0x6c], xmm0
mov word [ebp - 0x5c], 0x2e24
movups xmm0, xmmword [ebp + eax - 0x7c]
movaps xmm1, xmm2
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x7c], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x100c63e4
cmp eax, 0x22
jae 0x100c640c
xor byte [ebp + eax - 0x7c], 0x2e
inc eax
cmp eax, 0x22
jb 0x100c6401
lea eax, [ebp - 0x18]
push eax
lea edx, [ebp - 0x7c]
lea ecx, [ebp - 0x58]
call fcn.100bd8f0
add esp, 4
mov dword [ebp - 4], 4
lea edx, [ebp - 0x58]
mov eax, dword [0x100f0338]
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x20]
mov dword [ebp - 0x1c], 0x41000000
push eax
call fcn.10037190
add esp, 8
mov edx, eax
mov byte [ebp - 4], 5
mov ecx, dword [0x1012bb5c]
cmp ecx, dword [0x1012bb60]
je 0x100c648e
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov dword [edx], 0
mov dword [edx + 4], 0
add dword [0x1012bb5c], 8
jmp 0x100c6495
push edx
push ecx
call fcn.10037650
mov byte [ebp - 4], 4
mov edi, dword [ebp - 0x8c]
test edi, edi
je 0x100c64c4
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x100c64c4
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], esi
dec esi
jne 0x100c64c4
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
sub esp, 0x18
lea eax, [ebp - 0x58]
mov ecx, esp
push eax
call fcn.10036ef0
push 0x100fc0a0
call fcn.1003e0a0
mov ecx, dword [ebp - 0x44]
add esp, 0x1c
cmp ecx, 0xf
jbe 0x100c6517
mov edx, dword [ebp - 0x58]
inc ecx
jmp 0x100c61e9
push ecx
push edx
call fcn.100e2296
add esp, 8
jmp 0x100c6517
add dword [0x1012c634], 0xffffffff
jne 0x100c6511
mov dword [0x1012c630], 0
jmp 0x100c6517
inc dword [0x1012c630]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100e1e1c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret