Function at 0x5fa4b0
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2a0
push ebx
push esi
push edi
mov eax, dword [0x74e6dc]
mov dword [ebp - 0x124], eax
mov dword [0x74e6dc], 1
mov ecx, dword [ebp + 0xc]
add ecx, 0x10e
mov edi, ecx
lea edx, [ebp - 0x270]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov eax, ecx
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [0x74e6d4], 1
mov ecx, dword [ebp + 0xc]
add ecx, 0x10e
push ecx
push 0
call fcn.00421bc0
add esp, 8
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
je 0x5fac5a
push 0x67c34c
mov edx, dword [ebp + 0xc]
add edx, 0x10e
push edx
call fcn.00666960
add esp, 8
mov dword [ebp - 0x27c], eax
cmp dword [ebp - 0x27c], 0
je 0x5fa5a8
push 2
push 0
mov eax, dword [ebp - 0x27c]
push eax
call fcn.006675d0
add esp, 0xc
mov ecx, dword [ebp - 0x27c]
push ecx
call fcn.00667420
add esp, 4
mov dword [ebp - 0x158], eax
mov edx, dword [ebp - 0x27c]
push edx
call fcn.00666980
add esp, 4
mov eax, dword [ebp - 0x158]
push eax
push 0x67c248
push 0x761b96
call fcn.00667e70
add esp, 0xc
jmp 0x5fa5bf
push 0x698ffc
push 0x67d1dc
push 0x761b96
call fcn.00667e70
add esp, 0xc
mov ecx, dword [ebp + 0xc]
add ecx, 0x10e
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 0x120], eax
mov edx, dword [ebp - 0x120]
and edx, 0x20
test edx, edx
je 0x5fa5fb
push 0x67e3a4
push 0x67d1dc
push 0x761f16
call fcn.00667e70
add esp, 0xc
jmp 0x5fa612
push 0x67e338
push 0x67d1dc
push 0x761f16
call fcn.00667e70
add esp, 0xc
mov eax, dword [ebp - 0x120]
and eax, 2
test eax, eax
je 0x5fa638
push 0x67e3a4
push 0x67d1dc
push 0x761fb6
call fcn.00667e70
add esp, 0xc
jmp 0x5fa64f
push 0x67e338
push 0x67d1dc
push 0x761fb6
call fcn.00667e70
add esp, 0xc
mov ecx, dword [ebp - 0x120]
and ecx, 1
test ecx, ecx
je 0x5fa675
push 0x67e3a4
push 0x67d1dc
push 0x761cb6
call fcn.00667e70
add esp, 0xc
jmp 0x5fa68c
push 0x67e338
push 0x67d1dc
push 0x761cb6
call fcn.00667e70
add esp, 0xc
mov edx, dword [ebp - 0x128]
mov dword [0x761a60], edx
mov dword [0x761a64], 0
mov eax, dword [ebp - 0x128]
cmp dword [eax + 0x668], 0
je 0x5fa6c3
mov ecx, dword [ebp - 0x128]
mov edx, dword [ecx + 0x668]
mov dword [0x761a64], edx
lea edi, [ebp - 0x270]
mov edx, 0x761a68
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov eax, ecx
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x128]
mov edx, dword [ecx]
push edx
push 0x67c248
push 0x761c76
call fcn.00667e70
add esp, 0xc
mov eax, dword [ebp - 0x128]
mov ecx, dword [eax + 4]
push ecx
push 0x67c248
push 0x761c96
call fcn.00667e70
add esp, 0xc
mov edx, dword [ebp - 0x128]
add edx, 0x66c
push edx
push 0x67d1dc
push 0x761b76
call fcn.00667e70
add esp, 0xc
mov eax, dword [ebp - 0x128]
movsx ecx, word [eax + 0x678]
push ecx
push 0x67c248
push 0x761c36
call fcn.00667e70
add esp, 0xc
mov edx, dword [ebp - 0x128]
movsx eax, word [edx + 0x528]
test eax, eax
je 0x5fa78b
push 0x67e3a4
push 0x67d1dc
push 0x761c56
call fcn.00667e70
add esp, 0xc
jmp 0x5fa7a2
push 0x67e338
push 0x67d1dc
push 0x761c56
call fcn.00667e70
add esp, 0xc
mov ecx, dword [ebp - 0x128]
add ecx, 0x6ec
push ecx
push 0x67d1dc
push 0x761dd6
call fcn.00667e70
add esp, 0xc
mov edx, dword [ebp - 0x128]
add edx, 0x688
push edx
push 0x67d1dc
push 0x761cd6
call fcn.00667e70
add esp, 0xc
mov eax, dword [ebp - 0x128]
fild dword [eax + 0x518]
fstp qword [ebp - 0x28c]
mov ecx, dword [ebp - 0x128]
mov edx, dword [ecx + 0x51c]
push edx
call fcn.005dcbc0
add esp, 4
mov dword [ebp - 0x290], eax
fild dword [ebp - 0x290]
fdivr qword [ebp - 0x28c]
fstp qword [ebp - 0x130]
mov eax, dword [ebp - 0x128]
fild dword [eax + 0x520]
fstp qword [ebp - 0x298]
mov ecx, dword [ebp - 0x128]
mov edx, dword [ecx + 0x524]
push edx
call fcn.005dcbc0
add esp, 4
mov dword [ebp - 0x29c], eax
fild dword [ebp - 0x29c]
fdivr qword [ebp - 0x298]
fstp qword [ebp - 0x140]
mov eax, dword [ebp - 0x12c]
push eax
mov ecx, dword [ebp - 0x130]
push ecx
push str._5.1lf
push 0x761ed6
call fcn.00667e70
add esp, 0x10
mov edx, dword [ebp - 0x13c]
push edx
mov eax, dword [ebp - 0x140]
push eax
push str._5.1lf
push 0x761ef6
call fcn.00667e70
add esp, 0x10
mov ecx, dword [ebp - 0x128]
fild dword [ecx]
fdiv qword [ebp - 0x130]
fstp qword [ebp - 0x148]
mov edx, dword [ebp - 0x128]
fild dword [edx + 4]
fdiv qword [ebp - 0x140]
fstp qword [ebp - 0x150]
mov eax, dword [ebp - 0x144]
push eax
mov ecx, dword [ebp - 0x148]
push ecx
push str._5.1lf
push 0x761f76
call fcn.00667e70
add esp, 0x10
mov edx, dword [ebp - 0x14c]
push edx
mov eax, dword [ebp - 0x150]
push eax
push str._5.1lf
push 0x761f96
call fcn.00667e70
add esp, 0x10
fld qword [ebp - 0x148]
fmul qword [0x678ff8]
sub esp, 8
fstp qword [esp]
push str._5.1lf
push 0x761f36
call fcn.00667e70
add esp, 0x10
fld qword [ebp - 0x150]
fmul qword [0x678ff8]
sub esp, 8
fstp qword [esp]
push str._5.1lf
push 0x761f56
call fcn.00667e70
add esp, 0x10
mov ecx, dword [ebp - 0x128]
push ecx
call fcn.005d16d0
add esp, 4
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
imul eax, eax, 0x64
mov edx, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x128]
mov esi, dword [edx]
imul esi, dword [ecx + 4]
cdq
idiv esi
mov dword [ebp - 0x278], eax
mov edx, dword [ebp - 0x138]
push edx
push 0x698ff8
push 0x761bf6
call fcn.00667e70
add esp, 0xc
mov eax, dword [ebp - 0x278]
push eax
push str._d__
push 0x761c16
call fcn.00667e70
add esp, 0xc
mov ecx, dword [ebp - 0x128]
movsx edx, word [ecx + 0x52a]
test edx, edx
je 0x5faab1
mov eax, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x128]
mov edx, dword [eax]
imul edx, dword [ecx + 4]
shl edx, 2
mov dword [ebp - 0x154], edx
mov eax, dword [ebp - 0x128]
mov ecx, dword [eax + 0x550]
mov dword [ebp - 0x274], ecx
cmp dword [ebp - 0x274], 0
je 0x5faa98
mov dword [ebp - 0x11c], 0
mov edx, dword [ebp - 0x274]
mov eax, dword [edx + 0x10c]
mov dword [ebp - 0x280], eax
cmp dword [ebp - 0x280], 0
je 0x5faa7d
mov ecx, dword [ebp - 0x11c]
add ecx, 1
mov dword [ebp - 0x11c], ecx
mov edx, dword [ebp - 0x280]
mov eax, dword [edx]
mov dword [ebp - 0x284], eax
mov ecx, dword [ebp - 0x284]
mov edx, dword [ebp - 0x284]
mov eax, dword [ecx]
imul eax, dword [edx + 4]
mov ecx, dword [ebp - 0x154]
lea edx, [ecx + eax*4]
mov dword [ebp - 0x154], edx
mov eax, dword [ebp - 0x280]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x280], ecx
jmp 0x5faa25
mov edx, dword [ebp - 0x11c]
push edx
push 0x67c248
push 0x761fd6
call fcn.00667e70
add esp, 0xc
jmp 0x5faaaf
push str.Corrupt_
push 0x67d1dc
push 0x761fd6
call fcn.00667e70
add esp, 0xc
jmp 0x5faae3
mov eax, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x128]
mov edx, dword [eax]
imul edx, dword [ecx + 4]
shl edx, 2
mov dword [ebp - 0x154], edx
push str.Atomic
push 0x67d1dc
push 0x761fd6
call fcn.00667e70
add esp, 0xc
mov eax, dword [ebp - 0x154]
push eax
push 0x67c248
push 0x761bd6
call fcn.00667e70
add esp, 0xc
fild dword [ebp - 0x154]
fidiv dword [ebp - 0x158]
fmul dword [0x679000]
fst dword [ebp - 0x15c]
call fcn.00666a00
mov dword [ebp - 0x2a0], eax
fild dword [ebp - 0x2a0]
fdiv dword [0x679000]
fst dword [ebp - 0x15c]
sub esp, 8
fstp qword [esp]
push 0x67c9cc
push 0x761bb6
call fcn.00667e70
add esp, 0x10
push 0x761bb6
call fcn.00449e60
add esp, 4
mov edi, 0x698fd8
mov edx, 0x761bb6
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
add edi, 0xffffffff
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x118]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 0x10e
push ecx
call fcn.00669a10
add esp, 8
mov dword [ebp - 0x160], eax
cmp dword [ebp - 0x160], 0xffffffff
je 0x5fac08
lea edx, [ebp - 0x10c]
push edx
call fcn.00669bf0
add esp, 4
push eax
push 0x67d1dc
push 0x761ff6
call fcn.00667e70
add esp, 0xc
mov edi, 0x761ff6
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
add ecx, 0xffffffff
mov dword [ebp - 0x158], ecx
mov eax, dword [ebp - 0x158]
mov byte [eax + 0x761ff5], 0
mov ecx, dword [ebp - 0x160]
push ecx
call fcn.00669b40
add esp, 4
jmp 0x5fac1f
push 0x698ffc
push 0x67d1dc
push 0x761ff6
call fcn.00667e70
add esp, 0xc
mov dword [ebp - 0x134], 0x5fa220
push 0
mov edx, dword [ebp - 0x134]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x4c]
push ecx
push str.TV_PROPS
mov edx, dword [0x761714]
push edx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov eax, dword [ebp - 0x128]
push eax
call fcn.005679a0
add esp, 4
mov ecx, dword [ebp - 0x124]
mov dword [0x74e6dc], ecx
mov dword [0x74e6d4], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret