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

Disassembly:
mov eax, 0x1440
call fcn.00411110
mov eax, dword [0x41a464]
xor eax, esp
mov dword [esp + 0x143c], eax
mov eax, dword [esp + 0x1444]
push ebx
push ebp
push esi
push edi
push 0x3ff
xor esi, esi
lea edx, [esp + 0x851]
push esi
push edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], ecx
mov byte [esp + 0x858], 0
call fcn.004102d0
push 0x418
lea eax, [esp + 0x34]
push esi
push eax
mov dword [esp + 0x38], esi
call fcn.004102d0
push 0x103
lea ecx, [esp + 0x55d]
push esi
push ecx
mov byte [esp + 0x37], 0
mov byte [esp + 0x564], 0
call fcn.004102d0
push 0x206
lea eax, [esp + 0x66e]
xor edx, edx
push esi
push eax
mov word [esp + 0x674], dx
call fcn.004102d0
push 0x103
lea ecx, [esp + 0x471]
push esi
push ecx
mov byte [esp + 0x478], 0
call fcn.004102d0
add esp, 0x3c
xor eax, eax
mov dword [0x4e90a4], esi
jmp 0x4059f5
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea ebp, [edx + eax]
add eax, dword [ebp]
lea ecx, [ebp + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 8]
push eax
push ecx
lea edx, [esp + 0xc54]
push edx
mov byte [esp + 0x1d], 0
mov byte [esp + 0x1e], 0
call fcn.0040ad10
mov esi, dword [esp + 0x20]
mov eax, dword [ebp + 8]
lea edx, [esp + 0xc58]
push edx
add esi, 0x108
shr eax, 1
xor ecx, ecx
push esi
push str._micoauditcontrol__handle_change1__ws___ws_._n
mov word [esp + eax*2 + 0xc64], cx
call fcn.00401330
lea eax, [esp + 0xc64]
push eax
push esi
push 0x417f0c
lea edx, [esp + 0x668]
call fcn.00401310
lea ecx, [esp + 0x668]
push ecx
push str._micoauditcontrol__handle_change1__ws_._n
call fcn.00401330
add esp, 0x2c
lea edx, [esp + 0x644]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, eax
push ebx
push str._micoauditcontrol__GetFileAttributesW_0x_x_._n
call fcn.00401330
add esp, 8
cmp ebx, 0xffffffff
je 0x405aaa
test bl, 0x10
je 0x405aaa
mov byte [esp + 0x12], 1
lea eax, [esp + 0x644]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x405ab4
sub eax, edx
lea ecx, [esp + 0x644]
sar eax, 1
push ecx
call fcn.004011a0
add esp, 4
push 0
push 0
push 0x104
lea edx, [esp + 0x448]
push edx
push 0xffffffffffffffff
mov edi, eax
lea eax, [esp + 0x658]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebx, dword [esp + 0x14]
mov edx, dword [ebp + 4]
lea ecx, [esp + 0x43c]
push ecx
lea esi, [ebx + 8]
push esi
push edx
push edi
push str._micoauditcontrol__fullname__d__d__s__s._n
call fcn.00401330
mov eax, esi
add esp, 0x14
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x405b21
sub eax, ecx
push eax
lea eax, [ebx + 8]
push eax
lea eax, [esp + 0x444]
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIA]
test eax, eax
jne 0x405b79
lea ecx, [esp + 0x43c]
call fcn.004013c0
push eax
add ebx, 4
push ebx
lea ecx, [esp + 0x444]
push str._s_s
push ecx
call fcn.004060ce
lea edx, [esp + 0x44c]
push edx
push str._micoauditcontrol__change_fullname__s._n
call fcn.00401330
add esp, 0x18
mov eax, dword [ebp + 4]
dec eax
cmp eax, 4
ja case.default.0x405b86
jmp dword [eax*4 + 0x405dd4]
cmp byte [esp + 0x12], 0
jne case.default.0x405b86
cmp edi, 0xffffffff
je case.default.0x405b86
lea eax, [esp + 0x43c]
push eax
lea ecx, [esp + 0x850]
push 0x4185d4
push ecx
call fcn.004060ce
add esp, 0xc
jmp 0x405ce0
cmp byte [esp + 0x12], 0
je 0x405bec
lea edx, [esp + 0x43c]
push edx
lea eax, [esp + 0x850]
push 0x4185e0
push eax
call fcn.004060ce
add esp, 0xc
jmp 0x405ce0
cmp edi, 0xffffffff
je case.default.0x405b86
lea ecx, [esp + 0x43c]
push ecx
lea edx, [esp + 0x850]
push 0x4185f0
push edx
call fcn.004060ce
add esp, 0xc
jmp 0x405ce0
xor eax, eax
lea esp, [esp]
mov cl, byte [esp + eax + 0x43c]
mov byte [esp + eax + 0x540], cl
inc eax
test cl, cl
jne 0x405c20
mov byte [esp + 0x13], 1
jmp case.default.0x405b86
cmp edi, 0xffffffff
je case.default.0x405b86
lea eax, [esp + 0x43c]
push eax
lea ecx, [esp + 0x850]
push 0x4185fc
push ecx
call fcn.004060ce
add esp, 0xc
mov dword [esp + 0x20], 5
xor eax, eax
lea ecx, [ecx]
movzx ecx, word [esp + eax + 0xc4c]
mov word [esp + eax + 0x2c], cx
add eax, 2
test cx, cx
jne 0x405c70
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x28], eax
jmp 0x405ce0
cmp byte [esp + 0x13], 0
je case.default.0x405b86
cmp byte [esp + 0x12], 0
je 0x405cb6
lea edx, [esp + 0x43c]
push edx
lea eax, [esp + 0x544]
push eax
push 0x418608
jmp 0x405cd0
cmp edi, 0xffffffff
je case.default.0x405b86
lea edx, [esp + 0x43c]
push edx
lea eax, [esp + 0x544]
push eax
push 0x418620
lea ecx, [esp + 0x858]
push ecx
call fcn.004060ce
add esp, 0x10
mov byte [esp + 0x11], 1
cmp byte [esp + 0x11], 0
mov edx, dword [ebp + 4]
mov dword [0x4e90a4], edx
je 0x405dac
cmp dword [esp + 0x20], 5
jne 0x405d67
sub esp, 0x41c
mov ecx, 0x107
lea esi, [esp + 0x43c]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.00403da0
add esp, 0x41c
cmp eax, 0xffffffff
jne 0x405d49
sub esp, 0x41c
mov ecx, 0x107
lea esi, [esp + 0x43c]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.00403cc0
add esp, 0x41c
jmp 0x405d67
mov ecx, dword [esp + 0x28]
imul eax, eax, 0x41c
lea eax, [eax + 0x499884]
mov edx, ecx
sub edx, dword [eax]
cmp edx, 0x1388
jb 0x405dac
mov dword [eax], ecx
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x418634
lea eax, [esp + 0x850]
push eax
call esi
push 0x4a65f8
lea ecx, [esp + 0x850]
push ecx
call esi
lea ecx, [esp + 0x84c]
call fcn.004056b0
lea edx, [esp + 0x84c]
push edx
push str._micoaduitcontrol__sendSysLog__s._n
call fcn.00401330
add esp, 8
cmp dword [ebp], 0
jne 0x4059f1
mov ecx, dword [esp + 0x144c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00405f18
add esp, 0x1440
ret