Function at 0x40d50f
Capabilities:
Get disk information
Get disk size

Disassembly:
mov eax, 0x55e428
call fcn.0053c1d0
sub esp, 0x978
mov eax, dword [0x5af710]
push ebx
push esi
mov esi, dword [ebp + 8]
xor eax, ebp
test esi, esi
mov dword [ebp - 0x10], eax
push edi
mov dword [ebp - 0x824], esi
je 0x40decf
cmp byte [esi], 0
je 0x40decf
cmp dword [0x5b0894], 0
jne 0x40d56b
push str.GetDiskFreeSpaceExA
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x5b0894], eax
mov eax, dword [0x5b096c]
push 2
pop ebx
push ebx
add eax, 0x6c
push esi
push eax
call fcn.00547123
add esp, 0xc
test eax, eax
jne 0x40d58f
add dword [ebp + 0xc], 0xc800000
adc dword [ebp + 0x10], eax
mov edi, 0x800
push edi
lea esi, [ebp - 0x810]
mov eax, esi
push 0
push eax
call fcn.0053c340
add esp, 0xc
mov eax, esi
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
cmp byte [ebp - 0x810], 0
mov byte [ebp - 0x11], 0
je 0x40d5e9
push ebx
push dword [ebp - 0x824]
push esi
call fcn.00547123
add esp, 0xc
test eax, eax
je 0x40d6b3
push 0
push esi
call fcn.0053c426
inc eax
mov esi, eax
cmp byte [esi], 0
pop ecx
pop ecx
jne 0x40d5bf
mov esi, 0x204
cmp dword [0x5b21c0], esi
jne 0x40decf
lea eax, [ebp - 0x844]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 1
push ebx
lea ecx, [ebp - 0x984]
call fcn.00404a20
mov eax, 0x572a6c
push eax
push 0x572d30
push 0x572a4c
push eax
push 0x572a48
push esi
push 0x572a40
push dword [ebp - 0x838]
mov eax, 0x572a3c
push eax
push dword [ebp - 0x83a]
mov edx, 0x572a38
push eax
push dword [ebp - 0x83c]
mov ecx, 0x572a34
push edx
push dword [ebp - 0x83e]
mov dword [ebp - 4], 8
push ecx
push dword [ebp - 0x842]
push ecx
push dword [ebp - 0x844]
push edx
push 0x2fb
push eax
push 0x5c
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x82c], esp
push str..DownLoadFile.cpp
call fcn.00405500
lea eax, [ebp - 0x904]
push eax
call fcn.00407150
add esp, 0x24
cmp dword [eax + 0x18], 0x10
mov byte [ebp - 4], 9
jb 0x40ddcc
mov eax, dword [eax + 4]
jmp 0x40ddcf
mov eax, dword [0x5b0894]
xor edi, edi
cmp eax, edi
je 0x40d9f2
lea ecx, [ebp - 0x84c]
push ecx
push edi
push edi
push esi
call eax
test eax, eax
je 0x40d87b
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x848]
jb 0x40ddc4
ja 0x40d6f6
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp - 0x84c]
jbe 0x40ddc4
mov esi, 0x204
cmp dword [0x5b21c0], esi
jne 0x40decf
lea eax, [ebp - 0x820]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 1
push ebx
lea ecx, [ebp - 0x8e8]
call fcn.00404a20
mov eax, 0x572a6c
push eax
push 0x572d20
push 0x572a4c
push eax
push 0x572a48
push esi
push 0x572a40
push dword [ebp - 0x814]
mov eax, 0x572a3c
push eax
push dword [ebp - 0x816]
mov edx, 0x572a38
push eax
push dword [ebp - 0x818]
mov ecx, 0x572a34
push edx
push dword [ebp - 0x81a]
mov dword [ebp - 4], edi
push ecx
push dword [ebp - 0x81e]
push ecx
push dword [ebp - 0x820]
push edx
push 0x2d7
push eax
push 0x5c
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x828], esp
push str..DownLoadFile.cpp
call fcn.00405500
lea eax, [ebp - 0x868]
push eax
call fcn.00407150
add esp, 0x24
cmp dword [eax + 0x18], 0x10
mov byte [ebp - 4], 1
jb 0x40d7b5
mov eax, dword [eax + 4]
jmp 0x40d7b8
add eax, 4
push eax
lea eax, [ebp - 0x8e8]
push 0x572a0c
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
mov byte [ebp - 4], 0
jmp 0x40dbcb
lea eax, [ebp - 0x820]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 1
push ebx
lea ecx, [ebp - 0x8e8]
call fcn.00404a20
mov eax, 0x572a6c
push eax
push str.GetDiskFreeSpaceEx
push 0x572a4c
push eax
push 0x572a48
push 0x10000000
push 0x572a40
push dword [ebp - 0x814]
mov eax, 0x572a3c
push eax
push dword [ebp - 0x816]
mov edx, 0x572a38
push eax
push dword [ebp - 0x818]
mov ecx, 0x572a34
push edx
push dword [ebp - 0x81a]
mov dword [ebp - 4], ebx
push ecx
push dword [ebp - 0x81e]
push ecx
push dword [ebp - 0x820]
push edx
push 0x2dd
push eax
push 0x5c
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x828], esp
push str..DownLoadFile.cpp
call fcn.00405500
lea eax, [ebp - 0x868]
push eax
call fcn.00407150
add esp, 0x24
cmp dword [eax + 0x18], 0x10
mov byte [ebp - 4], 3
jb 0x40d92d
mov eax, dword [eax + 4]
jmp 0x40d930
add eax, 4
push eax
lea eax, [ebp - 0x8e8]
push 0x572a0c
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
mov byte [ebp - 4], bl
jmp 0x40dd83
lea eax, [ebp - 0x82c]
push eax
lea eax, [ebp - 0x834]
push eax
lea eax, [ebp - 0x830]
push eax
lea eax, [ebp - 0x824]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
test eax, eax
jne 0x40dc0c
mov eax, dword [ebp - 0x824]
imul eax, dword [ebp - 0x830]
imul eax, dword [ebp - 0x834]
xor ecx, ecx
cmp dword [ebp + 0x10], ecx
jb 0x40ddc4
ja 0x40da47
cmp dword [ebp + 0xc], eax
jbe 0x40ddc4
mov esi, 0x204
cmp dword [0x5b21c0], esi
jne 0x40decf
lea eax, [ebp - 0x820]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 1
push ebx
lea ecx, [ebp - 0x8e8]
call fcn.00404a20
mov eax, 0x572a6c
push eax
push 0x572d20
push 0x572a4c
push eax
push 0x572a48
push esi
push 0x572a40
push dword [ebp - 0x814]
mov eax, 0x572a3c
push eax
push dword [ebp - 0x816]
mov edx, 0x572a38
push eax
push dword [ebp - 0x818]
mov ecx, 0x572a34
push edx
push dword [ebp - 0x81a]
mov dword [ebp - 4], 4
push ecx
push dword [ebp - 0x81e]
push ecx
push dword [ebp - 0x820]
push edx
push 0x2ef
push eax
push 0x5c
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x828], esp
push str..DownLoadFile.cpp
call fcn.00405500
lea eax, [ebp - 0x868]
push eax
call fcn.00407150
add esp, 0x24
cmp dword [eax + 0x18], 0x10
mov byte [ebp - 4], 5
jb 0x40db0a
mov eax, dword [eax + 4]
jmp 0x40db0d
add eax, 4
push eax
lea eax, [ebp - 0x8e8]
push 0x572a0c
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
mov byte [ebp - 4], 4
pop ecx
pop ecx
push edi
push 1
lea ecx, [ebp - 0x868]
call fcn.00402c50
lea eax, [ebp - 0x8e8]
push eax
call fcn.00407930
or dword [ebp - 4], 0xffffffff
pop ecx
lea ecx, [ebp - 0x89c]
call fcn.004028d0
mov dword [ebp - 0x89c], 0x572840
lea ecx, [ebp - 0x89c]
jmp 0x40deca
lea eax, [ebp - 0x820]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 1
push ebx
lea ecx, [ebp - 0x8e8]
call fcn.00404a20
mov eax, 0x572a6c
push eax
push str.GetDiskFreeSpace
push 0x572a4c
push eax
push 0x572a48
push 0x10000000
push 0x572a40
push dword [ebp - 0x814]
mov eax, 0x572a3c
push eax
push dword [ebp - 0x816]
mov edx, 0x572a38
push eax
push dword [ebp - 0x818]
mov ecx, 0x572a34
push edx
push dword [ebp - 0x81a]
mov dword [ebp - 4], 6
push ecx
push dword [ebp - 0x81e]
push ecx
push dword [ebp - 0x820]
push edx
push 0x2f5
push eax
push 0x5c
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x828], esp
push str..DownLoadFile.cpp
call fcn.00405500
lea eax, [ebp - 0x868]
push eax
call fcn.00407150
add esp, 0x24
cmp dword [eax + 0x18], 0x10
mov byte [ebp - 4], 7
jb 0x40dcc2
mov eax, dword [eax + 4]
jmp 0x40dcc5
add eax, 4
push eax
lea eax, [ebp - 0x8e8]
push 0x572a0c
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
mov byte [ebp - 4], 6
pop ecx
pop ecx
push edi
push 1
lea ecx, [ebp - 0x868]
call fcn.00402c50
lea eax, [ebp - 0x8e8]
push eax
call fcn.00407930
or dword [ebp - 4], 0xffffffff
pop ecx
lea ecx, [ebp - 0x89c]
call fcn.004028d0
lea ecx, [ebp - 0x89c]
mov dword [ebp - 0x89c], 0x572840
call fcn.0054dfcb
xor eax, eax
inc eax
jmp 0x40ded1
add eax, 4
push eax
lea eax, [ebp - 0x984]
push 0x572a0c
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.00403f50
push eax
call fcn.00403980
pop ecx
pop ecx
mov ecx, eax
call fcn.004040c0
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
push eax
call fcn.00403980
pop ecx
pop ecx
mov byte [ebp - 4], 8
push 0
push 1
lea ecx, [ebp - 0x904]
call fcn.00402c50
lea eax, [ebp - 0x984]
push eax
call fcn.00407930
or dword [ebp - 4], 0xffffffff
pop ecx
lea ecx, [ebp - 0x938]
call fcn.004028d0
mov dword [ebp - 0x938], 0x572840
lea ecx, [ebp - 0x938]
call fcn.0054dfcb
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0053aaae
leave
ret