Function at 0x10001415
Capabilities:
Get file attributes

Disassembly:
sub esp, 0x24
push ebx
push esi
push edi
xor edi, edi
cmp dword [esp + 0x34], edi
je 0x10001707
cmp dword [esp + 0x3c], edi
je 0x10001707
mov esi, dword [esp + 0x40]
cmp esi, edi
je 0x10001707
push dword [esp + 0x44]
push dword [esp + 0x3c]
call fcn.10001364
cmp dword [esi], eax
pop ecx
pop ecx
jl 0x1000172f
mov eax, dword [esp + 0x38]
push ebp
push 3
cdq
pop ecx
idiv ecx
mov esi, dword [sym.imp.KERNEL32.dll_ResetEvent]
push edi
mov dword [esp + 0x14], edi
mov ebx, eax
mov dword [esp + 0x20], edx
shl ebx, 2
call esi
test eax, eax
mov ebp, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
je 0x10001482
push edi
call ebp
push edi
call ebp
push edi
call esi
push edi
call ebp
push edi
call esi
push edi
call ebp
push edi
call esi
mov eax, ebx
push 0x4c
cdq
pop ecx
idiv ecx
mov dword [esp + 0x18], 0x13
mov dword [esp + 0x14], edi
cmp eax, edi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], eax
jl 0x100015ed
mov ebx, dword [esp + 0x48]
and ebx, 2
mov dword [esp + 0x30], ebx
push edi
call esi
test eax, eax
je 0x100014cd
push edi
call ebp
push edi
call ebp
push edi
call esi
push edi
call ebp
push edi
call esi
push edi
call ebp
push edi
call esi
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x14], eax
jne 0x100014f7
mov eax, dword [esp + 0x2c]
push 4
cdq
pop ecx
idiv ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
cmp eax, edi
jle 0x10001567
mov dword [esp + 0x24], eax
xor ebx, ebx
mov dword [esp + 0x20], 3
push edi
call esi
test eax, eax
je 0x10001517
push edi
call ebp
push edi
call ebp
push edi
call esi
push edi
call ebp
push edi
call esi
push edi
call ebp
push edi
call esi
mov eax, dword [esp + 0x38]
movzx eax, byte [eax]
or ebx, eax
inc dword [esp + 0x38]
shl ebx, 8
dec dword [esp + 0x20]
jne 0x1000150d
push 4
pop eax
mov edx, dword [esp + 0x40]
mov ecx, ebx
shr ecx, 0x1a
mov cl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ld]
inc dword [esp + 0x40]
shl ebx, 6
dec eax
mov byte [edx], cl
jne 0x10001542
dec dword [esp + 0x24]
jne 0x10001503
mov ebx, dword [esp + 0x30]
push edi
call esi
test eax, eax
je 0x10001571
push edi
call ebp
push edi
call ebp
push edi
call esi
push edi
call ebp
push edi
call esi
push edi
call ebp
push edi
call esi
cmp ebx, edi
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
lea eax, [eax + ecx*4]
mov dword [esp + 0x10], eax
jne 0x100015c7
push edi
call esi
test eax, eax
je 0x100015a0
push edi
call ebp
push edi
call ebp
push edi
call esi
push edi
call ebp
push edi
call esi
push edi
call ebp
push edi
call esi
mov eax, dword [esp + 0x40]
mov byte [eax], 0xd
inc eax
mov byte [eax], 0xa
inc eax
add dword [esp + 0x10], 2
mov dword [esp + 0x40], eax
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x28]
jle 0x100014c3
cmp dword [esp + 0x10], edi
je 0x100015ed
cmp ebx, edi
jne 0x100015ed
sub dword [esp + 0x40], 2
sub dword [esp + 0x10], 2
mov ebx, dword [esp + 0x1c]
mov eax, ebx
inc eax
neg ebx
sbb ebx, ebx
and ebx, eax
je 0x100016f7
push edi
call esi
test eax, eax
je 0x1000160a
push edi
call ebp
push edi
call ebp
push edi
call esi
push edi
call ebp
push edi
call esi
push edi
call ebp
push edi
call esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x1c]
jge 0x1000163d
mov eax, dword [esp + 0x38]
movzx eax, byte [eax]
or dword [esp + 0x14], eax
inc dword [esp + 0x38]
push edi
call esi
test eax, eax
je 0x10001647
push edi
call ebp
push edi
call ebp
push edi
call esi
push edi
call ebp
push edi
call esi
push edi
call ebp
push edi
call esi
shl dword [esp + 0x14], 8
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x10001624
cmp ebx, edi
jle 0x1000168e
mov eax, ebx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
shl dword [esp + 0x14], 6
shr ecx, 0x1a
mov cl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ld]
inc dword [esp + 0x40]
dec eax
mov byte [edx], cl
jne 0x1000166f
push edi
call esi
test eax, eax
je 0x10001698
push edi
call ebp
push edi
call ebp
push edi
call esi
push edi
call ebp
push edi
call esi
push edi
call ebp
push edi
call esi
add dword [esp + 0x10], ebx
test byte [esp + 0x48], 1
jne 0x100016f7
push edi
call esi
test eax, eax
je 0x100016bf
push edi
call ebp
push edi
call ebp
push edi
call esi
push edi
call ebp
push edi
call esi
push edi
call ebp
push edi
call esi
push 4
pop edx
sub edx, ebx
cmp edx, edi
jle 0x100016f3
mov edi, dword [esp + 0x40]
mov ecx, edx
mov esi, ecx
shr ecx, 2
mov eax, 0x3d3d3d3d
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
rep stosb byte es:[edi], al
add dword [esp + 0x10], edx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
mov dword [eax], ecx
xor eax, eax
inc eax
pop ebp
jmp 0x10001731
mov esi, dword [sym.imp.KERNEL32.dll_ResetEvent]
push edi
call esi
test eax, eax
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
je 0x1000171d
push edi
call ebx
push edi
call ebx
push edi
call esi
push edi
call ebx
push edi
call esi
push edi
call ebx
push edi
call esi
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0x24
ret