Function at 0x530898
Capabilities:
Get file attributes

Disassembly:
sub esp, 0x45c
push ebx
push ecx
push edx
push esi
push edi
mov edi, ebx
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], edx
cmp dword [0x78deed], 0
je 0x5308c5
mov esi, dword [0x78deed]
mov ebx, edi
call esi
jmp 0x530d4e
call fcn.0042f50f
lea ecx, [esp + 0x420]
mov dword [esp + 0x28], ecx
mov eax, ecx
mov ebx, 0x50
call fcn.0043508c
cmp byte [esp + 0x420], 0
je 0x5308ed
jmp 0x5308f2
mov ecx, 0
mov dword [0x56a770], ecx
call fcn.0042f50f
lea ecx, [esp + 0x320]
mov dword [esp + 0x18], ecx
mov eax, ecx
mov ebx, 0xff
call fcn.0043508c
cmp byte [esp + 0x320], 0
jne 0x53092a
mov eax, ecx
mov ebx, str.All_Files__._.
call fcn.004f627c
mov eax, 0
mov ebx, eax
cmp byte [esp + ebx + 0x320], 0
je 0x530954
mov ebx, eax
cmp byte [esp + ebx + 0x320], 0x7c
jne 0x530951
mov ebx, eax
mov byte [esp + ebx + 0x320], 0
inc eax
jmp 0x53092f
mov byte [esp + eax + 0x321], 0
mov ebx, edi
mov eax, dword [edi]
mov ebx, dword [esp + 0x24]
call dword [eax + 0x5c]
mov ecx, eax
inc ecx
mov dword [esp + 0x20], ecx
mov eax, ecx
call fcn.004c51f0
mov esi, eax
mov ebx, edi
mov eax, dword [edi]
mov ebx, dword [esp + 0x24]
call dword [eax + 0x28]
call fcn.0042f50f
mov eax, esi
mov ebx, ecx
call fcn.0043508c
push 0x100
lea eax, [esp + 0x48]
push eax
push esi
call sub.KERNEL32.dll_OpenFile
cmp eax, 0xffffffff
jne 0x5309a8
mov byte [esi], 0
mov ecx, 0xffffffff
mov eax, dword [esp + 0x1c]
mov ebx, eax
and ebx, 0x30
cmp ebx, 0x30
pushfd
and eax, 2
mov dword [esp + 0x18], eax
popfd
jne 0x5309e4
cmp eax, 0
je 0x5309d0
mov ecx, 0
jmp 0x5309d5
mov ecx, 1
mov eax, esi
mov ebx, dword [0x56a770]
call fcn.00530d5c
mov ecx, eax
cmp ecx, 0xffffffff
jne 0x530d32
mov eax, 0
lea edx, [esp + 0x2d4]
mov dword [esp + 0x3c], edx
mov eax, edx
mov ebx, 0
mov ecx, 0x4c
call fcn.0042f5e2
mov dword [esp + 0x2d4], 0x4c
mov eax, dword [0x56b97c]
mov eax, dword [eax + 0x10]
cmp eax, 0
je 0x530a2e
mov eax, dword [eax + 0x83]
jmp 0x530a33
mov eax, dword [0x567818]
mov dword [esp + 0x2d8], eax
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x2e0], ebx
mov dword [esp + 0x2ec], 1
mov dword [esp + 0x2f0], esi
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x318], 0x530fc4
mov dword [0x78de6c], 0
call fcn.0050a95c
mov dword [esp + 0x308], 0x4024
mov ecx, dword [esp + 0x14]
cmp ecx, 0
je 0x530a98
or dword [esp + 0x308], 8
mov eax, dword [esp + 0x1c]
and eax, 8
cmp eax, 0
je 0x530aaf
or dword [esp + 0x308], 0x200
cmp dword [0x78d99c], 0
je 0x530ac3
or dword [esp + 0x308], 0x200000
call fcn.00533100
mov dword [esp + 0x40], eax
cmp eax, 0xffffffff
je 0x530ad6
call fcn.00533390
mov eax, dword [esp + 0x1c]
and eax, 0x10
cmp eax, 0
je 0x530b0a
or dword [esp + 0x308], 0x80000
and dword [esp + 0x308], 0xffffffdf
cmp byte [esp + 0x420], 0
je 0x530b0a
mov eax, dword [esp + 0x28]
mov dword [esp + 0x304], eax
mov eax, dword [esp + 0x1c]
and eax, 0x20
cmp eax, 0
je 0x530bf5
mov eax, ebx
mov ebx, 0x56a750
call fcn.004f627c
lea eax, [esp + 0x324]
mov ebx, 0x56a754
call fcn.004f627c
lea eax, [esp + 0xcc]
mov dword [esp + 0x2c], eax
mov ebx, esi
call fcn.004f627c
mov eax, esi
mov ebx, str.XXYZZY.NIG
call fcn.004f627c
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x300], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x304], eax
mov eax, dword [0x567830]
mov dword [esp + 0x2dc], eax
mov dword [esp + 0x308], 0x10864
cmp dword [0x78d99c], 0
je 0x530b96
or dword [esp + 0x308], 0x200000
cmp ecx, 0
je 0x530ba3
or dword [esp + 0x308], 8
mov dword [esp + 0x318], 0x5306f4
mov dword [esp + 0x31c], str.CHOOSEDIR
push edx
call sub.comdlg32.dll_GetSaveFileNameA
mov ecx, eax
mov eax, esi
call fcn.0042f564
jmp 0x530bd6
mov ebx, eax
cmp byte [esi + ebx - 1], 0x5c
jne 0x530bd5
jmp 0x530bdb
dec eax
cmp eax, 0
jne 0x530bca
mov byte [esi + eax], 0
jmp 0x530ce8
mov eax, 0xffffffff
jmp 0x530c3a
and eax, 0x10
cmp eax, 0
jne 0x530c4a
jmp 0x530c3f
mov byte [esp + 0x1d0], 0
lea eax, [esp + 0x1d0]
mov dword [esp + 0x38], eax
mov ebx, 0x104
call fcn.0041da84
cmp eax, 0
setne al
movzx eax, al
mov dword [esp + 0x34], eax
mov ebx, 0
mov eax, esi
call fcn.0042f564
mov dword [esp + 0x30], eax
cmp eax, 0
je 0x530be4
push esi
call sub.KERNEL32.dll_GetFileAttributesA
cmp eax, 0xffffffff
jne 0x530beb
mov eax, dword [esp + 0x30]
cmp byte [esi + eax - 1], 0x5c
jne 0x530c6a
lea ecx, [esp + 0xcc]
mov eax, ecx
mov ebx, esi
call fcn.004f627c
mov dword [esp + 0x300], ecx
mov byte [esi], 0
mov ebx, dword [esp + 0x14]
jmp 0x530c7c
cmp dword [esp + 0x34], 0
je 0x530c7c
mov eax, dword [esp + 0x38]
mov dword [esp + 0x300], eax
mov eax, dword [esp + 0x1c]
mov ecx, eax
and ecx, 1
cmp ecx, 0
pushfd
and eax, 4
popfd
je 0x530cb0
cmp eax, 0
jne 0x530c9c
or dword [esp + 0x308], 2
push dword [esp + 0x3c]
call sub.comdlg32.dll_GetSaveFileNameA
mov ecx, eax
jmp 0x530cd6
cmp ebx, 0
jne 0x530cdf
jmp 0x530ce8
cmp eax, 0
jne 0x530cc0
or dword [esp + 0x308], 0x1000
or dword [esp + 0x308], 0x800
push dword [esp + 0x3c]
call sub.comdlg32.dll_GetOpenFileNameA
mov ecx, eax
cmp dword [esp + 0x34], 0
jne 0x530ca9
jmp 0x530ce8
mov eax, dword [esp + 0x38]
call fcn.0041ddac
mov eax, dword [esp + 0x1c]
and eax, 0x38
cmp eax, 0x18
jne 0x530d21
cmp byte [esi], 0
je 0x530d21
mov eax, 1
mov ebx, dword [esp + 0x20]
dec ebx
cmp eax, ebx
jge 0x530d21
mov ebx, eax
cmp byte [esi + ebx], 0
jne 0x530d1e
mov ebx, eax
cmp byte [esi + ebx + 1], 0
je 0x530d21
mov ebx, eax
mov byte [esi + ebx], 0x7c
inc eax
jmp 0x530cfe
cmp dword [esp + 0x40], 0xffffffff
je 0x530d2d
call fcn.00533344
call fcn.0050a958
cmp ecx, 0
je 0x530d45
mov eax, esi
call fcn.00435120
mov ebx, edi
mov eax, dword [ebx]
call dword [eax + 0x24]
mov eax, esi
call fcn.004c51e8
mov eax, ecx
pop edi
pop esi
pop edx
pop ecx
pop ebx
add esp, 0x45c
ret