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

Disassembly:
push 0xffffffffffffffff
push 0x4d5ab4
mov eax, dword fs:[0]
push eax
mov eax, 0x1ba5c
call fcn.004c0c80
mov eax, dword [0x4eb984]
xor eax, esp
mov dword [esp + 0x1ba58], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4eb984]
xor eax, esp
push eax
lea eax, [esp + 0x1ba70]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x1ba80]
xor eax, eax
xor ecx, ecx
xor edx, edx
xor ebp, ebp
test byte [0x57a42c], 1
mov word [0x574e80], ax
mov word [0x573e80], cx
mov word [0x572e80], dx
mov byte [0x572cec], al
jne 0x4ad920
or dword [0x57a42c], 1
mov dword [esp + 0x1ba78], ebp
mov ecx, 0x579b10
call fcn.004a7690
push 0x4d6630
call fcn.004c3aa6
add esp, 4
mov dword [esp + 0x1ba78], 0xffffffff
mov ecx, 0x579b10
mov dword [0x575e84], 0x579b10
call fcn.0047f300
mov ecx, 0x579b6c
call fcn.0047f300
mov ecx, 0x579bc8
call fcn.0047f300
mov al, byte [0x533431]
mov byte [0x57a42a], al
cmp ebx, ebp
jne 0x4ad981
mov ecx, dword [0x535584]
mov edx, dword [0x51f7e4]
push 0x579b10
push 0x4a77b0
push ecx
push str.FINDFILES
push edx
call dword [sym.imp.USER32.dll_DialogBoxParamW]
test eax, eax
je 0x4ae2f8
push 0x4aa420
push ebp
push ebp
push 7
call fcn.004a20a0
push 0x4df418
call fcn.0049ff50
xor eax, eax
cmp ebx, ebp
je 0x4ada52
jmp 0x4ad9b0
movzx ecx, word [eax + 0x54fd34]
mov word [esp + eax + 0x7258], cx
add eax, 2
cmp cx, bp
jne 0x4ad9b0
push 0x4d7800
mov ecx, 0x579bc8
mov byte [0x57a426], 1
mov byte [0x57a425], 1
mov byte [0x57a424], 0
call fcn.0047f330
mov ecx, 0x551d54
call fcn.0047f2b0
push 0x800
lea eax, [esp + 0x7a70]
push eax
mov ecx, 0x551d54
call fcn.0047f5e0
test al, al
je 0x4adb5c
jmp 0x4ada20
lea ecx, [esp + 0x7a6c]
push ecx
mov ecx, 0x579b10
call fcn.0047f330
push 0x800
lea edx, [esp + 0x7a70]
push edx
mov ecx, 0x551d54
call fcn.0047f5e0
test al, al
jne 0x4ada20
jmp 0x4adb5c
mov word [esp + 0x7258], ax
cmp word [0x579c24], bp
je 0x4adb5c
cmp byte [0x57a427], 0
je 0x4ada94
lea edi, [esp + 0x7258]
add edi, 0xfffffffe
lea ebx, [ebx]
mov ax, word [edi + 2]
add edi, 2
cmp ax, bp
jne 0x4ada80
mov ecx, dword [0x4df414]
mov dword [edi], ecx
cmp byte [0x57a428], 0
je 0x4adac4
lea edi, [esp + 0x7258]
add edi, 0xfffffffe
jmp 0x4adab0
mov ax, word [edi + 2]
add edi, 2
cmp ax, bp
jne 0x4adab0
mov edx, dword [0x4df410]
mov dword [edi], edx
cmp byte [0x57a429], 0
je 0x4adaf3
lea edi, [esp + 0x7258]
add edi, 0xfffffffe
jmp 0x4adae0
mov ax, word [edi + 2]
add edi, 2
cmp ax, bp
jne 0x4adae0
mov eax, dword [0x4df40c]
mov dword [edi], eax
lea edi, [esp + 0x7258]
add edi, 0xfffffffe
lea ecx, [ecx]
mov ax, word [edi + 2]
add edi, 2
cmp ax, bp
jne 0x4adb00
mov ecx, dword [str.htc]
mov eax, 0x579c24
mov dword [edi], ecx
mov edx, eax
jmp 0x4adb20
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x4adb20
lea edi, [esp + 0x7258]
sub eax, edx
add edi, 0xfffffffe
jmp 0x4adb40
mov cx, word [edi + 2]
add edi, 2
cmp cx, bp
jne 0x4adb40
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp byte [0x533431], 0
je 0x4adb7c
push 0x800
lea edx, [esp + 0x8a70]
push edx
mov ecx, 0x541ef0
call fcn.00415120
cmp byte [0x57a424], 0
mov dword [0x575e80], ebp
mov byte [0x572ced], 0
mov byte [0x572cee], 1
je 0x4adba9
cmp byte [0x57a42a], 0
jne 0x4adba9
mov ecx, 2
jmp 0x4adbab
xor ecx, ecx
mov eax, 0x579b6c
cmp ebx, ebp
je 0x4adbb6
mov eax, ebx
push 3
push ebp
push ecx
push eax
lea ecx, [esp + 0x3240]
call fcn.00477a80
mov dword [esp + 0x1ba78], 1
lea ecx, [esp + 0x1184]
call fcn.00482210
lea ecx, [esp + 0x118c]
call fcn.00482210
lea ecx, [esp + 0x1194]
call fcn.00482210
lea eax, [esp + 0x174]
push eax
lea ecx, [esp + 0x3234]
call fcn.00478320
test eax, eax
jne 0x4ae1ce
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
jmp 0x4adc20
cmp byte [0x535500], 0
jne 0x4ae1ce
call fcn.00453460
mov eax, dword [0x575e80]
cmp eax, ebp
je 0x4adc56
movzx ecx, byte [0x57a42a]
mov edx, dword [0x53342c]
push ecx
push eax
push edx
call fcn.004a9e00
mov dword [0x575e80], ebp
cmp word [esp + 0x174], 0x2e
jne 0x4adc73
cmp word [esp + 0x176], 0x5c
lea ecx, [esp + 0x178]
je 0x4adc7a
lea ecx, [esp + 0x174]
lea edx, [esp + 0x9a6c]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
cmp ax, bp
jne 0x4adc81
push 0x50
lea eax, [esp + 0x9a70]
push eax
call fcn.00453030
push eax
push 0x523
call fcn.004750b0
push eax
lea ecx, [esp + 0xaa74]
push ecx
mov edx, 0x800
call fcn.00495190
mov eax, dword [0x53342c]
add esp, 0xc
lea edx, [esp + 0xaa6c]
push edx
push 0x9b
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
cmp byte [0x57a426], 0
je 0x4add33
cmp byte [esp + 0x1180], 0
jne 0x4add33
mov ecx, 0x579bc8
call fcn.0047f2b0
mov ecx, 0x579bc8
call fcn.0047f6b0
mov esi, eax
cmp esi, ebp
je 0x4add33
jmp 0x4add10
push ebp
lea ecx, [esp + 0x178]
push ecx
push esi
call fcn.00452910
test al, al
jne 0x4add9f
mov ecx, 0x579bc8
call fcn.0047f6b0
mov esi, eax
cmp esi, ebp
jne 0x4add10
cmp byte [0x57a425], 0
je 0x4ae1b2
cmp byte [esp + 0x1180], 0
je 0x4add58
cmp word [esp + 0x7258], bp
jne 0x4ae1b2
mov ecx, 0x579b10
call fcn.0047f2b0
mov ecx, 0x579b10
call fcn.0047f6b0
cmp eax, ebp
je 0x4ae1b2
push 4
lea ecx, [esp + 0x178]
push ecx
push eax
call fcn.00452910
test al, al
jne 0x4ae0d3
mov ecx, 0x579b10
call fcn.0047f6b0
cmp eax, ebp
jne 0x4add74
jmp 0x4ae1b2
cmp word [esi], 0x2a
jne 0x4addd4
cmp word [esi + 2], bp
jne 0x4addd4
cmp byte [0x57a42a], 0
jne 0x4addd4
push 1
push ebp
push ebp
push ebp
push ebp
lea edx, [esp + 0x188]
push edx
mov ecx, 0x541ef0
call fcn.00419120
test al, al
je 0x4add33
cmp byte [0x57a42a], 0
mov esi, 2
mov dword [0x5344d4], esi
je 0x4addef
mov byte [0x5423f4], 1
cmp word [esp + 0x7258], bp
push 1
setne al
movzx ecx, al
push ecx
lea edx, [esp + 0x17c]
push edx
mov ecx, 0x541ef0
call fcn.00418720
cmp eax, esi
jne 0x4ade28
call fcn.0045d9f0
test al, al
je 0x4ae1ce
jmp 0x4ae1b2
cmp eax, 1
jne 0x4add33
push 1
push ebp
push ebp
push ebp
lea ecx, [esp + 0x7a7c]
push ecx
lea edx, [esp + 0x188]
xor eax, eax
push edx
mov ecx, 0x541ef0
mov word [esp + 0x7a84], ax
call fcn.00419120
lea eax, [esp + 0x7a6c]
push eax
lea ecx, [esp + 0x178]
push ecx
call fcn.00486990
test eax, eax
je 0x4adf06
lea edx, [esp + 0x7a6c]
push edx
call edi
cmp eax, 0xffffffff
jne 0x4ae1b2
push 0x4d781c
lea eax, [esp + 0x7a70]
push eax
call fcn.00461820
lea ecx, [esp + 0x7a6c]
push ecx
lea edx, [esp + 0x178]
push edx
call fcn.00486990
test eax, eax
je 0x4adec8
lea eax, [esp + 0x7a6c]
push eax
call edi
cmp eax, 0xffffffff
jne 0x4ae1b2
push 0x4d7824
lea ecx, [esp + 0x7a70]
push ecx
call fcn.00461820
lea edx, [esp + 0x7a6c]
push edx
lea eax, [esp + 0x178]
push eax
call fcn.00486990
test eax, eax
je 0x4adf06
lea ecx, [esp + 0x7a6c]
push ecx
call edi
cmp eax, 0xffffffff
jne 0x4ae1b2
cmp word [esp + 0x7258], bp
jne 0x4adfd2
push 1
lea edx, [esp + 0x21e4]
push edx
mov ecx, 0x541ef0
xor ebx, ebx
call fcn.00414e40
test al, al
je 0x4ae1b2
cmp byte [0x535500], 0
jne 0x4ae1b2
inc ebx
test bl, 0x1f
jne 0x4adf4a
call fcn.00453460
mov ecx, 0x579b10
call fcn.0047f2b0
mov ecx, 0x579b10
call fcn.0047f6b0
cmp eax, ebp
je 0x4adfb1
push 4
lea ecx, [esp + 0x21e4]
push ecx
push eax
call fcn.00452910
test al, al
jne 0x4adf86
mov ecx, 0x579b10
call fcn.0047f6b0
cmp eax, ebp
jne 0x4adf62
jmp 0x4adfb1
mov edx, dword [esp + 0x31f0]
push 0x4d94c4
push edx
call fcn.0043c310
movzx eax, al
push eax
lea ecx, [esp + 0x21e8]
push ecx
lea edx, [esp + 0x180]
push edx
call fcn.004a5030
push 1
lea eax, [esp + 0x21e4]
push eax
mov ecx, 0x541ef0
call fcn.00414e40
test al, al
jne 0x4adf32
jmp 0x4ae1b2
lea ecx, [esp + 0x14]
push ecx
mov ecx, 0x541ef0
call fcn.00415170
mov ecx, 0x541ef0
call fcn.00414200
and eax, 0x400
and edx, ebp
or eax, edx
je 0x4ae013
push 0x3ac
call fcn.004750b0
push eax
push 0x550d52
call fcn.004ace90
add esp, 8
jmp 0x4ae1b2
push ebp
call fcn.0049aa70
push 0x800
push 0x550d52
mov ecx, 0x541ef0
call fcn.00415140
mov edx, dword [esp + 0x94]
mov ecx, 0x551d54
mov dword [0x54dcf0], edx
call fcn.0047f300
mov ecx, 0x579b10
call fcn.0047f2b0
mov ecx, 0x579b10
call fcn.0047f6b0
cmp eax, ebp
je 0x4ae079
lea esp, [esp]
push eax
mov ecx, 0x551d54
call fcn.0047f330
mov ecx, 0x579b10
call fcn.0047f6b0
cmp eax, ebp
jne 0x4ae060
lea eax, [esp + 0x7258]
push eax
push 0x4df400
push 0x54fd32
mov edx, 0x810
mov byte [0x54bc11], 1
mov dword [0x54bbf0], ebp
mov dword [0x54bbf4], ebp
mov dword [0x54bbf8], ebp
mov dword [0x54bbfc], ebp
call fcn.00495190
add esp, 0xc
mov ecx, 0x541ef0
mov byte [0x54fd0c], 1
mov dword [0x5344d4], esi
call fcn.00414170
jmp 0x4ae1b2
cmp word [esp + 0x7258], bp
jne 0x4ae10b
lea edx, [esp + 0x174]
push edx
push ebp
lea eax, [esp + 0x7260]
push eax
push ebp
push ebp
call fcn.004419b0
push ebp
push ebp
push ebp
push ebp
lea ecx, [esp + 0xba7c]
push ecx
call fcn.004419b0
jmp 0x4ae1b2
lea ecx, [esp + 0x11bc]
call fcn.0043b140
mov byte [esp + 0x1ba78], 2
push 4
lea edx, [esp + 0x178]
push edx
lea ecx, [esp + 0x11c4]
call fcn.0043b180
test al, al
je 0x4ae19e
lea eax, [esp + 0x174]
push eax
push ebp
lea ecx, [esp + 0x7260]
push ecx
push ebp
push ebp
call fcn.004419b0
push 0x10000
lea edx, [esp + 0xba70]
push edx
lea ecx, [esp + 0x11c4]
call fcn.0043bba0
cmp eax, ebp
je 0x4ae19e
mov edi, edi
push ebp
push ebp
push ebp
push eax
lea eax, [esp + 0xba7c]
push eax
call fcn.004419b0
push 0x10000
lea ecx, [esp + 0xba70]
push ecx
lea ecx, [esp + 0x11c4]
call fcn.0043bba0
cmp eax, ebp
jne 0x4ae170
mov byte [esp + 0x1ba78], 1
lea ecx, [esp + 0x11bc]
call fcn.0043b850
lea edx, [esp + 0x174]
push edx
lea ecx, [esp + 0x3234]
call fcn.00478320
test eax, eax
je 0x4adc20
cmp byte [0x535500], 0
mov byte [0x572cee], 0
je 0x4ae1ee
cmp byte [0x572cec], 0
je 0x4ae1ee
mov byte [0x535500], 0
mov eax, dword [0x575e80]
cmp eax, ebp
je 0x4ae212
movzx ecx, byte [0x57a42a]
mov edx, dword [0x53342c]
push ecx
push eax
push edx
call fcn.004a9e00
mov dword [0x575e80], ebp
push 0x270
mov byte [0x572ced], 0
call fcn.004750b0
push eax
mov eax, dword [0x53342c]
push 0x9b
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
cmp byte [0x535500], 0
je 0x4ae24d
mov ecx, dword [0x53342c]
push ecx
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x4ae252
call fcn.0049fac0
cmp word [0x573e80], bp
je 0x4ae293
push 0x573e80
mov ecx, 0x53fdc8
call fcn.00450a30
cmp word [0x574e80], bp
je 0x4ae282
push 0x574e80
mov ecx, 0x53fdc8
call fcn.00450b30
push 0x572e80
mov ecx, 0x53fdc8
call fcn.0044eed0
jmp 0x4ae2e1
cmp word [0x574e80], bp
je 0x4ae2c6
mov ecx, 0x53fdc8
call fcn.0044ee60
push 0x574e80
mov ecx, 0x53fdc8
call fcn.00450b30
push 0x572e80
mov ecx, 0x53fdc8
call fcn.0044eed0
jmp 0x4ae2e1
cmp byte [0x533431], 0
je 0x4ae2e1
lea edx, [esp + 0x8a6c]
push edx
mov ecx, 0x541ef0
call fcn.00415000
mov dword [esp + 0x1ba78], 0xffffffff
lea ecx, [esp + 0x3230]
call fcn.00477cf0
mov ecx, dword [esp + 0x1ba70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1ba58]
xor ecx, esp
call fcn.004c0c62
add esp, 0x1ba68
ret 4