Function at 0x42b830
Capabilities:
Get file system object information
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4348a0
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1af78
call fcn.00433710
mov eax, dword [0x43ffa8]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
xor bl, bl
mov dword [ebp - 0x1af5c], edi
cmp dword [edi + 4], 0
je 0x42c41d
cmp dword [edi + 8], 0
je 0x42c41d
cmp dword [edi + 0xc], 0
je 0x42c41d
mov ecx, dword [edi]
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x1af08], eax
test ecx, ecx
je 0x42c419
lea edx, [ebp - 0x1aeec]
mov dword [ebp - 0x1aeec], 0
mov eax, dword [ecx]
push edx
push 0
push ecx
call dword [eax + 0x10]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42c419
mov eax, dword [ebp - 0x1aeec]
push 0
push 0x43734c
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42c40d
mov eax, dword [ebp - 0x1aeec]
lea edx, [ebp - 0x1aef0]
push edx
push 0
mov dword [ebp - 0x1aef0], 0
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x4c]
mov ecx, dword [ebp - 0x1aef0]
mov dword [edi + 0x1c], eax
test ecx, ecx
je 0x42c40d
cmp eax, 0x40380
je 0x42b93a
test eax, eax
js 0x42b93a
mov eax, dword [ecx + 0xc]
cmp word [eax + 8], 0
setne al
test al, al
jne 0x42b93a
push ecx
mov ecx, dword [edi + 0x14]
call fcn.00429f10
jmp 0x42b8e3
test ecx, ecx
je 0x42c40d
mov eax, dword [ecx + 0xc]
mov ecx, dword [edi]
mov esi, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x1aed0], 0
mov edx, dword [ecx]
lea ecx, [ebp - 0x1aed0]
push ecx
mov ecx, dword [edi]
push 4
push 0
push eax
push esi
push dword [ebp - 0x1af08]
push ecx
call dword [edx + 0x14]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42c3fa
mov eax, dword [edi + 0x28]
or eax, dword [edi + 0x2c]
je 0x42ba0b
mov eax, dword [ebp - 0x1aed0]
lea edx, [ebp - 0x1af1c]
push edx
lea edx, [ebp - 0x1af48]
mov dword [ebp - 0x1af48], 0
push edx
push 0
mov dword [ebp - 0x1af1c], 0
mov ecx, dword [eax]
push 0x437358
push eax
call dword [ecx + 0x14]
mov edx, dword [ebp - 0x1af1c]
mov dword [edi + 0x1c], eax
test edx, edx
je 0x42b9fb
test eax, eax
jne 0x42b9f2
mov eax, dword [edx + 8]
shl eax, 0xa
xor ecx, ecx
jl 0x42b9f2
jg 0x42b9df
test eax, eax
je 0x42b9f2
cmp dword [edi + 0x2c], ecx
jb 0x42b9f2
ja 0x42b9eb
cmp dword [edi + 0x28], eax
jb 0x42b9f2
mov dword [edi + 0x1c], 0x8004666d
mov ecx, dword [edi + 0x14]
push edx
mov eax, dword [ecx]
call dword [eax + 8]
cmp dword [edi + 0x1c], 0x8004010f
jne 0x42ba0b
mov dword [edi + 0x1c], 0
cmp dword [edi + 0x1c], 0
jl 0x42c3ee
mov eax, dword [ebp - 0x1aed0]
lea edx, [ebp - 0x1af14]
push edx
lea edx, [ebp - 0x1af50]
push edx
mov ecx, dword [eax]
push 0
push 0x437360
push eax
call dword [ecx + 0x14]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42c3ee
cmp eax, 0x40380
je 0x42c3e0
cmp dword [ebp - 0x1af50], 1
jne 0x42c3e0
mov eax, dword [ebp - 0x1af14]
mov esi, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x1aed0]
mov dword [ebp - 0x1aef4], 0
mov dword [ebp - 0x1af34], 0
mov ecx, dword [eax]
lea eax, [ebp - 0x1aef4]
push eax
lea eax, [ebp - 0x1af34]
push eax
mov eax, dword [ebp - 0x1aed0]
push 0x10
push 0
push edx
push esi
push eax
call dword [ecx + 0x44]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42c3e0
mov eax, dword [ebp - 0x1aef4]
lea edx, [ebp - 0x1aecc]
push edx
push 0
mov dword [ebp - 0x1aecc], 0
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x4c]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42c3d4
mov edx, dword [edi]
lea eax, [ebp - 0x1af00]
push eax
xor eax, eax
mov dword [ebp - 0x1af00], 0
cmp byte [edi + 0x20], al
mov ecx, dword [edx]
setne al
push eax
push 0
push 0
push edx
call dword [ecx + 0x18]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42c2ae
cmp byte [edi + 0x20], 0
mov ecx, edi
sete al
movzx eax, al
push eax
push dword [ebp - 0x1aecc]
push dword [ebp - 0x1af00]
call fcn.0042b030
test al, al
je 0x42c2a2
mov ebx, dword [edi + 0x30]
mov dword [ebp - 0x1aed4], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x1aedc], ebx
test ebx, ebx
je 0x42bc64
mov eax, dword [ebp - 0x1aecc]
lea edx, [ebp - 0x1aee8]
push edx
xorps xmm0, xmm0
mov dword [ebp - 0x1af38], 0
movq qword [ebp - 0x1af40], xmm0
lea edx, [ebp - 0x1af44]
push edx
mov dword [ebp - 0x1af44], 0x1000001f
mov dword [ebp - 0x1af3c], ebx
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x20]
mov edx, dword [ebp - 0x1aee8]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42bc57
test edx, edx
je 0x42bc64
xor ecx, ecx
jmp 0x42bbb0
cmp ecx, dword [edx]
jae 0x42bc57
lea eax, [ecx + ecx*2]
cmp dword [edx + eax*4 + 0xc], 0x80040103
movq xmm0, qword [edx + eax*4 + 4]
movq qword [ebp - 0x1af88], xmm0
jne 0x42c055
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push ebx
push 0
push 0
mov dword [ebp - 0x1af44], 0x1000001e
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, eax
test esi, esi
je 0x42bc51
push esi
call dword [sym.imp.MSVCR120.dll_malloc]
add esp, 4
mov ebx, eax
push 0
push 0
push esi
push ebx
push esi
push dword [ebp - 0x1aedc]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
je 0x42bc43
mov eax, dword [ebp - 0x1aecc]
lea edx, [ebp - 0x1af44]
push 0
push edx
mov dword [ebp - 0x1af3c], ebx
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x20]
mov dword [edi + 0x1c], eax
test ebx, ebx
je 0x42bc51
push ebx
call dword [sym.imp.MSVCR120.dll_free]
add esp, 4
mov edx, dword [ebp - 0x1aee8]
test edx, edx
je 0x42bc64
mov ecx, dword [edi + 0x14]
push edx
mov eax, dword [ecx]
call dword [eax + 8]
mov ebx, dword [edi + 0x34]
mov dword [ebp - 0x1aedc], ebx
test ebx, ebx
je 0x42bd85
mov eax, dword [ebp - 0x1aecc]
lea edx, [ebp - 0x1aefc]
push edx
xorps xmm0, xmm0
mov dword [ebp - 0x1af24], 0
movq qword [ebp - 0x1af2c], xmm0
lea edx, [ebp - 0x1af30]
push edx
mov dword [ebp - 0x1af30], 0x37001f
mov dword [ebp - 0x1af28], ebx
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x20]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42bd72
mov edx, dword [ebp - 0x1aefc]
test edx, edx
je 0x42bd85
xor ecx, ecx
cmp ecx, dword [edx]
jae 0x42bd78
lea eax, [ecx + ecx*2]
cmp dword [edx + eax*4 + 0xc], 0x80040103
movq xmm0, qword [edx + eax*4 + 4]
movq qword [ebp - 0x1af88], xmm0
jne 0x42c05b
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push ebx
push 0
push 0
mov dword [ebp - 0x1af30], 0x37001e
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebx, eax
test ebx, ebx
je 0x42bd72
push ebx
call dword [sym.imp.MSVCR120.dll_malloc]
add esp, 4
mov esi, eax
push 0
push 0
push ebx
push esi
push ebx
push dword [ebp - 0x1aedc]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
je 0x42bd64
mov eax, dword [ebp - 0x1aecc]
lea edx, [ebp - 0x1af30]
push 0
push edx
mov dword [ebp - 0x1af28], esi
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x20]
mov dword [edi + 0x1c], eax
test esi, esi
je 0x42bd72
push esi
call dword [sym.imp.MSVCR120.dll_free]
add esp, 4
mov edx, dword [ebp - 0x1aefc]
test edx, edx
je 0x42bd85
mov ecx, dword [edi + 0x14]
push edx
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [edi + 0x38]
test eax, eax
je 0x42c225
push eax
lea eax, [ebp - 0x1abe4]
push 0xcbe8
push eax
call dword [sym.imp.MSVCR120.dll_wcscpy_s]
add esp, 0xc
lea eax, [ebp - 0x1af54]
push eax
lea eax, [ebp - 0x1abe4]
push 0x437368
push eax
call dword [sym.imp.MSVCR120.dll_wcstok_s]
mov ebx, eax
mov dword [ebp - 0x1af4c], 0
mov dword [ebp - 0x1aef8], ebx
xor ecx, ecx
add esp, 0xc
cmp ecx, 0xc8
jge 0x42c225
test ebx, ebx
je 0x42c225
mov eax, dword [ebp - 0x1aecc]
lea edx, [ebp - 0x1aee0]
push edx
lea edx, [ebp - 0x1af4c]
mov dword [ebp - 0x1aee0], ecx
push edx
mov ecx, dword [eax]
push 0
push 0
push eax
call dword [ecx + 0x40]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42c204
push 0x30
lea eax, [ebp - 0x1ac14]
push 0
push eax
call fcn.0043373c
push 0x100
lea eax, [ebp - 0x414]
mov dword [ebp - 0x1ac14], 0x37050003
push eax
push 0x100
lea eax, [ebp - 0x214]
mov dword [ebp - 0x1ac0c], 1
push eax
push 0
push 0
push 0
push 0
push ebx
mov dword [ebp - 0x1abfc], 0
mov dword [ebp - 0x1abec], 0
call dword [sym.imp.MSVCR120.dll__wsplitpath_s]
add esp, 0x30
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x214]
push 0x100
push eax
call dword [sym.imp.MSVCR120.dll_wcscat_s]
add esp, 0xc
mov dword [ebp - 0x1ac04], 0x3704001f
lea eax, [ebp - 0x214]
mov dword [ebp - 0x1aec8], 0
mov dword [ebp - 0x1abfc], eax
lea eax, [ebp - 0x1aec4]
push 0x2b0
push 0
push eax
call fcn.0043373c
add esp, 0xc
lea eax, [ebp - 0x1aec8]
push 0x200
push 0x2b4
push eax
push 0xd0
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
test eax, eax
je 0x42bf04
lea eax, [ebp - 0x1aebc]
mov dword [ebp - 0x1abf4], 0x3001001f
mov dword [ebp - 0x1abec], eax
mov eax, dword [ebp - 0x1aee0]
lea edx, [ebp - 0x1aed8]
push edx
lea edx, [ebp - 0x1ac14]
push edx
mov ecx, dword [eax]
push 3
push eax
call dword [ecx + 0x20]
mov esi, dword [ebp - 0x1aed8]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42c0b8
test esi, esi
je 0x42c0c5
xor ecx, ecx
jmp 0x42bf40
cmp ecx, dword [esi]
jae 0x42c0b2
lea eax, [ecx + ecx*2]
cmp dword [esi + eax*4 + 0xc], 0x80040103
movq xmm0, qword [esi + eax*4 + 4]
movq qword [ebp - 0x1af88], xmm0
jne 0x42c11d
xor eax, eax
mov dword [ebp - 0x1af18], 0
mov dword [ebp - 0x1af04], eax
xor ebx, ebx
mov eax, dword [ebp - 0x1abfc]
mov dword [ebp - 0x1aedc], 0
test eax, eax
je 0x42bfe5
push ebx
push ebx
push ebx
push ebx
push 0xffffffffffffffff
push eax
push ebx
push ebx
mov dword [ebp - 0x1ac04], 0x3704001e
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebx, eax
test ebx, ebx
je 0x42bfdf
push ebx
call dword [sym.imp.MSVCR120.dll_malloc]
add esp, 4
mov esi, eax
mov dword [ebp - 0x1af18], esi
push 0
push 0
push ebx
push esi
push ebx
push dword [ebp - 0x1abfc]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebx, eax
mov dword [ebp - 0x1abfc], esi
mov esi, dword [ebp - 0x1aed8]
mov eax, dword [ebp - 0x1abec]
test eax, eax
je 0x42c061
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push eax
push 0
push 0
mov dword [ebp - 0x1abf4], 0x3001001e
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebp - 0x1af04], eax
test eax, eax
je 0x42c04d
push eax
call dword [sym.imp.MSVCR120.dll_malloc]
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x1af04]
mov dword [ebp - 0x1aedc], esi
push 0
push 0
push eax
push esi
push eax
push dword [ebp - 0x1abec]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebp - 0x1abec], esi
mov esi, dword [ebp - 0x1aed8]
jmp 0x42c067
inc ecx
jmp 0x42bbb0
inc ecx
jmp 0x42bcd1
mov eax, dword [ebp - 0x1af04]
test ebx, ebx
je 0x42c08c
test eax, eax
je 0x42c08c
mov eax, dword [ebp - 0x1aee0]
lea edx, [ebp - 0x1ac14]
push 0
push edx
push 3
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
mov esi, dword [ebp - 0x1aed8]
mov eax, dword [ebp - 0x1af18]
mov ebx, dword [sym.imp.MSVCR120.dll_free]
test eax, eax
je 0x42c0a2
push eax
call ebx
add esp, 4
mov eax, dword [ebp - 0x1aedc]
test eax, eax
je 0x42c0b2
push eax
call ebx
add esp, 4
mov ebx, dword [ebp - 0x1aef8]
test esi, esi
je 0x42c0c5
mov ecx, dword [edi + 0x14]
push esi
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [ebp - 0x1aee0]
lea edx, [ebp - 0x1aed4]
push edx
push 3
push 1
mov ecx, dword [eax]
push 0x437b1c
push 0x37010102
push eax
call dword [ecx + 0x1c]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42c1ea
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x42c123
mov dword [edi + 0x1c], 0x80044005
jmp 0x42c1c6
inc ecx
jmp 0x42bf40
mov dword [ebp - 0x1aee4], 0
mov dword [ebp - 0x1af10], 0
push 0
lea eax, [ebp - 0x1aee4]
push eax
push 0x1000
lea eax, [ebp - 0x1414]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x42c1bf
cmp dword [ebp - 0x1aee4], 0
je 0x42c1bf
lea esi, [ebp - 0x1414]
jmp 0x42c170
mov eax, dword [ebp - 0x1aed4]
lea edx, [ebp - 0x1af10]
push edx
push dword [ebp - 0x1aee4]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x10]
mov ecx, dword [ebp - 0x1af10]
mov edx, 0x80044005
test ecx, ecx
cmove eax, edx
mov dword [edi + 0x1c], eax
test eax, eax
jl 0x42c1b5
mov eax, dword [ebp - 0x1aee4]
add esi, ecx
sub eax, ecx
mov dword [ebp - 0x1aee4], eax
test eax, eax
jne 0x42c170
cmp dword [edi + 0x1c], 0
jge 0x42c137
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x1aed4]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x20]
mov eax, dword [ebp - 0x1aed4]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov dword [ebp - 0x1aed4], 0
mov eax, dword [ebp - 0x1aee0]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
mov eax, dword [ebp - 0x1aee0]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
lea eax, [ebp - 0x1af54]
push eax
push 0x437368
push 0
call dword [sym.imp.MSVCR120.dll_wcstok_s]
mov ebx, eax
mov dword [ebp - 0x1aef8], eax
jmp 0x42bdd1
mov eax, dword [ebp - 0x1aecc]
lea edx, [ebp - 0x1af7c]
push 0
xorps xmm0, xmm0
mov dword [ebp - 0x1af70], 0
movq qword [ebp - 0x1af78], xmm0
push edx
mov dword [ebp - 0x1af7c], 0x1a001f
mov dword [ebp - 0x1af74], 0x43736c
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x20]
mov dword [edi + 0x1c], eax
jmp 0x42c276
cmp dword [ebp - 0x1aed4], 0
mov dword [ebp - 4], 0xffffffff
je 0x42c2a0
mov eax, dword [ebp - 0x1aed4]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x20]
mov eax, dword [ebp - 0x1aed4]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov bl, 1
mov eax, dword [ebp - 0x1af00]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [edi + 0x1c], 0
jl 0x42c3c8
cmp byte [edi + 0x20], 0
jne 0x42c326
mov eax, dword [edi]
lea edx, [ebp - 0x1af0c]
push edx
push dword [ebp - 0x1aecc]
mov dword [ebp - 0x1af0c], 0
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x54]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42c31f
mov eax, dword [edi]
push str.IPM.Note
push 1
push 8
mov ecx, dword [eax]
push 0
push 2
push 0
push dword [ebp - 0x1af0c]
push 0
push dword [ebp - 0x1aef4]
push dword [ebp - 0x1aed0]
push dword [ebp - 0x1af08]
push eax
call dword [ecx + 0x50]
mov dword [edi + 0x1c], eax
jmp 0x42c3c8
xor bl, bl
jmp 0x42c3c8
mov eax, dword [ebp - 0x1aed0]
lea edx, [ebp - 0x1af20]
push edx
lea edx, [ebp - 0x1af58]
push edx
mov ecx, dword [eax]
push 0
push 0x43738c
push eax
call dword [ecx + 0x14]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42c3ba
cmp eax, 0x40380
je 0x42c3ac
cmp dword [ebp - 0x1af58], 1
jne 0x42c3ac
mov ecx, dword [ebp - 0x1af20]
lea edx, [ebp - 0x1af6c]
mov dword [ebp - 0x1af60], 0
xorps xmm0, xmm0
movq qword [ebp - 0x1af68], xmm0
mov dword [ebp - 0x1af6c], 0xe0a0102
mov eax, dword [ecx + 8]
mov dword [ebp - 0x1af64], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x1af60], eax
mov eax, dword [ebp - 0x1aecc]
push 0
push edx
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
mov ecx, dword [edi + 0x14]
push dword [ebp - 0x1af20]
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [ebp - 0x1aecc]
push 1
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov eax, dword [ebp - 0x1aecc]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x1aef4]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov ecx, dword [edi + 0x14]
push dword [ebp - 0x1af14]
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [ebp - 0x1aed0]
push eax
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [ebp - 0x1aef0]
test eax, eax
je 0x42c40d
mov ecx, dword [edi + 0x14]
push eax
call fcn.00429f10
mov ecx, dword [ebp - 0x1aeec]
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
mov al, bl
jmp 0x42c426
mov dword [edi + 0x1c], 0x80040102
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0043342a
mov esp, ebp
pop ebp
ret