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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4350e0
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1af78
call fcn.00433e90
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 0x42cded
cmp dword [edi + 8], 0
je 0x42cded
cmp dword [edi + 0xc], 0
je 0x42cded
mov ecx, dword [edi]
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x1af08], eax
test ecx, ecx
je 0x42cde9
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 0x42cde9
mov eax, dword [ebp - 0x1aeec]
push 0
push 0x4374d4
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42cddd
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 0x42cddd
cmp eax, 0x40380
je 0x42c30a
test eax, eax
js 0x42c30a
mov eax, dword [ecx + 0xc]
cmp word [eax + 8], 0
setne al
test al, al
jne 0x42c30a
push ecx
mov ecx, dword [edi + 0x14]
call fcn.0042aa70
jmp 0x42c2b3
test ecx, ecx
je 0x42cddd
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 0x42cdca
mov eax, dword [edi + 0x28]
or eax, dword [edi + 0x2c]
je 0x42c3db
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 0x4374e0
push eax
call dword [ecx + 0x14]
mov edx, dword [ebp - 0x1af1c]
mov dword [edi + 0x1c], eax
test edx, edx
je 0x42c3cb
test eax, eax
jne 0x42c3c2
mov eax, dword [edx + 8]
shl eax, 0xa
xor ecx, ecx
jl 0x42c3c2
jg 0x42c3af
test eax, eax
je 0x42c3c2
cmp dword [edi + 0x2c], ecx
jb 0x42c3c2
ja 0x42c3bb
cmp dword [edi + 0x28], eax
jb 0x42c3c2
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 0x42c3db
mov dword [edi + 0x1c], 0
cmp dword [edi + 0x1c], 0
jl 0x42cdbe
mov eax, dword [ebp - 0x1aed0]
lea edx, [ebp - 0x1af14]
push edx
lea edx, [ebp - 0x1af50]
push edx
mov ecx, dword [eax]
push 0
push 0x4374e8
push eax
call dword [ecx + 0x14]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42cdbe
cmp eax, 0x40380
je 0x42cdb0
cmp dword [ebp - 0x1af50], 1
jne 0x42cdb0
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 0x42cdb0
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 0x42cda4
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 0x42cc7e
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.0042ba50
test al, al
je 0x42cc72
mov ebx, dword [edi + 0x30]
mov dword [ebp - 0x1aed4], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x1aedc], ebx
test ebx, ebx
je 0x42c634
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 0x42c627
test edx, edx
je 0x42c634
xor ecx, ecx
jmp 0x42c580
cmp ecx, dword [edx]
jae 0x42c627
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 0x42ca25
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 0x42c621
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 0x42c613
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 0x42c621
push ebx
call dword [sym.imp.MSVCR120.dll_free]
add esp, 4
mov edx, dword [ebp - 0x1aee8]
test edx, edx
je 0x42c634
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 0x42c755
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 0x42c742
mov edx, dword [ebp - 0x1aefc]
test edx, edx
je 0x42c755
xor ecx, ecx
cmp ecx, dword [edx]
jae 0x42c748
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 0x42ca2b
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 0x42c742
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 0x42c734
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 0x42c742
push esi
call dword [sym.imp.MSVCR120.dll_free]
add esp, 4
mov edx, dword [ebp - 0x1aefc]
test edx, edx
je 0x42c755
mov ecx, dword [edi + 0x14]
push edx
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [edi + 0x38]
test eax, eax
je 0x42cbf5
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 0x4366b0
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 0x42cbf5
test ebx, ebx
je 0x42cbf5
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 0x42cbd4
push 0x30
lea eax, [ebp - 0x1ac14]
push 0
push eax
call fcn.00433c26
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.00433c26
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 0x42c8d4
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 0x42ca88
test esi, esi
je 0x42ca95
xor ecx, ecx
jmp 0x42c910
cmp ecx, dword [esi]
jae 0x42ca82
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 0x42caed
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 0x42c9b5
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 0x42c9af
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 0x42ca31
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 0x42ca1d
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 0x42ca37
inc ecx
jmp 0x42c580
inc ecx
jmp 0x42c6a1
mov eax, dword [ebp - 0x1af04]
test ebx, ebx
je 0x42ca5c
test eax, eax
je 0x42ca5c
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 0x42ca72
push eax
call ebx
add esp, 4
mov eax, dword [ebp - 0x1aedc]
test eax, eax
je 0x42ca82
push eax
call ebx
add esp, 4
mov ebx, dword [ebp - 0x1aef8]
test esi, esi
je 0x42ca95
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 0x437b78
push 0x37010102
push eax
call dword [ecx + 0x1c]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42cbba
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 0x42caf3
mov dword [edi + 0x1c], 0x80044005
jmp 0x42cb96
inc ecx
jmp 0x42c910
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 0x42cb8f
cmp dword [ebp - 0x1aee4], 0
je 0x42cb8f
lea esi, [ebp - 0x1414]
jmp 0x42cb40
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 0x42cb85
mov eax, dword [ebp - 0x1aee4]
add esi, ecx
sub eax, ecx
mov dword [ebp - 0x1aee4], eax
test eax, eax
jne 0x42cb40
cmp dword [edi + 0x1c], 0
jge 0x42cb07
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 0x4366b0
push 0
call dword [sym.imp.MSVCR120.dll_wcstok_s]
mov ebx, eax
mov dword [ebp - 0x1aef8], eax
jmp 0x42c7a1
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], 0x4374f0
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x20]
mov dword [edi + 0x1c], eax
jmp 0x42cc46
cmp dword [ebp - 0x1aed4], 0
mov dword [ebp - 4], 0xffffffff
je 0x42cc70
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 0x42cd98
cmp byte [edi + 0x20], 0
jne 0x42ccf6
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 0x42ccef
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 0x42cd98
xor bl, bl
jmp 0x42cd98
mov eax, dword [ebp - 0x1aed0]
lea edx, [ebp - 0x1af20]
push edx
lea edx, [ebp - 0x1af58]
push edx
mov ecx, dword [eax]
push 0
push 0x437510
push eax
call dword [ecx + 0x14]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42cd8a
cmp eax, 0x40380
je 0x42cd7c
cmp dword [ebp - 0x1af58], 1
jne 0x42cd7c
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 0x42cddd
mov ecx, dword [edi + 0x14]
push eax
call fcn.0042aa70
mov ecx, dword [ebp - 0x1aeec]
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
mov al, bl
jmp 0x42cdf6
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.00433bb2
mov esp, ebp
pop ebp
ret