Function at 0x464480
Capabilities:
Check for time delay via gettickcount
Check mutex on windows
Enumerate gui resources
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5c84fb
mov eax, dword fs:[0]
push eax
sub esp, 0x2a0
mov eax, dword [0x61a654]
xor eax, esp
mov dword [esp + 0x29c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x61a654]
xor eax, esp
push eax
lea eax, [esp + 0x2b4]
mov dword fs:[0], eax
mov esi, ecx
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
xor ebx, ebx
mov dword [esi + 0x360], eax
cmp byte [esi + 0x365], bl
jne 0x464d12
cmp dword [0x62059c], ebx
je 0x464d3a
cmp dword [0x6205a0], ebx
je 0x464d3a
mov eax, dword [esi]
mov edx, dword [eax + 0x174]
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x64]
mov ecx, esi
call edx
call fcn.00468bf0
test al, al
je 0x46470d
lea eax, [esp + 0x14]
push eax
push str.shell32.dll
call fcn.0044eab0
mov edi, eax
add esp, 8
cmp edi, ebx
je 0x464531
mov ebp, dword [esp + 0x14]
cmp ebp, ebx
jne 0x46454f
lea ecx, [esp + 0x14]
push ecx
push str.shfolder.dll
call fcn.0044eab0
mov ebp, dword [esp + 0x1c]
add esp, 8
cmp ebp, ebx
je 0x46470d
lea edx, [esp + 0x1ac]
push edx
push ebx
push ebx
push 0x23
push ebx
call edi
lea eax, [esp + 0x1ac]
push eax
lea ecx, [esp + 0xc0]
call fcn.004013c0
lea ecx, [esp + 0xbc]
push ecx
lea edx, [esp + 0x88]
push edx
mov dword [esp + 0x2c4], 5
call fcn.00472180
push 0x5dc370
push eax
lea eax, [esp + 0x78]
push eax
mov byte [esp + 0x2d0], 6
call fcn.00456db0
lea ecx, [esi + 0x28]
push ecx
push eax
lea edx, [esp + 0xbc]
push edx
mov byte [esp + 0x2dc], 7
call fcn.004287d0
push 0x5dc370
push eax
lea eax, [esp + 0x100]
push eax
mov byte [esp + 0x2e8], 8
call fcn.00456db0
lea ecx, [esi + 0x44]
push ecx
push eax
lea edx, [esp + 0x128]
push edx
mov byte [esp + 0x2f4], 9
call fcn.004287d0
add esp, 0x38
lea ecx, [esp + 0xd8]
call fcn.00401400
lea ecx, [esp + 0xa0]
call fcn.00401400
lea ecx, [esp + 0x68]
call fcn.00401400
lea ecx, [esp + 0x84]
call fcn.00401400
lea ecx, [esp + 0xbc]
mov byte [esp + 0x2bc], 0xf
call fcn.00401400
push 0x5dc370
lea eax, [esp + 0xf8]
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.00456db0
push eax
mov byte [esp + 0x2cc], 0x10
call fcn.00470c10
add esp, 0x10
lea ecx, [esp + 0x18]
mov byte [esp + 0x2bc], 0xf
call fcn.00401400
mov eax, dword [esi + 0x5ac]
cmp eax, 2
jb 0x4646a3
lea edi, [esi + 0x598]
push 1
mov ecx, edi
call fcn.00403de0
cmp byte [eax], 0x3a
je 0x4646ef
push 2
mov ecx, edi
call fcn.00403de0
cmp byte [eax], 0x5c
je 0x4646ef
lea edx, [esp + 0x40]
push edx
call fcn.0046cea0
lea edi, [esi + 0x598]
push edi
push eax
lea eax, [esp + 0x24]
push eax
mov byte [esp + 0x2cc], 0x11
call fcn.004287d0
add esp, 0x10
push 0xffffffffffffffff
push ebx
push eax
mov ecx, edi
mov byte [esp + 0x2c8], 0x12
call fcn.00401620
lea ecx, [esp + 0x18]
call fcn.00401400
lea ecx, [esp + 0x40]
call fcn.00401400
push ebp
call dword [sym.imp.kernel32.dll_FreeLibrary]
lea ecx, [esp + 0xf4]
mov dword [esp + 0x2bc], 0xffffffff
call fcn.00401400
cmp byte [esi + 0xf2], bl
jne 0x464721
mov edx, dword [esi]
mov eax, dword [edx + 0xb0]
mov ecx, esi
call eax
mov ecx, esi
call fcn.0044eb30
test al, al
je 0x464732
mov byte [esi + 0xfc], bl
cmp dword [0x6206d0], ebx
jne 0x464746
push ebx
call dword [sym.imp.kernel32.dll_GetModuleHandleA]
mov dword [0x6206d0], eax
mov edi, 0x10
cmp dword [esi + 0xb0], edi
jb 0x46475b
mov eax, dword [esi + 0x9c]
jmp 0x464761
lea eax, [esi + 0x9c]
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0xd4]
mov ecx, esi
call eax
test al, al
jne 0x464791
cmp dword [esi + 0xb0], edi
jb 0x464782
mov eax, dword [esi + 0x9c]
jmp 0x464788
lea eax, [esi + 0x9c]
push eax
call fcn.005a421e
add esp, 4
lea edi, [esi + 0x44]
lea ecx, [esp + 0x18]
push edi
push ecx
call fcn.0046d120
push eax
lea edx, [esp + 0x4c]
push str.Notify
push edx
mov dword [esp + 0x2d0], 0x13
call fcn.004570b0
mov ebp, 8
add esp, 0x14
cmp dword [eax + 0x18], ebp
jb 0x4647cc
mov eax, dword [eax + 4]
jmp 0x4647cf
add eax, 4
push eax
call dword [sym.imp.USER32.dll_RegisterClipboardFormatW]
lea ecx, [esp + 0x40]
mov dword [esi + 0x100], eax
call fcn.0040b050
lea ecx, [esp + 0x18]
mov dword [esp + 0x2bc], 0xffffffff
call fcn.0040b050
lea eax, [esp + 0x18]
push edi
push eax
call fcn.0046d120
push str.Mutex
push eax
lea ecx, [esp + 0x50]
push ecx
mov dword [esp + 0x2d0], 0x14
call fcn.00456e70
add esp, 0x14
cmp dword [eax + 0x18], ebp
jb 0x46482c
mov eax, dword [eax + 4]
jmp 0x46482f
add eax, 4
push eax
push 1
push ebx
call dword [sym.imp.kernel32.dll_CreateMutexW]
lea ecx, [esp + 0x40]
mov dword [esi + 0xf8], eax
call fcn.0040b050
lea ecx, [esp + 0x18]
mov dword [esp + 0x2bc], 0xffffffff
call fcn.0040b050
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0xb7
jne 0x464875
mov edx, dword [esi]
mov eax, dword [edx + 0xc0]
mov ecx, esi
call eax
mov edi, dword [sym.imp.kernel32.dll_GetTickCount]
call edi
push eax
mov dword [esi + 8], eax
call fcn.00468b30
add esp, 4
cmp byte [esi + 0x579], bl
je 0x464901
mov dword [esp + 0xf0], 0xf
mov dword [esp + 0xec], ebx
mov byte [esp + 0xdc], bl
lea ecx, [esp + 0xd8]
push ecx
mov ecx, esi
mov dword [esp + 0x2c0], 0x15
call fcn.004603f0
test al, al
jne 0x4648ea
mov edx, dword [esi]
mov edx, dword [edx + 0x84]
lea eax, [esp + 0xd8]
push eax
mov ecx, esi
mov byte [esi + 0x579], bl
call edx
push ebx
mov ecx, esi
call fcn.00463c70
lea ecx, [esp + 0xd8]
mov dword [esp + 0x2bc], 0xffffffff
call fcn.00401400
call edi
push eax
call fcn.005a41ea
add esp, 4
call fcn.00468b40
mov edi, dword [sym.imp.USER32.dll_LoadIconA]
push 5
test al, al
je 0x464a0e
mov byte [esi + 0x56f], bl
mov eax, dword [0x6206d0]
push eax
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], ebx
call edi
mov ecx, dword [0x6206d0]
mov ebp, dword [sym.imp.USER32.dll_RegisterClassA]
lea edx, [esp + 0x18]
push edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], 0x45dfb0
mov dword [esp + 0x40], str.MainWindow
mov dword [esp + 0x3c], ebx
call ebp
mov eax, dword [0x6206d0]
push 5
push eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], ebx
call edi
mov ecx, dword [0x6206d0]
lea edx, [esp + 0x18]
push edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], 0x45dfb0
mov dword [esp + 0x40], str.InvisWindow
mov dword [esp + 0x3c], ebx
call ebp
lea eax, [esi + 0x60]
push eax
lea ecx, [esp + 0x44]
push ecx
call fcn.00470d20
add esp, 8
cmp dword [eax + 0x18], 0x10
jb 0x4649d5
mov eax, dword [eax + 4]
jmp 0x4649d8
add eax, 4
mov edx, dword [0x6206d0]
push ebx
push edx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
push str.InvisWindow
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExA]
lea ecx, [esp + 0x40]
mov dword [esi + 0x378], eax
call fcn.00401400
mov eax, dword [esi + 0x378]
jmp 0x464ad9
mov byte [esi + 0x56f], 1
mov ecx, dword [0x6206d0]
push ecx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebx
call edi
mov edx, dword [0x6206d0]
mov ebp, dword [sym.imp.USER32.dll_RegisterClassW]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x48], 0x45dfb0
mov dword [esp + 0x68], 0x5dcaf0
mov dword [esp + 0x64], ebx
call ebp
mov ecx, dword [0x6206d0]
push 5
push ecx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebx
call edi
mov edx, dword [0x6206d0]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x48], 0x45dfb0
mov dword [esp + 0x68], 0x5dcad8
mov dword [esp + 0x64], ebx
call ebp
cmp dword [esi + 0x78], 8
jb 0x464ab4
mov eax, dword [esi + 0x64]
jmp 0x464ab7
lea eax, [esi + 0x64]
mov ecx, dword [0x6206d0]
push ebx
push ecx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
push 0x5dcad8
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [esi + 0x378], eax
push esi
push 0xffffffffffffffeb
push eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov edx, dword [0x6206d0]
mov edi, dword [sym.imp.USER32.dll_CreateCursor]
push 0x616c78
push 0x616bf8
push 0x20
push 0x20
push 4
push 0xb
push edx
call edi
push 0x616d78
push 0x616cf8
push 0x20
push 0x20
push 0xa
mov dword [esi + 0x514], eax
mov eax, dword [0x6206d0]
push 0xf
push eax
call edi
mov edx, dword [esi]
mov dword [esi + 0x518], eax
mov eax, dword [edx + 0x6c]
mov ecx, esi
call eax
mov ecx, dword [esi + 0xc4]
mov eax, dword [esi + 0xc0]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x74], ecx
lea ecx, [esp + 0x84]
push ecx
mov ecx, dword [esi + 0x320]
lea edx, [esp + 0x6c]
push edx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], eax
call fcn.004c5f00
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push ebx
call edi
push 1
mov ebp, eax
call edi
cmp dword [esi + 0xc0], ebp
jge 0x464ba2
cmp dword [esi + 0xc4], eax
jl 0x464baf
mov byte [esi + 0x367], bl
mov byte [esi + 0x36a], 1
cmp byte [esi + 0x369], bl
je 0x464c66
push ebx
push 0x461120
call dword [sym.imp.USER32.dll_EnumWindows]
lea eax, [esp + 0x110]
push eax
push 0xffffffffffffffff
push ebx
call dword [sym.imp.USER32.dll_EnumDisplaySettingsA]
mov eax, dword [esi + 0xc0]
mov ecx, dword [esp + 0x178]
cmp dword [esp + 0x17c], eax
jne 0x464c07
mov edx, dword [esp + 0x180]
cmp edx, dword [esi + 0xc4]
jne 0x464c07
cmp ecx, 0x10
je 0x464c66
cmp ecx, 0x20
je 0x464c66
mov dword [esp + 0x17c], eax
mov eax, dword [esi + 0xc4]
mov dword [esp + 0x180], eax
mov dword [esp + 0x138], 0x580000
cmp ecx, 0x10
je 0x464c46
cmp ecx, 0x20
je 0x464c46
mov dword [esp + 0x178], 0x10
mov dword [esp + 0x138], 0x5c0000
push 4
lea ecx, [esp + 0x114]
push ecx
call dword [sym.imp.USER32.dll_ChangeDisplaySettingsA]
test eax, eax
je 0x464c66
mov byte [esi + 0x369], bl
mov byte [esi + 0x367], bl
mov edx, dword [esi]
mov eax, dword [edx + 0x30]
mov ecx, esi
call eax
cmp byte [esi + 0x579], bl
je 0x464caa
push 1
mov ecx, esi
call fcn.0044f720
lea edi, [esi + 0x5b4]
mov ecx, edi
mov byte [esi + 0x5ec], 1
call fcn.00469920
mov ecx, edi
mov byte [esi + 0x367], al
call fcn.00469780
movzx ecx, al
mov dword [esi + 0x644], ecx
mov edx, dword [esi]
fld qword [esi + 0xd8]
mov eax, dword [edx + 0xf8]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call eax
mov edx, dword [esi]
mov eax, dword [esi + 0x378]
mov edx, dword [edx + 0x4c]
push eax
mov ecx, esi
call edx
fld qword [esi + 0xd0]
mov dword [esi + 0x3a8], eax
mov eax, dword [esi]
mov edx, dword [eax + 0xf4]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call edx
mov ecx, esi
call fcn.0044eb30
test al, al
je 0x464d02
push 0xb
call fcn.00450230
mov eax, dword [esi]
mov edx, dword [eax + 0x50]
mov ecx, esi
call edx
mov byte [esi + 0x36c], 1
mov ecx, dword [esp + 0x2b4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x29c]
xor ecx, esp
call fcn.0059e619
add esp, 0x2ac
ret
push 0x10
xor eax, eax
mov edi, 7
push str.You_need_DirectX
lea ecx, [esp + 0xe0]
mov dword [esp + 0xf8], edi
mov dword [esp + 0xf4], ebx
mov word [esp + 0xe4], ax
call fcn.0040bf20
push 0x10
mov ebp, 0xf
push str.YOU_NEED_DIRECTX
lea ecx, [esp + 0xa8]
mov dword [esp + 0x2c4], ebx
mov dword [esp + 0xc0], ebp
mov dword [esp + 0xbc], ebx
mov byte [esp + 0xac], bl
call fcn.00401590
xor ecx, ecx
push 0x62
mov word [esp + 0x8c], cx
push str.This_application_requires_DirectX_to_run.__You_can_get_DirectX_at_http:__www.microsoft.com_directx
lea ecx, [esp + 0x8c]
mov byte [esp + 0x2c4], 1
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], ebx
call fcn.0040bf20
push 0x14
push str.APP_REQUIRES_DIRECTX
lea ecx, [esp + 0x70]
mov byte [esp + 0x2c4], 2
mov dword [esp + 0x88], ebp
mov dword [esp + 0x84], ebx
mov byte [esp + 0x74], bl
call fcn.00401590
lea edx, [esp + 0xd8]
push edx
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0xc4]
push ecx
mov ecx, esi
mov byte [esp + 0x2c8], 3
call fcn.00455890
mov edi, eax
lea edx, [esp + 0x84]
push edx
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0xfc]
push ecx
mov ecx, esi
mov byte [esp + 0x2c8], 4
call fcn.00455890
mov ebp, 8
cmp dword [edi + 0x18], ebp
jb 0x464e57
mov edi, dword [edi + 4]
jmp 0x464e5a
add edi, 4
cmp dword [eax + 0x18], ebp
jb 0x464e64
mov eax, dword [eax + 4]
jmp 0x464e67
add eax, 4
push 0x10
push edi
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp dword [esp + 0x10c], ebp
jb 0x464e8b
mov edx, dword [esp + 0xf8]
push edx
call fcn.0059e6bb
add esp, 4
xor eax, eax
mov edi, 7
mov dword [esp + 0x10c], edi
mov dword [esp + 0x108], ebx
mov word [esp + 0xf8], ax
cmp dword [esp + 0xd4], ebp
jb 0x464ec1
mov ecx, dword [esp + 0xc0]
push ecx
call fcn.0059e6bb
add esp, 4
xor edx, edx
cmp dword [esp + 0x80], 0x10
mov dword [esp + 0xd4], edi
mov dword [esp + 0xd0], ebx
mov word [esp + 0xc0], dx
jb 0x464ef0
mov eax, dword [esp + 0x6c]
push eax
call fcn.0059e6bb
add esp, 4
mov dword [esp + 0x80], 0xf
mov dword [esp + 0x7c], ebx
mov byte [esp + 0x6c], bl
cmp dword [esp + 0x9c], ebp
jb 0x464f1c
mov ecx, dword [esp + 0x88]
push ecx
call fcn.0059e6bb
add esp, 4
xor edx, edx
cmp dword [esp + 0xb8], 0x10
mov dword [esp + 0x9c], edi
mov dword [esp + 0x98], ebx
mov word [esp + 0x88], dx
jb 0x464f4e
mov eax, dword [esp + 0xa4]
push eax
call fcn.0059e6bb
add esp, 4
mov dword [esp + 0xb8], 0xf
mov dword [esp + 0xb4], ebx
mov byte [esp + 0xa4], bl
cmp dword [esp + 0xf0], ebp
jb 0x464f80
mov ecx, dword [esp + 0xdc]
push ecx
call fcn.0059e6bb
add esp, 4
push ebx
mov ecx, esi
call fcn.00463c70
int3