Function at 0x1002c803
Capabilities:
Check if file exists
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x52cc]
mov eax, 0x52cc
call fcn.100333a0
push 0xffffffffffffffff
push 0x1005d8c6
mov eax, dword fs:[0]
push eax
sub esp, 0x16c
mov eax, dword [0x10081730]
xor eax, ebp
mov dword [ebp + 0x52c8], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push dword [ebp + 0x52e4]
mov eax, dword [ebp + 0x52dc]
mov esi, dword [ebp + 0x52d4]
mov edi, dword [ebp + 0x52d8]
sub esp, 0x1c
xor ebx, ebx
mov dword [ebp - 0x18], ebx
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
mov dword [ebp - 0x1c], esi
call fcn.10001681
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x10], esp
push edi
mov dword [ebp - 4], ebx
call fcn.10001681
or dword [ebp - 4], 0xffffffff
lea eax, [ebp + 0x3c8]
push eax
call fcn.1002a868
add esp, 0x24
xor edi, edi
lea eax, [ebp + 0x3c8]
mov ecx, esp
mov dword [ebp - 0x20], esp
inc edi
push eax
mov dword [ebp - 4], edi
call fcn.1000163e
lea eax, [ebp + 0x470]
push eax
call fcn.1002ba49
add esp, 0x20
cmp dword [ebp + 0x488], 8
mov eax, dword [ebp + 0x474]
mov byte [ebp - 4], 2
jae 0x1002c8d4
lea eax, [ebp + 0x474]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1002c90c
push 0x10071248
mov ecx, esi
call fcn.10001681
push ebx
push edi
lea ecx, [ebp + 0x470]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp + 0x3c8]
call fcn.1000131a
mov eax, esi
jmp 0x1002d238
cmp dword [ebp + 0x488], 8
mov eax, dword [ebp + 0x474]
jae 0x1002c921
lea eax, [ebp + 0x474]
push ebx
push 0x80
push 3
push ebx
push ebx
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0x10], eax
je 0x1002c8df
push 0x4e1e
lea eax, [ebp + 0x4aa]
push ebx
push eax
mov word [ebp + 0x4a8], bx
call fcn.10031d30
add esp, 0xc
push ebx
lea eax, [ebp - 0x44]
push eax
push 0x270f
lea eax, [ebp + 0x4a8]
push eax
push dword [ebp - 0x10]
mov dword [ebp - 0x44], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1002c993
cmp dword [ebp - 0x10], ebx
je 0x1002c8df
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1002c8df
lea eax, [ebp + 0x438]
push eax
call fcn.1001e3b3
lea eax, [ebp + 0x438]
push eax
lea eax, [ebp + 0x48c]
push eax
mov byte [ebp - 4], 3
call fcn.10007674
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x438]
mov byte [ebp - 4], 4
call fcn.10001537
push ebx
push edi
lea ecx, [ebp + 0x48c]
call fcn.1000131a
push 7
pop esi
push ebx
lea ecx, [ebp + 0x3e4]
mov dword [ebp + 0x3fc], esi
call fcn.100011bf
push ebx
lea ecx, [ebp + 0x48c]
mov dword [ebp + 0x4a4], esi
call fcn.100011bf
push dword [ebp + 0x52e0]
lea eax, [ebp + 0x3e4]
push dword [0x100815c8]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp + 0x48c]
push eax
call fcn.1001bf6f
add esp, 0x10
push ebx
push edi
lea ecx, [ebp + 0x48c]
call fcn.1000131a
push ebx
lea ecx, [ebp + 0x454]
mov dword [ebp + 0x46c], esi
call fcn.100011bf
push ebx
lea ecx, [ebp + 0x3ac]
mov dword [ebp + 0x3c4], esi
call fcn.100011bf
push ebx
lea ecx, [ebp + 0x48c]
mov dword [ebp + 0x4a4], esi
call fcn.100011bf
lea eax, [ebp + 0x454]
push eax
lea eax, [ebp + 0x3ac]
push eax
lea eax, [ebp + 0x48c]
push eax
mov byte [ebp - 4], 9
call fcn.1001bc77
add esp, 0xc
push ebx
push edi
lea ecx, [ebp + 0x48c]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp + 0x3ac]
call fcn.1000131a
mov dword [ebp + 0x418], esi
push ebx
lea ecx, [ebp + 0x400]
call fcn.100011bf
lea eax, [ebp + 0x48c]
push eax
mov byte [ebp - 4], 0xa
call fcn.1001bd9a
pop ecx
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x400]
mov byte [ebp - 4], 0xb
call fcn.10001537
push ebx
push edi
lea ecx, [ebp + 0x48c]
call fcn.1000131a
push ebx
lea ecx, [ebp + 0x41c]
mov dword [ebp + 0x434], esi
call fcn.100011bf
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x10]
mov byte [ebp - 4], 0xc
call dword [sym.imp.KERNEL32.dll_GetFileTime]
cmp dword [ebp - 0x10], ebx
je 0x1002cb23
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x38]
push eax
call esi
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x40]
push eax
call esi
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x3c]
jne 0x1002cb4d
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x40]
je 0x1002cbb0
mov dword [ebp - 0x10], ebx
mov ax, word [ebp - 0x30]
cmp ax, word [ebp - 0x54]
jne 0x1002cb8c
mov ax, word [ebp - 0x2e]
cmp ax, word [ebp - 0x52]
jne 0x1002cb8c
mov ax, word [ebp - 0x2a]
cmp ax, word [ebp - 0x4e]
jne 0x1002cb8c
mov ax, word [ebp - 0x28]
cmp ax, word [ebp - 0x4c]
jne 0x1002cb8c
mov ax, word [ebp - 0x26]
cmp ax, word [ebp - 0x4a]
jne 0x1002cb8c
mov ax, word [ebp - 0x24]
cmp ax, word [ebp - 0x48]
je 0x1002cbb0
sub dword [ebp - 0x40], 0x989680
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x40]
push eax
call esi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x1002cb50
push 0x10071248
jmp 0x1002d1d2
mov dword [ebp - 0x20], ebx
mov esi, 0x10070a2c
movzx eax, word [ebp - 0x24]
push eax
movzx eax, word [ebp - 0x26]
push eax
movzx eax, word [ebp - 0x28]
push eax
movzx eax, word [ebp - 0x2a]
push eax
movzx eax, word [ebp - 0x2e]
push eax
movzx eax, word [ebp - 0x30]
push eax
lea eax, [ebp + 0x41c]
push str._d_d_d_d_d_d
push eax
call fcn.10007397
sub dword [ebp - 0x38], 0x989680
add esp, 0x20
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
push fcn.100014cc
push fcn.10001dc7
push 0xa
push 0x1c
lea eax, [ebp + 0x118]
push eax
call fcn.10033d38
push 0xffffffffffffffff
push ebx
lea eax, [ebp + 0x3e4]
push eax
lea ecx, [ebp + 0x118]
mov byte [ebp - 4], 0xd
call fcn.10001537
push 0xffffffffffffffff
push ebx
lea eax, [ebp + 0x454]
push eax
lea ecx, [ebp + 0x134]
call fcn.10001537
push 0xffffffffffffffff
push ebx
lea eax, [ebp + 0x400]
push eax
lea ecx, [ebp + 0x150]
call fcn.10001537
push esi
lea eax, [ebp + 0x438]
push eax
lea eax, [ebp - 0xa8]
push eax
call fcn.10004fad
lea ecx, [ebp + 0x3e4]
push ecx
push eax
lea eax, [ebp + 0x390]
push eax
mov byte [ebp - 4], 0xe
call fcn.1000971d
push esi
push eax
lea eax, [ebp + 0x374]
push eax
mov byte [ebp - 4], 0xf
call fcn.10004fad
lea ecx, [ebp + 0x41c]
push ecx
push eax
lea eax, [ebp + 0x48c]
push eax
mov byte [ebp - 4], 0x10
call fcn.1000971d
add esp, 0x30
push ebx
push edi
lea ecx, [ebp + 0x374]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp + 0x390]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0x14
call fcn.1000131a
push esi
lea eax, [ebp + 0x438]
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.10004fad
lea ecx, [ebp + 0x454]
push ecx
push eax
lea eax, [ebp - 0x70]
push eax
mov byte [ebp - 4], 0x15
call fcn.1000971d
push esi
push eax
lea eax, [ebp - 0xcc]
push eax
mov byte [ebp - 4], 0x16
call fcn.10004fad
lea ecx, [ebp + 0x41c]
push ecx
push eax
lea eax, [ebp + 0x3ac]
push eax
mov byte [ebp - 4], 0x17
call fcn.1000971d
add esp, 0x30
push ebx
push edi
lea ecx, [ebp - 0xcc]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp - 0x70]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0x1b
call fcn.1000131a
push esi
lea eax, [ebp + 0x438]
push eax
lea eax, [ebp - 0xe8]
push eax
call fcn.10004fad
lea ecx, [ebp + 0x400]
push ecx
push eax
lea eax, [ebp - 0x104]
push eax
mov byte [ebp - 4], 0x1c
call fcn.1000971d
push esi
mov byte [ebp - 4], 0x1d
push eax
lea eax, [ebp - 0xa8]
push eax
call fcn.10004fad
lea ecx, [ebp + 0x41c]
push ecx
push eax
lea eax, [ebp + 0x33c]
push eax
mov byte [ebp - 4], 0x1e
call fcn.1000971d
add esp, 0x30
push ebx
push edi
lea ecx, [ebp - 0xa8]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp - 0x104]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 0x22
call fcn.1000131a
push fcn.100014cc
push fcn.10001dc7
push 0xa
push 0x1c
lea eax, [ebp]
push eax
call fcn.10033d38
lea eax, [ebp + 0x3e4]
push eax
mov byte [ebp - 4], 0x23
call fcn.1002bef7
cmp al, 1
pop ecx
jne 0x1002ce16
lea eax, [ebp + 0x48c]
jmp 0x1002ce2b
push 0x10072c7c
lea ecx, [ebp - 0x70]
call fcn.10001681
or dword [ebp - 0x18], 2
mov byte [ebp - 4], 0x24
push 0x8004
push dword [ebp + 0x52e4]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x10], esp
push eax
call fcn.1000163e
lea eax, [ebp - 0x8c]
push eax
call fcn.1002a3c1
add esp, 0x28
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp]
mov dword [ebp - 4], 0x25
call fcn.10001537
push ebx
push edi
lea ecx, [ebp - 0x8c]
call fcn.1000131a
test byte [ebp - 0x18], 2
mov dword [ebp - 4], 0x23
je 0x1002ce8e
and dword [ebp - 0x18], 0xfffffffd
push ebx
push edi
lea ecx, [ebp - 0x70]
call fcn.1000131a
lea eax, [ebp + 0x454]
push eax
call fcn.1002bef7
cmp al, 1
pop ecx
jne 0x1002cea7
lea eax, [ebp + 0x3ac]
jmp 0x1002cebc
push 0x10072c7c
lea ecx, [ebp - 0x70]
call fcn.10001681
or dword [ebp - 0x18], 4
mov byte [ebp - 4], 0x26
push 0x8004
push dword [ebp + 0x52e4]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x10], esp
push eax
call fcn.1000163e
lea eax, [ebp - 0x8c]
push eax
call fcn.1002a3c1
add esp, 0x28
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x1c]
mov dword [ebp - 4], 0x27
call fcn.10001537
push ebx
push edi
lea ecx, [ebp - 0x8c]
call fcn.1000131a
test byte [ebp - 0x18], 4
mov dword [ebp - 4], 0x23
je 0x1002cf1f
and dword [ebp - 0x18], 0xfffffffb
push ebx
push edi
lea ecx, [ebp - 0x70]
call fcn.1000131a
lea eax, [ebp + 0x400]
push eax
call fcn.1002bef7
cmp al, 1
pop ecx
jne 0x1002cf38
lea eax, [ebp + 0x33c]
jmp 0x1002cf4d
push 0x10072c7c
lea ecx, [ebp - 0x70]
call fcn.10001681
or dword [ebp - 0x18], 8
mov byte [ebp - 4], 0x28
push 0x8004
push dword [ebp + 0x52e4]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x10], esp
push eax
call fcn.1000163e
lea eax, [ebp - 0x8c]
push eax
call fcn.1002a3c1
add esp, 0x28
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x38]
mov dword [ebp - 4], 0x29
call fcn.10001537
push ebx
push edi
lea ecx, [ebp - 0x8c]
call fcn.1000131a
test byte [ebp - 0x18], 8
mov dword [ebp - 4], 0x23
je 0x1002cfb0
and dword [ebp - 0x18], 0xfffffff7
push ebx
push edi
lea ecx, [ebp - 0x70]
call fcn.1000131a
lea eax, [ebp + 0x4a8]
push eax
lea ecx, [ebp + 0x358]
call fcn.10001681
push ebx
push ebx
push 0x10070ab8
lea ecx, [ebp + 0x2a4]
mov byte [ebp - 4], 0x2a
call fcn.1002a356
lea eax, [ebp + 0x2a4]
push eax
lea eax, [ebp + 0x358]
push eax
lea ecx, [ebp + 0x2e8]
mov byte [ebp - 4], 0x2b
call fcn.1002a261
lea eax, [ebp + 0x230]
push eax
lea ecx, [ebp + 0x2e8]
mov byte [ebp - 4], 0x2c
call fcn.1002bd36
lea eax, [ebp - 0x178]
push eax
lea ecx, [ebp + 0x2e8]
mov byte [ebp - 4], 0x2d
call fcn.1002bd90
lea ecx, [ebp + 0x230]
push ecx
mov ecx, eax
call fcn.10029f82
neg al
sbb al, al
inc al
lea ecx, [ebp - 0x178]
mov byte [ebp - 0x11], al
call fcn.1002a14b
cmp byte [ebp - 0x11], bl
je 0x1002d13c
mov dword [ebp - 0x10], ebx
lea eax, [ebp + 0x288]
push eax
lea ecx, [ebp + 0x374]
call fcn.1000163e
mov eax, dword [ebp - 0x10]
lea eax, [ebp + eax]
push eax
lea ecx, [ebp + 0x390]
mov byte [ebp - 4], 0x2e
call fcn.1000163e
lea eax, [ebp + 0x374]
push eax
lea eax, [ebp + 0x390]
push eax
mov byte [ebp - 4], 0x2f
call fcn.1000707e
cmp al, 1
pop ecx
pop ecx
jne 0x1002d0ae
mov eax, dword [ebp - 0x10]
lea eax, [ebp + eax + 0x118]
push eax
call fcn.1002bef7
cmp al, 1
pop ecx
je 0x1002d25b
add dword [ebp - 0x10], 0x1c
cmp dword [ebp - 0x10], 0xfc
jg 0x1002d308
push ebx
push edi
lea ecx, [ebp + 0x390]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp + 0x374]
mov byte [ebp - 4], 0x2d
call fcn.1000131a
push ebx
lea eax, [ebp + 0x230]
push eax
lea eax, [ebp - 0x178]
push eax
call fcn.1002bdeb
add esp, 0xc
lea ecx, [ebp - 0x178]
call fcn.1002a14b
lea eax, [ebp - 0x178]
push eax
lea ecx, [ebp + 0x2e8]
call fcn.1002bd90
lea ecx, [ebp + 0x230]
push ecx
mov ecx, eax
call fcn.10029f82
neg al
sbb al, al
inc al
lea ecx, [ebp - 0x178]
mov byte [ebp - 0x11], al
call fcn.1002a14b
cmp byte [ebp - 0x11], bl
jne 0x1002d04f
lea ecx, [ebp + 0x230]
call fcn.1002a14b
lea ecx, [ebp + 0x2f8]
call fcn.1001c934
lea ecx, [ebp + 0x2a4]
call fcn.1001c934
push ebx
push edi
lea ecx, [ebp + 0x358]
call fcn.1000131a
push fcn.100014cc
push 0xa
push 0x1c
lea eax, [ebp]
push eax
mov byte [ebp - 4], 0x22
call fcn.10033b03
push ebx
push edi
lea ecx, [ebp + 0x33c]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp + 0x3ac]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp + 0x48c]
call fcn.1000131a
push fcn.100014cc
push 0xa
push 0x1c
lea eax, [ebp + 0x118]
push eax
mov byte [ebp - 4], 0xc
call fcn.10033b03
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x1002cbb8
push 0x10072c78
mov ecx, dword [ebp - 0x1c]
call fcn.10001681
push ebx
push edi
lea ecx, [ebp + 0x41c]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp + 0x400]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp + 0x454]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp + 0x3e4]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp + 0x438]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp + 0x470]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp + 0x3c8]
call fcn.1000131a
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x52c8]
xor ecx, ebp
call fcn.10031c08
add ebp, 0x52cc
leave
ret
push 0x10070ad0
mov ecx, dword [ebp - 0x1c]
call fcn.10001681
push ebx
push edi
lea ecx, [ebp + 0x390]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp + 0x374]
call fcn.1000131a
lea ecx, [ebp + 0x230]
call fcn.1002a14b
lea ecx, [ebp + 0x2f8]
call fcn.1001c934
lea ecx, [ebp + 0x2a4]
call fcn.1001c934
push ebx
push edi
lea ecx, [ebp + 0x358]
call fcn.1000131a
mov esi, fcn.100014cc
push esi
push 0xa
push 0x1c
lea eax, [ebp]
push eax
mov byte [ebp - 4], 0x22
call fcn.10033b03
push ebx
push edi
lea ecx, [ebp + 0x33c]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp + 0x3ac]
call fcn.1000131a
push ebx
push edi
lea ecx, [ebp + 0x48c]
call fcn.1000131a
push esi
push 0xa
push 0x1c
lea eax, [ebp + 0x118]
push eax
mov byte [ebp - 4], 0xc
call fcn.10033b03
jmp 0x1002d1da
push 0x10071248
jmp 0x1002d260