Function at 0x1000c665
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100778ba
mov eax, dword fs:[0]
push eax
sub esp, 0xac
mov eax, dword [0x1009f084]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x14]
sub ecx, dword [esi + 0x10]
lea eax, [edx + 1]
cmp eax, ecx
jbe 0x1000c2e4
xor al, al
jmp 0x1000c2ea
mov eax, dword [esi + 0x10]
mov al, byte [edx + eax]
movzx eax, al
inc edx
add eax, 0xffffff5d
mov dword [esi + 8], edx
cmp eax, 9
ja case.0x1000c2ff.164
jmp dword [eax*4 + 0x1000c8a8]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
lea eax, [ebp - 0x40]
mov dword [ebp - 4], 0
push eax
mov ecx, esi
call fcn.1000f1a0
cmp dword [ebp - 0x2c], 0x10
lea esi, [ebp - 0x40]
push 1
cmovae esi, dword [ebp - 0x40]
mov ah, 0x2e
push 0
mov al, 0x41
mov byte [ebp - 0x50], ah
xor al, ah
mov byte [ebp - 0x4b], 0
push 0
mov cl, 0x5e
mov byte [ebp - 0x4f], al
mov dl, 0x4b
mov byte [ebp - 0x4b], 0
mov bl, 0x40
xor cl, ah
xor dl, ah
mov byte [ebp - 0x4e], cl
xor bl, ah
mov byte [ebp - 0x4d], dl
push esi
lea eax, [ebp - 0x4f]
mov byte [ebp - 0x4c], bl
push eax
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
lea ecx, [ebp - 0x40]
jmp 0x1000c887
mov ecx, esi
call fcn.1000f560
jmp case.0x1000c2ff.164
mov edi, dword [0x100a43b0]
test edi, edi
je case.0x1000c2ff.164
mov ecx, dword [esi + 0x14]
lea eax, [edx + 1]
sub ecx, dword [esi + 0x10]
cmp eax, ecx
jbe 0x1000c3b0
lea eax, [edx + 1]
xor cl, cl
mov dword [esi + 8], eax
mov byte [edi + 2], cl
jmp case.0x1000c2ff.164
mov eax, dword [esi + 0x10]
mov cl, byte [edx + eax]
lea eax, [edx + 1]
mov dword [esi + 8], eax
mov byte [edi + 2], cl
jmp case.0x1000c2ff.164
mov edi, dword [0x100a43b0]
test edi, edi
je case.0x1000c2ff.164
mov ecx, esi
call fcn.1000f2d0
mov byte [edi + 3], al
jmp case.0x1000c2ff.164
mov edi, dword [0x100a43b0]
test edi, edi
je case.0x1000c2ff.164
mov ecx, esi
call fcn.1000f2d0
mov byte [edi + 1], al
jmp case.0x1000c2ff.164
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
lea eax, [ebp - 0x48]
mov dword [ebp - 4], 1
push eax
mov ecx, esi
call fcn.1000f150
mov eax, dword [ebp - 0x48]
mov ecx, 0x3e8
cmp ax, cx
cmova eax, ecx
xor ecx, ecx
cmp cx, ax
jae case.0x1000c2ff.164
movzx eax, ax
mov dword [ebp - 0x48], eax
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x14]
sub ecx, dword [esi + 0x10]
lea eax, [edx + 2]
cmp eax, ecx
jbe 0x1000c455
xor edi, edi
jmp 0x1000c45c
mov eax, dword [esi + 0x10]
movzx edi, word [edx + eax]
add edx, 2
mov dword [esi + 8], edx
mov ecx, dword [esi + 0x14]
sub ecx, dword [esi + 0x10]
lea eax, [edx + 1]
cmp eax, ecx
jbe 0x1000c475
mov byte [ebp - 0x41], 0
jmp 0x1000c47e
mov eax, dword [esi + 0x10]
mov al, byte [edx + eax]
mov byte [ebp - 0x41], al
lea eax, [edx + 1]
mov ecx, esi
mov dword [esi + 8], eax
lea eax, [ebp - 0x28]
push eax
call fcn.1000f1a0
mov edx, eax
mov ebx, dword [edx + 8]
mov ecx, dword [edx + 0x14]
sub ecx, dword [edx + 0x10]
lea eax, [ebx + 1]
cmp eax, ecx
jbe 0x1000c4a7
mov byte [ebp - 0x5c], 0
jmp 0x1000c4b0
mov eax, dword [edx + 0x10]
mov al, byte [ebx + eax]
mov byte [ebp - 0x5c], al
inc ebx
mov dword [edx + 8], ebx
mov ecx, dword [edx + 0x14]
sub ecx, dword [edx + 0x10]
lea eax, [ebx + 1]
cmp eax, ecx
jbe 0x1000c4c7
mov byte [ebp - 0x58], 0
jmp 0x1000c4d0
mov eax, dword [edx + 0x10]
mov al, byte [ebx + eax]
mov byte [ebp - 0x58], al
inc ebx
mov dword [edx + 8], ebx
mov ecx, dword [edx + 0x14]
sub ecx, dword [edx + 0x10]
lea eax, [ebx + 1]
cmp eax, ecx
jbe 0x1000c4e7
mov byte [ebp - 0x54], 0
jmp 0x1000c4f0
mov eax, dword [edx + 0x10]
mov al, byte [ebx + eax]
mov byte [ebp - 0x54], al
lea eax, [ebx + 1]
movzx ebx, di
mov dword [edx + 8], eax
mov edx, ebx
call fcn.1000ca30
cmp byte [ebp - 0x41], 1
jne 0x1000c5e2
test eax, eax
jne 0x1000c63d
push 0x1c
call fcn.1003bc36
mov edi, eax
add esp, 4
mov dword [ebp - 0x88], edi
push dword [ebp - 0x54]
mov byte [ebp - 4], 2
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x1000c54e
mov eax, dword [ecx]
jmp 0x1000c550
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp - 0x28]
push 0
push eax
call fcn.10002470
mov ecx, edi
call fcn.1000f090
push 0x1c
mov edi, eax
mov byte [ebp - 4], 1
call fcn.1003bc36
add esp, 4
mov dword [ebp - 0x84], eax
push dword [ebp - 0x54]
mov byte [ebp - 4], 3
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x1000c5a7
mov eax, dword [ecx]
jmp 0x1000c5a9
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp - 0x28]
push 0
push eax
call fcn.10002470
mov ecx, dword [ebp - 0x84]
call fcn.1000f090
push eax
mov edx, ebx
mov byte [ebp - 4], 1
call fcn.1000cb20
test al, al
jne 0x1000c63d
test edi, edi
je 0x1000c63d
push ecx
mov ecx, edi
call fcn.1000c8d0
jmp 0x1000c63d
test eax, eax
je 0x1000c63d
mov ecx, eax
call fcn.1000f060
mov edx, ebx
mov ecx, 0x100a89e8
call fcn.1000c930
mov ecx, edi
call fcn.1001c370
mov edi, eax
test edi, edi
je 0x1000c63d
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1000c63d
cmp dword [edi + 0x760], eax
je 0x1000c63d
mov ecx, dword [edi + 0x3a8]
mov dword [edi + 0x760], eax
test ecx, ecx
je 0x1000c63d
mov eax, dword [ecx]
push 1
mov eax, dword [eax]
call eax
mov dword [edi + 0x3a8], 0
sub dword [ebp - 0x48], 1
jne 0x1000c441
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb case.0x1000c2ff.164
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.10002790
jmp case.0x1000c2ff.164
mov byte [ebp - 0x41], 0
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 4], 4
mov dword [ebp - 0x2c], 0xf
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x18], 0
push eax
lea eax, [ebp - 0x41]
mov byte [ebp - 0x28], 0
push eax
mov ecx, esi
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
or ebx, 0xffffffff
mov dword [ebp - 0x48], 0
mov byte [esi + 4], 0
call fcn.1000f300
mov ecx, eax
call fcn.1000f1a0
mov ecx, eax
call fcn.1000f020
cmp dword [ebp - 0x18], 0
je 0x1000c87c
mov edi, dword [ebp - 0x48]
test edi, edi
jle 0x1000c87c
mov ecx, edi
call fcn.10011ff0
mov esi, eax
test esi, esi
je 0x1000c87c
mov cl, byte [esi + 4]
mov edx, edi
call fcn.10012020
mov edi, eax
test edi, edi
je 0x1000c87c
mov al, byte [ebp - 0x41]
cmp al, 1
jne 0x1000c7b2
push edi
mov edx, esi
lea ecx, [ebp - 0xb8]
call fcn.10012420
add esp, 4
mov byte [ebp - 4], 6
cmp dword [eax + 0x14], 0x10
jb 0x1000c729
mov eax, dword [eax]
cmp dword [ebp - 0x14], 0x10
movaps xmm0, xmmword [0x10094040]
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 0x60], 0
cmovae eax, dword [ebp - 0x28]
xor ecx, ecx
movups xmmword [ebp - 0x80], xmm0
push eax
movaps xmm0, xmmword [0x10094630]
movups xmmword [ebp - 0x70], xmm0
mov al, byte [ebp - 0x80]
xor byte [ebp + ecx - 0x7f], al
inc ecx
cmp ecx, 0x1f
jb 0x1000c752
sub esp, 0x18
mov byte [ebp - 0x60], 0
lea eax, [ebp - 0x7f]
mov ecx, esp
push eax
call fcn.100029b0
lea eax, [ebp - 0xa0]
push eax
call fcn.10005a00
add esp, 0x24
lea ecx, [ebp - 0x40]
push eax
call fcn.100074c0
lea ecx, [ebp - 0xa0]
call fcn.10002360
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 5
call fcn.10002360
mov cl, byte [edi + 0x4c]
call fcn.1000c220
mov ebx, eax
jmp 0x1000c866
test al, al
jne 0x1000c866
push edi
mov edx, esi
lea ecx, [ebp - 0xa0]
call fcn.10012420
add esp, 4
mov byte [ebp - 4], 7
cmp dword [eax + 0x14], 0x10
jb 0x1000c7d7
mov eax, dword [eax]
cmp dword [ebp - 0x14], 0x10
movaps xmm0, xmmword [0x10094030]
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x70], 0x3530652a
cmovae eax, dword [ebp - 0x28]
xor ecx, ecx
push eax
movups xmmword [ebp - 0x80], xmm0
mov dword [ebp - 0x6c], 0x21243722
mov dword [ebp - 0x68], 0x36606520
mov word [ebp - 0x64], 0x6b
nop dword [eax]
mov al, byte [ebp - 0x80]
xor byte [ebp + ecx - 0x7f], al
inc ecx
cmp ecx, 0x1c
jb 0x1000c810
sub esp, 0x18
mov byte [ebp - 0x63], 0
lea eax, [ebp - 0x7f]
mov ecx, esp
push eax
call fcn.100029b0
lea eax, [ebp - 0xb8]
push eax
call fcn.10005a00
add esp, 0x24
lea ecx, [ebp - 0x40]
push eax
call fcn.100074c0
lea ecx, [ebp - 0xb8]
call fcn.10002360
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 5
call fcn.10002360
mov ebx, 0xffff0000
cmp dword [ebp - 0x30], 0
je 0x1000c87c
push 3
push 1
push ebx
lea ecx, [ebp - 0x40]
call fcn.10022da0
add esp, 0xc
lea ecx, [ebp - 0x40]
call fcn.10002360
lea ecx, [ebp - 0x28]
call fcn.10002360
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1003bc25
mov esp, ebp
pop ebp
ret