Function at 0x4047b0
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54b543
mov eax, dword fs:[0]
push eax
sub esp, 0x838
mov eax, dword [0x5ae1b0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
mov dword [ebp - 4], 0
push 0x5ba7f0
mov dword [ebp - 0x844], edi
mov dword [ebp - 0x840], 0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, eax
mov dword [edi], 0
call fcn.0041543b
mov ecx, eax
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x404827
push 0x80004005
call fcn.00402120
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x840], 1
test bl, 0x10
je 0x404871
mov ecx, 0x5ba7f0
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404850
sub ecx, edx
sar ecx, 1
push ecx
push 0x5ba7f0
mov ecx, edi
call fcn.004058c0
jmp 0x404a6c
push 0x5ba7f0
mov dword [ebp - 0x834], 0
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
push eax
lea ecx, [ebp - 0x834]
call fcn.004051e0
mov edx, str..lnk
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x834]
call fcn.00404cf0
or ebx, 0xffffffff
test al, al
jne 0x4048dc
mov edx, str..pif
lea ecx, [ebp - 0x834]
call fcn.00404cf0
test al, al
jne 0x4048dc
mov edx, str..url
lea ecx, [ebp - 0x834]
call fcn.00404cf0
test al, al
je 0x40497d
push 0x5ba7f0
lea ecx, [ebp - 0x838]
mov dword [ebp - 0x838], 0
call fcn.004051e0
lea eax, [ebp - 0x838]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x83c]
push eax
call fcn.004045e0
push eax
lea ecx, [ebp - 0x838]
mov byte [ebp - 4], 3
call fcn.004059f0
mov byte [ebp - 4], 2
mov ecx, ebx
mov edx, dword [ebp - 0x83c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404940
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x838]
mov esi, 0x5ba7f0
mov edx, eax
sub esi, eax
nop
movzx ecx, word [edx]
lea edx, [edx + 2]
mov word [esi + edx - 2], cx
test cx, cx
jne 0x404950
lea edx, [eax - 0x10]
mov byte [ebp - 4], 1
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40497d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x5ba7f0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x4049b5
mov ecx, 0x5ba7f0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404994
sub ecx, edx
sar ecx, 1
push ecx
push 0x5ba7f0
mov ecx, edi
call fcn.004058c0
jmp 0x404a4b
push 0x104
lea eax, [ebp - 0x830]
push eax
push 0x104
lea eax, [ebp - 0x628]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x104
lea eax, [ebp - 0x420]
push eax
push 0x5ba7f0
call fcn.0052f8fd
lea ecx, [ebp - 0x218]
add esp, 0x24
lea edx, [ecx + 2]
jmp 0x404a00
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404a00
sub ecx, edx
sar ecx, 1
cmp word [ebp + ecx*2 - 0x21a], 0x5c
jne 0x404a2f
dec ecx
add ecx, ecx
cmp ecx, 0x208
jae 0x404a8c
xor eax, eax
mov word [ebp + ecx - 0x218], ax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x420]
push eax
push 0x58ecec
push edi
call fcn.004021f0
add esp, 0x10
mov byte [ebp - 4], 0
mov esi, dword [ebp - 0x834]
add esi, 0xfffffff0
lea eax, [esi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x404a6c
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0052e57d
mov esp, ebp
pop ebp
ret 8
call fcn.0052f00f
int3