Function at 0x43dec0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4683a5
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x36c
push 0xffffffffffffffff
push 0
mov ecx, dword [ebp + 0x10]
call fcn.004124f0
mov dword [ebp - 0x10], 0x46d770
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00409a7c
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x1ec], ecx
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x1ec]
push eax
call fcn.0044dbff
add esp, 8
mov dword [ebp - 0x1e8], eax
cmp dword [ebp - 0x1e8], 0
jne 0x43df3b
mov dword [ebp - 0x360], 0xffffffff
jmp 0x43df4a
mov ecx, dword [ebp - 0x1e8]
sub ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x360], ecx
cmp dword [ebp - 0x360], 0
jl 0x43df86
mov dword [ebp - 0x1b8], 0x80070057
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x2c]
sub edx, 0x10
mov dword [ebp - 0x1f0], edx
mov ecx, dword [ebp - 0x1f0]
call fcn.00401741
mov eax, dword [ebp - 0x1b8]
jmp 0x43e9c2
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00409a7c
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x1fc], ecx
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x1fc]
push eax
call fcn.0044dbff
add esp, 8
mov dword [ebp - 0x1f8], eax
cmp dword [ebp - 0x1f8], 0
jne 0x43dfcd
mov dword [ebp - 0x364], 0xffffffff
jmp 0x43dfdc
mov ecx, dword [ebp - 0x1f8]
sub ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x364], ecx
cmp dword [ebp - 0x364], 0
jge 0x43e1c2
lea ecx, [ebp - 0x34]
call fcn.00403078
mov byte [ebp - 4], 2
push 0x104
lea ecx, [ebp - 0x34]
call fcn.00403123
mov dword [ebp - 0x200], eax
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x200]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathCombineA]
push 0xffffffffffffffff
lea ecx, [ebp - 0x34]
call fcn.0040cacd
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x204], edx
mov eax, dword [ebp - 0x204]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x43e0b6
mov ecx, dword [ebp - 0x34]
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.004130e0
mov dword [ebp - 0x1bc], 0
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x34]
sub edx, 0x10
mov dword [ebp - 0x218], edx
mov ecx, dword [ebp - 0x218]
call fcn.00401741
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x1c]
sub eax, 0x10
mov dword [ebp - 0x21c], eax
mov ecx, dword [ebp - 0x21c]
call fcn.00401741
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x10
mov dword [ebp - 0x220], ecx
mov ecx, dword [ebp - 0x220]
call fcn.00401741
mov eax, dword [ebp - 0x1bc]
jmp 0x43e9c2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 2
jne 0x43e12e
mov dword [ebp - 0x1c0], 1
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x34]
sub edx, 0x10
mov dword [ebp - 0x224], edx
mov ecx, dword [ebp - 0x224]
call fcn.00401741
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x1c]
sub eax, 0x10
mov dword [ebp - 0x228], eax
mov ecx, dword [ebp - 0x228]
call fcn.00401741
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x10
mov dword [ebp - 0x22c], ecx
mov ecx, dword [ebp - 0x22c]
call fcn.00401741
mov eax, dword [ebp - 0x1c0]
jmp 0x43e9c2
cmp dword [ebp - 0x30], 0
jg 0x43e13f
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x368], edx
jmp 0x43e157
mov eax, dword [ebp - 0x30]
and eax, 0xffff
or eax, 0x70000
or eax, 0x80000000
mov dword [ebp - 0x368], eax
mov ecx, dword [ebp - 0x368]
mov dword [ebp - 0x1c4], ecx
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x34]
sub edx, 0x10
mov dword [ebp - 0x230], edx
mov ecx, dword [ebp - 0x230]
call fcn.00401741
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x1c]
sub eax, 0x10
mov dword [ebp - 0x234], eax
mov ecx, dword [ebp - 0x234]
call fcn.00401741
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x10
mov dword [ebp - 0x238], ecx
mov ecx, dword [ebp - 0x238]
call fcn.00401741
mov eax, dword [ebp - 0x1c4]
jmp 0x43e9c2
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x14], 0x46b5e8
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x18]
call fcn.00403078
mov byte [ebp - 4], 3
lea edx, [ebp - 0x28]
push edx
mov eax, dword [ebp - 0x14]
push eax
lea ecx, [ebp - 0x20]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00413410
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x20]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x23c], eax
xor ecx, ecx
cmp dword [ebp - 0x23c], 0
sete cl
movzx edx, cl
test edx, edx
jne 0x43e97f
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x244], eax
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x244]
push edx
call fcn.0044dbff
add esp, 8
mov dword [ebp - 0x240], eax
cmp dword [ebp - 0x240], 0
jne 0x43e255
mov dword [ebp - 0x36c], 0xffffffff
jmp 0x43e264
mov eax, dword [ebp - 0x240]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x36c], eax
cmp dword [ebp - 0x36c], 0
jl 0x43e7d5
lea ecx, [ebp - 0x190]
call fcn.0040c4c6
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x180]
call fcn.0040d2b5
mov byte [ebp - 4], 6
push 0x46da1c
lea ecx, [ebp - 0x180]
call fcn.0043ec70
mov dword [ebp - 0x17c], 0xffffffff
push 0x140
push 0
lea edx, [ebp - 0x178]
push edx
call fcn.00449160
add esp, 0xc
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x180]
mov dword [ebp - 0x258], eax
mov ecx, dword [ebp - 0x258]
push ecx
lea ecx, [ebp - 0x17c]
call fcn.0043ed40
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x43e3e1
mov edx, dword [ebp - 0x178]
and edx, 0x10
neg edx
sbb edx, edx
neg edx
movzx eax, dl
test eax, eax
je 0x43e3ce
movsx ecx, byte [ebp - 0x14c]
cmp ecx, 0x2e
jne 0x43e346
movsx edx, byte [ebp - 0x14b]
test edx, edx
je 0x43e33a
movsx eax, byte [ebp - 0x14b]
cmp eax, 0x2e
jne 0x43e346
movsx ecx, byte [ebp - 0x14a]
test ecx, ecx
jne 0x43e346
mov dword [ebp - 0x370], 1
jmp 0x43e350
mov dword [ebp - 0x370], 0
movzx edx, byte [ebp - 0x370]
test edx, edx
jne 0x43e3ce
lea eax, [ebp - 0x14c]
push eax
lea ecx, [ebp - 0x194]
call fcn.00409a7c
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x260], ecx
mov edx, dword [ebp - 0x194]
mov dword [ebp - 0x264], edx
mov eax, dword [ebp - 0x260]
push eax
mov ecx, dword [ebp - 0x264]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathMatchSpecA]
test eax, eax
je 0x43e3b0
mov edx, dword [ebp - 0x194]
push edx
lea ecx, [ebp - 0x190]
call fcn.004130e0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x194]
sub eax, 0x10
mov dword [ebp - 0x278], eax
mov ecx, dword [ebp - 0x278]
call fcn.00401741
lea ecx, [ebp - 0x17c]
call fcn.0043eda0
mov dword [ebp - 0x24], eax
jmp 0x43e2e8
xor ecx, ecx
cmp dword [ebp - 0x18c], 0
sete cl
movzx edx, cl
test edx, edx
je 0x43e4b8
mov dword [ebp - 0x1c8], 1
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x17c]
call fcn.0043ee00
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x180]
sub eax, 0x10
mov dword [ebp - 0x284], eax
mov ecx, dword [ebp - 0x284]
call fcn.00401741
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x190]
call fcn.0040ec45
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x20]
sub ecx, 0x10
mov dword [ebp - 0x288], ecx
mov ecx, dword [ebp - 0x288]
call fcn.00401741
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x18]
sub edx, 0x10
mov dword [ebp - 0x28c], edx
mov ecx, dword [ebp - 0x28c]
call fcn.00401741
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x1c]
sub eax, 0x10
mov dword [ebp - 0x290], eax
mov ecx, dword [ebp - 0x290]
call fcn.00401741
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x10
mov dword [ebp - 0x294], ecx
mov ecx, dword [ebp - 0x294]
call fcn.00401741
mov eax, dword [ebp - 0x1c8]
jmp 0x43e9c2
mov dword [ebp - 0x198], 0
mov edx, dword [ebp - 0x18c]
mov dword [ebp - 0x19c], edx
jmp 0x43e4df
mov eax, dword [ebp - 0x198]
add eax, 1
mov dword [ebp - 0x198], eax
mov ecx, dword [ebp - 0x198]
cmp ecx, dword [ebp - 0x19c]
jae 0x43e6ff
lea edx, [ebp - 0x18]
push edx
lea ecx, [ebp - 0x1a0]
call fcn.0040d2b5
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x1a0]
call fcn.0043ebf0
mov eax, dword [ebp - 0x198]
cmp eax, dword [ebp - 0x18c]
jb 0x43e527
push 0x80070057
call fcn.0040109c
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp - 0x190]
lea eax, [edx + ecx*4]
mov dword [ebp - 0x2a0], eax
mov ecx, dword [ebp - 0x2a0]
mov edx, dword [ecx]
mov dword [ebp - 0x2a4], edx
mov eax, dword [ebp - 0x2a4]
push eax
lea ecx, [ebp - 0x1a0]
call fcn.0043ec70
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x2b8], edx
mov eax, dword [ebp - 0x2b8]
cmp eax, dword [ebp - 0x28]
jle 0x43e590
lea ecx, [ebp - 0x1a0]
call fcn.0043ebf0
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x28]
push ecx
lea ecx, [ebp - 0x1a0]
call fcn.0043ec70
lea ecx, [ebp - 0x1b0]
call fcn.0040c4c6
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x2d4], edx
lea eax, [ebp - 0x1b0]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x2d4]
push edx
call fcn.0043dec0
add esp, 0xc
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x1b0]
push eax
mov ecx, dword [ebp + 0x10]
call fcn.0043ee60
cmp dword [ebp - 0x24], 0
jge 0x43e6cd
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x1cc], ecx
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x1b0]
call fcn.0040ec45
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x1a0]
sub edx, 0x10
mov dword [ebp - 0x2d8], edx
mov ecx, dword [ebp - 0x2d8]
call fcn.00401741
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x17c]
call fcn.0043ee00
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x180]
sub eax, 0x10
mov dword [ebp - 0x2dc], eax
mov ecx, dword [ebp - 0x2dc]
call fcn.00401741
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x190]
call fcn.0040ec45
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x20]
sub ecx, 0x10
mov dword [ebp - 0x2e0], ecx
mov ecx, dword [ebp - 0x2e0]
call fcn.00401741
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x18]
sub edx, 0x10
mov dword [ebp - 0x2e4], edx
mov ecx, dword [ebp - 0x2e4]
call fcn.00401741
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x1c]
sub eax, 0x10
mov dword [ebp - 0x2e8], eax
mov ecx, dword [ebp - 0x2e8]
call fcn.00401741
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x10
mov dword [ebp - 0x2ec], ecx
mov ecx, dword [ebp - 0x2ec]
call fcn.00401741
mov eax, dword [ebp - 0x1cc]
jmp 0x43e9c2
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x1b0]
call fcn.0040ec45
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x1a0]
sub edx, 0x10
mov dword [ebp - 0x2f0], edx
mov ecx, dword [ebp - 0x2f0]
call fcn.00401741
jmp 0x43e4d0
mov eax, dword [ebp + 0x10]
xor ecx, ecx
cmp dword [eax + 4], 0
sete cl
movzx edx, cl
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x1d0], edx
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x17c]
call fcn.0043ee00
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x180]
sub eax, 0x10
mov dword [ebp - 0x2f4], eax
mov ecx, dword [ebp - 0x2f4]
call fcn.00401741
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x190]
call fcn.0040ec45
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x20]
sub ecx, 0x10
mov dword [ebp - 0x2f8], ecx
mov ecx, dword [ebp - 0x2f8]
call fcn.00401741
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x18]
sub edx, 0x10
mov dword [ebp - 0x2fc], edx
mov ecx, dword [ebp - 0x2fc]
call fcn.00401741
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x1c]
sub eax, 0x10
mov dword [ebp - 0x300], eax
mov ecx, dword [ebp - 0x300]
call fcn.00401741
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x10
mov dword [ebp - 0x304], ecx
mov ecx, dword [ebp - 0x304]
call fcn.00401741
mov eax, dword [ebp - 0x1d0]
jmp 0x43e9c2
mov edx, dword [ebp - 0x18]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x308], eax
xor ecx, ecx
cmp dword [ebp - 0x308], 0
sete cl
movzx edx, cl
test edx, edx
jne 0x43e7fc
lea ecx, [ebp - 0x18]
call fcn.0043ebf0
mov eax, dword [ebp - 0x20]
push eax
lea ecx, [ebp - 0x18]
call fcn.0043ec70
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x324], ecx
mov edx, dword [ebp - 0x324]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x43e92f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1b4], eax
cmp dword [ebp - 0x1b4], 2
jne 0x43e8b0
mov dword [ebp - 0x1d4], 1
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x20]
sub eax, 0x10
mov dword [ebp - 0x328], eax
mov ecx, dword [ebp - 0x328]
call fcn.00401741
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x18]
sub ecx, 0x10
mov dword [ebp - 0x32c], ecx
mov ecx, dword [ebp - 0x32c]
call fcn.00401741
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x1c]
sub edx, 0x10
mov dword [ebp - 0x330], edx
mov ecx, dword [ebp - 0x330]
call fcn.00401741
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.00402073
mov eax, dword [ebp - 0x1d4]
jmp 0x43e9c2
cmp dword [ebp - 0x1b4], 0
jg 0x43e8c7
mov eax, dword [ebp - 0x1b4]
mov dword [ebp - 0x374], eax
jmp 0x43e8e5
mov ecx, dword [ebp - 0x1b4]
and ecx, 0xffff
or ecx, 0x70000
or ecx, 0x80000000
mov dword [ebp - 0x374], ecx
mov edx, dword [ebp - 0x374]
mov dword [ebp - 0x1d8], edx
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x20]
call fcn.00402073
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x18]
call fcn.00402073
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c]
call fcn.00402073
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.00402073
mov eax, dword [ebp - 0x1d8]
jmp 0x43e9c2
lea eax, [ebp - 0x28]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
lea edx, [ebp - 0x1dc]
push edx
lea ecx, [ebp - 0x1c]
call fcn.00413410
mov dword [ebp - 0x378], eax
mov eax, dword [ebp - 0x378]
mov dword [ebp - 0x348], eax
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x348]
push ecx
lea ecx, [ebp - 0x20]
call fcn.0040e6c3
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1dc]
call fcn.00402073
jmp 0x43e1fb
mov dword [ebp - 0x1e0], 0x80004005
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x20]
call fcn.00402073
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x18]
call fcn.00402073
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c]
call fcn.00402073
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.00402073
mov eax, dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret