Function at 0x100057f0
Capabilities:
Check os version
Get disk information
Get disk size
Get hostname

Disassembly:
sub esp, 0xb54
push ebx
push ebp
push esi
push edi
mov ecx, 0x154
xor eax, eax
lea edi, [esp + 0xc4]
lea edx, [esp + 0x110]
rep stosd dword es:[edi], eax
mov ax, word [esp + 0xb74]
mov edi, 0x10012684
mov word [esp + 0x5d2], ax
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0xcc], 2
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0xc4], 0xdf1f1ed3
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [esp + 0xb6c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x5d4]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0xb70]
push ecx
push edx
push str._s:_d
push 0x40
push eax
call dword [sym.imp.MSVCRT.dll__snprintf]
add esp, 0x14
lea ecx, [esp + 0x24]
lea edx, [esp + 0xd0]
mov dword [esp + 0x24], 0x40
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
mov si, ax
and esi, 0xffff
call dword [sym.imp.KERNEL32.dll_GetACP]
shl eax, 0x10
or esi, eax
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0xcc], esi
mov dword [esp + 0x2c], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x138], ecx
mov eax, edx
mov ecx, ebx
and eax, 0xff
and ecx, 0xff
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], ecx
lea edi, [esp + 0x3c]
or ecx, 0xffffffff
xor eax, eax
lea ebp, [esp + 0x13c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
cmp edx, 6
rep movsb byte es:[edi], byte [esi]
jne 0x10005939
cmp byte [esp + 0xc2], 1
je 0x1000595a
jmp 0x1000594f
cmp edx, 5
jne 0x1000595a
cmp ebx, 2
jne 0x1000595a
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x1000595a
or dword [esp + 0x130], 0x80000000
mov ebp, dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov byte [esp + 0x11], 0x3a
mov byte [esp + 0x12], 0
mov bl, 0x41
mov edi, 0x41
lea esi, [esp + 0x1c0]
lea ecx, [esp + 0x10]
mov byte [esp + 0x10], bl
push ecx
call ebp
cmp eax, 3
je 0x10005992
cmp eax, 5
je 0x10005992
cmp eax, 6
jne 0x100059b4
mov dword [esi - 4], eax
cmp eax, 5
mov dword [esi], edi
je 0x100059b1
lea edx, [esi + 0xc]
lea eax, [esi + 4]
push edx
push eax
lea ecx, [esp + 0x18]
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
add esi, 0x18
inc bl
inc edi
cmp bl, 0x5a
jle 0x10005978
lea edx, [esp + 0xc4]
push edx
call fcn.10005600
mov ecx, 0x154
xor eax, eax
lea edi, [esp + 0x618]
push 8
rep stosd dword es:[edi], eax
lea eax, [esp + 0xcc]
push 0x550
lea ecx, [esp + 0x20]
push eax
lea edx, [esp + 0x624]
push ecx
push edx
mov dword [esp + 0x2c], 0x550
call fcn.1000a070
call fcn.100056e0
mov bl, al
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x30], bl
mov ecx, dword [esp + 0x30]
and ecx, 0xff
lea edx, [esp + 0x62c]
shl ecx, 0x18
add ecx, eax
push eax
push edx
mov dword [esp + 0x38], ecx
call fcn.10005710
mov esi, dword [esp + 0xb88]
mov edi, eax
lea eax, [esp + 0x38]
push 4
push eax
push esi
mov dword [esp + 0x48], 0
call fcn.100057a0
add esp, 0x2c
test eax, eax
jne 0x10005a65
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xb54
ret
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x614]
push ecx
push edx
push esi
call fcn.100057a0
add esp, 0xc
test eax, eax
jne 0x10005a8d
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xb54
ret
lea eax, [esp + 0x1c]
push eax
push esi
call fcn.10005750
add esp, 8
test eax, eax
jne 0x10005aad
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xb54
ret
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x20]
cmp edi, ecx
push 1
sete cl
push edx
push esi
mov byte [esp + 0x2c], cl
call fcn.100057a0
add esp, 0xc
test eax, eax
jne 0x10005adc
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xb54
ret
mov eax, dword [esp + 0xb78]
pop edi
pop esi
pop ebp
mov byte [eax], bl
mov eax, dword [esp + 0x14]
and eax, 0xff
pop ebx
add esp, 0xb54
ret