Function at 0x4038f0
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42251b
mov eax, dword fs:[0]
push eax
sub esp, 0x494
mov eax, dword [0x42c914]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor edi, edi
push edi
call fcn.0040dd61
add esp, 4
push eax
call fcn.0040df7b
add esp, 4
call fcn.0040df8d
cdq
mov ecx, 0x5f5e09c
idiv ecx
xor eax, eax
push str.hjreqv
push 8
mov byte [ebp - 0x18], 0
mov dword [ebp - 0x17], eax
mov word [ebp - 0x13], ax
mov byte [ebp - 0x11], al
mov byte [ebp - 0x48], al
mov dword [ebp - 0x47], eax
mov dword [ebp - 0x43], eax
mov dword [ebp - 0x3f], eax
mov word [ebp - 0x3b], ax
mov byte [ebp - 0x39], al
lea ebx, [edx + 0x64]
lea edx, [ebp - 0x18]
push edx
call fcn.0040cf6e
add esp, 0xc
push str.1679853247
lea eax, [ebp - 0x48]
push 0x10
push eax
call fcn.0040cf6e
add esp, 0xc
push ebx
lea ecx, [ebp - 0x48]
push ecx
lea ecx, [ebp - 0x18]
call fcn.00401000
xor edx, edx
cmp dx, ax
jne 0x403ce3
push 0x400
lea eax, [ebp - 0x498]
push edi
push eax
call fcn.004131a0
add esp, 0xc
lea eax, [ebp - 0x498]
mov dword [ebp - 4], edi
call fcn.00402320
push 0x400
lea ecx, [ebp - 0x498]
push edi
push ecx
call fcn.004131a0
add esp, 0xc
lea esi, [ebp - 0x498]
call fcn.004023e0
push str.SJDMGo_PZd
mov edx, esi
push 0x400
push edx
call fcn.0040d7c9
add esp, 0xc
cmp byte [ebp - 0x498], 0
je 0x403a70
xor eax, eax
push ebx
push 0x4264d0
lea edx, [ebp - 0x58]
mov byte [ebp - 0x58], 0
mov dword [ebp - 0x57], eax
mov dword [ebp - 0x53], eax
mov dword [ebp - 0x4f], eax
mov dword [ebp - 0x4b], eax
mov dword [ebp - 0x47], eax
mov dword [ebp - 0x43], eax
mov dword [ebp - 0x3f], eax
mov word [ebp - 0x3b], ax
mov byte [ebp - 0x39], al
call fcn.00402580
lea eax, [ebp - 0x58]
add esp, 8
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403a40
sub eax, edx
mov esi, eax
lea eax, [ebp - 0x58]
lea edi, [ebp - 0x498]
call fcn.00402430
mov eax, edi
push eax
lea ecx, [ebp - 0x58]
push ecx
push str.value
push 0x426914
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push ebx
call fcn.004026a0
test al, al
je 0x403c74
inc ebx
push ebx
push ecx
push 0x426934
push 0x42ebc0
call fcn.00401d90
add esp, 0xc
push eax
call fcn.004049a0
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00404b80
mov edx, dword [esi]
mov eax, dword [edx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x403ac9
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x403ac9
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x403aea
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x403ae2
or eax, 4
push 0
push eax
call fcn.004015f0
push 0x400
lea edx, [ebp - 0x498]
push 0
push edx
call fcn.004131a0
add esp, 0xc
lea esi, [ebp - 0x498]
call fcn.004023e0
push str.xydbmchc
mov eax, esi
push 0x400
push eax
call fcn.0040d7c9
add esp, 0xc
call fcn.0040df8d
cdq
mov ecx, 0x2699
idiv ecx
add edx, 0x78
cmp byte [ebp - 0x498], 0
je 0x403b9f
xor eax, eax
push edx
push 0x4264d0
lea edx, [ebp - 0x38]
mov byte [ebp - 0x38], 0
mov dword [ebp - 0x37], eax
mov dword [ebp - 0x33], eax
mov dword [ebp - 0x2f], eax
mov dword [ebp - 0x2b], eax
mov dword [ebp - 0x27], eax
mov dword [ebp - 0x23], eax
mov dword [ebp - 0x1f], eax
mov word [ebp - 0x1b], ax
mov byte [ebp - 0x19], al
call fcn.00402580
lea eax, [ebp - 0x38]
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403b72
sub eax, edx
mov esi, eax
lea eax, [ebp - 0x38]
lea edi, [ebp - 0x498]
call fcn.00402430
mov edx, edi
push edx
push eax
push 0x426948
push 0x42694c
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea ecx, [ebp - 0x4a0]
push ecx
lea edx, [ebp - 0x18]
push edx
lea eax, [ebp - 0x40]
push eax
push 0x426950
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
test eax, eax
je 0x403c6d
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
push 0
push 0x1388
push ecx
push edx
call fcn.00410f00
mov ebx, eax
shrd ebx, edx, 0xa
shr edx, 0xa
cmp byte [ebp - 0x498], 0
je 0x403c50
xor eax, eax
push ebx
push 0x4264d0
lea edx, [ebp - 0x38]
mov byte [ebp - 0x38], 0
mov dword [ebp - 0x37], eax
mov dword [ebp - 0x33], eax
mov dword [ebp - 0x2f], eax
mov dword [ebp - 0x2b], eax
mov dword [ebp - 0x27], eax
mov dword [ebp - 0x23], eax
mov dword [ebp - 0x1f], eax
mov word [ebp - 0x1b], ax
mov byte [ebp - 0x19], al
call fcn.00402580
lea eax, [ebp - 0x38]
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403c20
sub eax, edx
mov esi, eax
lea eax, [ebp - 0x38]
lea edi, [ebp - 0x498]
call fcn.00402430
mov eax, edi
push eax
lea ecx, [ebp - 0x38]
push ecx
push 0x42694c
push 0x426948
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
inc ebx
push ebx
push ecx
push str._s_yp_
push 0x42ebc0
call fcn.00401d90
add esp, 0xc
push eax
call fcn.004049a0
jmp 0x403c86
push 0x42695c
jmp 0x403c79
push 0x426968
push 0x42ebc0
call fcn.00401d90
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00404b80
mov edx, dword [esi]
mov eax, dword [edx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x403cb6
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x403cb6
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x403cd7
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x403ccf
or eax, 4
push 0
push eax
call fcn.004015f0
mov edx, dword [ebp - 0x68]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x403d44
push 0x426974
push 0x42ebc0
call fcn.00401d90
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00404b80
mov eax, dword [esi]
mov eax, dword [eax + 4]
test byte [eax + esi + 0xc], 6
jne 0x403d23
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x403d23
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x403d44
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x403d3c
or eax, 4
push 0
push eax
call fcn.004015f0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040cf5f
mov esp, ebp
pop ebp
ret