Function at 0x406475
Capabilities:
Check if file exists
Copy file
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x6c
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x1c], edi
call fcn.00415b25
xor esi, esi
push esi
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_GetSystemMenu]
push eax
call fcn.0041a905
mov ebx, eax
cmp ebx, esi
je 0x4064f2
call fcn.0040d7fc
push eax
lea ecx, [esp + 0x1c]
call fcn.0040283a
push 0x65
lea ecx, [esp + 0x1c]
call fcn.00402506
mov eax, dword [esp + 0x18]
cmp dword [eax - 0xc], esi
je 0x4064e6
push esi
push esi
mov esi, dword [sym.imp.USER32.dll_AppendMenuW]
push 0x800
push dword [ebx + 4]
call esi
push dword [esp + 0x18]
push 0x10
push 0
push dword [ebx + 4]
call esi
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
call fcn.0040285f
push dword [edi + 0x74]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 1
mov ebx, 0x80
push ebx
push dword [edi + 0x20]
call esi
push dword [edi + 0x74]
push 0
push ebx
push dword [edi + 0x20]
call esi
mov esi, str.UTM_Bitsumishi_Pro.TTF
push esi
call fcn.00402ca1
add eax, 0xc
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00404f6d
mov ebx, dword [eax]
add esp, 0xc
push str.font.ttf
call fcn.00402ca1
add eax, 0xc
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00404f6d
mov eax, dword [eax]
add esp, 0xc
push 1
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
call fcn.0040285f
mov ecx, dword [esp + 0x14]
add ecx, 0xfffffff0
call fcn.0040285f
push esi
call fcn.00402ca1
add eax, 0xc
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00404f6d
add esp, 0xc
push dword [eax]
call dword [sym.imp.GDI32.dll_AddFontResourceW]
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
call fcn.0040285f
call fcn.00416b24
mov eax, dword [eax + 4]
push dword [eax + 0x50]
lea ecx, [esp + 0x1c]
call fcn.00402655
mov ebx, 0x44c2dc
push ebx
xor ecx, ecx
lea esi, [esp + 0x1c]
call fcn.00404e2e
cmp eax, 0xffffffff
jne 0x406654
lea ecx, [esp + 0x24]
call fcn.00416e09
push ecx
mov ecx, esp
push str.LOLPRO.exe
call fcn.00402655
lea eax, [esp + 0x28]
push eax
call fcn.00402ca1
push ecx
add eax, 8
mov ecx, esp
push eax
call fcn.004020b8
call fcn.0040b0df
call fcn.0040b4c1
cmp dword [esp + 0x2c], 0
jle 0x40664b
push dword [esp + 0x28]
lea ecx, [esp + 0x18]
call fcn.004020b8
push ebx
xor ecx, ecx
lea esi, [esp + 0x18]
call fcn.00404e2e
cmp eax, 0xffffffff
je 0x40663f
mov eax, esi
push eax
lea ecx, [esp + 0x1c]
call fcn.00402143
push 0x44c304
lea eax, [esp + 0x1c]
push eax
call fcn.00404cad
mov ecx, dword [esp + 0x14]
add ecx, 0xfffffff0
call fcn.0040285f
lea ecx, [esp + 0x24]
call fcn.0041710b
push str.LOLPRO
lea eax, [esp + 0x1c]
push eax
call fcn.00404cad
push 0x44cad0
mov ecx, edi
call fcn.004136ef
push 0x3e8
mov ecx, edi
call fcn.00413631
mov ebx, eax
lea eax, [esp + 0x48]
push eax
push dword [edi + 0xa0]
call dword [sym.imp.USER32.dll_GetWindowRect]
call fcn.0040aa3b
push 0x3ed
mov ecx, edi
mov dword [eax + 0x28], edi
call fcn.00413631
mov esi, eax
call fcn.0040aa3b
push 0x3ee
mov ecx, edi
mov dword [eax + 0x20], esi
call fcn.00413631
mov esi, eax
call fcn.0040aa3b
mov dword [eax + 0x24], esi
sub esp, 0x10
mov edi, esp
lea esi, [esp + 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
call fcn.0040aa3b
mov ebx, eax
call fcn.0040aa68
mov ebx, dword [esp + 0x1c]
push 0x3fc
mov ecx, ebx
call fcn.00413631
mov edi, eax
lea eax, [esp + 0x58]
push eax
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_GetWindowRect]
push 0xd0
call fcn.0040d5d1
pop ecx
test eax, eax
je 0x406714
mov esi, eax
call fcn.0040abaf
jmp 0x406716
xor eax, eax
push edi
mov dword [ebx + 0x78], eax
mov edx, dword [eax]
push 0x83
mov ecx, eax
call dword [edx + 0x13c]
lea esi, [esp + 0x58]
lea edi, [esp + 0x24]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebx + 0x78]
push 0
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push eax
lea ecx, [edi + 0xc8]
call fcn.0041521a
mov ebx, dword [esp + 0x30]
sub ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
sub esi, dword [esp + 0x24]
push 1
push ebx
push esi
push 0
push 0
mov ecx, edi
call fcn.00413751
push 1
push ebx
add esi, 0xf
push esi
push 0
push 0x32
lea ecx, [edi + 0x74]
call fcn.00413751
mov ebx, edi
call fcn.0040ac49
mov ebx, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x78]
push 1
call fcn.00413791
lea eax, [esp + 0x68]
push eax
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_GetWindowRect]
push 0xd0
call fcn.0040d5d1
pop ecx
test eax, eax
je 0x4067b9
mov esi, eax
call fcn.004029b8
jmp 0x4067bb
xor eax, eax
push ebx
mov dword [ebx + 0x7c], eax
mov edx, dword [eax]
push 0x84
mov ecx, eax
call dword [edx + 0x13c]
lea esi, [esp + 0x68]
lea edi, [esp + 0x24]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebx + 0x7c]
push 0
mov dword [esp + 0x20], esi
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push eax
lea ecx, [esi + 0xc8]
call fcn.0041521a
mov esi, dword [esp + 0x30]
sub esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
sub edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
push 1
push esi
push edi
push 0
push 0
call fcn.00413751
mov ecx, dword [esp + 0x1c]
mov eax, esi
cdq
push 1
sub eax, edx
push 0x64
sar eax, 1
push edi
sub eax, 0x32
push eax
push 0
add ecx, 0x74
call fcn.00413751
mov ecx, dword [ebx + 0x7c]
push 1
call fcn.00413791
push 0x3fd
mov ecx, ebx
call fcn.00413631
push 0x3fe
mov ecx, ebx
mov esi, eax
call fcn.00413631
push 0x3ff
mov ecx, ebx
mov dword [esp + 0x20], eax
call fcn.00413631
mov edi, str.wstr
push edi
push edi
push dword [esi + 0x20]
mov esi, dword [sym.imp.UxTheme.dll_SetWindowTheme]
mov dword [esp + 0x20], eax
call esi
mov eax, dword [esp + 0x1c]
push edi
push edi
push dword [eax + 0x20]
call esi
mov eax, dword [esp + 0x14]
push edi
push edi
push dword [eax + 0x20]
call esi
push 0x404
mov ecx, ebx
call fcn.00413631
push 0x405
mov ecx, ebx
mov dword [esp + 0x20], eax
call fcn.00413631
push 0x406
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.00413631
push edi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
push edi
push dword [eax + 0x20]
call esi
mov eax, dword [esp + 0x14]
push edi
push edi
push dword [eax + 0x20]
call esi
mov eax, dword [esp + 0x20]
push edi
push edi
push dword [eax + 0x20]
call esi
mov eax, 0x404
push eax
push 0x406
push eax
mov ecx, ebx
call fcn.00413607
push 8
call fcn.0040d5d1
xor edi, edi
pop ecx
cmp eax, edi
je 0x406913
mov dword [eax + 4], edi
mov dword [eax], vtable.CFont.0
mov esi, eax
jmp 0x406915
xor esi, esi
push 0x1a
push esi
call fcn.00407954
lea eax, [ebx + 0x100]
push eax
mov eax, esi
call fcn.00407938
mov esi, dword [sym.imp.GDI32.dll_CreateSolidBrush]
push 0xc86432
call esi
push eax
lea ecx, [ebx + 0xe8]
call fcn.0041521a
push edi
call esi
push eax
lea ecx, [ebx + 0xf0]
call fcn.0041521a
push 0xff
call esi
push eax
lea ecx, [ebx + 0xf8]
call fcn.0041521a
push 8
call fcn.0040d5d1
pop ecx
mov esi, vtable.CFont.0
cmp eax, edi
je 0x406982
mov dword [eax + 4], edi
mov dword [eax], esi
mov dword [esp + 0x14], eax
jmp 0x406986
mov dword [esp + 0x14], edi
mov ecx, dword [esp + 0x14]
push edi
push 0x44c3a8
push 0x5a
call fcn.0041ab70
lea eax, [ebx + 0x154]
push eax
mov eax, dword [esp + 0x18]
call fcn.00407938
push 8
call fcn.0040d5d1
pop ecx
cmp eax, edi
je 0x4069be
mov dword [eax + 4], edi
mov dword [eax], esi
mov dword [esp + 0x14], eax
jmp 0x4069c2
mov dword [esp + 0x14], edi
push 0x16
push dword [esp + 0x18]
call fcn.00407954
lea eax, [ebx + 0x1fc]
push eax
mov eax, dword [esp + 0x18]
call fcn.00407938
push 8
call fcn.0040d5d1
pop ecx
cmp eax, edi
je 0x4069f4
mov dword [eax + 4], edi
mov dword [eax], esi
mov dword [esp + 0x14], eax
jmp 0x4069f8
mov dword [esp + 0x14], edi
push 0x1f
push dword [esp + 0x18]
call fcn.00407954
mov eax, dword [esp + 0x14]
lea esi, [ebx + 0x250]
push esi
call fcn.00407938
push 0x44cad0
mov ecx, esi
call fcn.004136ef
lea eax, [esp + 0x38]
push eax
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 0x38]
push 1
push 1
push 0xd2
push 0x21
sub eax, 0xe4
push eax
lea ecx, [ebx + 0x1a8]
call fcn.00413751
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 0x38]
push 1
push 0xf
push 0x64
push 0x11
sub eax, 0x8c
lea esi, [ebx + 0x154]
push eax
mov ecx, esi
call fcn.00413751
mov ecx, esi
call fcn.004137fa
push edi
push edi
push edi
push edi
push ebx
push 0x405daa
call fcn.0041a2f2
call fcn.0040d7fc
push eax
lea ecx, [esp + 0x18]
call fcn.0040283a
push ecx
mov ecx, esp
push str.AUTO_TURN_ON
call fcn.00402655
push ecx
mov ecx, esp
push str.CONFIG
call fcn.00402655
call fcn.00402ca1
push eax
lea eax, [esp + 0x2c]
call fcn.00404ab9
push eax
lea ecx, [esp + 0x18]
call fcn.00402143
mov ecx, dword [esp + 0x20]
add ecx, 0xfffffff0
call fcn.0040285f
push 0x44afe0
lea ecx, [esp + 0x18]
call fcn.00401c92
neg eax
push edi
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
sbb eax, eax
inc eax
push eax
mov esi, 0xf1
push esi
push dword [ebx + 0x2c4]
call edi
push ecx
mov ecx, esp
push 0x44afe4
call fcn.00402655
push ecx
mov ecx, esp
push str.CONFIG
call fcn.00402655
call fcn.00402ca1
push eax
lea eax, [esp + 0x2c]
call fcn.00404ab9
push eax
lea ecx, [esp + 0x18]
call fcn.00402143
mov ecx, dword [esp + 0x20]
add ecx, 0xfffffff0
call fcn.0040285f
push 0x44afe0
lea ecx, [esp + 0x18]
call fcn.00401c92
neg eax
sbb eax, eax
push 0
inc eax
push eax
push esi
push dword [ebx + 0x36c]
call edi
push ecx
mov ecx, esp
push str.MOD_SKIN_FULL_TEAM
call fcn.00402655
push ecx
mov ecx, esp
push str.CONFIG
call fcn.00402655
call fcn.00402ca1
push eax
lea eax, [esp + 0x2c]
call fcn.00404ab9
push eax
lea ecx, [esp + 0x18]
call fcn.00402143
mov ecx, dword [esp + 0x20]
add ecx, 0xfffffff0
call fcn.0040285f
push 0x44afe0
lea ecx, [esp + 0x18]
call fcn.00401c92
neg eax
sbb eax, eax
push 0
inc eax
push eax
push esi
push dword [ebx + 0x318]
call edi
call fcn.0040b0df
push str.C:WindowsSystem32driversetchosts.ics
lea ecx, [esp + 0x24]
call fcn.00402655
mov esi, dword [esp + 0x20]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x406c16
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 3
je 0x406c16
push 0x80
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push esi
lea ecx, [esp + 0x20]
call fcn.0040becd
push dword [esp + 0x1c]
call fcn.0042c0cc
pop ecx
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff0
call fcn.0040285f
lea ecx, [esi - 0x10]
call fcn.0040285f
push str.0._OFF
push 0
mov esi, 0x143
push esi
push dword [ebx + 0x414]
call edi
push str.1._Gold
push 0
push esi
push dword [ebx + 0x414]
call edi
push str.2._Platinum
push 0
push esi
push dword [ebx + 0x414]
call edi
push str.3._Diamond
push 0
push esi
push dword [ebx + 0x414]
call edi
push str.4._Master
push 0
push esi
push dword [ebx + 0x414]
call edi
push str.5._Challenger
push 0
push esi
push dword [ebx + 0x414]
call edi
push str.0.English
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.1.Vietnamese
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.2.Chinese
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.3.Taiwan
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.4.Indonesian
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.5.Thai
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.6.Spanish__Argentina_
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.7.Czech
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.8.German
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.9.Greek
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.10.Spanish
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.11.French
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.12.Hungarian
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.13.Italian
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.14.Japanese
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.15.Korean
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.16.Polish
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.17.Portuguese_Brazilian
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.18.Romanian
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.19.Russian
push 0
push esi
push dword [ebx + 0x468]
call edi
push str.20.Turkish
push 0
push esi
push dword [ebx + 0x468]
call edi
push ecx
mov ecx, esp
push str.MOD_LOAD_FRAME
call fcn.00402655
push ecx
mov ecx, esp
push str.CONFIG
call fcn.00402655
call fcn.00402ca1
push eax
lea eax, [esp + 0x2c]
call fcn.00404ab9
push eax
lea ecx, [esp + 0x18]
call fcn.00402143
mov ecx, dword [esp + 0x20]
add ecx, 0xfffffff0
call fcn.0040285f
lea ecx, [esp + 0x14]
call fcn.004050be
push eax
push str.Error
lea esi, [esp + 0x28]
call fcn.0040507a
mov esi, dword [esp + 0x20]
push esi
lea ecx, [esp + 0x18]
call fcn.00401c92
test eax, eax
lea ecx, [esi - 0x10]
setne byte [esp + 0x13]
call fcn.0040285f
cmp byte [esp + 0x13], 0
mov esi, dword [esp + 0x14]
je 0x406e69
push esi
call fcn.0042bddc
pop ecx
push 0
push eax
push 0x14e
push dword [ebx + 0x414]
call edi
lea ecx, [esi - 0x10]
call fcn.0040285f
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
call fcn.0040285f
pop edi
xor eax, eax
pop esi
inc eax
pop ebx
mov esp, ebp
pop ebp
ret