Function at 0x4768fc
Capabilities:
Get disk size

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x476930
test dword [0x87ed4c], 0xffffffff
jne 0x476d80
call fcn.007663a0
jmp fcn.004768fc
push edi
push esi
push ebp
push ebx
sub esp, 0x568
mov ebp, ecx
mov edi, edx
mov dword [esp + 0x24], eax
mov esi, edi
test edi, edi
je 0x476d32
mov eax, esi
call fcn.00477ea0
mov ebx, eax
test ebx, ebx
je 0x476d63
mov edx, dword [esp + 0x588]
mov eax, edx
and eax, 2
mov dword [esp + 0x18], eax
shl eax, 0x1d
add eax, 0x80000000
mov dword [esp + 0x20], eax
test dl, 0x10
je 0x476985
mov eax, 1
jmp 0x476995
mov eax, dword [esp + 0x588]
and eax, 4
shr eax, 2
add eax, 3
mov edx, 0x4000102
mov ecx, 0x80
test byte [esp + 0x588], 8
cmovne ecx, edx
mov edx, dword [0x84f7fc]
mov dword [esp + 0x1c], ecx
test edx, edx
je 0x4769bf
cmp edx, 2
je 0x4769f4
jmp 0x476a16
mov dword [esp + 0x344], 0x114
lea edx, [esp + 0x344]
push edx
mov dword [esp + 0x18], eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x354], 2
jne 0x476a0c
mov dword [0x84f7fc], 2
xor edx, edx
push edx
push dword [esp + 0x20]
push eax
push edx
push 3
push dword [esp + 0x34]
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
jmp 0x476a2c
mov dword [0x84f7fc], 1
xor edx, edx
push edx
push dword [esp + 0x20]
push eax
push edx
push 3
push dword [esp + 0x34]
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
je 0x476cf0
cmp dword [esp + 0x58c], 0
je 0x476a62
cmp dword [esp + 0x18], 0
je 0x476a55
mov edx, dword [esp + 0x58c]
mov dword [edx], 2
jmp 0x476a62
mov edx, dword [esp + 0x58c]
mov dword [edx], 1
pxor xmm0, xmm0
movq qword [ebp], xmm0
movq qword [ebp + 8], xmm0
movd dword [ebp + 0x10], xmm0
mov dword [ebp], 0x78d060
mov dword [ebp + 4], eax
mov eax, esi
mov dword [ebp + 0xc], 0
mov dword [esp + 0x564], 0x200
call fcn.00477ea0
mov edi, eax
mov eax, dword [0x84f7fc]
test eax, eax
je 0x476aad
cmp eax, 2
je 0x476ada
jmp 0x476b32
mov dword [esp + 0x230], 0x114
lea eax, [esp + 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0x240], 2
jne 0x476b28
mov dword [0x84f7fc], 2
xor eax, eax
push eax
push eax
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
lea edx, [eax + 3]
mov dword [esp + 0x14], edx
lea eax, [eax + eax + 6]
push eax
call fcn.0074334f
pop ecx
mov esi, eax
test esi, esi
je 0x476cc2
push 0
push esi
push dword [esp + 0x1c]
push edi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
push edi
call fcn.00743035
pop ecx
mov eax, esi
call fcn.00476540
mov edi, eax
push esi
call fcn.00743035
jmp 0x476b9a
mov dword [0x84f7fc], 1
xor eax, eax
push eax
push eax
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
mov esi, eax
add esi, 3
push esi
call fcn.0074334f
pop ecx
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
je 0x476ce8
push 0
push dword [esp + 0x18]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
push edi
call fcn.00743035
pop ecx
mov eax, dword [esp + 0x14]
call fcn.004765a0
mov esi, eax
test esi, esi
je 0x476ce1
mov eax, esi
call fcn.00476540
mov edi, eax
push esi
call fcn.00743035
pop ecx
push dword [esp + 0x14]
call fcn.00743035
pop ecx
test edi, edi
je 0x476cc9
lea esi, [esp + 0x458]
push edi
push 0x799014
push esi
mov eax, dword [esp + 0x30]
push dword [eax + 8]
call fcn.0047d0b0
push edi
call fcn.00743035
add esp, 0x14
mov eax, esi
call fcn.00477ea0
mov esi, eax
test esi, esi
je 0x476c9b
mov eax, dword [0x84f7fc]
test eax, eax
je 0x476be7
cmp eax, 2
je 0x476c0b
jmp 0x476c52
mov dword [esp + 0x14], 0x114
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0x24], 2
jne 0x476c48
mov dword [0x84f7fc], 2
movzx eax, word [esi]
lea ecx, [esi + 2]
mov edx, esi
test eax, eax
je 0x476c2d
cmp eax, 0x5c
je 0x476cd2
movzx eax, word [ecx]
add edx, 2
add ecx, 2
test eax, eax
jne 0x476c17
lea edx, [esp + 0x560]
lea eax, [esp + 0x564]
push edx
push edx
push eax
push edx
push esi
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
jmp 0x476c85
mov dword [0x84f7fc], 1
movsx eax, byte [esi]
lea ecx, [esi + 1]
mov edx, esi
test eax, eax
je 0x476c6c
cmp eax, 0x5c
je 0x476cdc
movsx eax, byte [ecx]
inc edx
inc ecx
test eax, eax
jne 0x476c5e
lea edx, [esp + 0x560]
lea eax, [esp + 0x564]
push edx
push edx
push eax
push edx
push esi
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
mov edi, eax
push esi
call fcn.00743035
pop ecx
test edi, edi
je 0x476c9b
mov eax, dword [esp + 0x564]
jmp 0x476cab
mov dword [esp + 0x564], 0x200
mov eax, 0x200
mov dword [ebp + 0x10], eax
push ebx
call fcn.00743035
pop ecx
xor eax, eax
add esp, 0x568
pop ebx
pop ebp
pop esi
pop edi
ret
push edi
call fcn.00743035
pop ecx
mov eax, dword [esp + 0x564]
jmp 0x476cab
xor eax, eax
mov word [edx], ax
jmp 0x476c2d
mov byte [edx], 0
jmp 0x476c6c
xor edi, edi
jmp 0x476b91
push edi
call fcn.00743035
jmp 0x476cc8
push ebx
call fcn.00743035
pop ecx
cmp dword [esp + 0x18], 0
je 0x476d53
mov ebx, dword [esp + 0x588]
mov esi, dword [esp + 0x58c]
mov eax, dword [esp + 0x24]
or ebx, 1
and ebx, 0xfffffffd
mov dword [esp + 0xc], ebx
mov edx, edi
mov dword [esp + 0x10], esi
mov ecx, ebp
call fcn.004768fc
add esp, 0x568
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, 0x105
lea edx, [esp + 0x128]
call fcn.004771c0
test eax, eax
jne 0x476d27
lea esi, [esp + 0x128]
jmp 0x47694c
mov eax, 0xe
add esp, 0x568
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, 7
add esp, 0x568
pop ebx
pop ebp
pop esi
pop edi
ret
push edi
push esi
push ebp
push ebx
sub esp, 0x568
mov ebp, ecx
mov edi, edx
mov dword [esp + 0x24], eax
mov esi, edi
test edi, edi
je 0x47717d
mov eax, esi
call fcn.00477ea0
mov ebx, eax
test ebx, ebx
je 0x4771ae
mov eax, dword [esp + 0x588]
mov edx, eax
and edx, 2
mov dword [esp + 0x1c], edx
shl edx, 0x1d
add edx, 0x80000000
test al, 0x10
je 0x476dd1
mov eax, 1
jmp 0x476de1
mov eax, dword [esp + 0x588]
and eax, 4
shr eax, 2
add eax, 3
mov ecx, 0x4000102
test byte [esp + 0x588], 8
jne 0x476df5
mov ecx, 0x80
mov dword [esp + 0x20], ecx
mov ecx, dword [0x84f7fc]
test ecx, ecx
je 0x476e0a
cmp ecx, 2
je 0x476e47
jmp 0x476e66
mov dword [esp + 0x344], 0x114
lea ecx, [esp + 0x344]
push ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x354], 2
jne 0x476e5c
mov dword [0x84f7fc], 2
xor ecx, ecx
push ecx
push dword [esp + 0x24]
push eax
push ecx
push 3
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
jmp 0x476e79
mov dword [0x84f7fc], 1
xor ecx, ecx
push ecx
push dword [esp + 0x24]
push eax
push ecx
push 3
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
je 0x47713b
cmp dword [esp + 0x58c], 0
je 0x476eaf
cmp dword [esp + 0x1c], 0
je 0x476ea2
mov edx, dword [esp + 0x58c]
mov dword [edx], 2
jmp 0x476eaf
mov edx, dword [esp + 0x58c]
mov dword [edx], 1
xor edx, edx
mov dword [ebp], edx
mov dword [ebp + 4], edx
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x10], edx
mov dword [ebp], 0x78d060
mov dword [ebp + 4], eax
mov dword [ebp + 0xc], 0
mov dword [esp + 0x564], 0x200
mov eax, esi
call fcn.00477ea0
mov edi, eax
mov eax, dword [0x84f7fc]
test eax, eax
je 0x476ef8
cmp eax, 2
je 0x476f25
jmp 0x476f7d
mov dword [esp + 0x230], 0x114
lea eax, [esp + 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0x240], 2
jne 0x476f73
mov dword [0x84f7fc], 2
xor eax, eax
push eax
push eax
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
lea edx, [eax + 3]
mov dword [esp + 0x14], edx
lea eax, [eax + eax + 6]
push eax
call fcn.0074334f
pop ecx
mov esi, eax
test esi, esi
je 0x47710d
push 0
push esi
push dword [esp + 0x1c]
push edi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
push edi
call fcn.00743035
pop ecx
mov eax, esi
call fcn.00476540
mov edi, eax
push esi
call fcn.00743035
jmp 0x476fe5
mov dword [0x84f7fc], 1
xor eax, eax
push eax
push eax
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
mov esi, eax
add esi, 3
push esi
call fcn.0074334f
pop ecx
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
je 0x477133
push 0
push dword [esp + 0x18]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
push edi
call fcn.00743035
pop ecx
mov eax, dword [esp + 0x14]
call fcn.004765a0
mov esi, eax
test esi, esi
je 0x47712c
mov eax, esi
call fcn.00476540
mov edi, eax
push esi
call fcn.00743035
pop ecx
push dword [esp + 0x14]
call fcn.00743035
pop ecx
test edi, edi
je 0x477114
lea esi, [esp + 0x458]
push edi
push 0x799014
push esi
mov eax, dword [esp + 0x30]
push dword [eax + 8]
call fcn.0047d0b0
push edi
call fcn.00743035
add esp, 0x14
mov eax, esi
call fcn.00477ea0
mov esi, eax
test esi, esi
je 0x4770e6
mov eax, dword [0x84f7fc]
test eax, eax
je 0x477032
cmp eax, 2
je 0x477056
jmp 0x47709d
mov dword [esp + 0x14], 0x114
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0x24], 2
jne 0x477093
mov dword [0x84f7fc], 2
lea ecx, [esi + 2]
mov edx, esi
movzx eax, word [esi]
test eax, eax
je 0x477078
cmp eax, 0x5c
je 0x47711d
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test eax, eax
jne 0x477062
lea edx, [esp + 0x560]
lea eax, [esp + 0x564]
push edx
push edx
push eax
push edx
push esi
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
jmp 0x4770d0
mov dword [0x84f7fc], 1
lea ecx, [esi + 1]
mov edx, esi
movsx eax, byte [esi]
test eax, eax
je 0x4770b7
cmp eax, 0x5c
je 0x477127
inc edx
movsx eax, byte [ecx]
inc ecx
test eax, eax
jne 0x4770a9
lea edx, [esp + 0x560]
lea eax, [esp + 0x564]
push edx
push edx
push eax
push edx
push esi
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
mov edi, eax
push esi
call fcn.00743035
pop ecx
test edi, edi
je 0x4770e6
mov eax, dword [esp + 0x564]
jmp 0x4770f6
mov dword [esp + 0x564], 0x200
mov eax, 0x200
mov dword [ebp + 0x10], eax
push ebx
call fcn.00743035
pop ecx
xor eax, eax
add esp, 0x568
pop ebx
pop ebp
pop esi
pop edi
ret
push edi
call fcn.00743035
pop ecx
mov eax, dword [esp + 0x564]
jmp 0x4770f6
xor eax, eax
mov word [edx], ax
jmp 0x477078
mov byte [edx], 0
jmp 0x4770b7
xor edi, edi
jmp 0x476fdc
push edi
call fcn.00743035
jmp 0x477113
push ebx
call fcn.00743035
pop ecx
cmp dword [esp + 0x1c], 0
je 0x47719e
mov ebx, dword [esp + 0x588]
or ebx, 1
and ebx, 0xfffffffd
mov dword [esp + 0xc], ebx
mov esi, dword [esp + 0x58c]
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x24]
mov edx, edi
mov ecx, ebp
call fcn.004768fc
add esp, 0x568
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, 0x105
lea edx, [esp + 0x128]
call fcn.004771c0
test eax, eax
jne 0x477172
lea esi, [esp + 0x128]
jmp 0x476d9c
mov eax, 0xe
add esp, 0x568
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, 7
add esp, 0x568
pop ebx
pop ebp
pop esi
pop edi
ret