Function at 0x10028a40
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1017c318
mov eax, dword fs:[0]
push eax
sub esp, 0x12c
mov eax, dword [0x101df028]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x120], ecx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x12c], eax
call fcn.1003c7e1
test al, al
je 0x10028aa6
push eax
pop esp
pop ecx
push ebx
pop eax
pop ecx
push ecx
pop ebx
pop edx
push edi
push ebx
pop esp
push ebx
push ebx
push edi
pop esp
push edx
pop edi
pop ecx
pop ebx
push ebp
pop edx
pop edi
push edi
push edx
pop esp
push esi
push ebp
push esi
push edi
push ebx
push ebp
call fcn.1003cad8
test al, al
je 0x10028ac8
push esp
push edx
push edi
push edx
pop eax
pop ecx
push esp
push edx
pop ecx
pop edx
pop ecx
push esp
pop eax
push esp
pop edx
push esi
pop esp
push ebx
push edx
push esp
pop esi
push esp
push esi
push edi
pop edi
call fcn.1003c574
test al, al
je 0x10028ae1
push ebp
push ebp
pop esi
push ecx
pop edi
push edi
push eax
push edi
pop ebx
pop ebx
push esi
push ebp
push esi
push edx
push ebx
push esp
mov eax, dword [ebp - 0x120]
add eax, 0x10
mov dword [ebp - 0x124], 0
push eax
mov dword [ebp - 0x130], eax
lea eax, [ebp - 0x88]
push eax
call fcn.10040938
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
mov dword [ebp - 4], 0
cmovae eax, dword [ebp - 0x88]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.1003ea78
cmp dword [ebp - 0xa4], 8
lea eax, [ebp - 0xb8]
mov byte [ebp - 4], 1
cmovae eax, dword [ebp - 0xb8]
push eax
lea eax, [ebp - 0xe8]
push eax
call fcn.1003e964
lea eax, [ebp - 0xe8]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.10040ef8
add esp, 0x20
mov byte [ebp - 4], 3
call fcn.1003c688
test al, al
je 0x10028b91
push eax
push eax
pop edi
push eax
pop ebp
pop ebx
pop ebx
pop edx
pop ecx
pop edi
pop edx
push eax
pop eax
push ecx
push esp
pop ebp
push ebp
pop esi
pop ecx
push esp
pop ebp
pop esp
push esi
push ebx
push edx
pop edi
push edx
push esi
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
cmovae eax, dword [ebp - 0x88]
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.1003f6c7
lea eax, [ebp - 0xd0]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.10040ef8
add esp, 0x10
mov eax, dword [ebp - 0x120]
mov byte [ebp - 4], 5
mov esi, dword [eax]
cmp esi, dword [eax + 4]
je 0x10028cf7
nop dword [eax + eax]
cmp dword [esi + 0x14], 0x10
jb 0x10028bea
mov edx, dword [esi]
jmp 0x10028bec
mov edx, esi
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
cmp byte [edx], 0
jne 0x10028c07
xor ecx, ecx
jmp 0x10028c19
mov ecx, edx
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10028c10
sub ecx, edi
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.10027d30
cmp dword [ebp - 0x44], 0x10
lea ecx, [ebp - 0x58]
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x28]
cmovae ecx, dword [ebp - 0x58]
cmp dword [ebp - 0x14], 0x10
mov ebx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x48]
cmovae edx, ebx
cmp eax, edi
cmovb edi, eax
mov eax, dword [ebp - 0x14]
test edi, edi
je 0x10028ca5
sub edi, 4
jb 0x10028c63
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x10028c68
add edx, 4
add ecx, 4
sub edi, 4
jae 0x10028c52
cmp edi, 0xfffffffc
je 0x10028c9c
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x10028c95
cmp edi, 0xfffffffd
je 0x10028c9c
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x10028c95
cmp edi, 0xfffffffe
je 0x10028c9c
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x10028c95
cmp edi, 0xffffffff
je 0x10028c9c
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x10028c9c
sbb eax, eax
or eax, 1
jmp 0x10028c9e
xor eax, eax
test eax, eax
jne 0x10028cb1
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x18]
cmp edx, ecx
jb 0x10028cb1
jbe 0x10028d1b
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x10028ce5
inc eax
cmp eax, 0x1000
jb 0x10028cdc
test byte [ebp - 0x28], 0x1f
jne 0x10028d33
mov eax, dword [ebx - 4]
cmp eax, ebx
jae 0x10028d33
sub ebx, eax
cmp ebx, 4
jb 0x10028d33
cmp ebx, 0x23
ja 0x10028d33
mov ebx, eax
push ebx
call fcn.10032022
add esp, 4
mov eax, dword [ebp - 0x120]
add esi, 0x18
cmp esi, dword [eax + 4]
jne 0x10028be0
xor esi, esi
call fcn.1003c9c4
test al, al
je 0x10028d12
push esi
push edi
push ebx
pop eax
push edi
pop ebp
push esp
push eax
pop ecx
pop edi
push ecx
pop edx
push esp
pop ebx
push esp
pop edx
test esi, esi
jne 0x10028d67
jmp 0x100293ea
mov esi, 1
cmp eax, 0x10
jb 0x10028cf9
inc eax
cmp eax, 0x1000
jb 0x10028d5c
test byte [ebp - 0x28], 0x1f
je 0x10028d38
call fcn.10058eb1
mov eax, dword [ebx - 4]
cmp eax, ebx
jb 0x10028d44
call fcn.10058eb1
sub ebx, eax
cmp ebx, 4
jae 0x10028d50
call fcn.10058eb1
cmp ebx, 0x23
jbe 0x10028d5a
call fcn.10058eb1
mov ebx, eax
push ebx
call fcn.10032022
add esp, 4
jmp 0x10028cf9
call fcn.1003ca4e
test al, al
je 0x10028d82
push esp
push esp
push ebp
push edi
push ecx
pop ebx
pop esi
pop esp
push eax
pop ebp
pop ebp
pop ecx
push ebp
push eax
pop edi
pop eax
pop ebp
push esp
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 7
cmp dword [ecx + 0x14], 8
mov dword [ecx + 0x10], 0
jb 0x10028dad
mov eax, dword [ecx]
jmp 0x10028daf
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0xb8]
push edx
push eax
call fcn.10020060
mov edi, dword [ebp - 0x12c]
lea eax, [ebp - 0xa0]
mov ecx, dword [ebp - 0x120]
push edi
push eax
call fcn.10028830
cmp dword [ebp + 0xc], 0
mov byte [ebp - 4], 6
je 0x10028eeb
call fcn.1003c7e1
test al, al
je 0x10028e10
push ebp
push ecx
push edi
pop esi
pop ecx
pop eax
pop esp
push ebx
push edi
pop ecx
push ecx
pop esp
push ecx
push eax
push ebx
push edi
push ebp
push esp
push eax
push ebx
pop esp
push eax
pop ebx
pop esi
pop eax
push ebp
push esi
push ecx
push edx
call fcn.1003ca4e
test al, al
je 0x10028e3a
push esp
pop edx
push ebx
pop ebp
pop eax
pop ebp
push ecx
pop eax
push eax
push ecx
pop ebx
push edx
pop esi
push edx
pop esp
pop esp
push ebp
pop edx
pop ecx
push ebp
push eax
push edi
push esp
pop edi
push esi
push ecx
pop edi
mov edi, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x120]
cmp dword [ebx + 0xb0], 0
je 0x10028e70
push 1
lea eax, [ebp - 0xa0]
push eax
sub esp, 0x18
lea ecx, [ebx + 0x10]
mov eax, esp
push ecx
push eax
call fcn.10040938
mov ecx, dword [ebx + 0xb0]
add esp, 8
push edi
call fcn.100249c0
cmp dword [ebp - 0x8c], 8
lea eax, [ebp - 0xa0]
cmovae eax, dword [ebp - 0xa0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10029248
lea eax, [ebp - 0x124]
push eax
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 7
cmp dword [ecx + 0x14], 8
mov dword [ecx + 0x10], 0
jb 0x10028ec5
mov eax, dword [ecx]
jmp 0x10028ec7
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0xa0]
push edx
push eax
call fcn.10020060
call fcn.1003df62
add esp, 0x1c
mov dword [ebx + 0x64], eax
jmp 0x10029248
call fcn.1003c757
test al, al
je 0x10028f0e
push ebx
pop edx
push ebp
push ecx
push esp
push esp
pop esi
pop ebx
pop edx
pop edx
pop ebx
push esi
push eax
push esp
push esp
pop eax
pop ebx
pop eax
pop esi
pop eax
pop ebp
pop edi
push ebx
push edi
pop ebx
pop edx
call fcn.1003c8f5
test al, al
je 0x10028f33
push esi
pop esp
push eax
push esi
push ebx
push esi
pop esp
push edi
pop ebp
push edi
push edx
pop edi
pop esp
push ecx
push ecx
pop eax
push ecx
pop ebp
push ebp
push ebx
pop esi
pop edi
pop ebx
push eax
pop ebp
push esp
push esi
push ebx
mov ecx, dword [ebp - 0x130]
push 0xffffffffffffffff
push 0
push ecx
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
call fcn.10027c00
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.10027c00
lea eax, [ebp - 0x118]
mov byte [ebp - 4], 8
push str.82010501713242510128132036216363
push eax
call fcn.1003d636
mov esi, eax
lea eax, [ebp - 0x100]
mov byte [ebp - 4], 9
push str.91447345036756321167665368104529
push eax
call fcn.1003d636
push esi
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xa
push eax
call fcn.1004038d
mov eax, dword [ebp - 0xec]
add esp, 0x1c
mov byte [ebp - 4], 9
cmp eax, 0x10
jb 0x10029010
mov ecx, dword [ebp - 0x100]
inc eax
cmp eax, 0x1000
jb 0x10029007
test cl, 0x1f
je 0x10028fe3
call fcn.10058eb1
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x10028fef
call fcn.10058eb1
sub ecx, eax
cmp ecx, 4
jae 0x10028ffb
call fcn.10058eb1
cmp ecx, 0x23
jbe 0x10029005
call fcn.10058eb1
mov ecx, eax
push ecx
call fcn.10032022
add esp, 4
mov eax, dword [ebp - 0x104]
mov dword [ebp - 0xec], 0xf
mov dword [ebp - 0xf0], 0
mov byte [ebp - 0x100], 0
mov byte [ebp - 4], 8
cmp eax, 0x10
jb 0x1002907f
mov ecx, dword [ebp - 0x118]
inc eax
cmp eax, 0x1000
jb 0x10029076
test cl, 0x1f
je 0x10029052
call fcn.10058eb1
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x1002905e
call fcn.10058eb1
sub ecx, eax
cmp ecx, 4
jae 0x1002906a
call fcn.10058eb1
cmp ecx, 0x23
jbe 0x10029074
call fcn.10058eb1
mov ecx, eax
push ecx
call fcn.10032022
add esp, 4
cmp dword [ebp - 0x14], 0x10
lea ecx, [ebp - 0x28]
mov edi, dword [ebp - 0x18]
lea edx, [ebp - 0x40]
cmovae ecx, dword [ebp - 0x28]
mov esi, edi
cmp dword [ebp - 0x2c], 0x10
mov ebx, dword [ebp - 0x30]
cmovae edx, dword [ebp - 0x40]
cmp ebx, edi
cmovb esi, ebx
test esi, esi
je 0x10029100
sub esi, 4
jb 0x100290c1
nop dword [eax + eax]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x100290c6
add edx, 4
add ecx, 4
sub esi, 4
jae 0x100290b0
cmp esi, 0xfffffffc
je 0x100290fa
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100290f3
cmp esi, 0xfffffffd
je 0x100290fa
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x100290f3
cmp esi, 0xfffffffe
je 0x100290fa
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x100290f3
cmp esi, 0xffffffff
je 0x100290fa
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x100290fa
sbb eax, eax
or eax, 1
jmp 0x100290fc
xor eax, eax
test eax, eax
jne 0x10029150
cmp ebx, edi
jb 0x10029150
ja 0x10029150
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
cmp dword [ecx + 0x14], 0x10
mov dword [ecx + 0x10], 0
jb 0x10029131
mov eax, dword [ecx]
jmp 0x10029133
mov eax, ecx
push 0xffffffffffffffff
push 0
push dword [ebp - 0x130]
mov byte [eax], 0
call fcn.10027c00
mov ecx, dword [ebp - 0x120]
jmp 0x100291d7
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
cmp dword [ecx + 0x14], 0x10
mov dword [ecx + 0x10], 0
jb 0x1002917b
mov eax, dword [ecx]
jmp 0x1002917d
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp - 0x40]
push 0
push eax
call fcn.10027c00
mov ebx, dword [ebp - 0x120]
mov ecx, ebx
call fcn.10028480
mov dword [ebp - 0x124], eax
test eax, eax
jne 0x100291ea
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x14], 0xf
cmp dword [ecx + 0x14], 0x10
mov dword [ecx + 0x10], eax
jb 0x100291c3
mov eax, dword [ecx]
jmp 0x100291c5
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp - 0x28]
push 0
push eax
call fcn.10027c00
mov ecx, ebx
call fcn.10028480
mov dword [ebp - 0x124], eax
test eax, eax
jne 0x100291ea
push 1
jmp 0x100291ec
push 2
cmp dword [ebp - 0x5c], 0x10
lea eax, [ebp - 0x70]
cmovae eax, dword [ebp - 0x70]
push eax
push 1
push 1
call fcn.10025cf0
mov ecx, eax
call fcn.1002eeb0
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x1002921d
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.100262c0
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 6
cmp eax, 0x10
jb 0x10029248
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.100262c0
call fcn.1003c7e1
test al, al
je 0x10029266
pop edx
pop ebp
pop eax
push ecx
pop edx
push edx
pop edi
push eax
pop ebx
push esp
pop esi
push ebp
pop eax
pop ebx
pop edi
pop eax
push ebx
push edx
push ebx
push edi
pop eax
call fcn.1003c574
test al, al
je 0x1002927f
pop ecx
push ebp
pop ebp
push eax
pop ebp
pop ecx
push ebp
pop ecx
push edx
pop edi
pop edx
push eax
pop edx
pop edx
pop ecx
pop eax
call fcn.1003cb1d
test al, al
je 0x1002929c
pop esi
push ecx
pop edx
pop edx
push ebx
pop ebx
pop ecx
push edx
pop esi
pop ebp
push esi
push esi
pop esi
push ebp
push edi
pop ebx
push ebx
pop edi
pop ebp
pop esi
cmp dword [ebp - 0x124], 0
jne 0x100292ac
xor esi, esi
jmp 0x100293af
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x138], 0
call fcn.1003c5fe
test al, al
je 0x100292e7
pop ebx
pop ecx
pop ebx
push esi
pop esp
push edx
push edx
push ebp
pop ecx
push edi
pop edx
push ebp
push ebx
pop esi
pop edi
push esp
pop ebx
pop esp
pop ecx
push edx
push ecx
push eax
pop ecx
push edi
push edx
pop ecx
push ecx
push edi
push esp
pop ecx
call fcn.1003c643
test al, al
je 0x10029304
push edx
push esi
pop ebx
push ebx
pop esi
push edi
pop ecx
pop esi
pop esp
pop eax
pop ecx
push ebx
pop eax
push ebp
pop esi
push esi
pop ebp
push eax
push ebx
push ebp
call fcn.1003c97f
test al, al
je 0x10029326
pop esi
pop edi
pop edi
push ebx
pop esp
pop ecx
pop edx
push ecx
push edx
push esi
push esi
push ecx
push eax
push ebp
pop esi
pop ebx
push esi
pop ebp
push edx
push ebx
pop esp
push edi
push edi
push ebp
push edi
lea ecx, [ebp - 0x119]
call fcn.1003a420
mov ecx, dword [ebp - 0x120]
mov byte [ebp - 4], 0xb
lea eax, [ecx + 0x40]
push eax
lea eax, [ebp - 0x138]
push eax
lea eax, [ebp - 0x134]
push eax
push dword [ebp - 0x124]
push dword [ecx + 0x64]
lea ecx, [ebp - 0x119]
call fcn.1002a340
mov ecx, dword [ebp - 0x134]
test ecx, ecx
je 0x10029383
mov eax, dword [ebp - 0x138]
test eax, eax
je 0x10029383
push eax
push ecx
call fcn.1002c770
add esp, 8
mov esi, eax
jmp 0x100293a4
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
cmovae eax, dword [ebp - 0x88]
push eax
push 0x89
call fcn.10041e78
add esp, 8
xor esi, esi
lea ecx, [ebp - 0x119]
call fcn.10023d10
mov eax, dword [ebp - 0x8c]
cmp eax, 8
jb 0x100293cd
inc eax
lea ecx, [ebp - 0xa0]
push eax
push dword [ebp - 0xa0]
call fcn.1001ff10
xor eax, eax
mov dword [ebp - 0x8c], 7
mov dword [ebp - 0x90], 0
mov word [ebp - 0xa0], ax
mov eax, dword [ebp - 0x44]
cmp eax, 0x10
jb 0x100293ff
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.100262c0
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x44], 0xf
mov dword [ebp - 0x48], 0
mov byte [ebp - 0x58], 0
cmp eax, 8
jb 0x1002942f
inc eax
lea ecx, [ebp - 0xd0]
push eax
push dword [ebp - 0xd0]
call fcn.1001ff10
xor eax, eax
mov dword [ebp - 0xbc], 7
mov word [ebp - 0xd0], ax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xc0], 0
cmp eax, 0x10
jb 0x10029461
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.100262c0
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x5c], 0xf
mov dword [ebp - 0x60], 0
mov byte [ebp - 0x70], 0
cmp eax, 8
jb 0x10029491
inc eax
lea ecx, [ebp - 0xe8]
push eax
push dword [ebp - 0xe8]
call fcn.1001ff10
xor eax, eax
mov dword [ebp - 0xd4], 7
mov word [ebp - 0xe8], ax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xd8], 0
cmp eax, 8
jb 0x100294cc
inc eax
lea ecx, [ebp - 0xb8]
push eax
push dword [ebp - 0xb8]
call fcn.1001ff10
xor eax, eax
mov dword [ebp - 0xa4], 7
mov word [ebp - 0xb8], ax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0xa8], 0
cmp eax, 8
jb 0x10029504
inc eax
lea ecx, [ebp - 0x88]
push eax
push dword [ebp - 0x88]
call fcn.1001ff10
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10032035
mov esp, ebp
pop ebp
ret 0xc