Function at 0x12a29223
Capabilities:
Get disk size
Get memory capacity
Query environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x4d0
mov eax, dword [0x12a37538]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edx
push ecx
push esi
push eax
mov dword [ebp - 0x4c0], eax
mov dword [ebp - 0x4cc], ecx
mov dword [ebp - 0x4d0], edx
call fcn.12a2914d
test eax, eax
je 0x12a2926c
xor eax, eax
inc eax
jmp 0x12a2998c
push ebx
push edi
mov ebx, 0xe04
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edi, eax
mov dword [ebp - 0x4c8], edi
test edi, edi
je 0x12a2998a
cmp esi, ebx
ja 0x12a2988d
push esi
push dword [ebp - 0x4c0]
push edi
call sub.msvcrt.dll_memcpy
lea eax, [esi + 8]
and eax, 0xfffffff8
add esp, 0xc
cmp eax, ebx
jbe 0x12a292bc
xor ebx, ebx
jmp 0x12a2988d
lea esi, [eax + edi]
sub ebx, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push 8
pop edi
mov dword [esi], eax
cmp ebx, edi
jb 0x12a292b5
add esi, edi
sub ebx, edi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esi], eax
cmp ebx, edi
jb 0x12a292b5
add esi, edi
sub ebx, edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi], eax
cmp ebx, edi
jb 0x12a292b5
sub ebx, edi
add esi, edi
cmp ebx, 0x10
jb 0x12a2988d
push esi
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
cmp ebx, 0x18
jb 0x12a292b5
sub ebx, 0x18
add esi, 0x18
cmp ebx, edi
jb 0x12a2988d
push esi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push 0x10
pop edi
cmp ebx, edi
jb 0x12a292b5
push 0x20
sub ebx, edi
pop eax
add esi, edi
cmp ebx, eax
jb 0x12a2988d
push esi
mov dword [esi], eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
cmp ebx, 0x28
jb 0x12a292b5
sub ebx, 0x28
add esi, 0x28
cmp ebx, edi
jb 0x12a2988d
lea eax, [esi + 0xc]
push eax
lea eax, [esi + 8]
push eax
lea eax, [esi + 4]
push eax
push esi
xor edi, edi
push edi
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
cmp ebx, 0x18
jb 0x12a292b5
add esi, 0x18
sub ebx, 0x18
mov dword [ebp - 0x4c0], esi
cmp dword [0x12a39d70], edi
jne 0x12a2945a
mov dword [ebp - 0x4c4], edi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
mov dword [ebp - 0x4bc], eax
cmp eax, edi
jne 0x12a293bf
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStrings]
mov dword [ebp - 0x4bc], eax
mov dword [ebp - 0x4c4], 1
cmp eax, edi
je 0x12a29450
lea eax, [ebp - 0x114]
push eax
call fcn.12a29f24
mov esi, dword [ebp - 0x4bc]
pop ecx
xor edi, edi
cmp dword [ebp - 0x4c4], 0
jne 0x12a293ec
lea esi, [esi + edi + 2]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, eax
jmp 0x12a293f7
lea esi, [esi + edi + 1]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
lea eax, [ebp - 0x114]
push eax
push edi
push esi
call fcn.12a29f6f
add esp, 0xc
test edi, edi
jne 0x12a293d4
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.12a2a1bb
cmp dword [ebp - 0x4c4], 0
pop ecx
pop ecx
push 5
pop ecx
push dword [ebp - 0x4bc]
lea esi, [ebp - 0xb8]
mov edi, 0x12a39d74
rep movsd dword es:[edi], dword [esi]
jne 0x12a2944a
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
jmp 0x12a29450
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsA]
mov dword [0x12a39d70], 1
cmp ebx, 0x14
jb 0x12a2988d
mov edi, dword [ebp - 0x4c0]
push 5
pop ecx
mov esi, 0x12a39d74
rep movsd dword es:[edi], dword [esi]
cmp ebx, 0x18
jb 0x12a292b5
mov esi, dword [ebp - 0x4c0]
add esi, 0x18
sub ebx, 0x18
call fcn.12a29078
test eax, eax
je 0x12a2988d
push 0x40
pop eax
mov dword [ebp - 0x4c0], eax
cmp ebx, eax
jb 0x12a2988d
lea eax, [ebp - 0x4c0]
push eax
push esi
call fcn.12a306e6
push 0xfffffffffffffff8
pop edi
test eax, eax
je 0x12a294d1
mov eax, dword [ebp - 0x4c0]
add eax, 8
and eax, edi
cmp eax, ebx
ja 0x12a292b5
add esi, eax
sub ebx, eax
mov eax, dword [0x12a39d8c]
test eax, eax
je 0x12a2988d
push 0
push ebx
push esi
push 5
mov dword [ebp - 0x4bc], ebx
call eax
cmp ebx, 0x14
jb 0x12a2988d
lea eax, [ebp - 0x184]
push eax
call fcn.12a29f24
lea eax, [ebp - 0x184]
push eax
push dword [ebp - 0x4bc]
push esi
call fcn.12a29f6f
lea eax, [ebp - 0x184]
push esi
push eax
call fcn.12a2a1bb
add esp, 0x18
cmp ebx, 0x18
jb 0x12a292b5
sub ebx, 0x18
add esi, 0x18
cmp ebx, 0x30
jb 0x12a2988d
lea eax, [ebp - 0x4bc]
push eax
push 0x30
push esi
push 3
call dword [0x12a39d8c]
test eax, eax
jl 0x12a29569
mov eax, dword [ebp - 0x4bc]
add eax, 8
and eax, edi
cmp eax, ebx
ja 0x12a292b5
add esi, eax
sub ebx, eax
cmp ebx, 0x18
jb 0x12a2988d
lea eax, [ebp - 0x4bc]
push eax
push 0x18
push esi
push 7
call dword [0x12a39d8c]
test eax, eax
jl 0x12a2959f
mov eax, dword [ebp - 0x4bc]
add eax, 8
and eax, edi
cmp eax, ebx
ja 0x12a292b5
add esi, eax
sub ebx, eax
cmp ebx, 0x54
jb 0x12a2988d
lea eax, [ebp - 0x4bc]
push eax
push 0x54
push esi
push 0x50
call dword [0x12a39d8c]
test eax, eax
jl 0x12a295d5
mov eax, dword [ebp - 0x4bc]
add eax, 8
and eax, edi
cmp eax, ebx
ja 0x12a292b5
add esi, eax
sub ebx, eax
cmp ebx, 0x24
jb 0x12a2988d
lea eax, [ebp - 0x4bc]
push eax
push 0x24
push esi
push 0x15
call dword [0x12a39d8c]
test eax, eax
jl 0x12a2960b
mov eax, dword [ebp - 0x4bc]
add eax, 8
and eax, edi
cmp eax, ebx
ja 0x12a292b5
add esi, eax
sub ebx, eax
mov eax, 0x148
cmp ebx, eax
jb 0x12a2988d
lea ecx, [ebp - 0x4bc]
push ecx
push eax
push esi
push 2
call dword [0x12a39d8c]
test eax, eax
jl 0x12a29644
mov eax, dword [ebp - 0x4bc]
add eax, 8
and eax, edi
cmp eax, ebx
ja 0x12a292b5
add esi, eax
sub ebx, eax
cmp ebx, 0x10
jb 0x12a2988d
lea eax, [ebp - 0x4bc]
push eax
push 0x10
push esi
push 0x21
call dword [0x12a39d8c]
test eax, eax
jl 0x12a2967a
mov eax, dword [ebp - 0x4bc]
add eax, 8
and eax, edi
cmp eax, ebx
ja 0x12a292b5
add esi, eax
sub ebx, eax
cmp ebx, 0x20
jb 0x12a2988d
lea eax, [ebp - 0x4bc]
push eax
push 0x20
push esi
push 0x2d
call dword [0x12a39d8c]
test eax, eax
jl 0x12a296b0
mov eax, dword [ebp - 0x4bc]
add eax, 8
and eax, edi
cmp eax, ebx
ja 0x12a292b5
add esi, eax
sub ebx, eax
lea eax, [ebp - 0x4bc]
push eax
push ebx
push esi
push 8
mov dword [ebp - 0x4bc], ebx
call dword [0x12a39d8c]
test eax, eax
jl 0x12a29714
cmp ebx, 0x14
jb 0x12a2988d
lea eax, [ebp - 0x264]
push eax
call fcn.12a29f24
lea eax, [ebp - 0x264]
push eax
push dword [ebp - 0x4bc]
push esi
call fcn.12a29f6f
lea eax, [ebp - 0x264]
push esi
push eax
call fcn.12a2a1bb
add esp, 0x18
push 0x18
pop edi
cmp ebx, edi
jb 0x12a292b5
add esi, edi
sub ebx, edi
jmp 0x12a29717
push 0x18
pop edi
lea eax, [ebp - 0x4bc]
push eax
push ebx
push esi
push 0x3d
mov dword [ebp - 0x4bc], ebx
call dword [0x12a39d8c]
test eax, eax
jl 0x12a29776
cmp ebx, 0x14
jb 0x12a2988d
lea eax, [ebp - 0x1f4]
push eax
call fcn.12a29f24
lea eax, [ebp - 0x1f4]
push eax
push dword [ebp - 0x4bc]
push esi
call fcn.12a29f6f
lea eax, [ebp - 0x1f4]
push esi
push eax
call fcn.12a2a1bb
add esp, 0x18
cmp ebx, edi
jb 0x12a292b5
add esi, edi
sub ebx, edi
lea eax, [ebp - 0x4bc]
push eax
push ebx
push esi
push 0x12
mov dword [ebp - 0x4bc], ebx
call dword [0x12a39d8c]
test eax, eax
jl 0x12a297d5
cmp ebx, 0x14
jb 0x12a2988d
lea eax, [ebp - 0x2d4]
push eax
call fcn.12a29f24
lea eax, [ebp - 0x2d4]
push eax
push dword [ebp - 0x4bc]
push esi
call fcn.12a29f6f
lea eax, [ebp - 0x2d4]
push esi
push eax
call fcn.12a2a1bb
add esp, 0x18
cmp ebx, edi
jb 0x12a292b5
add esi, edi
sub ebx, edi
lea eax, [ebp - 0x4bc]
push eax
push ebx
push esi
push 0x17
mov dword [ebp - 0x4bc], ebx
call dword [0x12a39d8c]
test eax, eax
jl 0x12a29834
cmp ebx, 0x14
jb 0x12a2988d
lea eax, [ebp - 0x3b4]
push eax
call fcn.12a29f24
lea eax, [ebp - 0x3b4]
push eax
push dword [ebp - 0x4bc]
push esi
call fcn.12a29f6f
lea eax, [ebp - 0x3b4]
push esi
push eax
call fcn.12a2a1bb
add esp, 0x18
cmp ebx, edi
jb 0x12a292b5
add esi, edi
sub ebx, edi
lea eax, [ebp - 0x4bc]
push eax
push ebx
push esi
push 0x2a
mov dword [ebp - 0x4bc], ebx
call dword [0x12a39d8c]
test eax, eax
jl 0x12a2988d
cmp ebx, 0x14
jb 0x12a2988d
lea eax, [ebp - 0x344]
push eax
call fcn.12a29f24
lea eax, [ebp - 0x344]
push eax
push dword [ebp - 0x4bc]
push esi
call fcn.12a29f6f
lea eax, [ebp - 0x344]
push esi
push eax
call fcn.12a2a1bb
add esp, 0x18
cmp ebx, edi
jb 0x12a292b5
sub ebx, edi
push 0x14
pop ecx
lea eax, [ebp - 0x54]
push eax
push 0x50
lea eax, [ebp - 0x4b8]
mov esi, 0x12a39c00
lea edi, [ebp - 0x54]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.12a29cdd
mov ecx, 0xe04
mov eax, ecx
sub eax, ebx
cmp eax, ecx
jbe 0x12a298bb
mov eax, ecx
lea ecx, [ebp - 0x54]
push ecx
push eax
push dword [ebp - 0x4c8]
call fcn.12a303a0
push 0x14
pop ecx
push 0x14
mov ebx, eax
lea esi, [ebp - 0x54]
lea edi, [ebp - 0xa4]
rep movsd dword es:[edi], dword [esi]
pop ecx
lea eax, [ebp - 0xa4]
push eax
push 0x50
lea esi, [ebp - 0x54]
mov edi, 0x12a39c00
rep movsd dword es:[edi], dword [esi]
pop esi
push esi
lea eax, [ebp - 0x4b8]
push eax
call fcn.12a29b90
push esi
lea eax, [ebp - 0xa4]
push eax
call fcn.12a3013a
mov ecx, esi
lea eax, [ebp - 0xa4]
mov byte [eax], 0
inc eax
dec ecx
jne 0x12a29914
lea eax, [ebp - 0x54]
push eax
push esi
lea eax, [ebp - 0x4b8]
push eax
call fcn.12a29cdd
lea eax, [ebp - 0x54]
mov byte [eax], 0
inc eax
dec esi
jne 0x12a2992f
push dword [ebp - 0x4cc]
mov eax, dword [ebp - 0x4d0]
push dword [eax]
lea eax, [ebp - 0x4b8]
push eax
call fcn.12a29b90
mov ecx, 0x102
lea eax, [ebp - 0x4b8]
mov byte [eax], 0
inc eax
dec ecx
jne 0x12a2995b
mov eax, dword [ebp - 0x4c8]
mov ecx, 0xe04
mov byte [eax], 0
inc eax
dec ecx
jne 0x12a2996d
push dword [ebp - 0x4c8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, ebx
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.12a19f5c
leave
ret 0x10