Function at 0x10028ce0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1017bcc8
mov eax, dword fs:[0]
push eax
sub esp, 0x12c
mov eax, dword [0x101df230]
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 - 0x130], eax
call fcn.1003db43
test al, al
je 0x10028d46
push eax
pop eax
push eax
push eax
push ebx
push ebx
push eax
pop esi
pop ecx
push ebp
pop esi
pop edi
pop esp
pop esi
push edi
pop ebx
push edi
push edi
pop eax
pop edx
push ecx
push ebx
pop ebp
pop eax
push ecx
pop esi
push ebx
push esi
pop ebp
pop edx
push ebx
pop edi
call fcn.1003d510
test al, al
je 0x10028d66
push eax
pop esp
push edx
push eax
pop ecx
pop esp
pop eax
pop ebp
pop eax
pop eax
push ebp
pop ebx
pop eax
pop ebp
push ecx
push eax
pop ebx
pop ebp
pop ecx
push eax
push edi
push ebp
pop esi
mov dword [ebp - 0x12c], 0
call fcn.1003d9ea
test al, al
je 0x10028d8a
push esp
push esi
push esi
push esp
pop esi
push ebp
pop edx
push ecx
push edx
pop esp
pop edi
push edx
pop edi
push ebp
pop eax
pop ebx
push ebp
mov eax, dword [ebp - 0x120]
add eax, 0x10
mov dword [ebp - 0x124], 0
push eax
mov dword [ebp - 0x128], eax
lea eax, [ebp - 0x88]
push eax
call fcn.1004108a
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.1003f4d5
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.1003f3f3
lea eax, [ebp - 0xe8]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.10041618
add esp, 0x20
mov byte [ebp - 4], 3
call fcn.1003d555
test al, al
je 0x10028e36
pop edi
push ebp
push ecx
pop ebx
push ebp
push eax
pop esp
push eax
push edx
pop esi
pop esp
pop esi
pop esi
pop eax
pop ebp
push edi
push edi
pop eax
pop ecx
pop esp
pop ecx
push ebx
pop edi
push ebx
call fcn.1003d59a
test al, al
je 0x10028e58
push ebp
push edi
push eax
pop edi
pop eax
push esp
push esp
push ebx
push esi
push esi
pop edx
push ecx
push ebp
pop eax
push edx
pop edx
push ebx
pop ebp
push edi
pop ecx
push edx
pop edx
pop esi
pop ebx
pop esi
call fcn.1003dab9
test al, al
je 0x10028e73
push edx
push edi
push esi
pop ecx
pop esi
pop ebx
pop edi
pop edi
pop ebp
push edx
push edi
pop edx
push edi
pop eax
push ecx
pop ebx
pop ebx
pop edi
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
cmovae eax, dword [ebp - 0x88]
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.1003ffff
lea eax, [ebp - 0xd0]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.10041618
add esp, 0x10
mov eax, dword [ebp - 0x120]
mov byte [ebp - 4], 5
mov esi, dword [eax]
cmp esi, dword [eax + 4]
je 0x10029028
nop dword [eax]
cmp dword [esi + 0x14], 0x10
jb 0x10028eca
mov edx, dword [esi]
jmp 0x10028ecc
mov edx, esi
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
cmp byte [edx], 0
jne 0x10028ee7
xor ecx, ecx
jmp 0x10028ef9
mov ecx, edx
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10028ef0
sub ecx, edi
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.10023ad0
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 0x10028f85
sub edi, 4
jb 0x10028f43
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x10028f48
add edx, 4
add ecx, 4
sub edi, 4
jae 0x10028f32
cmp edi, 0xfffffffc
je 0x10028f7c
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x10028f75
cmp edi, 0xfffffffd
je 0x10028f7c
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x10028f75
cmp edi, 0xfffffffe
je 0x10028f7c
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x10028f75
cmp edi, 0xffffffff
je 0x10028f7c
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x10028f7c
sbb eax, eax
or eax, 1
jmp 0x10028f7e
xor eax, eax
test eax, eax
jne 0x10028f91
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x18]
cmp edx, ecx
jb 0x10028f91
jbe 0x10028fd9
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x10028fc5
inc eax
cmp eax, 0x1000
jb 0x10028fbc
test byte [ebp - 0x28], 0x1f
jne 0x10028ff6
mov eax, dword [ebx - 4]
cmp eax, ebx
jae 0x10028ff6
sub ebx, eax
cmp ebx, 4
jb 0x10028ff6
cmp ebx, 0x23
ja 0x10028ff6
mov ebx, eax
push ebx
call fcn.1003187d
add esp, 4
mov eax, dword [ebp - 0x120]
add esi, 0x18
cmp esi, dword [eax + 4]
jne 0x10028ec0
jmp 0x10029028
mov dword [ebp - 0x12c], 1
cmp eax, 0x10
jb 0x10029028
inc eax
cmp eax, 0x1000
jb 0x1002901f
test byte [ebp - 0x28], 0x1f
je 0x10028ffb
call fcn.10058621
mov eax, dword [ebx - 4]
cmp eax, ebx
jb 0x10029007
call fcn.10058621
sub ebx, eax
cmp ebx, 4
jae 0x10029013
call fcn.10058621
cmp ebx, 0x23
jbe 0x1002901d
call fcn.10058621
mov ebx, eax
push ebx
call fcn.1003187d
add esp, 4
call fcn.1003d891
test al, al
je 0x10029050
pop eax
push ebp
pop esi
push ebx
pop esi
pop eax
push esi
push eax
push ebp
push ebp
push esp
push eax
push ebp
push ebx
push esp
push esp
pop edi
push eax
push edi
pop esp
push ecx
pop eax
pop ebx
pop edx
push ecx
push ebx
push ebp
pop ebx
pop edx
push esp
pop ebp
call fcn.1003d6f3
test al, al
je 0x1002906a
pop ebx
pop esi
push edx
pop eax
pop eax
push esp
push ecx
push ebx
push ebx
pop eax
push esi
pop esi
push ebx
pop ebp
push esp
push edi
push eax
cmp dword [ebp - 0x12c], 0
jne 0x1002907a
xor esi, esi
jmp 0x10029698
call fcn.1003d6f3
test al, al
je 0x10029093
push ecx
pop eax
push ebp
pop ebx
push ebp
push edx
pop edx
pop esp
pop ebp
push edx
push ebx
push ebp
pop eax
push esp
pop ebx
pop edx
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 0x100290be
mov eax, dword [ecx]
jmp 0x100290c0
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0xb8]
push edx
push eax
call fcn.10020280
mov esi, dword [ebp - 0x130]
lea eax, [ebp - 0xa0]
mov ebx, dword [ebp - 0x120]
mov ecx, ebx
push esi
push eax
call fcn.10028b50
cmp dword [ebp + 0xc], 0
mov byte [ebp - 4], 6
je 0x100291d7
call fcn.1003d624
test al, al
je 0x1002912c
pop edi
pop ebx
push esp
push ecx
pop ecx
pop edi
pop eax
pop eax
pop esi
push edi
push esp
push eax
push esp
push edi
push ecx
push esp
push edi
push esi
push ebp
pop esi
push ebx
pop eax
pop edi
pop edx
push esp
push ecx
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x130]
cmp dword [ebx + 0xb0], 0
je 0x1002915c
push 1
lea eax, [ebp - 0xa0]
push eax
sub esp, 0x18
lea ecx, [ebx + 0x10]
mov eax, esp
push ecx
push eax
call fcn.1004108a
mov ecx, dword [ebx + 0xb0]
add esp, 8
push esi
call fcn.100253c0
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 0x10029528
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 0x100291b1
mov eax, dword [ecx]
jmp 0x100291b3
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0xa0]
push edx
push eax
call fcn.10020280
call fcn.1003eaec
add esp, 0x1c
mov dword [ebx + 0x64], eax
jmp 0x10029528
call fcn.1003dab9
test al, al
je 0x100291f4
pop ebp
push ebx
push ebx
pop ecx
pop edx
pop eax
push ecx
pop ebp
pop edx
pop ecx
push edx
pop edx
pop ebx
pop edi
push edi
pop ebp
pop ecx
pop eax
pop edx
push edi
call fcn.1003d84c
test al, al
je 0x10029214
push edi
push ebx
push ebx
push edi
push ebp
pop edi
pop edi
pop ebx
pop edi
push esi
push ebx
pop ecx
pop eax
pop esp
push ecx
push eax
push esi
pop eax
push eax
pop edx
pop esi
push edi
pop esp
mov ecx, dword [ebp - 0x128]
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.100239a0
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.100239a0
lea eax, [ebp - 0x118]
mov byte [ebp - 4], 8
push str.53052632061337701835486701630808
push eax
call fcn.1003e311
mov esi, eax
lea eax, [ebp - 0x100]
mov byte [ebp - 4], 9
push str.42350365036758401167682870492416
push eax
call fcn.1003e311
push esi
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xa
push eax
call fcn.10040bf7
mov eax, dword [ebp - 0xec]
add esp, 0x1c
mov byte [ebp - 4], 9
cmp eax, 0x10
jb 0x100292f1
mov ecx, dword [ebp - 0x100]
inc eax
cmp eax, 0x1000
jb 0x100292e8
test cl, 0x1f
je 0x100292c4
call fcn.10058621
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x100292d0
call fcn.10058621
sub ecx, eax
cmp ecx, 4
jae 0x100292dc
call fcn.10058621
cmp ecx, 0x23
jbe 0x100292e6
call fcn.10058621
mov ecx, eax
push ecx
call fcn.1003187d
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 0x10029360
mov ecx, dword [ebp - 0x118]
inc eax
cmp eax, 0x1000
jb 0x10029357
test cl, 0x1f
je 0x10029333
call fcn.10058621
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x1002933f
call fcn.10058621
sub ecx, eax
cmp ecx, 4
jae 0x1002934b
call fcn.10058621
cmp ecx, 0x23
jbe 0x10029355
call fcn.10058621
mov ecx, eax
push ecx
call fcn.1003187d
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 0x100293e0
sub esi, 4
jb 0x100293a1
nop dword [eax]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x100293a6
add edx, 4
add ecx, 4
sub esi, 4
jae 0x10029390
cmp esi, 0xfffffffc
je 0x100293da
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100293d3
cmp esi, 0xfffffffd
je 0x100293da
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x100293d3
cmp esi, 0xfffffffe
je 0x100293da
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x100293d3
cmp esi, 0xffffffff
je 0x100293da
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x100293da
sbb eax, eax
or eax, 1
jmp 0x100293dc
xor eax, eax
test eax, eax
jne 0x10029430
cmp ebx, edi
jb 0x10029430
ja 0x10029430
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 0x10029411
mov eax, dword [ecx]
jmp 0x10029413
mov eax, ecx
push 0xffffffffffffffff
push 0
push dword [ebp - 0x128]
mov byte [eax], 0
call fcn.100239a0
mov ecx, dword [ebp - 0x120]
jmp 0x100294b7
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 0x1002945b
mov eax, dword [ecx]
jmp 0x1002945d
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp - 0x40]
push 0
push eax
call fcn.100239a0
mov ebx, dword [ebp - 0x120]
mov ecx, ebx
call fcn.100287f0
mov dword [ebp - 0x124], eax
test eax, eax
jne 0x100294ca
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 0x100294a3
mov eax, dword [ecx]
jmp 0x100294a5
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp - 0x28]
push 0
push eax
call fcn.100239a0
mov ecx, ebx
call fcn.100287f0
mov dword [ebp - 0x124], eax
test eax, eax
jne 0x100294ca
push 1
jmp 0x100294cc
push 2
cmp dword [ebp - 0x5c], 0x10
lea eax, [ebp - 0x70]
cmovae eax, dword [ebp - 0x70]
push eax
push 1
push 1
call fcn.10026650
mov ecx, eax
call fcn.1002ecb0
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x100294fd
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.10023bd0
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 0x10029528
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.10023bd0
call fcn.1003d738
test al, al
je 0x10029543
push esi
push edx
push ecx
pop edx
pop eax
push esi
push esi
pop ecx
push ecx
push esi
pop eax
pop ebp
pop edi
push edx
push ebx
push edi
push ebp
push esi
call fcn.1003d5df
test al, al
je 0x1002955c
push eax
pop edx
pop esp
push eax
push ebx
push eax
pop eax
pop ebp
pop ebp
push edi
pop edx
push esp
pop ebx
push edi
push esi
push ebx
cmp dword [ebp - 0x124], 0
jne 0x1002956c
xor esi, esi
jmp 0x1002965d
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x138], 0
call fcn.1003db43
test al, al
je 0x1002959d
push esp
pop ebp
pop edx
pop esi
pop esi
pop ebx
push esp
push eax
push esi
push esi
pop eax
push ebx
pop esi
push esi
pop esi
push edi
push ebx
push edi
pop esi
pop edi
call fcn.1003d555
test al, al
je 0x100295b7
push eax
pop ebp
pop edi
push ebx
pop esi
push ecx
push esp
push esi
pop esi
push ebp
push ecx
push esp
pop ebx
push esp
push ebx
pop esp
push edx
call fcn.1003d4cb
test al, al
je 0x100295d4
push ecx
push edi
push ebx
pop edi
pop edx
pop edx
push ecx
pop ebx
pop ebp
push ebx
push ecx
pop ebp
pop edx
push edi
push ebx
push edi
pop esi
pop esp
push ebx
push edi
lea ecx, [ebp - 0x119]
call fcn.10039fd0
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.1002a4c0
mov ecx, dword [ebp - 0x134]
test ecx, ecx
je 0x10029631
mov eax, dword [ebp - 0x138]
test eax, eax
je 0x10029631
push eax
push ecx
call fcn.1002c7b0
add esp, 8
mov esi, eax
jmp 0x10029652
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
cmovae eax, dword [ebp - 0x88]
push eax
push 0x89
call fcn.10042518
add esp, 8
xor esi, esi
lea ecx, [ebp - 0x119]
call fcn.10023390
mov eax, dword [ebp - 0x8c]
cmp eax, 8
jb 0x1002967b
inc eax
lea ecx, [ebp - 0xa0]
push eax
push dword [ebp - 0xa0]
call fcn.10020130
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 0x100296ad
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.10023bd0
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x44], 0xf
mov dword [ebp - 0x48], 0
mov byte [ebp - 0x58], 0
cmp eax, 8
jb 0x100296dd
inc eax
lea ecx, [ebp - 0xd0]
push eax
push dword [ebp - 0xd0]
call fcn.10020130
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 0x1002970f
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.10023bd0
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x5c], 0xf
mov dword [ebp - 0x60], 0
mov byte [ebp - 0x70], 0
cmp eax, 8
jb 0x1002973f
inc eax
lea ecx, [ebp - 0xe8]
push eax
push dword [ebp - 0xe8]
call fcn.10020130
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 0x1002977a
inc eax
lea ecx, [ebp - 0xb8]
push eax
push dword [ebp - 0xb8]
call fcn.10020130
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 0x100297b2
inc eax
lea ecx, [ebp - 0x88]
push eax
push dword [ebp - 0x88]
call fcn.10020130
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.10031bc0
mov esp, ebp
pop ebp
ret 0xc