Function at 0x491350
Capabilities:
Enumerate files on windows
Enumerate processes
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x344
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 0x60], 0
call fcn.0047aee0
mov ecx, esi
mov eax, dword [eax + 0xe0]
push eax
call fcn.00427980
cmp dword [0x5b6830], 8
mov eax, 0x5b681c
mov ecx, esi
cmovae eax, dword [0x5b681c]
push eax
call fcn.004237c0
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
lea eax, [esi + 0x1138]
push eax
push 0x57cadc
push 1
call dword [sym.imp.SHELL32.dll_SHGetImageList]
xor ebx, ebx
mov dword [ebp - 0x5c], 0
push ebx
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov edi, eax
cmp edi, 0xffffffff
je 0x49145b
push 0x228
lea eax, [ebp - 0x31c]
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [ebp - 0x320], 0x22c
lea eax, [ebp - 0x320]
push eax
push edi
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
je 0x491431
nop word [eax + eax]
lea eax, [ebp - 0x2fc]
push str.explorer.exe
push eax
call sub.msvcrt.dll__wcsicmp
add esp, 8
test eax, eax
je 0x49142b
lea eax, [ebp - 0x320]
push eax
push edi
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x491400
jmp 0x491431
mov ebx, dword [ebp - 0x318]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x49145b
push ebx
push 1
push 0x400
call dword [sym.imp.KERNEL32.dll_OpenProcess]
cmp eax, 0xffffffff
je 0x49145b
push eax
call fcn.00496b20
add esp, 4
mov dword [ebp - 0x5c], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea ecx, [ebp - 0x14]
xor edi, edi
push ecx
push 8
push eax
mov dword [ebp - 0x14], edi
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x4915bc
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], edi
push eax
push 4
lea eax, [ebp - 4]
push eax
push 0x14
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_GetTokenInformation]
test eax, eax
je 0x49149f
cmp dword [ebp - 0x18], 4
cmove edi, dword [ebp - 4]
push dword [ebp - 0x14]
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
call ebx
test edi, edi
je 0x4915bc
cmp dword [ebp - 0x5c], 0
jne 0x4915bc
lea eax, [ebp - 0x18]
mov word [ebp - 8], 0x1000
xor edi, edi
push eax
push 0x8b
mov dword [ebp - 0x18], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x14], edi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x491541
lea eax, [ebp - 0x14]
push eax
push edi
push edi
push edi
push edi
push edi
push edi
push edi
push 0x2000
push 1
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
test eax, eax
je 0x491541
mov eax, dword [ebp - 0x14]
push eax
mov dword [ebp - 0x8c], 0x20
mov dword [ebp - 0x90], eax
call dword [sym.imp.ADVAPI32.dll_GetLengthSid]
add eax, 8
push eax
lea eax, [ebp - 0x90]
push eax
push 0x19
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_SetTokenInformation]
test eax, eax
mov ecx, 1
cmovne edi, ecx
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x491552
push eax
call ebx
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x491567
push eax
call dword [sym.imp.ADVAPI32.dll_FreeSid]
mov dword [ebp - 0x14], 0
test edi, edi
jne 0x4915bc
push 1
mov ecx, esi
call fcn.004237c0
push eax
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
push 0x57ca28
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x4915f0
push str.ChangeWindowMessageFilter
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
je 0x4915b3
push 1
push 0x233
call edi
push 1
push 0x49
call edi
push 1
push 0x4a
call edi
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x4915f0
mov ebx, dword [esi + 0x10]
lea edi, [esi + 0x258]
push ebx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4915e6
push edi
push ebx
mov dword [edi + 4], ebx
call dword [sym.imp.ole32.dll_RegisterDragDrop]
test eax, eax
jne 0x4915e6
mov dword [edi + 8], 1
mov dword [esi + 0x294], 1
push 0x104
lea edi, [esi + 0x298]
push edi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push 0
push 0
lea ebx, [esi + 0x4a0]
push ebx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push edi
mov edi, dword [sym.imp.USER32.dll_CharLowerW]
call edi
push ebx
call edi
push ebx
lea eax, [esi + 0x6a8]
push 0x104
push eax
call sub.msvcrt.dll_wcscpy_s
add esp, 0xc
lea eax, [esi + 0x8b0]
mov ecx, 0x104
cmp word [eax - 2], 0x5c
lea eax, [eax - 2]
lea ecx, [ecx - 1]
jne 0x491641
xor eax, eax
mov word [esi + ecx*2 + 0x6aa], ax
mov ecx, esi
call fcn.004237c0
mov edi, eax
call fcn.0047acf0
mov dword [eax], edi
call fcn.0047ad80
mov ecx, eax
call fcn.004700b0
test al, al
je 0x493490
call fcn.0048e1a0
test al, al
je 0x4934ae
call fcn.0047ade0
mov ecx, eax
call fcn.004780e0
test al, al
je 0x4934cc
push str.tips
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5bb710
push 0x5ba80c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427170
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x10ec], eax
lea ecx, [ebp - 0x30]
call fcn.00403070
mov ecx, dword [esi + 0x10ec]
push 0
mov eax, dword [ecx]
call dword [eax + 0x90]
sub esp, 0x20
mov dword [ebp - 0x10], 0x49da20
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x5819d1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00485930
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00485640
push str.titlebox
lea ecx, [ebp - 0x30]
call fcn.00402fa0
lea eax, [ebp - 0x88]
mov ecx, esi
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00427170
mov ecx, eax
call fcn.0048a060
lea ecx, [ebp - 0x30]
call fcn.00403070
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x49177b
mov edx, dword [ecx]
lea eax, [ebp - 0x88]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x4985c0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x5819d1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00485930
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00485640
push str.btn_close
lea ecx, [ebp - 0x30]
call fcn.00402fa0
lea eax, [ebp - 0x88]
mov ecx, esi
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00427170
mov ecx, eax
call fcn.0043a8b0
lea ecx, [ebp - 0x30]
call fcn.00403070
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x49180c
mov edx, dword [ecx]
lea eax, [ebp - 0x88]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x4985c0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x5819d1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00485930
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00485640
push str.btn_menu
lea ecx, [ebp - 0x30]
call fcn.00402fa0
lea eax, [ebp - 0x88]
mov ecx, esi
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00427170
mov ecx, eax
call fcn.0043a8b0
lea ecx, [ebp - 0x30]
call fcn.00403070
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x49189d
mov edx, dword [ecx]
lea eax, [ebp - 0x88]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x4985c0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x5819d1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00485930
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00485640
push str.btn_search
lea ecx, [ebp - 0x30]
call fcn.00402fa0
lea eax, [ebp - 0x88]
mov ecx, esi
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00427170
mov ecx, eax
call fcn.0043a8b0
lea ecx, [ebp - 0x30]
call fcn.00403070
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x49192e
mov edx, dword [ecx]
lea eax, [ebp - 0x88]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x4985c0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x5819d1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00485930
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00485640
push str.btn_skin
lea ecx, [ebp - 0x30]
call fcn.00402fa0
lea eax, [ebp - 0x88]
mov ecx, esi
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00427170
mov ecx, eax
call fcn.0043a8b0
lea ecx, [ebp - 0x30]
call fcn.00403070
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x4919bf
mov edx, dword [ecx]
lea eax, [ebp - 0x88]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
push 0x583ab0
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5bb710
push 0x5ba80c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427170
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x10e8], eax
lea ecx, [ebp - 0x30]
call fcn.00403070
call fcn.0047aee0
cmp byte [eax + 0x38], 0
je 0x491ab8
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movups xmm0, xmmword [ebp - 0x50]
mov dword [ebp - 0x7c], 0x583abc
mov dword [ebp - 0x78], 0x583ac0
pextrw eax, xmm0, 2
mov dword [ebp - 0x74], 0x583780
mov dword [ebp - 0x70], 0x583784
mov dword [ebp - 0x6c], 0x583788
movzx eax, ax
mov dword [ebp - 0x68], 0x58378c
mov dword [ebp - 0x64], 0x583790
movups xmmword [esi + 0x1146], xmm0
push dword [ebp + eax*4 - 0x7c]
pextrw eax, xmm0, 3
movzx eax, ax
push eax
pextrw eax, xmm0, 1
movzx eax, ax
push eax
lea eax, [ebp - 0x30]
push 0x583ac4
push eax
call fcn.004014d0
movzx eax, word [ebp - 0x4a]
push eax
movzx eax, word [ebp - 0x4e]
push eax
movzx eax, word [ebp - 0x50]
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.0048ca10
add esp, 0x24
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x491aa2
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
lea ecx, [ebp - 0x30]
call fcn.00402350
lea ecx, [ebp - 0x78]
call fcn.00403070
jmp 0x491ac5
push 0x597624
lea ecx, [ebp - 0x30]
call fcn.00402fa0
mov ecx, dword [esi + 0x10e8]
lea edx, [ebp - 0x30]
push edx
mov eax, dword [ecx]
call dword [eax + 0x154]
lea ecx, [ebp - 0x30]
call fcn.00403070
push str.btn_search
lea ecx, [ebp - 0x30]
call fcn.00402fa0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427170
mov edi, eax
mov ebx, dword [edi]
call fcn.0047aee0
movzx ecx, byte [eax + 0x39]
push ecx
mov ecx, edi
call dword [ebx + 0x90]
lea ecx, [ebp - 0x30]
call fcn.00403070
push str.btn_menu
lea ecx, [ebp - 0x30]
call fcn.00402fa0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427170
mov edi, eax
mov ebx, dword [edi]
call fcn.0047aee0
movzx ecx, byte [eax + 0x3a]
push ecx
mov ecx, edi
call dword [ebx + 0x90]
lea ecx, [ebp - 0x30]
call fcn.00403070
push str.btn_skin
lea ecx, [ebp - 0x30]
call fcn.00402fa0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427170
mov edi, eax
mov ebx, dword [edi]
call fcn.0047aee0
movzx ecx, byte [eax + 0x3b]
push ecx
mov ecx, edi
call dword [ebx + 0x90]
lea ecx, [ebp - 0x30]
call fcn.00403070
push str.titlebox_inside
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5ba9d8
push 0x5ba80c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427170
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x10d8], eax
lea ecx, [ebp - 0x30]
call fcn.00403070
push str.major_group_box
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5ba9d8
push 0x5ba80c
push 0
lea eax, [ebp - 0x30]
push eax
mov ecx, esi
call fcn.00427170
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x10dc], eax
lea ecx, [ebp - 0x30]
call fcn.00403070
push str.minor_group_line
lea ecx, [ebp - 0x30]
call fcn.00402fa0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427170
lea ecx, [ebp - 0x30]
mov dword [esi + 0x10e0], eax
call fcn.00403070
push str.list_major_group
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5bb308
push 0x5ba80c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427170
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x10f0], eax
lea ecx, [ebp - 0x30]
call fcn.00403070
push str.list_minor_group
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5bb308
push 0x5ba80c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427170
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x10f4], eax
lea ecx, [ebp - 0x30]
call fcn.00403070
push str.linkbox
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5bb308
push 0x5ba80c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427170
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x10f8], eax
lea ecx, [ebp - 0x30]
call fcn.00403070
push str.linktabbox
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5bb248
push 0x5ba80c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427170
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x10fc], eax
lea ecx, [ebp - 0x30]
call fcn.00403070
push str.edit_todo
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5b89b0
push 0x5ba80c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427170
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x1100], eax
lea ecx, [ebp - 0x30]
call fcn.00403070
sub esp, 0x20
mov dword [ebp - 0x10], 0x49fab0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x5819d1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00485930
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00485640
mov ecx, dword [esi + 0x1100]
lea eax, [ebp - 0x88]
push eax
call fcn.00489fa0
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x491dc7
mov edx, dword [ecx]
lea eax, [ebp - 0x88]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
call fcn.0047aee0
cmp byte [eax + 0x78], 0
je 0x491df7
push 1
push 0
push 0x5b89ec
push 0x5bb308
push 0
push dword [esi + 0x10f0]
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov ecx, eax
call fcn.004a6750
call fcn.0047aee0
cmp byte [eax + 0x79], 0
je 0x491e91
push str.tag_lnk_box
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5ba9d8
push 0x5ba80c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427170
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
lea ecx, [ebp - 0x30]
mov edi, eax
call fcn.00403070
mov edx, dword [edi]
mov ecx, edi
push 0
call dword [edx + 0x178]
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x170]
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax + 0x178]
mov eax, dword [edi]
mov ecx, edi
push dword [esi + 0x10fc]
call dword [eax + 0x160]
mov eax, dword [edi]
mov ecx, edi
push dword [esi + 0x10e0]
call dword [eax + 0x160]
mov eax, dword [edi]
mov ecx, edi
push dword [esi + 0x10f4]
call dword [eax + 0x160]
call fcn.0047aee0
push 1
sub esp, 8
mov ecx, dword [eax + 0x64]
mov eax, esp
push 0
push 0x5bb1a0
mov dword [eax], ecx
mov dword [eax + 4], 0x1e
mov ecx, dword [esi + 0x10f0]
push 0x5bac68
push 0
mov eax, dword [ecx]
call dword [eax + 0x18c]
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov ecx, eax
call fcn.0043c9a0
push 1
push 1
call fcn.0047aee0
mov ecx, dword [esi + 0x10f4]
mov eax, dword [eax + 0x6c]
push eax
call fcn.00429f20
sub esp, 0x20
mov dword [ebp - 0x10], fcn.0049fc30
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x5819d1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00485930
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00485640
mov ecx, dword [esi + 0x10f0]
lea eax, [ebp - 0x88]
push eax
call fcn.00446950
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x491f62
mov edx, dword [ecx]
lea eax, [ebp - 0x88]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x49daa0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x5819d1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00485930
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00485640
mov ecx, dword [esi + 0x10f0]
lea eax, [ebp - 0x88]
push eax
call fcn.0048a060
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x491fd7
mov edx, dword [ecx]
lea eax, [ebp - 0x88]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], fcn.004a0a40
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x5819d1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00485930
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00485640
mov ecx, dword [esi + 0x10f4]
lea eax, [ebp - 0x88]
push eax
call fcn.00446950
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x49204c
mov edx, dword [ecx]
lea eax, [ebp - 0x88]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x49e180
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x5819d1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00485930
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00485640
mov ecx, dword [esi + 0x10f4]
lea eax, [ebp - 0x88]
push eax
call fcn.0048a060
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x4920c1
mov edx, dword [ecx]
lea eax, [ebp - 0x88]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x49bcd0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x5819d1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00485930
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00485640
mov ecx, dword [esi + 0x10f8]
lea eax, [ebp - 0x88]
push eax
call fcn.0048a060
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x492136
mov edx, dword [ecx]
lea eax, [ebp - 0x88]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x49afa0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x5819d1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00485930
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00485640
mov ecx, dword [esi + 0x10f8]
lea eax, [ebp - 0x88]
push eax
call fcn.00489fa0
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x4921ab
mov edx, dword [ecx]
lea eax, [ebp - 0x88]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
cmp dword [esi + 0x10f0], 0
je 0x492500
call fcn.0047ade0
mov edi, dword [eax + 0x20]
mov dword [ebp - 8], edi
call fcn.0047aee0
mov ebx, dword [eax + 0x64]
call fcn.0047aee0
cmp byte [eax + 0x68], 0
je 0x492243
push 0
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00424b80
imul ebx, edi
mov ecx, dword [eax + 8]
sub ecx, dword [eax]
cmp ebx, ecx
jge 0x492243
push 0
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00424b80
push 1
sub esp, 8
mov ecx, dword [eax + 8]
sub ecx, dword [eax]
lea eax, [ecx - 4]
mov ecx, esp
cdq
idiv edi
mov dword [ecx + 4], 0x1e
mov dword [ecx], eax
mov ecx, dword [esi + 0x10f0]
push 0
push 0x5bb1a0
push 0x5bac68
mov eax, dword [ecx]
push 0
call dword [eax + 0x18c]
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov ecx, eax
call fcn.0043c9a0
xor ebx, ebx
mov dword [ebp - 0x5c], ebx
test edi, edi
jle 0x492500
mov dword [ebp - 0x14], esi
mov dword [ebp - 0xb4], 0x49dba0
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x9c], 0x49aab0
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x4c], 0x49b120
mov dword [ebp - 0x48], ebx
push ebx
call fcn.0047ade0
mov ecx, eax
call fcn.004773d0
push 0x43c
mov dword [ebp - 4], eax
call fcn.0053488c
add esp, 4
test eax, eax
je 0x4922b4
push 1
mov ecx, eax
call fcn.0043fd40
mov edi, eax
jmp 0x4922b6
xor edi, edi
push ebx
lea eax, [ebp - 0x78]
push str.major_d
push eax
call fcn.004014d0
add esp, 0xc
mov ecx, edi
push eax
call fcn.00429e60
lea ecx, [ebp - 0x78]
call fcn.00403070
push 0x13
xor eax, eax
mov dword [ebp - 0x20], 0
push str.listitem_majorgroup
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x1c], 7
mov word [ebp - 0x30], ax
call fcn.00402e60
lea eax, [ebp - 0x30]
mov ecx, edi
push eax
call fcn.0042f6d0
lea ecx, [ebp - 0x30]
call fcn.00403070
mov ebx, dword [ebp - 4]
mov ecx, edi
mov edx, dword [edi]
mov eax, dword [ebx]
add eax, 0x14
push eax
call dword [edx + 0x1a0]
mov eax, dword [ebx]
push edi
mov eax, dword [eax]
mov dword [edi + 0x64], eax
mov ecx, dword [esi + 0x10f0]
mov eax, dword [ecx]
call dword [eax + 0x160]
movq xmm0, qword [ebp - 0xb4]
lea eax, [ebp - 0x14]
push 0x5819d1
push eax
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], 0
lea eax, [ebp - 0x80]
push eax
call fcn.00485930
lea eax, [ebp - 0x80]
push eax
call fcn.00485f00
mov ecx, dword [ebp - 0x7c]
add esp, 0x1c
mov ebx, eax
mov dword [ebp - 0x1c], ebx
test ecx, ecx
je 0x492388
or edx, 0xffffffff
lock xadd dword [ecx + 8], edx
jne 0x492388
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.0048a060
test ebx, ebx
je 0x4923aa
mov edx, dword [ebx]
lea eax, [ebp - 0x40]
cmp ebx, eax
mov ecx, ebx
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
movq xmm0, qword [ebp - 0x9c]
lea eax, [ebp - 0x18]
push 0x5819d1
push eax
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], 0
lea eax, [ebp - 0x80]
push eax
call fcn.00485930
lea eax, [ebp - 0x80]
push eax
call fcn.00485f00
mov ecx, dword [ebp - 0x7c]
add esp, 0x1c
mov ebx, eax
mov dword [ebp - 0x1c], ebx
test ecx, ecx
je 0x4923fb
or edx, 0xffffffff
lock xadd dword [ecx + 8], edx
jne 0x4923fb
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.0048a0c0
test ebx, ebx
je 0x49241d
mov edx, dword [ebx]
lea eax, [ebp - 0x40]
cmp ebx, eax
mov ecx, ebx
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
movq xmm0, qword [ebp - 0x4c]
lea eax, [ebp - 0x8c]
push 0x5819d1
push eax
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], 0
lea eax, [ebp - 0x80]
push eax
call fcn.00485930
lea eax, [ebp - 0x80]
push eax
call fcn.00485f00
mov ecx, dword [ebp - 0x7c]
add esp, 0x1c
mov ebx, eax
mov dword [ebp - 0x1c], ebx
test ecx, ecx
je 0x49246e
or edx, 0xffffffff
lock xadd dword [ecx + 8], edx
jne 0x49246e
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.00489fa0
test ebx, ebx
je 0x492490
mov edx, dword [ebx]
lea eax, [ebp - 0x40]
cmp ebx, eax
mov ecx, ebx
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov ebx, dword [ebp - 0x5c]
mov edi, dword [ebp - 8]
inc ebx
mov dword [ebp - 0x5c], ebx
cmp ebx, edi
jl 0x492286
test edi, edi
jle 0x492500
mov dword [esi + 0x1540], 0
call fcn.0047aee0
cmp dword [eax + 0x48], 0
jl 0x4924e9
call fcn.0047aee0
cmp dword [eax + 0x48], edi
jge 0x4924e9
mov edi, dword [esi + 0x10f0]
push 1
push 0
mov ebx, dword [edi + 0x560]
call fcn.0047aee0
lea ecx, [edi + 0x560]
mov eax, dword [eax + 0x48]
push eax
call dword [ebx + 0xc]
jmp 0x492500
mov ecx, dword [esi + 0x10f0]
add ecx, 0x560
push 1
push 0
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
call fcn.0047aee0
mov eax, dword [eax + 0x50]
test eax, eax
je 0x4925c8
movzx edi, al
shr eax, 8
push str.LucyHotKey
movzx ebx, al
call dword [sym.imp.KERNEL32.dll_GlobalAddAtomW]
movzx eax, ax
add eax, 0xffff4000
mov dword [esi + 0x154c], eax
je 0x4925c8
test edi, edi
je 0x4925c8
test ebx, ebx
je 0x4925c8
cmp edi, 5
je 0x492552
cmp edi, 6
jne 0x492560
call fcn.0047aee0
mov byte [eax], 1
mov eax, dword [esi + 0x154c]
push edi
push ebx
push eax
mov ecx, esi
call fcn.004237c0
push eax
call dword [sym.imp.USER32.dll_RegisterHotKey]
test eax, eax
jne 0x4925c8
push edi
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.00480240
cmp dword [ebp - 0x1c], 8
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x78]
push 0x583c20
push eax
call fcn.004014d0
add esp, 0x18
cmp dword [eax + 0x14], 8
jb 0x4925a5
mov eax, dword [eax]
push 0x40010
push 0x5839e4
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [ebp - 0x78]
call fcn.00403070
lea ecx, [ebp - 0x30]
call fcn.00403070
call fcn.0047aee0
mov eax, dword [eax + 0xd4]
test eax, eax
je 0x492693
movzx edi, al
shr eax, 8
push str.LucySearchHotKey
movzx ebx, al
call dword [sym.imp.KERNEL32.dll_GlobalAddAtomW]
movzx eax, ax
add eax, 0xffff4000
mov dword [esi + 0x1550], eax
je 0x492693
test edi, edi
je 0x492693
test ebx, ebx
je 0x492693
cmp edi, 5
je 0x49261d
cmp edi, 6
jne 0x49262b
call fcn.0047aee0
mov byte [eax], 1
mov eax, dword [esi + 0x1550]
push edi
push ebx
push eax
mov ecx, esi
call fcn.004237c0
push eax
call dword [sym.imp.USER32.dll_RegisterHotKey]
test eax, eax
jne 0x492693
push edi
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.00480240
cmp dword [ebp - 0x1c], 8
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x78]
push 0x583c20
push eax
call fcn.004014d0
add esp, 0x18
cmp dword [eax + 0x14], 8
jb 0x492670
mov eax, dword [eax]
push 0x40030
push str.Lucy__
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [ebp - 0x78]
call fcn.00403070
lea ecx, [ebp - 0x30]
call fcn.00403070
mov edi, dword [esi + 0x10d8]
mov ebx, dword [edi]
call fcn.0047aee0
mov ecx, edi
movzx eax, byte [eax + 0x1d]
push eax
call dword [ebx + 0x90]
mov edi, dword [esi + 0x10dc]
mov ebx, dword [edi]
call fcn.0047aee0
mov ecx, edi
movzx eax, byte [eax + 0x1e]
push eax
call dword [ebx + 0x90]
mov edi, dword [esi + 0x10f4]
mov ebx, dword [edi]
call fcn.0047aee0
mov ecx, edi
movzx eax, byte [eax + 0x1f]
push eax
call dword [ebx + 0x90]
mov edi, dword [esi + 0x10e0]
mov ebx, dword [edi]
call fcn.0047aee0
mov ecx, edi
movzx eax, byte [eax + 0x1f]
push eax
call dword [ebx + 0x90]
push 0x24
call fcn.0053488c
mov edi, eax
add esp, 4
test edi, edi
je 0x492720
push 1
mov ecx, esi
call fcn.004237c0
push eax
mov ecx, edi
call fcn.00532d30
mov ecx, eax
jmp 0x492722
xor ecx, ecx
lea ebx, [esi + 0x1118]
lea eax, [ebp - 0xdc]
cmp ebx, eax
je 0x492743
mov edx, dword [ebx]
mov dword [ebx], ecx
test edx, edx
je 0x492754
mov eax, dword [edx]
mov ecx, dword [eax + 4]
add ecx, edx
jmp 0x49274e
test ecx, ecx
je 0x492754
mov eax, dword [ecx]
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ecx]
push 1
call dword [eax]
push 0xd
xor eax, eax
mov dword [ebp - 0x20], 0
push str.menumenu.xml
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x1c], 7
mov word [ebp - 0x30], ax
call fcn.00402e60
mov edi, dword [ebx]
lea eax, [ebp - 0x30]
push eax
mov ecx, esi
call fcn.004237c0
push eax
mov ecx, edi
call fcn.005338d0
lea ecx, [ebp - 0x30]
call fcn.00403070
push 0xc
xor eax, eax
mov dword [ebp - 0x20], 0
push str.menu_sysfunc
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x1c], 7
mov word [ebp - 0x30], ax
call fcn.00402e60
mov ecx, dword [ebx]
lea eax, [ebp - 0x30]
push eax
call fcn.00533310
mov edi, eax
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], edi
call fcn.00403070
test edi, edi
je 0x492c08
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x170]
xor edi, edi
xor eax, eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], eax
nop dword [eax + eax]
push 0x478
call fcn.0053488c
add esp, 4
test eax, eax
je 0x49280e
push 1
mov ecx, eax
call fcn.00532c90
mov ebx, eax
jmp 0x492810
xor ebx, ebx
push 0xc
xor eax, eax
mov dword [ebp - 0x48], 0
push str.menu_element
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
call fcn.00402e60
lea eax, [ebp - 0x58]
mov ecx, ebx
push eax
call fcn.0042f6d0
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x492878
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x49286e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4934ea
push edx
push ecx
call fcn.005348bc
add esp, 8
push 7
xor eax, eax
mov dword [ebx + 0x64], edi
push str.SysFunc
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
call fcn.00402e60
lea eax, [ebp - 0x58]
mov ecx, ebx
push eax
call fcn.00429e60
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x4928e3
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4928d9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4934ea
push edx
push ecx
call fcn.005348bc
add esp, 8
push 0x3c0
call fcn.0053488c
mov edi, eax
add esp, 4
test edi, edi
je 0x492948
or dword [ebp - 0x60], 1
mov ecx, edi
mov dword [edi + 4], 0x59d594
mov dword [edi + method.nbase::SupportWeakCallback.virtual_0], vtable.nbase::SupportWeakCallback.0
push 0
mov dword [edi + 0x3b8], 0
mov dword [edi + 0x3bc], 0
call fcn.004548a0
mov eax, dword [edi + 4]
mov dword [edi], vtable.ui::ButtonTemplate_class_ui::Control_.0
mov eax, dword [eax + 4]
mov dword [eax + edi + 4], vtable.ui::ButtonTemplate_class_ui::Control_.1.0
mov dword [edi + 0x358], 0x8125
jmp 0x49294a
xor edi, edi
mov eax, dword [edi]
mov ecx, edi
push 0
call dword [eax + 0xa8]
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x5b6438]
mov dword [ebp - 0x8c], eax
test eax, eax
je 0x4929b5
mov ecx, eax
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x492971
sub ecx, dword [ebp - 8]
sar ecx, 1
je 0x4929b5
mov edx, dword [ebp - 0x8c]
xor eax, eax
mov ecx, edx
mov word [ebp - 0x58], ax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4929a5
sub ecx, dword [ebp - 8]
jmp 0x4929e5
mov edx, dword [edx + 0x5b643c]
xor eax, eax
mov ecx, edx
mov word [ebp - 0x58], ax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4929d7
sub ecx, dword [ebp - 8]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x58]
call fcn.00402e60
push 1
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.0047ad80
mov ecx, eax
call fcn.0046f900
push eax
mov ecx, edi
call fcn.0042b530
lea ecx, [ebp - 0x78]
call fcn.00403070
lea ecx, [ebp - 0x58]
call fcn.00403070
push 1
mov ecx, edi
call fcn.0042a350
mov eax, dword [ebx]
mov ecx, ebx
push edi
call dword [eax + 0x160]
push 0x3c0
call fcn.0053488c
add esp, 4
test eax, eax
je 0x492a51
push 1
mov ecx, eax
call fcn.004548a0
mov edi, eax
jmp 0x492a53
xor edi, edi
mov eax, dword [ebx]
mov ecx, ebx
push edi
call dword [eax + 0x160]
push 9
xor eax, eax
mov dword [ebp - 0x48], 0
push str.menu_text
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
call fcn.00402e60
lea eax, [ebp - 0x58]
mov ecx, edi
push eax
call fcn.0042f6d0
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x492ac6
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x492abc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4934ea
push edx
push ecx
call fcn.005348bc
add esp, 8
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov edx, dword [eax + 0x5b6434]
mov ecx, edx
xor eax, eax
mov word [ebp - 0x58], ax
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x492af0
sub ecx, dword [ebp - 8]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x58]
call fcn.00402e60
mov eax, dword [edi]
lea ecx, [ebp - 0x58]
push ecx
mov ecx, edi
call dword [eax + 0x154]
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x492b52
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x492b48
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4934ea
push edx
push ecx
call fcn.005348bc
add esp, 8
mov edx, dword [edi]
mov ecx, edi
movaps xmm0, xmmword [0x585120]
push 1
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0xe0]
mov edi, dword [ebp - 0x14]
mov edx, dword [edi + 0x5b6444]
test edx, edx
je 0x492bdd
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x492b82
sub ecx, dword [ebp - 8]
sar ecx, 1
je 0x492bdd
mov ecx, edx
mov dword [ebp - 0x48], 0
xor eax, eax
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x492bb0
sub ecx, dword [ebp - 8]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x58]
call fcn.00402e60
mov eax, dword [ebx]
lea ecx, [ebp - 0x58]
push ecx
mov ecx, ebx
call dword [eax + 0x48]
lea ecx, [ebp - 0x58]
call fcn.00403070
mov ecx, dword [ebp - 4]
push ebx
mov eax, dword [ecx]
call dword [eax + 0x160]
inc dword [ebp - 0x18]
add edi, 0x1c
mov dword [ebp - 0x14], edi
cmp edi, 0x3d4
jge 0x492c02
mov edi, dword [ebp - 0x18]
jmp 0x4927f0
lea ebx, [esi + 0x1118]
push 9
xor eax, eax
mov dword [ebp - 0x48], 0
push str.menu_skin
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
call fcn.00402e60
mov ecx, dword [ebx]
lea eax, [ebp - 0x58]
push eax
call fcn.00533310
mov edx, dword [ebp - 0x44]
mov edi, eax
mov dword [ebp - 8], edi
cmp edx, 8
jb 0x492c75
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x492c6b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4934ea
push edx
push ecx
call fcn.005348bc
add esp, 8
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
test edi, edi
je 0x493053
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x170]
lea eax, [ebp - 0x78]
push eax
call fcn.004535f0
push str.theme.xml
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0xc0]
push eax
call fcn.0040bd70
add esp, 0x10
lea ecx, [ebp - 0x344]
cmp dword [ebp - 0xac], 8
lea eax, [ebp - 0xc0]
cmovae eax, dword [ebp - 0xc0]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x8c], eax
test eax, eax
je 0x493040
cmp eax, 0xffffffff
je 0x493040
push 0x478
call fcn.0053488c
add esp, 4
test eax, eax
je 0x492d13
push 1
mov ecx, eax
call fcn.00532c90
mov ebx, eax
jmp 0x492d15
xor ebx, ebx
push 0xc
xor eax, eax
mov dword [ebp - 0x98], 0
push str.menu_element
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0x94], 7
mov word [ebp - 0xa8], ax
call fcn.00402e60
lea eax, [ebp - 0xa8]
mov ecx, ebx
push eax
call fcn.0042f6d0
mov edx, dword [ebp - 0x94]
cmp edx, 8
jb 0x492d92
mov ecx, dword [ebp - 0xa8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x492d88
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4934ea
push edx
push ecx
call fcn.005348bc
add esp, 8
push 0xc
xor eax, eax
mov dword [ebp - 0x98], 0
push str.MenuSkinItem
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0x94], 7
mov word [ebp - 0xa8], ax
call fcn.00402e60
lea eax, [ebp - 0xa8]
mov ecx, ebx
push eax
call fcn.00429e60
mov edx, dword [ebp - 0x94]
cmp edx, 8
jb 0x492e0f
mov ecx, dword [ebp - 0xa8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x492e05
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4934ea
push edx
push ecx
call fcn.005348bc
add esp, 8
push 0x3c0
call fcn.0053488c
mov edi, eax
add esp, 4
test edi, edi
je 0x492e74
or dword [ebp - 0x60], 2
mov ecx, edi
mov dword [edi + 4], 0x59d594
mov dword [edi + method.nbase::SupportWeakCallback.virtual_0], vtable.nbase::SupportWeakCallback.0
push 0
mov dword [edi + 0x3b8], 0
mov dword [edi + 0x3bc], 0
call fcn.004548a0
mov eax, dword [edi + 4]
mov dword [edi], vtable.ui::ButtonTemplate_class_ui::Control_.0
mov eax, dword [eax + 4]
mov dword [eax + edi + 4], vtable.ui::ButtonTemplate_class_ui::Control_.1.0
mov dword [edi + 0x358], 0x8125
jmp 0x492e76
xor edi, edi
mov eax, dword [edi]
mov ecx, edi
push 0
call dword [eax + 0xa8]
push 0xd
xor eax, eax
mov dword [ebp - 0x98], 0
push str.menu_skin.png
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0x94], 7
mov word [ebp - 0xa8], ax
call fcn.00402e60
lea eax, [ebp - 0xa8]
mov ecx, edi
push eax
call fcn.0042b530
mov edx, dword [ebp - 0x94]
cmp edx, 8
jb 0x492eff
mov ecx, dword [ebp - 0xa8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x492ef5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4934ea
push edx
push ecx
call fcn.005348bc
add esp, 8
push 1
mov ecx, edi
call fcn.0042a350
mov eax, dword [ebx]
mov ecx, ebx
push edi
call dword [eax + 0x160]
push 0x3c0
call fcn.0053488c
add esp, 4
test eax, eax
je 0x492f31
push 1
mov ecx, eax
call fcn.004548a0
mov edi, eax
jmp 0x492f33
xor edi, edi
mov eax, dword [ebx]
mov ecx, ebx
push edi
call dword [eax + 0x160]
push 9
xor eax, eax
mov dword [ebp - 0x20], 0
push str.menu_text
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x1c], 7
mov word [ebp - 0x30], ax
call fcn.00402e60
lea eax, [ebp - 0x30]
mov ecx, edi
push eax
call fcn.0042f6d0
lea ecx, [ebp - 0x30]
call fcn.00403070
push 0xc
xor eax, eax
mov dword [ebp - 0x20], 0
push str.MenuItemText
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x1c], 7
mov word [ebp - 0x30], ax
call fcn.00402e60
lea eax, [ebp - 0x30]
mov ecx, edi
push eax
call fcn.00429e60
lea ecx, [ebp - 0x30]
call fcn.00403070
xor eax, eax
mov dword [ebp - 0x20], 0
lea ecx, [ebp - 0x318]
mov dword [ebp - 0x1c], 7
mov word [ebp - 0x30], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x492fc7
sub ecx, edx
lea eax, [ebp - 0x318]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.00402e60
mov eax, dword [edi]
lea ecx, [ebp - 0x30]
push ecx
mov ecx, edi
call dword [eax + 0x154]
lea ecx, [ebp - 0x30]
call fcn.00403070
mov edx, dword [edi]
mov ecx, edi
movaps xmm0, xmmword [0x585120]
push 1
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0xe0]
mov edi, dword [ebp - 8]
mov ecx, edi
push ebx
mov eax, dword [edi]
call dword [eax + 0x160]
lea eax, [ebp - 0x344]
push eax
push dword [ebp - 0x8c]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x492cf5
lea ecx, [ebp - 0xc0]
call fcn.00403070
lea ecx, [ebp - 0x78]
call fcn.00403070
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
call edi
push 1
mov dword [ebp - 0x5c], eax
call edi
mov dword [ebp - 0x60], eax
call fcn.0047aee0
mov edi, dword [eax + 0x5c]
call fcn.0047aee0
xor ebx, ebx
test edi, edi
cmovns ebx, edi
xor edi, edi
mov ecx, dword [eax + 0x60]
test ecx, ecx
cmovns edi, ecx
call fcn.0047aee0
mov eax, dword [eax + 0x54]
add eax, ebx
cmp eax, dword [ebp - 0x5c]
jle 0x49309f
call fcn.0047aee0
mov ebx, dword [ebp - 0x5c]
sub ebx, dword [eax + 0x54]
call fcn.0047aee0
mov eax, dword [eax + 0x58]
add eax, edi
cmp eax, dword [ebp - 0x60]
jle 0x4930b9
call fcn.0047aee0
mov edi, dword [ebp - 0x60]
sub edi, dword [eax + 0x58]
push 0
call fcn.0047aee0
mov eax, dword [eax + 0x58]
push eax
call fcn.0047aee0
mov ecx, esi
mov eax, dword [eax + 0x54]
push eax
push edi
push ebx
call fcn.004237c0
push eax
call dword [sym.imp.USER32.dll_MoveWindow]
call fcn.0047aee0
mov edi, dword [sym.imp.USER32.dll_SetTimer]
cmp byte [eax + 0x24], 0
je 0x49315d
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.004237c0
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
push 0
call fcn.0048c960
call fcn.0047aee0
cmp byte [eax + 0x23], 0
jne 0x493135
push 0
push 0x1f4
push 0
mov ecx, esi
mov dword [esi + 0x284], 1
call fcn.004237c0
push eax
call edi
push 0
push 0x64
push 1
mov ecx, esi
call fcn.004237c0
push eax
call edi
push 1
push esi
push 0x48e170
push 1
push 5
call dword [sym.imp.WINMM.dll_timeSetEvent]
mov dword [esi + 0x27c], eax
call fcn.0047aee0
cmp byte [eax + 0x38], 0
je 0x49317b
push 0
push 0x3e8
push 7
mov ecx, esi
call fcn.004237c0
push eax
call edi
push dword [esi + 0x10]
call sub.IMM32.dll_ImmGetContext
push 0
push eax
mov dword [esi + 0x1554], eax
call sub.IMM32.dll_ImmSetOpenStatus
push dword [esi + 0x1554]
push dword [esi + 0x10]
call sub.IMM32.dll_ImmAssociateContext
lea eax, [ebp - 0xf4]
push eax
call fcn.004535f0
add esp, 4
lea eax, [ebp - 0xf4]
cmp dword [ebp - 0xe0], 8
cmovae eax, dword [ebp - 0xf4]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push str.notify.ico
lea eax, [ebp - 0xf4]
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.0040bd70
cmp dword [ebp - 0xc4], 8
lea eax, [ebp - 0xd8]
cmovae eax, dword [ebp - 0xd8]
push eax
call fcn.004969b0
add esp, 0x10
test eax, eax
je 0x49322b
cmp dword [ebp - 0xc4], 8
lea eax, [ebp - 0xd8]
push 0x10
cmovae eax, dword [ebp - 0xd8]
push 0x10
push 0x10
push 1
push eax
push 0
call dword [sym.imp.USER32.dll_LoadImageW]
test eax, eax
jne 0x49323c
push 0x80
push dword [esi + 0x1158]
call dword [sym.imp.USER32.dll_LoadIconW]
mov dword [esi + 0x1171], eax
lea edi, [esi + 0x115d]
mov eax, dword [esi + 0x10]
mov dword [esi + 0x1161], eax
mov eax, 0x5b681c
mov dword [edi], 0x3bc
cmp dword [0x5b6830], 8
cmovae eax, dword [0x5b681c]
push eax
lea eax, [esi + 0x1175]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov dword [esi + 0x116d], 0x464
mov dword [esi + 0x1169], 7
mov byte [esi + 0x115c], 0
call fcn.0047aee0
cmp byte [eax + 0x37], 0
jne 0x4932ae
push edi
push 0
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
mov byte [esi + 0x115c], 1
push 0x2ac
call fcn.0053488c
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x493391
mov dword [ebx + 8], 0x5828b8
mov ecx, ebx
mov dword [ebx + method.nbase::SupportWeakCallback.virtual_0], vtable.nbase::SupportWeakCallback.0
push 0
mov dword [ebx + 0x2a4], 0
mov dword [ebx + 0x2a8], 0
call fcn.004388b0
mov eax, dword [ebx + 8]
lea ecx, [ebx + 0x26c]
mov dword [ebx], vtable.CSearchWnd.0
mov dword [ebx + method.CHideWnd.virtual_60], vtable.CSearchWnd.1.0
mov eax, dword [eax + 4]
mov dword [eax + ebx + 8], vtable.CSearchWnd.2.0
mov dword [ebx + 0x258], 0
mov dword [ebx + 0x25c], 0
mov byte [ebx + 0x260], 0
mov dword [ebx + 0x264], 0
mov dword [ebx + 0x268], 0
call fcn.004738f0
lea ecx, [ebx + 0x280]
call fcn.004738f0
lea ecx, [ebx + 0x298]
mov dword [ebx + 0x298], 0
mov dword [ebx + 0x29c], 0
call fcn.00471fb0
mov dword [ebx + 0x298], eax
lea eax, [ebx + 0x294]
push eax
push 0x57cadc
push 1
call dword [sym.imp.SHELL32.dll_SHGetImageList]
jmp 0x493393
xor ebx, ebx
lea ecx, [ebp - 0x50]
mov dword [esi + 0x1120], ebx
cmp dword [0x5b6818], 8
mov eax, 0x5b6804
push ecx
cmovae eax, dword [0x5b6804]
mov edi, ebx
push 1
push 0x80
xorps xmm0, xmm0
push 0x80000000
movups xmmword [ebp - 0x50], xmm0
mov ebx, dword [edi]
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
mov ecx, edi
call dword [ebx + 0xc]
call fcn.0047aee0
cmp dword [eax + 0xcc], 0xffffffff
jne 0x4933fd
call fcn.0047aee0
cmp dword [eax + 0xd0], 0xffffffff
jne 0x4933fd
mov ecx, dword [esi + 0x1120]
call fcn.00423f80
jmp 0x49342f
push 5
push 0
push 0
call fcn.0047aee0
mov eax, dword [eax + 0xd0]
push eax
call fcn.0047aee0
mov ecx, dword [esi + 0x1120]
mov eax, dword [eax + 0xcc]
push eax
push 0
call fcn.004237c0
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [0x5bc8d4]
test eax, eax
je 0x493449
push eax
call dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
mov dword [0x5bc8d4], 0
mov ecx, dword [esi + 0x1120]
call fcn.004237c0
push 0
push dword [0x5bc718]
mov dword [0x5bc8d8], eax
push 0x4970e0
push 0xe
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
lea ecx, [ebp - 0xd8]
mov dword [0x5bc8d4], eax
call fcn.00403070
lea ecx, [ebp - 0xf4]
call fcn.00403070
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x40010
push 0x5839e4
push 0x5839f8
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call fcn.0056f760
push 0x40010
push 0x5839e4
push 0x583a0c
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call fcn.0056f760
push 0x40010
push 0x5839e4
push 0x583a24
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call fcn.0056f760
call fcn.00560be0
int3