Function at 0x412420
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43c234
mov eax, dword fs:[0]
push eax
sub esp, 0x280
mov eax, dword [0x447034]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x278], esi
mov ebx, edx
mov dword [ebp - 4], 0
mov eax, dword [0x44951c]
mov edx, dword [eax + 0xc]
mov ecx, 0x44951c
call edx
add eax, 0x10
mov dword [ebp - 0x268], eax
mov byte [ebp - 4], 1
mov eax, dword [0x44951c]
mov edx, dword [eax + 0xc]
mov ecx, 0x44951c
call edx
lea edi, [eax + 0x10]
mov dword [ebp - 0x274], edi
mov byte [ebp - 4], 2
mov eax, dword [ebp + 8]
push eax
call fcn.00417500
add esp, 4
test eax, eax
mov dword [esi + 0x20c], eax
jne 0x412520
lea eax, [edi - 0x10]
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4124cd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x268]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4124f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412519
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x4129fe
mov edx, dword [0x44951c]
mov eax, dword [edx + 0xc]
mov ecx, 0x44951c
call eax
add eax, 0x10
mov dword [ebp - 0x26c], eax
mov byte [ebp - 4], 3
mov esi, dword [ebx]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [esi + eax*2]
cmp eax, esi
je 0x41255d
lea ecx, [ecx]
cmp word [eax], 0x5c
je 0x412563
sub eax, 2
cmp eax, esi
jne 0x412550
cmp word [eax], 0x5c
jne 0x4125b7
test eax, eax
je 0x4125b7
sub eax, dword [ebx]
sar eax, 1
cmp eax, 0xffffffff
je 0x4125b7
lea ecx, [eax + 1]
lea esi, [ebp - 0x288]
mov edx, ebx
call fcn.00412a60
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 4
call fcn.00412ce0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x288]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4125c4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4125c4
mov eax, ebx
lea edi, [ebp - 0x26c]
call fcn.00412ce0
call fcn.00412bd0
mov eax, dword [ebx]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x41286e
mov eax, ebx
lea edi, [ebp - 0x268]
call fcn.00412ce0
mov esi, dword [ebp - 0x268]
cmp dword [esi - 4], 1
jle 0x412605
mov ecx, dword [esi - 0xc]
push ecx
mov edx, edi
push edx
call fcn.00403130
mov esi, dword [ebp - 0x268]
mov edx, dword [ebp - 0x278]
add edx, 4
mov dword [ebp - 0x27c], edx
mov eax, esi
sub edx, esi
jmp 0x412620
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x412620
mov ecx, esi
call fcn.004031f0
test eax, eax
jl 0x412864
cmp eax, dword [esi - 8]
jg 0x412864
mov dword [esi - 0xc], eax
mov word [esi + eax*2], 0
cmp dword [esi - 4], 1
jle 0x41266c
mov eax, dword [esi - 0xc]
push eax
lea ecx, [ebp - 0x268]
push ecx
call fcn.00403130
mov esi, dword [ebp - 0x268]
push 0
push 0x411ec0
lea edx, [ebp - 0x264]
push edx
push esi
call fcn.00411f60
mov ecx, dword [0x449730]
add esp, 0x10
test ecx, ecx
je 0x4127ca
mov eax, dword [0x449734]
mov edx, eax
sub edx, ecx
sar edx, 2
je 0x4127ca
cmp ecx, eax
mov edi, ecx
jbe 0x4126b9
call fcn.0042868a
mov eax, dword [0x449734]
mov ecx, dword [0x449730]
mov edx, 0x44972c
mov ebx, edx
mov dword [ebp - 0x284], ebx
cmp ecx, eax
mov esi, eax
jbe 0x4126d1
call fcn.0042868a
test ebx, ebx
je 0x4126dd
cmp ebx, 0x44972c
je 0x4126e2
call fcn.0042868a
cmp edi, esi
je 0x4128b1
mov eax, dword [ebp - 0x27c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4126f3
sub eax, edx
sar eax, 1
test ebx, ebx
mov esi, eax
jne 0x41270d
call fcn.0042868a
cmp edi, dword [ebx + 8]
jb 0x412717
call fcn.0042868a
mov eax, dword [edi]
sub eax, 0x10
cmp dword [eax + 0xc], 1
jle 0x41272c
mov eax, dword [eax + 4]
push eax
push edi
call fcn.00403130
mov eax, dword [edi]
lea esi, [eax + esi*2 + 2]
mov ecx, esi
call fcn.004031f0
push esi
lea ecx, [ebp - 0x26c]
push ecx
mov ebx, eax
call fcn.004027d0
mov edx, dword [ebp - 0x284]
cmp edi, dword [edx + 8]
jb 0x412758
call fcn.0042868a
mov eax, dword [ebp - 0x278]
mov eax, dword [eax + 0x20c]
test eax, eax
mov ecx, dword [edi]
jne 0x412771
mov eax, 0x10000
jmp 0x41278e
cmp dword [eax], 2
je 0x41277d
mov eax, 0x80000
jmp 0x41278e
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x26c]
push edx
mov ebx, eax
call fcn.00416c20
test eax, eax
mov dword [0x4496e8], eax
mov dword [ebp - 0x270], eax
jne 0x4128be
mov eax, dword [ebp - 0x284]
cmp edi, dword [eax + 8]
jb 0x4127b1
call fcn.0042868a
mov eax, dword [0x449734]
mov ecx, dword [0x449730]
mov ebx, dword [ebp - 0x284]
add edi, 4
jmp 0x4126c6
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x26c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4127f0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x274]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412816
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412836
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41285c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
or eax, 0xffffffff
jmp 0x4129fe
push 0x80070057
call fcn.004032b0
mov ecx, dword [ebp - 0x278]
mov eax, dword [ecx + 0x20c]
test eax, eax
mov ebx, dword [ebx]
jne 0x412887
mov eax, 0x10000
jmp 0x4128a6
cmp dword [eax], 2
je 0x412893
mov eax, 0x80000
jmp 0x4128a6
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x26c]
mov ecx, ebx
push edx
mov ebx, eax
call fcn.00416c20
mov dword [0x4496e8], eax
mov dword [ebp - 0x270], eax
cmp dword [ebp - 0x270], 0
je 0x412961
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x26c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4128e4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x274]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41290a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x268]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412930
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412519
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x4129fe
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x26c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412987
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x274]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4129ad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x268]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4129d3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4129f9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004282a0
mov esp, ebp
pop ebp
ret 4