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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x436390
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1af7c
call fcn.00434c80
mov eax, dword [0x442f9c]
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
mov dword [ebp - 0x1aed4], edi
cmp dword [edi + 4], 0
mov dword [ebp - 0x1af28], edi
mov dword [ebp - 0x1aefc], edi
mov byte [ebp - 0x1aec9], 0
je 0x42d486
cmp dword [edi + 8], 0
je 0x42d486
cmp dword [edi + 0xc], 0
je 0x42d486
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x1aeec], eax
mov eax, dword [edi]
test eax, eax
je 0x42d47e
mov dword [ebp - 0x1af08], 0
lea ecx, [ebp - 0x1af08]
mov esi, dword [eax]
push ecx
push 0
push eax
mov esi, dword [esi + 0x10]
mov ecx, esi
call dword [0x438430]
call esi
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42d47e
mov eax, dword [ebp - 0x1af08]
push 0
push 0x439a6c
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x1c]
mov ecx, esi
call dword [0x438430]
call esi
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42d468
mov dword [ebp - 0x1af04], 0
mov eax, dword [ebp - 0x1af08]
lea ecx, [ebp - 0x1af04]
push ecx
push 0
push 1
mov esi, dword [eax]
push eax
mov esi, dword [esi + 0x4c]
mov ecx, esi
call dword [0x438430]
call esi
mov esi, dword [ebp - 0x1af04]
mov dword [edi + 0x1c], eax
mov dword [ebp - 0x1af10], esi
test esi, esi
je 0x42d468
cmp eax, 0x40380
je 0x42c767
test eax, eax
js 0x42c767
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0xc]
mov dword [ebp - 0x1aed0], ecx
movzx eax, word [eax + 8]
mov edx, eax
mov dword [ebp - 0x1af0c], edx
test ax, ax
jne 0x42c75e
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x1aee4], eax
xor eax, eax
mov dword [ebp - 0x1aef4], eax
cmp dword [esi], eax
jbe 0x42c734
mov edi, dword [ebp - 0x1aee4]
nop dword [eax]
mov edx, dword [ecx]
test edx, edx
je 0x42c71a
mov eax, dword [edi]
push edx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x438430]
mov ecx, edi
call esi
mov ecx, dword [ebp - 0x1aed0]
mov eax, dword [ebp - 0x1aef4]
mov esi, dword [ebp - 0x1af10]
inc eax
add ecx, 0xc
mov dword [ebp - 0x1aef4], eax
mov dword [ebp - 0x1aed0], ecx
cmp eax, dword [esi]
jb 0x42c6f0
mov edi, dword [ebp - 0x1aed4]
mov eax, dword [ebp - 0x1aee4]
push esi
mov eax, dword [eax]
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x438430]
mov ecx, dword [ebp - 0x1aee4]
call esi
mov edx, dword [ebp - 0x1af0c]
xor esi, esi
mov dword [ebp - 0x1af04], esi
test dx, dx
je 0x42c662
test esi, esi
je 0x42d468
mov ecx, dword [edi]
lea edi, [ebp - 0x1aee8]
mov eax, dword [esi + 0xc]
push edi
push 4
push 0
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
push eax
push edx
push dword [ebp - 0x1aeec]
mov dword [ebp - 0x1aee8], 0
mov esi, dword [ecx]
push ecx
mov esi, dword [esi + 0x14]
mov ecx, esi
call dword [0x438430]
call esi
mov edi, dword [ebp - 0x1aed4]
mov ecx, eax
mov dword [edi + 0x1c], ecx
test ecx, ecx
js 0x42d3ee
mov eax, dword [edi + 0x28]
or eax, dword [edi + 0x2c]
je 0x42c866
mov eax, dword [ebp - 0x1aee8]
lea ecx, [ebp - 0x1af00]
push ecx
lea ecx, [ebp - 0x1af40]
mov dword [ebp - 0x1af40], 0
push ecx
mov dword [ebp - 0x1af00], 0
mov esi, dword [eax]
push 0
push 0x439a78
push eax
mov esi, dword [esi + 0x14]
mov ecx, esi
call dword [0x438430]
call esi
mov edx, dword [ebp - 0x1af00]
mov ecx, eax
mov dword [edi + 0x1c], ecx
test edx, edx
je 0x42c855
test ecx, ecx
jne 0x42c837
mov eax, dword [edx + 8]
shl eax, 0xa
xor ecx, ecx
test eax, eax
je 0x42c837
cmp dword [edi + 0x2c], ecx
jb 0x42c837
ja 0x42c830
cmp dword [edi + 0x28], eax
jb 0x42c837
mov dword [edi + 0x1c], 0x8004666d
mov edi, dword [edi + 0x14]
push edx
mov eax, dword [edi]
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x438430]
mov ecx, edi
call esi
mov edi, dword [ebp - 0x1aed4]
mov ecx, dword [edi + 0x1c]
cmp ecx, 0x8004010f
jne 0x42c866
mov dword [edi + 0x1c], 0
jmp 0x42c86e
test ecx, ecx
js 0x42d3d2
mov eax, dword [ebp - 0x1aee8]
lea ecx, [ebp - 0x1af10]
push ecx
lea ecx, [ebp - 0x1af38]
push ecx
mov esi, dword [eax]
push 0
push 0x439a80
push eax
mov esi, dword [esi + 0x14]
mov ecx, esi
call dword [0x438430]
call esi
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42d3d2
cmp eax, 0x40380
je 0x42d3b8
cmp dword [ebp - 0x1af38], 1
jne 0x42d3b8
mov eax, dword [ebp - 0x1af10]
lea edi, [ebp - 0x1aee4]
push edi
lea edi, [ebp - 0x1af3c]
push edi
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x1aee8]
push 0x10
push 0
mov dword [ebp - 0x1aee4], 0
mov dword [ebp - 0x1af3c], 0
mov esi, dword [eax]
push ecx
push edx
push eax
mov esi, dword [esi + 0x44]
mov ecx, esi
call dword [0x438430]
call esi
mov edi, dword [ebp - 0x1aed4]
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42d3b8
mov eax, dword [ebp - 0x1aee4]
lea ecx, [ebp - 0x1aed8]
push ecx
mov dword [ebp - 0x1aed8], 0
push 0
mov esi, dword [eax]
push 0
push eax
mov esi, dword [esi + 0x4c]
mov ecx, esi
call dword [0x438430]
call esi
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42d3a2
mov ecx, dword [edi]
lea eax, [ebp - 0x1aef4]
push eax
xor eax, eax
mov dword [ebp - 0x1aef4], 0
cmp byte [edi + 0x20], al
mov esi, dword [ecx]
setne al
push eax
push 0
mov esi, dword [esi + 0x18]
push 0
push ecx
mov ecx, esi
call dword [0x438430]
call esi
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42d224
cmp byte [edi + 0x20], 0
mov ecx, edi
sete al
movzx eax, al
push eax
push dword [ebp - 0x1aed8]
push dword [ebp - 0x1aef4]
call fcn.0042bb80
test al, al
je 0x42d20e
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x1aee0], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x1aed0], eax
test eax, eax
je 0x42cb15
xorps xmm0, xmm0
lea ecx, [ebp - 0x1af14]
movups xmmword [ebp - 0x1af60], xmm0
mov dword [ebp - 0x1af58], eax
mov eax, dword [ebp - 0x1aed8]
push ecx
mov dword [ebp - 0x1af60], 0x1000001f
lea ecx, [ebp - 0x1af60]
push ecx
mov esi, dword [eax]
push 1
push eax
mov esi, dword [esi + 0x20]
mov ecx, esi
call dword [0x438430]
call esi
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42caf0
mov edx, dword [ebp - 0x1af14]
test edx, edx
je 0x42cb15
xor ecx, ecx
nop dword [eax + eax]
cmp ecx, dword [edx]
jae 0x42caf6
lea eax, [ecx + ecx*2]
cmp dword [edx + eax*4 + 0xc], 0x80040103
movq xmm0, qword [edx + eax*4 + 4]
movq qword [ebp - 0x1af8c], xmm0
jne 0x42cf33
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push dword [ebp - 0x1aed0]
mov dword [ebp - 0x1af60], 0x1000001e
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, eax
test esi, esi
je 0x42caf0
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
mov dword [ebp - 0x1aedc], eax
push 0
push 0
push esi
push eax
push esi
push dword [ebp - 0x1aed0]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
je 0x42cadc
mov eax, dword [ebp - 0x1aedc]
lea ecx, [ebp - 0x1af60]
mov dword [ebp - 0x1af58], eax
mov eax, dword [ebp - 0x1aed8]
push 0
push ecx
push 1
mov esi, dword [eax]
push eax
mov esi, dword [esi + 0x20]
mov ecx, esi
call dword [0x438430]
call esi
mov dword [edi + 0x1c], eax
mov eax, dword [ebp - 0x1aedc]
test eax, eax
je 0x42caf0
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov edx, dword [ebp - 0x1af14]
test edx, edx
je 0x42cb15
mov edi, dword [edi + 0x14]
push edx
mov eax, dword [edi]
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x438430]
mov ecx, edi
call esi
mov edi, dword [ebp - 0x1aed4]
mov eax, dword [edi + 0x34]
mov dword [ebp - 0x1aed0], eax
test eax, eax
je 0x42cc66
xorps xmm0, xmm0
lea ecx, [ebp - 0x1af18]
movups xmmword [ebp - 0x1af50], xmm0
mov dword [ebp - 0x1af48], eax
mov eax, dword [ebp - 0x1aed8]
push ecx
mov dword [ebp - 0x1af50], 0x37001f
lea ecx, [ebp - 0x1af50]
push ecx
mov esi, dword [eax]
push 1
push eax
mov esi, dword [esi + 0x20]
mov ecx, esi
call dword [0x438430]
call esi
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42cc41
mov edx, dword [ebp - 0x1af18]
test edx, edx
je 0x42cc66
xor ecx, ecx
cmp ecx, dword [edx]
jae 0x42cc47
lea eax, [ecx + ecx*2]
cmp dword [edx + eax*4 + 0xc], 0x80040103
movq xmm0, qword [edx + eax*4 + 4]
movq qword [ebp - 0x1af8c], xmm0
jne 0x42cf39
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push dword [ebp - 0x1aed0]
mov dword [ebp - 0x1af50], 0x37001e
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, eax
test esi, esi
je 0x42cc41
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
mov dword [ebp - 0x1aedc], eax
push 0
push 0
push esi
push eax
push esi
push dword [ebp - 0x1aed0]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
je 0x42cc2d
mov eax, dword [ebp - 0x1aedc]
lea ecx, [ebp - 0x1af50]
mov dword [ebp - 0x1af48], eax
mov eax, dword [ebp - 0x1aed8]
push 0
push ecx
push 1
mov esi, dword [eax]
push eax
mov esi, dword [esi + 0x20]
mov ecx, esi
call dword [0x438430]
call esi
mov dword [edi + 0x1c], eax
mov eax, dword [ebp - 0x1aedc]
test eax, eax
je 0x42cc41
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov edx, dword [ebp - 0x1af18]
test edx, edx
je 0x42cc66
mov edi, dword [edi + 0x14]
push edx
mov eax, dword [edi]
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x438430]
mov ecx, edi
call esi
mov edi, dword [ebp - 0x1aed4]
mov eax, dword [edi + 0x38]
test eax, eax
je 0x42d173
push eax
lea eax, [ebp - 0x19be4]
push 0xcbe8
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 0xc
lea eax, [ebp - 0x1af24]
push eax
lea eax, [ebp - 0x19be4]
push 0x438c74
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcstok_s]
mov dword [ebp - 0x1af34], 0
add esp, 0xc
mov dword [ebp - 0x1aed0], eax
test eax, eax
je 0x42d173
mov eax, dword [ebp - 0x1aed8]
lea ecx, [ebp - 0x1aef0]
push ecx
lea ecx, [ebp - 0x1af34]
mov dword [ebp - 0x1aef0], 0
push ecx
mov esi, dword [eax]
push 0
push 0
push eax
mov esi, dword [esi + 0x40]
mov ecx, esi
call dword [0x438430]
call esi
mov dword [edi + 0x1c], eax
test eax, eax
js 0x42d15a
push 0x30
lea eax, [ebp - 0x1ac14]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov esi, dword [ebp - 0x1aed0]
lea eax, [ebp - 0x414]
push 0x100
push eax
push 0x100
lea eax, [ebp - 0x214]
mov dword [ebp - 0x1ac14], 0x37050003
push eax
push 0
push 0
push 0
push 0
push esi
mov dword [ebp - 0x1ac0c], 1
mov dword [ebp - 0x1abfc], 0
mov dword [ebp - 0x1abec], 0
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wsplitpath_s]
add esp, 0x30
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x214]
push 0x100
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat_s]
add esp, 0xc
mov dword [ebp - 0x1ac04], 0x3704001f
lea eax, [ebp - 0x214]
mov dword [ebp - 0x1abfc], eax
lea eax, [ebp - 0x1aec8]
push 0x2b4
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x1aec8]
push 0x200
push 0x2b4
push eax
push 0xd0
push esi
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
test eax, eax
je 0x42cddf
lea eax, [ebp - 0x1aebc]
mov dword [ebp - 0x1abf4], 0x3001001f
mov dword [ebp - 0x1abec], eax
mov eax, dword [ebp - 0x1aef0]
lea ecx, [ebp - 0x1af2c]
push ecx
invalid