Function at 0x10009d20
Capabilities:
Contain obfuscated stackstrings
Get comspec environment variable
Link many functions at runtime
Query environment variable
Self delete

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x414
mov eax, dword [0x1002d00c]
xor eax, ebp
mov dword [ebp - 4], eax
movaps xmm0, xmmword [0x10029c50]
lea eax, [ebp - 0x14]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push esi
push edi
push eax
mov dword [ebp - 0x14], 0x4e52454b
mov dword [ebp - 0x10], 0x32334c45
mov dword [ebp - 0xc], 0x6c6c642e
mov byte [ebp - 8], 0
movups xmmword [ebp - 0x48], xmm0
mov word [ebp - 0x38], 0x4173
mov byte [ebp - 0x36], 0
call ebx
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
jne 0x10009d92
lea eax, [ebp - 0x14]
push eax
call esi
test eax, eax
jne 0x10009d92
mov dword [ebp - 0x400], eax
jmp 0x10009d9f
lea ecx, [ebp - 0x48]
push ecx
push eax
call edi
mov dword [ebp - 0x400], eax
movaps xmm0, xmmword [0x10029c30]
lea eax, [ebp - 0x14]
push eax
movups xmmword [ebp - 0x5c], xmm0
mov word [ebp - 0x4c], 0x41
call ebx
test eax, eax
jne 0x10009dcc
lea eax, [ebp - 0x14]
push eax
call esi
test eax, eax
jne 0x10009dcc
mov dword [ebp - 0x3fc], eax
jmp 0x10009dd9
lea ecx, [ebp - 0x5c]
push ecx
push eax
call edi
mov dword [ebp - 0x3fc], eax
movaps xmm0, xmmword [0x10029cb0]
lea eax, [ebp - 0x14]
push eax
movups xmmword [ebp - 0x84], xmm0
mov byte [ebp - 0x74], 0
call ebx
test eax, eax
jne 0x10009dff
lea eax, [ebp - 0x14]
push eax
call esi
test eax, eax
je 0x10009e09
lea ecx, [ebp - 0x84]
push ecx
push eax
call edi
movaps xmm0, xmmword [0x10029cd0]
mov dword [ebp - 0x404], eax
lea eax, [ebp - 0x14]
push eax
movups xmmword [ebp - 0x70], xmm0
mov word [ebp - 0x60], 0x79
call ebx
test eax, eax
jne 0x10009e34
lea eax, [ebp - 0x14]
push eax
call esi
test eax, eax
je 0x10009e3b
lea ecx, [ebp - 0x70]
push ecx
push eax
call edi
mov dword [ebp - 0x408], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebp - 0x34], 0x61657243
mov dword [ebp - 0x30], 0x72506574
mov dword [ebp - 0x2c], 0x7365636f
mov word [ebp - 0x28], 0x4173
mov byte [ebp - 0x26], 0
call ebx
test eax, eax
jne 0x10009e7c
lea eax, [ebp - 0x14]
push eax
call esi
test eax, eax
jne 0x10009e7c
mov dword [ebp - 0x40c], eax
jmp 0x10009e89
lea ecx, [ebp - 0x34]
push ecx
push eax
call edi
mov dword [ebp - 0x40c], eax
lea eax, [ebp - 0x14]
mov dword [ebp - 0x24], 0x75736552
push eax
mov dword [ebp - 0x20], 0x6854656d
mov dword [ebp - 0x1c], 0x64616572
mov byte [ebp - 0x18], 0
call ebx
test eax, eax
jne 0x10009ebe
lea eax, [ebp - 0x14]
push eax
call esi
test eax, eax
jne 0x10009ebe
mov dword [ebp - 0x410], eax
jmp 0x10009ecb
lea ecx, [ebp - 0x24]
push ecx
push eax
call edi
mov dword [ebp - 0x410], eax
push 0x104
lea eax, [ebp - 0x298]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x1000a0f8
push 0x104
lea eax, [ebp - 0x298]
push eax
push eax
call dword [ebp - 0x3fc]
test eax, eax
je 0x1000a0f8
push 0x104
lea eax, [ebp - 0x3a0]
push eax
push str.COMSPEC
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x1000a0f8
push 0x80
lea eax, [ebp - 0x298]
push eax
call dword [ebp - 0x400]
movups xmm0, xmmword [str.__c_ping__n_2_127.0.0.1___nul__del]
mov eax, dword [0x100294b8]
lea edx, [ebp - 0x298]
mov dword [ebp - 0x170], eax
mov esi, edx
mov ax, word [0x100294bc]
movups xmmword [ebp - 0x190], xmm0
mov word [ebp - 0x16c], ax
movups xmm0, xmmword [0x100294a8]
movups xmmword [ebp - 0x180], xmm0
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x10009f70
lea edi, [ebp - 0x190]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x10009f80
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x190]
dec ecx
nop dword [eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x10009fa0
mov eax, dword [str.___nul]
lea edx, [ebp - 0x190]
mov dword [ecx], eax
mov esi, edx
mov ax, word [0x100294c4]
mov word [ecx + 4], ax
mov al, byte [0x100294c6]
mov byte [ecx + 6], al
nop dword [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x10009fd0
lea edi, [ebp - 0x3a0]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x10009fe0
mov ecx, edx
mov dword [ebp - 0x3e8], 0x44
shr ecx, 2
xorps xmm0, xmm0
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
movlpd qword [ebp - 0x3e4], xmm0
and ecx, 3
movlpd qword [ebp - 0x3dc], xmm0
xor eax, eax
movlpd qword [ebp - 0x3d4], xmm0
rep movsb byte es:[edi], byte [esi]
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push 0x100
movlpd qword [ebp - 0x3cc], xmm0
movlpd qword [ebp - 0x3c4], xmm0
movlpd qword [ebp - 0x3b6], xmm0
movlpd qword [ebp - 0x3ae], xmm0
mov word [ebp - 0x3a6], ax
movups xmmword [ebp - 0x3f8], xmm0
mov dword [ebp - 0x3bc], 1
mov word [ebp - 0x3b8], ax
call edi
mov esi, dword [ebp - 0x404]
push eax
call esi
push 0xf
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov ebx, dword [ebp - 0x408]
push eax
call ebx
lea eax, [ebp - 0x3f8]
push eax
lea eax, [ebp - 0x3e8]
push eax
push 0
push 0
push 4
push 0
push 0
push 0
lea eax, [ebp - 0x3a0]
push eax
push 0
call dword [ebp - 0x40c]
test eax, eax
je 0x1000a0e6
push 0x40
push dword [ebp - 0x3f8]
call esi
push 0xfffffffffffffff1
push dword [ebp - 0x3f4]
call ebx
push dword [ebp - 0x3f4]
call dword [ebp - 0x410]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000c111
mov esp, ebp
pop ebp
ret
push 0x20
call edi
push eax
call esi
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call ebx
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1000c111
mov esp, ebp
pop ebp
ret