Function at 0x10098d6a
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x3c
cmp dword [ebp + 0x2c], 0
push ebx
push esi
mov ebx, ecx
push edi
mov edi, dword [ebp + 0x28]
mov dword [ebp - 0xc], ebx
je 0x100bf79e
mov esi, dword [ebp + 0x20]
mov eax, dword [ebp + 0xc]
test esi, esi
je 0x10098d9a
cmp esi, 3
jne 0x100bf7b7
mov ecx, dword [0x101dc9d8]
mov dword [ebp - 0x14], ecx
mov ecx, dword [0x101dc9dc]
mov dword [ebp - 0x18], ecx
xor ecx, ecx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x24]
push 0x1a4
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x24], ecx
mov byte [ebp - 0x34], cl
mov dword [ebx + 0x1d8], esi
mov dword [ebx + 0x3c], eax
call fcn.100b84d0
pop ecx
test eax, eax
je 0x100bf7ed
mov ecx, eax
call fcn.100a565f
mov dword [ebp - 4], eax
test eax, eax
je 0x100bf7f4
test esi, esi
je 0x100bf813
mov ebx, dword [ebp + 0x10]
cmp esi, 2
je 0x100bfc36
cmp esi, 3
jne 0x100bfb99
mov edx, eax
mov ecx, ebx
call fcn.100992d1
mov esi, eax
test esi, esi
js 0x100bfc49
mov eax, dword [ebp - 4]
mov ebx, dword [ebp - 0xc]
push 0
mov ecx, dword [eax + 0x24]
add ecx, 0x120
lea edx, [ebx + 0x40]
call fcn.100a6ce0
mov esi, eax
test esi, esi
js 0x100bfe81
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov eax, dword [eax + 0x84]
test eax, eax
jne 0x100bfe8b
mov ecx, dword [ebx + 0x40]
mov eax, dword [ecx]
mov esi, dword [eax + 0x24]
mov eax, ebx
add eax, 0x48
push eax
push ecx
cmp esi, fcn.100a6690
jne 0x100bfead
call fcn.100a6690
mov esi, eax
test esi, esi
js 0x100bfebc
mov ecx, dword [ebp - 4]
mov edx, ebx
mov eax, dword [ecx + 0x24]
mov eax, dword [eax + 0x18]
mov dword [edx + 0x154], eax
mov eax, dword [ecx + 0x24]
mov ecx, dword [eax + 0x104]
test ecx, ecx
jne 0x100bfec6
mov ebx, dword [edx + 0x128]
mov ecx, dword [edx + 0x12c]
cmp ecx, dword [ebp - 0x18]
jb 0x10098ec7
ja 0x100bfedd
cmp ebx, dword [ebp - 0x14]
ja 0x100bfedd
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x44]
test eax, eax
je 0x100bfeed
cmp dword [eax + 0x10], 0
jne 0x100bff09
test edi, edi
jne 0x10098f3b
mov ecx, dword [ebp + 0x2c]
xor ebx, ebx
mov eax, dword [ebp - 4]
mov dword [ecx], eax
mov edi, dword [ebp - 8]
test ebx, ebx
jne 0x100bffa7
test edi, edi
jne 0x100bffb4
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x100bffc3
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x100bffd2
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100bffe1
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x100bfff0
cmp byte [ebp - 0x34], 0
jne 0x10098f43
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 0x28
mov eax, dword [ebp + 0x20]
mov dword [edi + 4], eax
jmp 0x10098ee3
call fcn.100edd2d
jmp 0x10098f32
push 0x10056bdc
mov edx, 0x637
mov ecx, 0x1002203c
call fcn.100e970f
jmp 0x10098d87
cmp esi, 0xffffffff
je 0x10098d9a
cmp esi, 2
je 0x10098d9a
test eax, eax
jne 0x10098d9a
push 0x10056ba8
mov edx, 0x638
mov ecx, 0x1002203c
call fcn.100e970f
mov eax, dword [ebp + 0xc]
jmp 0x10098d9a
xor eax, eax
jmp 0x10098de9
push 0x10056c24
push 1
mov esi, 0x8007000e
push esi
push 0x4000000
call fcn.100ab973
add esp, 0x10
jmp 0x10098f32
test edi, edi
je 0x100bfb6c
mov ecx, dword [ebp + 0x10]
lea ebx, [edi + 8]
mov edx, ebx
mov dword [ebp - 0x2c], ebx
call fcn.100eb4ef
mov esi, eax
test esi, esi
jns 0x100bf8d4
push dword [ebp + 0x10]
jmp 0x100bf83b
push ebx
push 0x10056bf0
jmp 0x100bf850
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
push dword [eax + 4]
push 0x1004c03c
push 1
push esi
push 0x4000000
jmp 0x100bf866
push dword [ebp + 0x1c]
push 0x10056f64
push 1
push esi
push ebx
call fcn.100ab973
add esp, 0x14
jmp 0x100bf8cc
mov edx, 0x100082e8
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
movzx eax, di
push eax
mov eax, esi
shrd edi, eax, 0x10
movzx eax, di
push eax
movzx eax, si
push eax
mov eax, dword [ebp - 0xc]
shr esi, 0x10
push esi
movzx eax, word [eax + 0x128]
push eax
mov eax, ecx
shrd ebx, eax, 0x10
movzx eax, bx
push eax
movzx eax, cx
push eax
shr ecx, 0x10
push ecx
push edx
push 0x10057210
push 1
mov esi, 0x800f0823
push esi
mov ecx, esi
call fcn.10114eaa
push eax
call fcn.100ab973
add esp, 0x34
mov ebx, dword [ebp - 4]
jmp 0x10098eed
mov ecx, ebx
call fcn.100b28e1
mov esi, eax
test esi, esi
jns 0x100bf8f4
push dword [ebx]
jmp 0x100bf8ea
mov eax, dword [ebp - 0x2c]
push dword [eax]
push 0x10056c80
jmp 0x100bf850
mov esi, dword [ebp + 0x18]
test esi, esi
je 0x100bf960
push esi
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x100bf90b
test al, 0x10
jne 0x100bf91d
mov ecx, esi
call fcn.100ec268
test eax, eax
jns 0x100bf91d
xor eax, eax
lea ebx, [edi + 0xc]
jmp 0x100bf95c
push esi
lea ebx, [edi + 0xc]
push ebx
call fcn.100a7590
mov esi, eax
test esi, esi
jns 0x100bf959
push 0x10056c54
jmp 0x100bf939
push 0x10021110
push 1
push esi
push 0x4000000
jmp 0x100bf94c
push 0x100494f0
push 1
push esi
push ebx
call fcn.100ab973
add esp, 0x10
jmp 0x100bf8cc
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x100bf981
push dword [edi + 8]
lea ebx, [edi + 0xc]
push ebx
call fcn.100a7590
mov esi, eax
test esi, esi
jns 0x100bf981
mov eax, dword [ebp - 0x2c]
push dword [eax]
push 0x10052354
jmp 0x100bf850
mov ecx, ebx
call fcn.100b28e1
mov esi, eax
test esi, esi
jns 0x100bf9a1
push dword [ebx]
jmp 0x100bf997
mov eax, dword [ebp - 0x2c]
push dword [eax]
push 0x10056ce0
jmp 0x100bf850
mov ecx, ebx
call fcn.100b15f5
mov esi, eax
test esi, esi
jns 0x100bf9b5
push 0x100542c8
jmp 0x100bf939
push dword [ebp + 0x1c]
lea eax, [ebp - 8]
push 0x10048d90
push eax
call fcn.100a6b40
mov esi, eax
add esp, 0xc
test esi, esi
jns 0x100bf9dc
push dword [ebp + 0x1c]
push 0x10056ca8
jmp 0x100bf850
push dword [ebp - 8]
mov edx, dword [ebx]
lea ecx, [edi + 0x10]
call fcn.100a9500
mov esi, eax
test esi, esi
jns 0x100bf9f9
push 0x10054328
jmp 0x100bf939
push dword [ebp + 0x10]
lea eax, [edi + 0x14]
push eax
mov dword [ebp - 0x2c], eax
call fcn.100a7590
mov esi, eax
test esi, esi
jns 0x100bfa18
push 0x10056d30
jmp 0x100bf939
lea ecx, [edi + 0x14]
call fcn.100b28e1
mov esi, eax
test esi, esi
jns 0x100bfa35
mov eax, dword [ebp - 0x2c]
push dword [eax]
push 0x10056d08
jmp 0x100bf850
lea ecx, [ebp - 0x38]
call fcn.10099234
mov esi, eax
test esi, esi
jns 0x100bfa73
push dword [ebx]
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp - 8]
push edi
push dword [eax]
jmp 0x100bfa56
mov edi, dword [ebp - 8]
push ecx
push edi
push eax
push 0x10056d98
push 1
push esi
push 0x4000000
call fcn.100ab973
mov ebx, dword [ebp - 4]
add esp, 0x1c
jmp 0x10098ef0
push dword [edi + 0x10]
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x100bfae0
lea eax, [edi + 0x60]
cmp dword [eax], 0
jne 0x100bfaa2
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x100bfac5
mov dword [eax], ecx
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101e07c0]
call esi
push dword [ebp - 8]
mov edx, dword [ebp - 0xc]
push dword [edi + 0x14]
mov ecx, dword [edi + 0x60]
push dword [ebx]
call fcn.1011c7b6
mov esi, eax
test esi, esi
jns 0x100bfae0
push 0x10056e6c
jmp 0x100bf939
mov ecx, dword [ebx]
mov edx, eax
call fcn.1011cc75
mov esi, eax
test esi, esi
jns 0x100bfaa2
push dword [ebx]
push 0x10056d60
jmp 0x100bf850
cmp byte [ebp - 0x34], 0
je 0x100bfaef
call fcn.100edd2d
mov byte [ebp - 0x34], 0
push dword [edi + 0x10]
push dword [edi + 0x14]
push dword [ebx]
mov ebx, 0x4000000
push dword [edi + 8]
push 0x10056df8
push 0
push 0
push ebx
call fcn.100ab973
mov esi, dword [ebp + 0x20]
add esp, 0x20
test edi, edi
je 0x100bfb80
cmp esi, 0xffffffff
je 0x100bfd6a
cmp esi, 4
je 0x100bfd6a
push dword [ebp + 0x1c]
lea eax, [ebp - 0x10]
push 0x1003c008
push eax
call fcn.100a6b40
mov esi, eax
add esp, 0xc
test esi, esi
js 0x100bf85a
push dword [ebp - 0x10]
mov edx, dword [edi + 0xc]
lea ebx, [edi + 0x18]
mov ecx, ebx
call fcn.100a9500
mov esi, eax
test esi, esi
jns 0x100bfc5e
push 0x10057000
jmp 0x100bf939
push 0x1002053c
mov edx, 0x6c2
mov ecx, 0x1002203c
call fcn.100e970f
push 0x1002053c
mov edx, 0x745
mov ecx, 0x1002203c
call fcn.100e970f
jmp 0x10098e24
lea eax, [edi + 8]
mov ecx, ebx
mov edx, eax
mov dword [ebp - 0x2c], eax
call fcn.100eb4ef
mov esi, eax
test esi, esi
js 0x100bf83a
lea ecx, [edi + 8]
call fcn.100b28e1
mov esi, eax
test esi, esi
js 0x100bf8e5
lea eax, [edi + 0x10]
push ebx
push eax
mov dword [ebp - 0x2c], eax
call fcn.100a7590
mov esi, eax
test esi, esi
jns 0x100bfbe2
push ebx
push 0x10056ec8
jmp 0x100bf850
lea ecx, [edi + 0x10]
call fcn.100b28e1
mov esi, eax
test esi, esi
jns 0x100bfbff
mov eax, dword [ebp - 0x2c]
push dword [eax]
push 0x10056e9c
jmp 0x100bf850
lea eax, [edi + 0xc]
mov ecx, ebx
mov edx, eax
mov dword [ebp - 0x2c], eax
call fcn.100eb4ef
mov esi, eax
test esi, esi
jns 0x100bfc1e
push 0x10056f44
jmp 0x100bf939
lea ecx, [edi + 0xc]
call fcn.100b28e1
mov esi, eax
test esi, esi
js 0x100bf992
mov esi, dword [ebp + 0x20]
mov eax, dword [ebp - 4]
cmp esi, 3
je 0x10098e11
mov ebx, 0x4000000
jmp 0x100bfb14
push 0x10056f10
push 1
push esi
mov ecx, esi
call fcn.10114eaa
push eax
jmp 0x100bf94c
cmp dword [ebp + 0x20], 0
jne 0x100bfd2a
push dword [ebx]
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x100bfd2a
lea ecx, [ebp - 0x38]
call fcn.10099234
mov ecx, dword [edi + 0xc]
mov esi, eax
mov eax, dword [edi + 0x14]
test esi, esi
js 0x100bfa50
push dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
push eax
push ecx
mov ecx, dword [edi + 0x60]
call fcn.1011c7b6
mov esi, eax
test esi, esi
jns 0x100bfcd1
push dword [edi + 0x14]
push dword [ebx]
push 0x10056fc8
jmp 0x100bfcbc
push dword [edi + 0x14]
push ebx
push 0x1005712c
push 1
push esi
push 0x4000000
call fcn.100ab973
add esp, 0x18
jmp 0x100bf8cc
mov eax, dword [ebp + 8]
test byte [eax + 0x4c], 0x80
jne 0x100bfd1b
test byte [ebp + 0x24], 8
jne 0x100bfd1b
push dword [ebp + 0x1c]
lea eax, [ebp - 0x1c]
push 0x10048dd8
push eax
call fcn.100a6b40
mov esi, eax
add esp, 0xc
test esi, esi
jns 0x100bfd07
push dword [ebp + 0x1c]
push 0x10057078
jmp 0x100bf850
push dword [ebp - 0x1c]
mov edx, dword [ebp - 0xc]
push dword [edi + 0x14]
mov ecx, dword [edi + 0x60]
push dword [edi + 0xc]
call fcn.1011c7b6
cmp byte [ebp - 0x34], 0
je 0x100bfd2a
call fcn.100edd2d
mov byte [ebp - 0x34], 0
mov ebx, dword [ebp + 0x20]
xor ecx, ecx
cmp ebx, 0xffffffff
jne 0x100bfda1
mov ebx, dword [ebp - 4]
mov edx, dword [edi + 0x10]
push ebx
call fcn.1009925c
mov esi, eax
test esi, esi
jns 0x10098e24
push dword [edi + 0x10]
mov ecx, esi
push 0x10048fe0
push 1
push esi
call fcn.10114eaa
push eax
call fcn.100ab973
add esp, 0x14
jmp 0x10098eed
mov ecx, dword [edi + 0x10]
lea eax, [ebp - 0x10]
push eax
mov edx, 0x10048e60
call fcn.100eb869
mov esi, eax
test esi, esi
js 0x100bf943
push dword [ebp - 0x10]
lea eax, [edi + 0x18]
push eax
call fcn.100a7590
mov esi, eax
test esi, esi
jns 0x100bfd2a
push 0x10056f9c
jmp 0x100bf948
push dword [ebp - 4]
mov edx, dword [ebp + 8]
push dword [ebp + 0xc]
push dword [edi + 0x10]
push 0
call fcn.1011401e
mov esi, eax
test esi, esi
jns 0x100bfdc7
push dword [edi + 0x10]
push 0x10057030
jmp 0x100bf850
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
cmp dword [eax + 4], 0
je 0x10098e24
test ebx, ebx
jne 0x10098e24
push dword [eax + 4]
lea eax, [ebp - 0x24]
push 0x100570e8
push eax
call fcn.100a6b40
mov esi, eax
add esp, 0xc
test esi, esi
js 0x100bf842
mov ebx, dword [ebp - 0x24]
lea ecx, [ebp - 0x20]
mov edx, dword [edi + 0xc]
push ebx
call fcn.100a9500
mov esi, eax
test esi, esi
jns 0x100bfe1c
push 0x100570b8
jmp 0x100bf939
lea ecx, [ebp - 0x38]
call fcn.10099234
mov ecx, dword [edi + 0xc]
mov esi, eax
mov eax, dword [edi + 0x14]
test esi, esi
js 0x100bfa50
mov edx, dword [ebp - 0xc]
push ebx
push eax
push ecx
mov ecx, dword [edi + 0x60]
call fcn.1011c7b6
lea esi, [eax + 0x7ff8fffe]
neg esi
sbb esi, esi
and esi, eax
jl 0x100bfcb3
cmp byte [ebp - 0x34], 0
je 0x100bfe63
call fcn.100edd2d
mov byte [ebp - 0x34], 0
push dword [ebp - 0x20]
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x10098e24
mov dword [edi + 0x68], 1
jmp 0x10098e24
push 0x10057100
jmp 0x100bf939
push eax
mov eax, ebx
add eax, 0x250
push eax
call fcn.100a7590
mov esi, eax
test esi, esi
jns 0x10098e5b
push 0x10057194
jmp 0x100bf939
mov ecx, esi
call dword [0x101e07c0]
call esi
jmp 0x10098e7b
push 0x1005715c
jmp 0x100bf939
mov ebx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0x128], ebx
mov dword [edx + 0x12c], ecx
jmp 0x10098eb3
mov edx, dword [edx + 0x48]
test edx, edx
jne 0x100bf875
jmp 0x100bf870
push 0x100210fc
mov edx, 0xaea
mov ecx, 0x10020c0c
call fcn.100e970f
mov eax, dword [ebx + 0x44]
jmp 0x10098ed5
and dword [ebp - 0x30], 0
lea eax, [ebp - 0x30]
and dword [ebp - 0x2c], 0
mov ecx, ebx
push eax
call fcn.101291a0
mov esi, eax
test esi, esi
js 0x100bf934
mov edx, dword [ebp - 0x30]
mov eax, edx
mov ecx, dword [ebp - 0x2c]
or eax, ecx
jne 0x100bff38
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax + 0x12c]
cmp ebx, ecx
jb 0x10098edf
ja 0x100bff57
cmp dword [eax + 0x128], edx
jbe 0x10098edf
mov esi, dword [eax + 0x48]
test esi, esi
jne 0x100bff63
mov esi, 0x100082e8
movzx eax, dx
push eax
mov eax, ecx
shrd edx, eax, 0x10
movzx eax, dx
mov edx, dword [ebp - 0xc]
push eax
movzx eax, cx
push eax
movzx eax, word [edx + 0x128]
shr ecx, 0x10
push ecx
mov ecx, dword [edx + 0x128]
push eax
mov eax, ebx
shrd ecx, eax, 0x10
movzx eax, cx
push eax
movzx eax, bx
push eax
shr ebx, 0x10
push ebx
push esi
push 0x100571b0
jmp 0x100bf8b4
push ecx
mov ecx, ebx
call fcn.1012574a
jmp 0x10098ef8
lea eax, [edi - 4]
push eax
call fcn.100b84f9
pop ecx
jmp 0x10098f00
add eax, 0xfffffffc
push eax
call fcn.100b84f9
pop ecx
jmp 0x10098f0b
add eax, 0xfffffffc
push eax
call fcn.100b84f9
pop ecx
jmp 0x10098f16
add eax, 0xfffffffc
push eax
call fcn.100b84f9
pop ecx
jmp 0x10098f21
add eax, 0xfffffffc
push eax
call fcn.100b84f9
pop ecx
jmp 0x10098f2c