Function at 0x4034d0
Capabilities:
Create process on windows
Get common file path
Self delete
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x394
mov eax, dword [0x426040]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov eax, dword [str._sannuyex.bat]
mov dword [ebp - 0x230], eax
mov ecx, dword [0x4240e8]
mov dword [ebp - 0x22c], ecx
mov edx, dword [0x4240ec]
mov dword [ebp - 0x228], edx
mov ax, word [0x4240f0]
mov word [ebp - 0x224], ax
mov byte [ebp - 0x218], 0
push 0x103
push 0
lea ecx, [ebp - 0x217]
push ecx
call fcn.004105d0
add esp, 0xc
mov byte [ebp - 0x110], 0
push 0x103
push 0
lea edx, [ebp - 0x10f]
push edx
call fcn.004105d0
add esp, 0xc
mov byte [ebp - 0x338], 0
push 0x103
push 0
lea eax, [ebp - 0x337]
push eax
call fcn.004105d0
add esp, 0xc
lea ecx, [ebp - 0x110]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.DLL_GetTempPathA]
lea edx, [ebp - 0x230]
mov dword [ebp - 0x33c], edx
mov eax, dword [ebp - 0x33c]
mov dword [ebp - 0x340], eax
mov ecx, dword [ebp - 0x33c]
mov dl, byte [ecx]
mov byte [ebp - 0x341], dl
add dword [ebp - 0x33c], 1
cmp byte [ebp - 0x341], 0
jne 0x403596
mov eax, dword [ebp - 0x33c]
sub eax, dword [ebp - 0x340]
mov ecx, dword [ebp - 0x340]
mov dword [ebp - 0x348], ecx
mov dword [ebp - 0x34c], eax
lea edx, [ebp - 0x110]
add edx, 0xffffffff
mov dword [ebp - 0x350], edx
mov eax, dword [ebp - 0x350]
mov cl, byte [eax + 1]
mov byte [ebp - 0x351], cl
add dword [ebp - 0x350], 1
cmp byte [ebp - 0x351], 0
jne 0x4035e1
mov edi, dword [ebp - 0x350]
mov esi, dword [ebp - 0x348]
mov edx, dword [ebp - 0x34c]
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]
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameA]
lea ecx, [ebp - 0x218]
push ecx
push 0x104
lea edx, [ebp - 0x338]
push edx
call fcn.0040e967
add esp, 0xc
push 0x5c
lea eax, [ebp - 0x338]
push eax
call fcn.00402590
add esp, 8
mov dword [ebp - 0x220], eax
cmp dword [ebp - 0x220], 0
je 0x403678
mov ecx, dword [ebp - 0x220]
mov byte [ecx], 0
mov dword [ebp - 0x21c], 0
push 0x4240f4
lea edx, [ebp - 0x110]
push edx
call fcn.0040e950
add esp, 8
mov dword [ebp - 0x21c], eax
cmp dword [ebp - 0x21c], 0
jne 0x4036aa
jmp 0x40395c
mov eax, dword [ebp - 0x21c]
push eax
push 1
push 9
push str.:Repeat_r_n
call fcn.0040db5c
add esp, 0x10
mov ecx, dword [ebp - 0x21c]
push ecx
push 1
push 5
push 0x424104
call fcn.0040db5c
add esp, 0x10
lea edx, [ebp - 0x218]
mov dword [ebp - 0x358], edx
mov eax, dword [ebp - 0x358]
add eax, 1
mov dword [ebp - 0x35c], eax
mov ecx, dword [ebp - 0x358]
mov dl, byte [ecx]
mov byte [ebp - 0x35d], dl
add dword [ebp - 0x358], 1
cmp byte [ebp - 0x35d], 0
jne 0x4036f5
mov eax, dword [ebp - 0x358]
sub eax, dword [ebp - 0x35c]
mov dword [ebp - 0x364], eax
mov ecx, dword [ebp - 0x21c]
push ecx
push 1
mov edx, dword [ebp - 0x364]
push edx
lea eax, [ebp - 0x218]
push eax
call fcn.0040db5c
add esp, 0x10
mov ecx, dword [ebp - 0x21c]
push ecx
push 1
push 2
push 0x42410c
call fcn.0040db5c
add esp, 0x10
mov edx, dword [ebp - 0x21c]
push edx
push 1
push 0xa
push str.if_exist__
call fcn.0040db5c
add esp, 0x10
lea eax, [ebp - 0x218]
mov dword [ebp - 0x368], eax
mov ecx, dword [ebp - 0x368]
add ecx, 1
mov dword [ebp - 0x36c], ecx
mov edx, dword [ebp - 0x368]
mov al, byte [edx]
mov byte [ebp - 0x36d], al
add dword [ebp - 0x368], 1
cmp byte [ebp - 0x36d], 0
jne 0x40378f
mov ecx, dword [ebp - 0x368]
sub ecx, dword [ebp - 0x36c]
mov dword [ebp - 0x374], ecx
mov edx, dword [ebp - 0x21c]
push edx
push 1
mov eax, dword [ebp - 0x374]
push eax
lea ecx, [ebp - 0x218]
push ecx
call fcn.0040db5c
add esp, 0x10
mov edx, dword [ebp - 0x21c]
push edx
push 1
push 0xf
push str.__goto_Repeat_r_n
call fcn.0040db5c
add esp, 0x10
mov eax, dword [ebp - 0x21c]
push eax
push 1
push 7
push str.rmdir__
call fcn.0040db5c
add esp, 0x10
lea ecx, [ebp - 0x338]
mov dword [ebp - 0x378], ecx
mov edx, dword [ebp - 0x378]
add edx, 1
mov dword [ebp - 0x37c], edx
mov eax, dword [ebp - 0x378]
mov cl, byte [eax]
mov byte [ebp - 0x37d], cl
add dword [ebp - 0x378], 1
cmp byte [ebp - 0x37d], 0
jne 0x403829
mov edx, dword [ebp - 0x378]
sub edx, dword [ebp - 0x37c]
mov dword [ebp - 0x384], edx
mov eax, dword [ebp - 0x21c]
push eax
push 1
mov ecx, dword [ebp - 0x384]
push ecx
lea edx, [ebp - 0x338]
push edx
call fcn.0040db5c
add esp, 0x10
mov eax, dword [ebp - 0x21c]
push eax
push 1
push 3
push 0x424134
call fcn.0040db5c
add esp, 0x10
mov ecx, dword [ebp - 0x21c]
push ecx
push 1
push 5
push str.del__
call fcn.0040db5c
add esp, 0x10
lea edx, [ebp - 0x110]
mov dword [ebp - 0x388], edx
mov eax, dword [ebp - 0x388]
add eax, 1
mov dword [ebp - 0x38c], eax
mov ecx, dword [ebp - 0x388]
mov dl, byte [ecx]
mov byte [ebp - 0x38d], dl
add dword [ebp - 0x388], 1
cmp byte [ebp - 0x38d], 0
jne 0x4038c3
mov eax, dword [ebp - 0x388]
sub eax, dword [ebp - 0x38c]
mov dword [ebp - 0x394], eax
mov ecx, dword [ebp - 0x21c]
push ecx
push 1
mov edx, dword [ebp - 0x394]
push edx
lea eax, [ebp - 0x110]
push eax
call fcn.0040db5c
add esp, 0x10
mov ecx, dword [ebp - 0x21c]
push ecx
push 1
push 1
push 0x424140
call fcn.0040db5c
add esp, 0x10
cmp dword [ebp - 0x21c], 0
je 0x403942
mov edx, dword [ebp - 0x21c]
push edx
call fcn.0040d97e
add esp, 4
push 0
push 0
push 0
lea eax, [ebp - 0x110]
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040d4a5
mov esp, ebp
pop ebp
ret