Function at 0x42bf90
Capabilities:
Get disk size

Disassembly:
push 0xffffffffffffffff
push 0x47f060
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3c
mov eax, dword [0x4a8ae4]
xor eax, esp
push ebx
push ebp
push esi
mov dword [esp + 0x44], eax
mov esi, ecx
push 0x48c768
push 3
push 0x120
push str.CSRSUFile::openFile
xor ebp, ebp
push str..SRSUFile.cpp
mov dword [esp + 0x64], ebp
call sym.GuardianEdgeRemovableStorageAccess.exe_void___cdecl_GERSLOG::LogMsg_unsigned_short_int_const___unsigned_short_int_const___int__enum_GERSLOG::_TRACE_LEVEL__unsigned_short_int_const__
add esp, 0x14
push 0xffffffffffffffff
push ebp
lea eax, [esp + 0x60]
push eax
lea ecx, [esi + 0x68]
call fcn.00401f80
push 1
push 0xffffffffffffffff
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x64]
mov dword [esp + 0x1c], 0x5c
call fcn.00429e40
push 0xffffffffffffffff
inc eax
push eax
lea edx, [esp + 0x30]
push edx
lea ecx, [esp + 0x64]
call fcn.00405a30
push 0xffffffffffffffff
push ebp
push eax
lea ecx, [esi + 0x84]
mov byte [esp + 0x5c], 1
call fcn.00401f80
mov eax, dword [esp + 0x40]
mov ebx, 8
cmp eax, ebx
mov byte [esp + 0x50], 0
jb 0x42c04b
mov eax, dword [esp + 0x2c]
push eax
call fcn.004620d3
add esp, 4
mov edx, dword [0x4ad9bc]
mov ecx, 0x4ad9bc
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0xc], eax
cmp dword [esp + 0x70], ebx
mov eax, dword [esp + 0x5c]
mov byte [esp + 0x50], 2
jae 0x42c073
lea eax, [esp + 0x5c]
mov ecx, dword [esp + 0x6c]
push edi
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.004082f0
mov edi, dword [esi]
cmp edi, ebp
je 0x42c0bf
mov al, byte [esi + 0x60]
test al, al
je 0x42c09f
mov eax, dword [edi]
cmp eax, ebp
je 0x42c09f
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi], ebp
mov edi, dword [esi]
cmp edi, ebp
je 0x42c0bd
mov eax, dword [edi]
cmp eax, ebp
je 0x42c0b4
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi], ebp
push edi
call fcn.004620d3
add esp, 4
mov dword [esi], ebp
push 4
call fcn.004620a8
add esp, 4
cmp eax, ebp
je 0x42c0d3
mov dword [eax], ebp
mov edi, eax
jmp 0x42c0d5
xor edi, edi
cmp dword [esp + 0x74], ebx
mov eax, dword [esp + 0x60]
mov dword [esi], edi
jae 0x42c0e5
lea eax, [esp + 0x60]
push ebp
push 0x80
push 3
push ebp
push ebp
push SysReAllocStringLen
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x42c17b
call fcn.0042ab20
mov ebx, eax
cmp ebx, ebp
jne 0x42c2aa
lea ecx, [esp + 0x10]
mov byte [esi + 0x60], 1
mov dword [esp + 0x14], ebp
call fcn.0042b0b0
push 1
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x18]
call fcn.00405220
push 0x48a08c
push eax
mov byte [esp + 0x5c], 3
call fcn.0042bf30
mov bl, al
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 8
mov byte [esp + 0x54], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c168
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
test bl, bl
je 0x42c1d7
mov edi, dword [esp + 0x10]
cmp dword [edi - 0xc], 2
jg 0x42c17f
or eax, 0xffffffff
jmp 0x42c19a
mov dword [edi], eax
jmp 0x42c10f
lea eax, [edi + 4]
push 0x5c
push eax
call fcn.0044a7a1
add esp, 8
cmp eax, ebp
jne 0x42c196
or eax, 0xffffffff
jmp 0x42c19a
sub eax, edi
sar eax, 1
mov ecx, dword [edi - 0xc]
inc eax
cmp eax, ebp
jl 0x42c21d
cmp eax, ecx
jge 0x42c21d
lea eax, [edi + eax*2]
push 0x5c
push eax
call fcn.0044a7a1
add esp, 8
cmp eax, ebp
je 0x42c21d
sub eax, edi
sar eax, 1
cmp eax, ebp
jle 0x42c21d
inc eax
push eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
call fcn.00405220
mov byte [esp + 0x54], 4
jmp 0x42c1ec
push 3
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
call fcn.00405220
mov byte [esp + 0x54], 5
lea ecx, [esp + 0x10]
push eax
call fcn.00403cc0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x54], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c219
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x30]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
test eax, eax
je 0x42c24c
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov dword [esi + 0x5c], ecx
jmp 0x42c2f0
mov ebp, dword [esi]
test ebp, ebp
mov dword [esi + 0x5c], 0xffffffff
mov dword [esp + 0x14], 0x80004005
je 0x42c27f
mov eax, dword [ebp]
test eax, eax
je 0x42c276
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp], 0
push ebp
call fcn.004620d3
add esp, 4
push str.GetDiskFreeSpace_failed
push 3
push 0x156
push str.CSRSUFile::openFile
push str..SRSUFile.cpp
mov dword [esi], 0
mov byte [esi + 0x60], 0
call sym.GuardianEdgeRemovableStorageAccess.exe_void___cdecl_GERSLOG::LogMsg_unsigned_short_int_const___unsigned_short_int_const___int__enum_GERSLOG::_TRACE_LEVEL__unsigned_short_int_const__
mov ebx, dword [esp + 0x28]
jmp 0x42c2ed
mov edi, dword [esi]
cmp edi, ebp
je 0x42c2c8
mov eax, dword [edi]
cmp eax, ebp
je 0x42c2bf
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi], ebp
push edi
call fcn.004620d3
add esp, 4
push str.Create_File_failed
push 3
push 0x161
push str.CSRSUFile::openFile
push str..SRSUFile.cpp
mov dword [esi], ebp
mov byte [esi + 0x60], 0
call sym.GuardianEdgeRemovableStorageAccess.exe_void___cdecl_GERSLOG::LogMsg_unsigned_short_int_const___unsigned_short_int_const___int__enum_GERSLOG::_TRACE_LEVEL__unsigned_short_int_const__
mov edi, dword [esp + 0x24]
add esp, 0x14
push 0x48c718
push 3
push 0x164
push str.CSRSUFile::openFile
push str..SRSUFile.cpp
call sym.GuardianEdgeRemovableStorageAccess.exe_void___cdecl_GERSLOG::LogMsg_unsigned_short_int_const___unsigned_short_int_const___int__enum_GERSLOG::_TRACE_LEVEL__unsigned_short_int_const__
lea eax, [edi - 0x10]
add esp, 0x14
mov byte [esp + 0x54], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
pop edi
jg 0x42c32e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
cmp dword [esp + 0x70], 8
jb 0x42c342
mov eax, dword [esp + 0x5c]
push eax
call fcn.004620d3
add esp, 4
mov ecx, dword [esp + 0x48]
pop esi
pop ebp
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x3c]
mov eax, ebx
pop ebx
xor ecx, esp
call fcn.0044a318
add esp, 0x48
ret 0x1c