Function at 0x100add2c
Capabilities:
Check if file exists

Disassembly:
push 0x48
mov eax, 0x100c0d68
call fcn.100b0a55
mov esi, ecx
mov edi, dword [ebp + 8]
mov ecx, edi
call fcn.100ae4d6
mov ebx, eax
test ebx, ebx
jl 0x100adf30
lea eax, [edi + ebx*2]
cmp word [eax + 2], 0
je 0x100adf30
push eax
lea ecx, [ebp - 0x2c]
call fcn.10002de3
and dword [ebp - 4], 0
push edi
lea ecx, [ebp - 0x20]
call fcn.10002de3
mov byte [ebp - 4], 1
cmp ebx, dword [ebp - 0x1c]
jae 0x100add87
mov ecx, dword [ebp - 0x20]
xor eax, eax
mov dword [ebp - 0x1c], ebx
mov word [ecx + ebx*2], ax
mov eax, dword [ebp - 0x28]
cmp eax, 6
jbe 0x100adda4
mov ecx, dword [ebp - 0x2c]
lea ecx, [ecx + eax*2 - 0xc]
mov edx, 0x100cd300
call fcn.10002559
test al, al
jne 0x100addb1
push str.:_DATA
lea ecx, [ebp - 0x2c]
call fcn.10002fb5
mov ecx, dword [ebp - 0x20]
call fcn.1008f82c
test al, al
mov eax, dword [ebp - 0x20]
je 0x100addf6
cmp ebx, 2
je 0x100addd1
cmp ebx, 3
jne 0x100addf6
cmp word [eax + 4], 0x5c
jne 0x100addf6
mov ecx, esi
call fcn.100adc86
lea ecx, [esi + 0x28]
and dword [ecx + 4], 0
mov eax, dword [ecx]
xor edx, edx
mov word [eax], dx
cmp ebx, 2
jne 0x100ade06
lea eax, [ebp - 0x20]
push eax
call fcn.10002edf
jmp 0x100ade06
push eax
mov ecx, esi
call fcn.100add2c
test al, al
je 0x100adf1e
and dword [esi + 0x20], 0xfffffbef
and dword [esi], 0
and dword [esi + 4], 0
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x3c]
call fcn.100adcff
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 2
call fcn.10002dbf
jmp 0x100ade5c
cmp byte [ebp + 0xb], 0
je 0x100adeaa
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x54]
call fcn.1000354b
test al, al
jne 0x100adee4
push dword [ebp - 0x54]
mov byte [ebp - 4], 2
call fcn.10003deb
pop ecx
lea ecx, [ebp - 0x54]
call fcn.10002dbf
lea eax, [ebp + 0xb]
push eax
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 3
call fcn.100adc4a
test al, al
jne 0x100ade2e
push dword [ebp - 0x54]
call fcn.10003deb
push dword [ebp - 0x38]
call fcn.10003deb
pop ecx
pop ecx
lea ecx, [ebp - 0x3c]
call fcn.100ada43
push dword [ebp - 0x20]
call fcn.10003deb
push dword [ebp - 0x2c]
call fcn.10003deb
pop ecx
pop ecx
xor al, al
call fcn.100b0b2d
ret 4
push 2
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor bl, bl
push dword [ebp - 0x54]
call fcn.10003deb
push dword [ebp - 0x38]
call fcn.10003deb
pop ecx
pop ecx
lea ecx, [ebp - 0x3c]
call fcn.100ada43
push dword [ebp - 0x20]
call fcn.10003deb
push dword [ebp - 0x2c]
call fcn.10003deb
pop ecx
pop ecx
mov al, bl
jmp 0x100adea2
mov ecx, dword [ebp - 0x50]
cmp ecx, 7
jbe 0x100adeff
lea eax, [ecx - 6]
cmp eax, ecx
jae 0x100adeff
mov edx, dword [ebp - 0x54]
xor ecx, ecx
mov dword [ebp - 0x50], eax
mov word [edx + eax*2], cx
lea eax, [ebp - 0x54]
push eax
lea ecx, [esi + 0x28]
call fcn.10002ff4
mov eax, dword [ebp - 0x44]
mov dword [esi], eax
mov eax, dword [ebp - 0x40]
mov dword [esi + 4], eax
mov byte [esi + 0x24], 1
mov bl, 1
jmp 0x100adeb4
push dword [ebp - 0x20]
call fcn.10003deb
push dword [ebp - 0x2c]
call fcn.10003deb
pop ecx
pop ecx
or dword [ebp + 8], 0xffffffff
push esi
push edi
lea ecx, [ebp + 8]
mov dword [ebp - 4], 4
call fcn.100ada63
test al, al
je 0x100adf58
lea ecx, [ebp + 8]
call fcn.100ada43
mov al, 1
jmp 0x100adea2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x14], eax
cmp eax, 2
je 0x100adf80
cmp eax, 0x35
je 0x100adf80
cmp eax, 0x43
je 0x100adf80
cmp eax, 0x7b
je 0x100adf80
cmp eax, 0xa1
jne 0x100ae0fb
mov ecx, edi
xor ebx, ebx
call fcn.100ae499
test al, al
je 0x100adf90
push 4
pop ebx
movzx eax, word [edi]
cmp ax, 0x5c
je 0x100adf9f
cmp ax, 0x2f
jne 0x100adfdc
cmp word [edi + 2], 0
jne 0x100adfdc
mov ecx, edi
call fcn.100adca9
mov edx, eax
cmp edx, 0xffffffff
je 0x100ae0fb
test dl, 0x10
je 0x100ae0fb
mov ecx, esi
call fcn.100adc86
and dword [esi + 0x2c], 0
mov eax, dword [esi + 0x28]
xor ecx, ecx
mov word [eax], cx
mov dword [esi + 0x20], edx
jmp 0x100adf49
lea ecx, [edi + ebx*2]
mov dword [ebp - 0x10], ecx
call fcn.100ae38a
test al, al
je 0x100ae041
cmp word [edi + ebx*2 + 6], 0
jne 0x100ae041
mov ecx, edi
call fcn.100adca9
mov edx, eax
cmp edx, 0xffffffff
je 0x100ae0fb
test dl, 0x10
je 0x100ae0fb
mov ecx, esi
call fcn.100adc86
push dword [ebp - 0x10]
mov dword [esi + 0x20], edx
add esi, 0x28
mov ecx, esi
call fcn.10002e7f
push 2
pop eax
cmp dword [esi + 4], eax
jbe 0x100adf49
mov dword [esi + 4], eax
mov eax, dword [esi]
xor ecx, ecx
mov word [eax + 4], cx
jmp 0x100adf49
mov ecx, edi
call fcn.100ae43f
test eax, eax
jbe 0x100ae0fb
lea eax, [edi + eax*2]
cmp word [eax], 0
mov dword [ebp - 0x10], eax
je 0x100ae0fb
mov ecx, eax
call fcn.100ae364
test eax, eax
jge 0x100ae0fb
push edi
lea ecx, [ebp - 0x38]
call fcn.10002de3
push 0x5c
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 5
call fcn.100034fb
push 0x2a
lea ecx, [ebp - 0x38]
call fcn.100034fb
push esi
push dword [ebp - 0x38]
lea ecx, [ebp + 8]
xor bl, bl
call fcn.100ada63
test al, al
je 0x100ae0d2
lea ebx, [esi + 0x28]
mov eax, dword [ebx]
push 0x100c2758
push eax
call fcn.100b1648
pop ecx
pop ecx
test eax, eax
jne 0x100ae0d0
push dword [ebp - 0x10]
mov ecx, ebx
call fcn.10002e7f
push dword [ebp - 0x38]
call fcn.10003deb
pop ecx
jmp 0x100adf49
mov bl, 1
mov ecx, edi
call fcn.100adca9
mov edx, eax
test bl, bl
jne 0x100ae0ff
cmp edx, 0xffffffff
je 0x100ae0e9
test dl, 0x10
jne 0x100ae0ff
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_SetLastError]
push dword [ebp - 0x38]
call fcn.10003deb
pop ecx
xor bl, bl
jmp 0x100ae12d
mov ecx, esi
call fcn.100adc86
cmp edx, 0xffffffff
je 0x100ae110
mov dword [esi + 0x20], edx
jmp 0x100ae117
mov dword [esi + 0x20], 0x10
push dword [ebp - 0x10]
lea ecx, [esi + 0x28]
call fcn.10002e7f
push dword [ebp - 0x38]
call fcn.10003deb
pop ecx
mov bl, 1
lea ecx, [ebp + 8]
call fcn.100ada43
jmp 0x100adee0