Function at 0x403a2d
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x42c
mov eax, dword [0x40b028]
push esi
mov ecx, 0xc7
xor esi, esi
cmp eax, ecx
push edi
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], ecx
jg 0x403a54
mov dword [ebp - 4], eax
mov edi, dword [ebp + 8]
push ebx
mov eax, dword [edi + 0x20]
mov dl, byte [eax + 1]
cmp dl, 0x3a
jne 0x403a70
cmp byte [eax + 2], 0x5c
lea ecx, [eax + 2]
jne 0x403a70
mov esi, ecx
jmp 0x403a9a
cmp byte [eax], 0x5c
jne 0x403aad
cmp dl, 0x5c
jne 0x403aad
mov ebx, dword [sym.imp.MSVCRT.dll_strchr]
add eax, 2
push 0x5c
push eax
call ebx
mov esi, eax
pop ecx
test esi, esi
pop ecx
je 0x403aad
inc esi
push 0x5c
push esi
call ebx
pop ecx
mov esi, eax
pop ecx
test esi, esi
je 0x403aad
mov bl, byte [esi + 1]
inc esi
and byte [esi], 0
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x10], eax
jmp 0x403ab0
mov bl, byte [ebp + 0xb]
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
test eax, eax
je 0x403af1
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
imul eax, dword [ebp - 0x14]
imul ecx, ecx, 0x2dc6c0
imul eax, dword [ebp - 0xc]
cmp eax, ecx
jae 0x403af1
xor edx, edx
mov ecx, 0x2dc6c0
div ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
test esi, esi
mov dword [0x40b028], eax
je 0x403aff
mov byte [esi], bl
push edi
call fcn.00403cca
lea ecx, [ebp - 0x28]
push ecx
push eax
push edi
call fcn.00403d2d
add esp, 0x10
test eax, eax
je 0x403b9d
mov edx, eax
mov eax, dword [edx + 4]
mov dword [ebp + 8], edx
mov ecx, dword [eax + 0xc]
lea ecx, [ecx + ecx*2]
mov ebx, dword [ecx*4 + 0x408470]
and word [eax + 0x12], 0
mov esi, dword [edx]
test esi, esi
je 0x403b74
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0xc]
lea ecx, [ecx + ecx*2]
cmp dword [ecx*4 + 0x408470], ebx
jne 0x403b74
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 4]
mov cx, word [ecx + 0x12]
mov dword [ebp - 0xc], ecx
movsx ecx, cx
cmp ecx, dword [0x40b028]
jge 0x403b74
mov ecx, dword [ebp - 0xc]
mov dword [ebp + 8], esi
inc ecx
mov word [eax + 0x12], cx
mov esi, dword [esi]
jmp 0x403b37
mov eax, dword [ebp + 8]
push edx
push edi
and dword [eax], 0
call fcn.0040431d
or dword [ebp - 8], eax
pop ecx
test esi, esi
pop ecx
mov edx, esi
jne 0x403b1d
lea eax, [ebp - 0x28]
push eax
push edi
call fcn.00403ed8
pop ecx
pop ecx
jmp 0x403b13
lea eax, [ebp - 0x28]
push eax
push edi
call fcn.00403ed8
pop ecx
test eax, eax
pop ecx
jne 0x403b1b
cmp dword [edi + 0x14], eax
je 0x403c0c
push 0x14a
call fcn.00405e43
push eax
push 2
call fcn.00405b55
mov esi, dword [edi + 0x14]
add esp, 0xc
test esi, esi
je 0x403c0c
test esi, esi
je 0x403bda
mov ebx, dword [esi]
jmp 0x403bdc
xor ebx, ebx
mov eax, dword [esi - 8]
push dword [eax + 4]
lea eax, [ebp - 0x42c]
push eax
call fcn.004053b4
push eax
push 0x4074b4
push 2
call fcn.00405b55
mov eax, dword [ebp - 0x1c]
add esp, 0x14
mov dword [esi], eax
mov dword [ebp - 0x1c], esi
test ebx, ebx
mov esi, ebx
jne 0x403bd2
mov eax, dword [ebp - 8]
pop ebx
test eax, eax
je 0x403c1e
mov dword [0x40b6c8], eax
jmp 0x403cc6
mov ecx, dword [edi + 0xc]
mov eax, ecx
test eax, eax
je 0x403c37
cmp dword [eax + 0xc], 3
je 0x403c33
mov eax, dword [eax]
test eax, eax
jne 0x403c27
test eax, eax
jne 0x403c39
mov eax, ecx
push edi
mov dword [edi + 0x1c], eax
call fcn.00402d06
mov dword [esp], 0x404cf8
push edi
push dword [0x408494]
call fcn.0040455f
add esp, 0xc
mov dword [0x40b6c8], eax
test eax, eax
jne 0x403cc6
mov eax, dword [0x40b6bc]
test eax, eax
je 0x403c80
push 9
push eax
call fcn.00401063
pop ecx
pop ecx
mov ecx, dword [edi + 0xc]
mov ecx, dword [ecx]
mov dword [eax], ecx
mov ecx, dword [edi + 0xc]
mov dword [ecx], eax
mov eax, dword [edi + 0xc]
test eax, eax
je 0x403cc6
mov ecx, dword [eax + 0xc]
mov esi, dword [eax]
lea ecx, [ecx + ecx*2]
cmp dword [ecx*4 + 0x40846c], 2
jne 0x403cc0
mov dword [edi + 0x1c], eax
mov eax, dword [eax + 0xc]
push fcn.004045b5
push edi
lea eax, [eax + eax*2]
push dword [eax*4 + 0x408470]
call fcn.0040455f
add esp, 0xc
mov dword [0x40b6c8], eax
test eax, eax
jne 0x403cc6
test esi, esi
mov eax, esi
jne 0x403c87
pop edi
pop esi
leave
ret