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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10166e13
mov eax, dword fs:[0]
push eax
sub esp, 0xac
mov eax, dword [0x10438fc0]
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 edi, ecx
mov esi, edx
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x8c], esi
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x78]
push eax
mov ebx, esi
call fcn.10034460
mov ebx, eax
add esp, 4
test ebx, ebx
jns 0x10033077
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x10033070
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, ebx
jmp 0x100336ee
cmp dword [edi + 0x10], 0
push 0
jne 0x10033561
push 0
push 0
lea esi, [ebp - 0x74]
mov dword [ebp - 0x74], 0
call fcn.100163a0
push 0
mov byte [ebp - 4], 1
mov ebx, dword [ebp - 0x84]
push 1
mov edi, esi
call fcn.10034320
mov eax, dword [ebp - 0x74]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x100330f9
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x100330d9
lea ecx, [eax - 0xc]
test ecx, ecx
je 0x100330d9
add eax, 0xfffffff4
dec dword [eax]
jne 0x100330d9
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x100330ef
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, 0x80040353
jmp 0x100336ee
push 0
push 0
push 0
lea esi, [ebp - 0x80]
mov dword [ebp - 0x80], 0
call fcn.100163a0
mov byte [ebp - 4], 2
mov ebx, dword [ebp - 0x84]
cmp dword [ebx + 0x28], 1
push 1
mov edx, esi
push 0x61
jle 0x1003312b
push str._c_08x.gdbtable
jmp 0x10033130
push str._c_07x.gdbtable
call fcn.10016c90
add esp, 0xc
push 0
mov edi, str.GDB_SystemCatalog
lea eax, [ebp - 0x64]
call fcn.100164f0
push 0x1044dcc0
push 0x168
call fcn.10148ac6
add esp, 8
mov dword [ebp - 0x7c], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x10033175
lea ecx, [ebp - 0x80]
push ecx
push eax
lea ecx, [ebp - 0x64]
mov edx, ebx
call fcn.100689f0
jmp 0x10033177
xor eax, eax
mov dword [ebx + 0x10], eax
neg eax
sbb eax, eax
and eax, 0x7ff8fff2
mov byte [ebp - 4], 2
mov edi, dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
lea esi, [eax - 0x7ff8fff2]
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x100331ae
lea edx, [eax - 0xc]
test edx, edx
je 0x100331ae
add eax, 0xfffffff4
dec dword [eax]
jne 0x100331ae
push eax
call edi
add esp, 4
test esi, esi
jns 0x10033205
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x100331cd
lea ecx, [eax - 0xc]
test ecx, ecx
je 0x100331cd
add eax, 0xfffffff4
dec dword [eax]
jne 0x100331cd
push eax
call edi
add esp, 4
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x100331e8
lea edx, [eax - 0xc]
test edx, edx
je 0x100331e8
add eax, 0xfffffff4
dec dword [eax]
jne 0x100331e8
push eax
call edi
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x100331fe
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, esi
jmp 0x100336ee
push 2
push ecx
mov edx, str.GDB_SystemCatalog
mov esi, esp
mov dword [ebp - 0x7c], esp
call fcn.10017360
lea eax, [ebx + 0x1e0]
push eax
lea esi, [ebp - 0xa4]
call fcn.10024900
mov byte [ebp - 4], 7
call fcn.10024a20
mov esi, eax
test esi, esi
jns 0x10033275
lea ecx, [ebp - 0xa4]
push ecx
mov byte [ebp - 4], 2
call fcn.10024970
lea eax, [ebp - 0x80]
call fcn.100164d0
lea eax, [ebp - 0x74]
call fcn.100164d0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x1003326e
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, esi
jmp 0x100336ee
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
mov esi, dword [ebp - 0x78]
mov eax, dword [edx + 4]
push 0
push esi
call eax
mov edi, eax
test edi, edi
jns 0x100332c1
lea ecx, [ebp - 0xa4]
push ecx
mov byte [ebp - 4], 2
call fcn.10024970
lea eax, [ebp - 0x80]
call fcn.100164d0
lea eax, [ebp - 0x74]
call fcn.100164d0
lea esi, [ebp - 0x78]
mov dword [ebp - 4], 0xffffffff
call fcn.1000a090
mov eax, edi
jmp 0x100336ee
push 0xc
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [ebp - 0x7c], eax
mov byte [ebp - 4], 8
test eax, eax
je 0x100332ea
mov ebx, esi
push 0
mov esi, eax
call fcn.10034a00
mov ebx, dword [ebp - 0x84]
jmp 0x100332ec
xor eax, eax
mov byte [ebp - 4], 7
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov dword [ebx + 0x14], eax
mov edx, dword [eax + 8]
add edx, 0x18
push edx
call edi
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + 8]
mov edx, 8
mov word [ecx + 0x18], dx
mov eax, dword [0x1044ebf8]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov ecx, dword [ebx + 0x14]
mov edx, dword [ecx + 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + 8]
add ecx, 0x30
push ecx
call edi
mov edx, dword [ebx + 0x14]
mov eax, dword [edx + 8]
mov ecx, 3
mov word [eax + 0x30], cx
mov edx, dword [ebx + 0x14]
mov eax, dword [edx + 8]
mov dword [eax + 0x38], 0
cmp dword [ebx + 0x28], 4
jge 0x100333bd
mov esi, dword [ebx + 0x10]
add esi, 0x18
lea ecx, [ebx + 0x18]
lea eax, [ebp - 0xb8]
call fcn.10030010
mov ecx, dword [eax]
mov dword [ebp - 0x70], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x6c], edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x68], ecx
mov edx, dword [eax + 0xc]
push 0x28
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x70]
push ecx
mov dword [ebp - 0x64], edx
call dword [sym.imp.ole32.dll_StringFromGUID2]
mov edx, dword [ebx + 0x14]
mov eax, dword [edx + 8]
add eax, 0x48
push eax
call edi
mov ecx, dword [ebx + 0x14]
mov edx, dword [ecx + 8]
lea ecx, [ebp - 0x60]
mov eax, 8
push ecx
mov word [edx + 0x48], ax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edx, dword [ebx + 0x14]
mov ecx, dword [edx + 8]
mov dword [ecx + 0x50], eax
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
mov edx, dword [edx + 0xa0]
push 1
push 1
lea eax, [ebp - 0x94]
push eax
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 8]
push eax
call edx
mov edi, eax
xor esi, esi
cmp edi, esi
jge 0x100333fe
mov ebx, dword [ebx + 0x10]
mov eax, dword [ebx]
mov edx, dword [eax + 0x10]
push 1
mov ecx, ebx
call edx
lea eax, [ebp - 0xa4]
push eax
jmp 0x10033292
push 0xc
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
cmp eax, esi
je 0x1003341b
mov dword [eax], esi
mov dword [eax + 8], esi
mov dword [eax + 4], 1
mov esi, eax
mov ecx, dword [ebx + 0x10]
mov dword [esi], ecx
mov edx, dword [ebp - 0x94]
mov dword [esi + 8], edx
mov edi, dword [0x1044ebf8]
push 0
lea eax, [ebp - 0x84]
call fcn.100164f0
lea eax, [ebp - 0x84]
mov byte [ebp - 4], 9
call fcn.10016cb0
mov eax, dword [ebp - 0x84]
push esi
push eax
lea ecx, [ebx + 0x2c]
push ecx
call fcn.10036580
cmp dword [ebx + 0x28], 5
jl 0x100334f4
mov edx, dword [ebp - 0x8c]
xor eax, eax
mov dword [ebp - 0x7c], eax
cmp dword [edx + 0x10], eax
jle 0x100334f4
mov dword [ebp - 0x64], eax
lea esp, [esp]
mov dword [ebp - 0x90], 0
lea esi, [ebp - 0x90]
mov byte [ebp - 4], 0xa
call fcn.10009f80
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ecx + 0xc]
add edx, dword [ebp - 0x64]
push eax
mov eax, dword [ebp - 0x78]
push 1
push eax
push edx
call fcn.100346c0
mov edi, eax
add esp, 0x10
test edi, edi
js 0x10033524
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
mov edx, dword [ebp - 0x90]
mov eax, dword [eax + 0x8c]
push edx
call eax
mov edi, eax
mov byte [ebp - 4], 9
call fcn.1000a090
test edi, edi
js 0x1003354a
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x8c]
add dword [ebp - 0x64], 0x10
inc eax
mov dword [ebp - 0x7c], eax
cmp eax, dword [ecx + 0x10]
jl 0x10033480
lea eax, [ebp - 0x84]
call fcn.100164d0
lea ecx, [ebp - 0xa4]
push ecx
mov byte [ebp - 4], 2
call fcn.10024970
lea eax, [ebp - 0x80]
call fcn.100164d0
lea eax, [ebp - 0x74]
call fcn.100164d0
jmp 0x100336d6
lea esi, [ebp - 0x90]
mov byte [ebp - 4], 9
call fcn.1000a090
lea eax, [ebp - 0x84]
call fcn.100164d0
lea edx, [ebp - 0xa4]
push edx
jmp 0x10033292
lea eax, [ebp - 0x84]
call fcn.100164d0
lea eax, [ebp - 0xa4]
push eax
jmp 0x10033292
mov edi, dword [esi]
lea eax, [ebp - 0x7c]
call fcn.100164f0
mov byte [ebp - 4], 0xb
mov ebx, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebx]
mov edx, dword [edx + 0xc]
lea eax, [ebp - 0x8c]
push eax
push 0
push ecx
lea eax, [ebp - 0x7c]
push eax
mov ecx, ebx
call edx
mov edi, eax
test edi, edi
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x7c]
sets byte [ebp - 0x85]
test eax, eax
je 0x100335bd
lea ecx, [eax - 0xc]
test ecx, ecx
je 0x100335bd
add eax, 0xfffffff4
dec dword [eax]
jne 0x100335bd
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
add esp, 4
cmp byte [ebp - 0x85], 0
je 0x100335e7
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x100332ba
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, edi
jmp 0x100336ee
mov edi, dword [esi]
push 0
lea eax, [ebp - 0x94]
call fcn.100164f0
mov ecx, dword [ebp - 0x94]
lea eax, [ecx - 0xc]
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ecx
inc dword [eax]
test ecx, ecx
je 0x1003361e
add ecx, 0xfffffff4
je 0x1003361e
dec dword [eax]
jne 0x1003361e
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
add esp, 4
cmp dword [ebx + 0x28], 5
jl 0x100336a6
xor ebx, ebx
mov dword [ebp - 0x7c], ebx
cmp dword [esi + 0x10], ebx
jle 0x100336a6
lea ecx, [ebp - 0x74]
push ecx
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x78]
mov eax, dword [esi + 0xc]
push 0
push edx
add eax, ebx
push eax
mov dword [ebp - 0x74], 0
call fcn.100346c0
mov edi, eax
add esp, 0x10
test edi, edi
js 0x1003370a
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x74]
mov edx, dword [edx + 0x8c]
push eax
call edx
mov edi, eax
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x74]
test edi, edi
js 0x10033711
test eax, eax
je 0x10033697
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 0x74], 0
mov eax, dword [ebp - 0x7c]
inc eax
add ebx, 0x10
mov dword [ebp - 0x7c], eax
cmp eax, dword [esi + 0x10]
jl 0x10033632
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x68]
push eax
push ecx
call fcn.10032460
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x100336d6
lea edx, [eax - 0xc]
test edx, edx
je 0x100336d6
add eax, 0xfffffff4
dec dword [eax]
jne 0x100336d6
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x100336ec
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
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.10148524
mov esp, ebp
pop ebp
ret
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x10033724
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 0x74], 0
lea eax, [ebp - 0x68]
push eax
mov byte [ebp - 4], 0
call fcn.1002ffa0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x100332ba
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, edi
jmp 0x100336ee