Function at 0x415cd4
Capabilities:
Get disk size

Disassembly:
mov eax, 0x46308f
call fcn.00451b80
mov eax, 0x51c0
call fcn.00452660
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [ebp - 0x28], ecx
push 0x3f
xor ebx, ebx
lea esi, [eax + 0x285]
and byte [ebp - 0x1bc], bl
pop ecx
xor eax, eax
lea edi, [ebp - 0x1bb]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push esi
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x20], ebx
stosb byte es:[edi], al
call fcn.004525b0
mov edi, eax
pop ecx
cmp edi, 0x7d
jl 0x415d26
push 0x7c
pop edi
push 0x7d
lea eax, [ebp - 0x1bc]
push ebx
push eax
call fcn.00451f50
add esp, 0xc
xor ecx, ecx
cmp edi, ebx
jle 0x415d7f
lea edx, [ebp - 0x1bc]
mov al, byte [esi + ecx]
cmp al, 0x3a
je 0x415d7a
cmp al, 0x2d
je 0x415d7a
cmp al, 0x5f
je 0x415d7a
cmp al, 0x5c
je 0x415d7a
cmp al, 0x2f
je 0x415d7a
cmp al, 0x20
je 0x415d7a
cmp al, 0x2a
je 0x415d7a
cmp al, 0x3f
je 0x415d7a
cmp al, 0x22
je 0x415d7a
cmp al, 0x3c
je 0x415d7a
cmp al, 0x3e
je 0x415d7a
cmp al, 0x7c
je 0x415d7a
mov byte [edx], al
inc edx
inc ecx
cmp ecx, edi
jl 0x415d44
lea eax, [ebp - 0x1bc]
push eax
call fcn.004525b0
test eax, eax
pop ecx
jne 0x415db9
call fcn.0045366b
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add edi, eax
lea eax, [ebp - 0x1bc]
push edi
push 0x4753ac
push str._s_d
push eax
call fcn.00451ef5
add esp, 0x10
lea eax, [ebp - 0x1bc]
push eax
push esi
call fcn.00452490
mov eax, dword [ebp + 8]
lea esi, [eax + 0x316]
push esi
call fcn.004525b0
add esp, 0xc
cmp eax, 4
jae 0x415e67
lea eax, [ebp - 0x3bc]
push eax
call fcn.00403cbb
test eax, eax
pop ecx
jne 0x415dfc
mov ebx, 0xe000008a
jmp 0x416469
and byte [ebp - 0x31cc], 0
mov ecx, 0x7ff
xor eax, eax
lea edi, [ebp - 0x31cb]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x31cc]
push eax
call fcn.00403d35
test eax, eax
pop ecx
je 0x415e76
lea eax, [ebp - 0x11cc]
push eax
lea eax, [ebp - 0x31cc]
push eax
call fcn.00413026
pop ecx
test eax, eax
pop ecx
je 0x415e76
push dword [ebp - 0x11cc]
lea eax, [ebp - 0x3bc]
push eax
call fcn.00452490
lea eax, [ebp - 0x3bc]
push 0x474560
push eax
call fcn.004524a0
add esp, 0x10
jmp 0x415e76
lea eax, [ebp - 0x3bc]
push esi
push eax
call fcn.00452490
pop ecx
pop ecx
lea eax, [ebp - 0xdcc]
mov ebx, str.:Line
mov dword [ebp - 0x14], eax
mov esi, 0x474c88
mov eax, dword [ebp + 8]
add eax, 0x285
mov dword [ebp - 0x34], eax
push eax
lea eax, [ebp - 0x6bc]
push eax
call fcn.00452490
lea eax, [ebp - 0x6bc]
push str..bin
push eax
call fcn.004524a0
lea eax, [ebp - 0x3bc]
push eax
lea eax, [ebp - 0x5bc]
push eax
call fcn.00452490
lea eax, [ebp - 0x5bc]
push 0x474b48
push eax
call fcn.004524a0
lea eax, [ebp - 0x6bc]
push eax
lea eax, [ebp - 0x5bc]
push eax
call fcn.004524a0
add esp, 0x28
lea eax, [ebp - 0x5bc]
push eax
lea eax, [ebp - 0x3bc]
push eax
lea eax, [ebp - 0x7c]
push str.CreatePartImgFile_path:_s_file:_s
push eax
call fcn.004480d4
mov dword [ebp - 0x24], eax
and dword [ebp - 4], 0
lea eax, [ebp - 0xac]
push 0x7ea
push eax
call fcn.00406476
add esp, 0x18
mov dword [ebp - 0x1c], eax
mov al, byte [ebp + 0xb]
push 0
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 1
mov byte [ebp - 0x5c], al
call fcn.004079c3
mov edi, 0x474cb8
mov byte [ebp - 4], 2
push edi
call fcn.004525b0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x5c]
call fcn.0040796c
mov edi, str.c:WFBSSrcWFBSSvrPartImg.cpp
mov dword [ebp - 0x10], eax
push edi
call fcn.004525b0
pop ecx
mov ecx, dword [ebp - 0x10]
push eax
push edi
call fcn.0040796c
push ebx
mov dword [ebp - 0x10], eax
call fcn.004525b0
pop ecx
mov ecx, dword [ebp - 0x10]
push eax
push ebx
call fcn.0040796c
push dword [0x466504]
mov ecx, eax
push 0
push dword [ebp - 0x1c]
call fcn.004078e4
push esi
mov dword [ebp - 0x1c], eax
call fcn.004525b0
pop ecx
mov ecx, dword [ebp - 0x1c]
push eax
push esi
call fcn.0040796c
push dword [0x466504]
mov ecx, eax
push 0
push dword [ebp - 0x24]
call fcn.004078e4
mov eax, dword [eax + 4]
test eax, eax
jne 0x415fc5
mov eax, 0x466500
push eax
push 0
push str.wfbslog
call fcn.0041dcb3
add esp, 0xc
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 1
push 1
call fcn.004079c3
and byte [ebp - 4], 0
push 1
lea ecx, [ebp - 0xac]
call fcn.004079c3
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x7c]
call fcn.004079c3
mov al, byte [ebp - 0x5bc]
and byte [ebp - 0x2e], 0
mov byte [ebp - 0x30], al
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0xbc]
push eax
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0x30]
push eax
mov byte [ebp - 0x2f], 0x3a
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
test eax, eax
je 0x4162d2
push dword [ebp - 0x30]
mov ecx, dword [ebp - 0x28]
call fcn.00415c85
mov edx, dword [ebp - 0x48]
push 0x14
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x4c]
pop ecx
call fcn.00453410
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x30a]
add eax, 0xc80
shr eax, 5
shr eax, 2
lea eax, [eax + eax*2]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x10], eax
jbe 0x41607d
sub dword [ebp - 0x10], eax
jmp 0x416081
and dword [ebp - 0x10], 0
push eax
lea eax, [ebp - 0x9c]
push dword [ebp - 0x10]
push str.CreatePartImgFile_free:_d__nowsize:_d
push eax
call fcn.004480d4
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x8c]
push 0x807
push eax
mov dword [ebp - 4], 3
call fcn.00406476
add esp, 0x18
mov dword [ebp - 0x1c], eax
mov al, byte [ebp + 0xb]
push 0
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 4
mov byte [ebp - 0x6c], al
call fcn.004079c3
push 0x474cb8
mov byte [ebp - 4], 5
call fcn.004525b0
pop ecx
push eax
push 0x474cb8
lea ecx, [ebp - 0x6c]
call fcn.0040796c
push edi
mov dword [ebp - 0x24], eax
call fcn.004525b0
pop ecx
mov ecx, dword [ebp - 0x24]
push eax
push edi
call fcn.0040796c
push ebx
mov edi, eax
call fcn.004525b0
pop ecx
push eax
push ebx
mov ecx, edi
call fcn.0040796c
push dword [0x466504]
mov ecx, eax
push 0
push dword [ebp - 0x1c]
call fcn.004078e4
push esi
mov edi, eax
call fcn.004525b0
pop ecx
push eax
push esi
mov ecx, edi
call fcn.0040796c
push dword [0x466504]
mov ecx, eax
push 0
push dword [ebp - 0x3c]
call fcn.004078e4
mov eax, dword [eax + 4]
test eax, eax
jne 0x416150
mov eax, 0x466500
push eax
push 0
push str.wfbslog
call fcn.0041dcb3
add esp, 0xc
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 4
push 1
call fcn.004079c3
push 1
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 3
call fcn.004079c3
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x9c]
call fcn.004079c3
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x38], eax
jbe 0x4162d2
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x4162aa
and byte [ebp - 0x51cc], al
mov ecx, 0x7ff
lea edi, [ebp - 0x51cb]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x51cc]
push eax
call fcn.00403d35
test eax, eax
pop ecx
je 0x41634c
lea eax, [ebp - 0xdcc]
push eax
lea eax, [ebp - 0x51cc]
push eax
call fcn.00413026
pop ecx
mov dword [ebp - 0x18], eax
test eax, eax
pop ecx
jle 0x41620d
lea edi, [ebp - 0xdcc]
mov dword [ebp - 0x10], eax
push 0x474560
push dword [edi]
call fcn.004524a0
pop ecx
add edi, 4
dec dword [ebp - 0x10]
pop ecx
jne 0x4161f7
push 0x20
lea eax, [ebp - 0x3bc]
push 0
push eax
call fcn.00451f50
lea eax, [ebp - 0x3bc]
push eax
call fcn.00403cbb
add esp, 0x10
test eax, eax
jne 0x416239
cmp dword [ebp - 0x18], eax
je 0x41634c
mov edi, dword [ebp - 0x18]
cmp edi, 0x100
jge 0x41628a
lea eax, [ebp - 0x3bc]
push eax
call fcn.004525b0
test eax, eax
pop ecx
je 0x41628a
test edi, edi
je 0x41634c
push 0x200
call fcn.00451b9f
test eax, eax
pop ecx
mov dword [ebp + edi*4 - 0xdcc], eax
je 0x41634c
lea ecx, [ebp - 0x3bc]
push ecx
push eax
call fcn.00452490
pop ecx
inc edi
pop ecx
mov dword [ebp - 0x18], edi
test edi, edi
je 0x41634c
inc dword [ebp - 0x20]
add dword [ebp - 0x14], 4
mov eax, dword [ebp - 0x14]
push dword [eax]
lea eax, [ebp - 0x3bc]
push eax
jmp 0x416340
cmp eax, dword [ebp - 0x20]
je 0x41634c
mov eax, dword [ebp - 0x14]
push dword [eax]
lea eax, [ebp - 0x3bc]
push eax
call fcn.00452490
inc dword [ebp - 0x20]
add dword [ebp - 0x14], 4
pop ecx
pop ecx
jmp 0x415e89
lea eax, [ebp - 0x5bc]
push eax
call fcn.00439247
test eax, eax
pop ecx
je 0x416356
push dword [ebp - 0x34]
call fcn.004525b0
cmp eax, 0x64
pop ecx
ja 0x416464
call fcn.0045366b
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add edi, eax
mov eax, dword [ebp + 8]
push edi
lea edi, [eax + 0x285]
lea eax, [ebp - 0x7bc]
push edi
push str._s_d
push eax
call fcn.00451ef5
lea eax, [ebp - 0x7bc]
push eax
call fcn.004525b0
add esp, 0x14
cmp eax, 0x78
ja 0x416464
lea eax, [ebp - 0x7bc]
push eax
push edi
call fcn.00452490
pop ecx
pop ecx
jmp 0x415e89
mov ebx, 0xe000008b
jmp 0x416469
lea eax, [ebp - 0x6bc]
push 0x200
push eax
lea eax, [ebp - 0x3bc]
push 0
push eax
call fcn.0043939d
lea eax, [ebp - 0x5bc]
push eax
call fcn.00439247
add esp, 0x14
test eax, eax
je 0x416464
push str.WFESP
push dword [ebp - 0x34]
call fcn.00452400
pop ecx
test eax, eax
pop ecx
jne 0x4163a1
mov esi, 0x7fff
jmp 0x4163b4
mov ecx, dword [ebp - 0x28]
call fcn.00414bb5
mov esi, eax
test si, si
je 0x416464
push 0x38
call fcn.00451b9f
pop ecx
mov dword [ebp - 0x38], eax
test eax, eax
mov dword [ebp - 4], 6
je 0x4163d5
mov ecx, eax
call fcn.0041313c
mov ebx, eax
jmp 0x4163d7
xor ebx, ebx
or dword [ebp - 4], 0xffffffff
test ebx, ebx
je 0x416464
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x5bc]
push eax
push edi
push esi
mov ecx, ebx
call fcn.0041319f
test eax, eax
jl 0x416464
lea eax, [ebp - 0x5bc]
push eax
lea eax, [ebp - 0x9cc]
push eax
call fcn.00452490
pop ecx
lea eax, [ebp - 0x9cc]
pop ecx
mov dword [ebp - 0x7c8], ebx
mov ecx, dword [ebp - 0x28]
push eax
push esi
mov word [ebp - 0x7cc], si
call fcn.0041532d
test al, al
je 0x416464
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x28]
xor ebx, ebx
mov word [ebp - 0x42], si
mov word [eax], si
mov al, byte [ebp - 0x5bc]
mov byte [ebp - 0x44], al
mov eax, dword [edi + 0x30a]
add eax, 0xc80
shr eax, 5
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x44]
push eax
call fcn.00415bb6
jmp 0x416469
mov ebx, 0xe000008c
mov edi, dword [ebp - 0x18]
test edi, edi
jle 0x416484
lea esi, [ebp - 0xdcc]
push dword [esi]
call fcn.00431aec
add esi, 4
dec edi
pop ecx
jne 0x416476
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, ebx
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 8