Function at 0x410200
Capabilities:
Check if file exists
Get file attributes

Disassembly:
sub esp, 0x14
push ebp
push edi
xor edi, edi
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ebp, dword [esp + 0x20]
test ebp, ebp
je 0x41075c
push ebp
call fcn.0040b320
add esp, 4
test eax, eax
jne 0x41075c
push ebx
push esi
push ebp
call fcn.00410770
mov esi, eax
add esp, 4
test esi, esi
je 0x4104b6
call fcn.00411310
mov ebx, eax
mov dword [esp + 0x14], ebx
test ebx, ebx
je 0x41073b
mov ebp, esi
push ebp
call fcn.0040b320
add esp, 4
test eax, eax
je 0x4103ff
mov dword [esp + 0x1c], str.system32_
lea ebx, [esp + 0x1c]
mov dword [esp + 0x20], str.SystemRoot_system32_
nop word [eax + eax]
mov ecx, dword [ebx]
mov esi, ecx
lea edx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x410287
sub esi, edx
sar esi, 1
push esi
push ecx
push ebp
call fcn.0045a89a
add esp, 0xc
test eax, eax
je 0x4102b5
add ebx, 4
lea eax, [esp + 0x24]
cmp ebx, eax
jb 0x410280
jmp 0x4103aa
mov edi, dword [esp + 0x14]
lea esi, [esi*2]
mov ecx, edi
add esi, ebp
mov dword [esp + 0x1c], esi
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4102d0
sub ecx, edx
sar ecx, 1
test esi, esi
jne 0x41030c
lea esi, [ecx + 1]
lea eax, [esi + esi]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
test edi, edi
je 0x4103a8
push dword [esp + 0x14]
push esi
push edi
call fcn.0040f580
jmp 0x41039a
mov edx, esi
lea eax, [edx + 2]
mov dword [esp + 0x18], eax
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x410315
sub edx, dword [esp + 0x18]
sar edx, 1
test ecx, ecx
je 0x410343
cmp word [edi + ecx*2 - 2], 0x5c
je 0x410343
test edx, edx
je 0x410343
cmp word [esi], 0x5c
je 0x410343
mov eax, 1
jmp 0x410345
xor eax, eax
mov dword [esp + 0x18], eax
add eax, ecx
add eax, edx
lea esi, [eax*2 + 2]
push esi
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
test edi, edi
je 0x4103aa
push dword [esp + 0x14]
push esi
push edi
call fcn.0040f420
test eax, eax
js 0x41039e
cmp dword [esp + 0x18], 0
je 0x41038c
push 0x488ffc
push esi
push edi
lfence
call fcn.0040f380
test eax, eax
js 0x41039e
lfence
push dword [esp + 0x1c]
push esi
push edi
call fcn.0040f380
test eax, eax
jns 0x4103aa
push edi
lfence
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor edi, edi
lea eax, [esp + 0x24]
cmp ebx, eax
jne 0x4104ab
movzx eax, word [ebp]
cmp eax, 0x5c
je 0x4103f2
cmp eax, 0x2f
je 0x4103f2
push eax
call fcn.0045a040
add esp, 4
test eax, eax
je 0x4104ab
cmp word [ebp + 2], 0x3a
jne 0x4104ab
movzx eax, word [ebp + 4]
cmp eax, 0x5c
je 0x4103f2
cmp eax, 0x2f
jne 0x4104ab
push dword [esp + 0x14]
mov edi, ebp
xor esi, esi
jmp 0x410735
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x410404
sub ecx, edx
mov edx, ebp
sar ecx, 1
lea esi, [edx + 2]
nop dword [eax + eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x410420
sub edx, esi
sar edx, 1
test ecx, ecx
je 0x41044d
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x41044d
test edx, edx
je 0x41044d
cmp word [ebp], 0x5c
je 0x41044d
mov ebx, 1
jmp 0x41044f
xor ebx, ebx
lea eax, [ebx + edx]
add eax, ecx
lea esi, [eax*2 + 2]
push esi
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
test edi, edi
je 0x4104ab
push dword [esp + 0x14]
push esi
push edi
call fcn.0040f420
test eax, eax
js 0x41049f
test ebx, ebx
je 0x410490
push 0x488ffc
push esi
push edi
lfence
call fcn.0040f380
test eax, eax
js 0x41049f
push ebp
push esi
push edi
lfence
call fcn.0040f380
test eax, eax
jns 0x4104ab
push edi
lfence
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor edi, edi
push dword [esp + 0x14]
mov esi, ebp
jmp 0x410735
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7e
jne 0x41062d
mov esi, ebp
lea ecx, [esi + 2]
nop word [eax + eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x4104d0
sub esi, ecx
push ebp
sar esi, 1
call fcn.0040c0f0
mov ecx, eax
add esp, 4
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4104f0
sub ecx, edx
sar ecx, 1
sub ecx, edi
je 0x4105ee
sub ecx, 1
je 0x41054b
mov ecx, ebp
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x410511
sub ecx, edx
sar ecx, 1
lea ebx, [ecx + 1]
lea eax, [ebx + ebx]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov esi, eax
test esi, esi
je 0x41062d
push ebp
push ebx
push esi
call fcn.0040f580
test eax, eax
jns 0x4105cd
jmp 0x4105c1
lea ecx, [esi - 1]
mov dword [esp + 0x1c], ecx
test ecx, ecx
js 0x41062d
mov ebx, ebp
lfence
lea edx, [ebx + 2]
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x410562
sub ebx, edx
sar ebx, 1
cmp ecx, ebx
cmovb ebx, ecx
inc ebx
lea eax, [ebx + ebx]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov esi, eax
test esi, esi
je 0x41062d
test ebx, ebx
je 0x4105c1
cmp ebx, 0x7fffffff
ja 0x4105b8
mov eax, dword [esp + 0x1c]
cmp eax, 0x7ffffffe
ja 0x4105bc
push eax
push ebp
push 0
push ebx
push esi
lfence
call fcn.0040f5f0
test eax, eax
jns 0x4105cd
jmp 0x4105c1
test ebx, ebx
je 0x4105c1
xor eax, eax
mov word [esi], ax
push esi
lfence
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor esi, esi
test esi, esi
je 0x41062d
push 0x37e4
call fcn.0040e430
add esp, 4
test eax, eax
je 0x410649
push 0
call fcn.00410f50
add esp, 4
jmp 0x41064e
lea ebx, [esi*2 + 0xa]
push ebx
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov esi, eax
test esi, esi
je 0x41062d
push ebp
push ebx
push esi
call fcn.0040f420
lfence
test eax, eax
js 0x410626
push str..dll
push ebx
push esi
call fcn.0040f380
test eax, eax
jns 0x4105d1
lfence
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x41063f
push 0x7e
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop esi
pop ebx
mov eax, edi
pop edi
pop ebp
add esp, 0x14
ret
call fcn.00411310
mov ebx, eax
test ebx, ebx
je 0x41073b
mov ecx, ebx
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x410660
sub ecx, edx
mov edx, esi
sar ecx, 1
lea edi, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x410674
sub edx, edi
sar edx, 1
test ecx, ecx
je 0x4106a0
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x4106a0
test edx, edx
je 0x4106a0
cmp word [esi], 0x5c
je 0x4106a0
mov eax, 1
jmp 0x4106a2
xor eax, eax
mov dword [esp + 0x18], eax
add eax, edx
add eax, ecx
lea ebp, [eax*2 + 2]
push ebp
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
test edi, edi
je 0x410734
push ebx
push ebp
push edi
call fcn.0040f420
test eax, eax
jns 0x4106d1
lfence
jmp 0x41072b
cmp dword [esp + 0x18], 0
je 0x4106f0
push 0x488ffc
push ebp
push edi
lfence
call fcn.0040f380
test eax, eax
jns 0x4106f0
lfence
jmp 0x41072b
push esi
push ebp
push edi
lfence
call fcn.0040f380
test eax, eax
jns 0x410704
lfence
jmp 0x41072b
test edi, edi
je 0x410734
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x410718
test al, 0x50
je 0x410734
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x41072b
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor edi, edi
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
test edi, edi
je 0x41062d
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop esi
pop ebx
mov eax, edi
pop edi
pop ebp
add esp, 0x14
ret
push 0xa0
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop ebp
add esp, 0x14
ret