Function at 0x4910c0
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 [0x5b5830], 8
mov eax, 0x5b581c
mov ecx, esi
cmovae eax, dword [0x5b581c]
push eax
call fcn.004237c0
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
lea eax, [esi + 0x1128]
push eax
push 0x57badc
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 0x4911cb
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 0x4911a1
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 0x49119b
lea eax, [ebp - 0x320]
push eax
push edi
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x491170
jmp 0x4911a1
mov ebx, dword [ebp - 0x318]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x4911cb
push ebx
push 1
push 0x400
call dword [sym.imp.KERNEL32.dll_OpenProcess]
cmp eax, 0xffffffff
je 0x4911cb
push eax
call fcn.00496890
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 0x49132c
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 0x49120f
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 0x49132c
cmp dword [ebp - 0x5c], 0
jne 0x49132c
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 0x4912b1
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 0x4912b1
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 0x4912c2
push eax
call ebx
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x4912d7
push eax
call dword [sym.imp.ADVAPI32.dll_FreeSid]
mov dword [ebp - 0x14], 0
test edi, edi
jne 0x49132c
push 1
mov ecx, esi
call fcn.004237c0
push eax
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
push 0x57ba28
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x491360
push str.ChangeWindowMessageFilter
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
je 0x491323
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 0x491360
mov ebx, dword [esi + 0x10]
lea edi, [esi + 0x258]
push ebx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x491356
push edi
push ebx
mov dword [edi + 4], ebx
call dword [sym.imp.ole32.dll_RegisterDragDrop]
test eax, eax
jne 0x491356
mov dword [edi + 8], 1
mov dword [esi + 0x290], 1
push 0x104
lea edi, [esi + 0x294]
push edi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push 0
push 0
lea ebx, [esi + 0x49c]
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 + 0x6a4]
push 0x104
push eax
call sub.msvcrt.dll_wcscpy_s
add esp, 0xc
lea eax, [esi + 0x8ac]
mov ecx, 0x104
cmp word [eax - 2], 0x5c
lea eax, [eax - 2]
lea ecx, [ecx - 1]
jne 0x4913b1
xor eax, eax
mov word [esi + ecx*2 + 0x6a6], 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 0x493200
call fcn.0048df10
test al, al
je 0x49321e
call fcn.0047ade0
mov ecx, eax
call fcn.004780e0
test al, al
je 0x49323c
push str.tips
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5ba710
push 0x5b980c
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
mov ecx, dword [esi + 0x10e8]
push 0
mov eax, dword [ecx]
call dword [eax + 0x90]
sub esp, 0x20
mov dword [ebp - 0x10], 0x49d750
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x580991
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004856e0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.004853f0
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.00489de0
lea ecx, [ebp - 0x30]
call fcn.00403070
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x4914eb
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], 0x498330
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x580991
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004856e0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.004853f0
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 0x49157c
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], 0x498330
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x580991
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004856e0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.004853f0
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 0x49160d
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], 0x498330
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x580991
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004856e0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.004853f0
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 0x49169e
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], 0x498330
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x580991
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004856e0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.004853f0
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 0x49172f
mov edx, dword [ecx]
lea eax, [ebp - 0x88]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
push 0x582a70
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5ba710
push 0x5b980c
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 + 0x10e4], eax
lea ecx, [ebp - 0x30]
call fcn.00403070
call fcn.0047aee0
cmp byte [eax + 0x38], 0
je 0x491828
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movups xmm0, xmmword [ebp - 0x50]
mov dword [ebp - 0x7c], 0x582a7c
mov dword [ebp - 0x78], 0x582a80
pextrw eax, xmm0, 2
mov dword [ebp - 0x74], 0x582740
mov dword [ebp - 0x70], 0x582744
mov dword [ebp - 0x6c], 0x582748
movzx eax, ax
mov dword [ebp - 0x68], 0x58274c
mov dword [ebp - 0x64], 0x582750
movups xmmword [esi + 0x1136], 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 0x582a84
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.0048c780
add esp, 0x24
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x491812
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 0x491835
push 0x5965b4
lea ecx, [ebp - 0x30]
call fcn.00402fa0
mov ecx, dword [esi + 0x10e4]
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 0x5b99d8
push 0x5b980c
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 + 0x10d4], eax
lea ecx, [ebp - 0x30]
call fcn.00403070
push str.major_group_box
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5b99d8
push 0x5b980c
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 + 0x10d8], 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 + 0x10dc], eax
call fcn.00403070
push str.list_major_group
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5ba308
push 0x5b980c
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
push str.list_minor_group
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5ba308
push 0x5b980c
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.linkbox
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5ba308
push 0x5b980c
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.linktabbox
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5ba248
push 0x5b980c
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.edit_todo
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5b79b0
push 0x5b980c
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
sub esp, 0x20
mov dword [ebp - 0x10], 0x49f7d0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x580991
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004856e0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.004853f0
mov ecx, dword [esi + 0x10fc]
lea eax, [ebp - 0x88]
push eax
call fcn.00489d20
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x491b37
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 0x491b67
push 1
push 0
push 0x5b79ec
push 0x5ba308
push 0
push dword [esi + 0x10ec]
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov ecx, eax
call fcn.004a6190
call fcn.0047aee0
cmp byte [eax + 0x79], 0
je 0x491c01
push str.tag_lnk_box
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5b99d8
push 0x5b980c
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 + 0x10f8]
call dword [eax + 0x160]
mov eax, dword [edi]
mov ecx, edi
push dword [esi + 0x10dc]
call dword [eax + 0x160]
mov eax, dword [edi]
mov ecx, edi
push dword [esi + 0x10f0]
call dword [eax + 0x160]
call fcn.0047aee0
push 1
sub esp, 8
mov ecx, dword [eax + 0x64]
mov eax, esp
push 0
push 0x5ba1a0
mov dword [eax], ecx
mov dword [eax + 4], 0x1e
mov ecx, dword [esi + 0x10ec]
push 0x5b9c68
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 + 0x10f0]
mov eax, dword [eax + 0x6c]
push eax
call fcn.00429f20
sub esp, 0x20
mov dword [ebp - 0x10], fcn.0049f940
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x580991
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004856e0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.004853f0
mov ecx, dword [esi + 0x10ec]
lea eax, [ebp - 0x88]
push eax
call fcn.00446950
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x491cd2
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], 0x49d7d0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x580991
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004856e0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.004853f0
mov ecx, dword [esi + 0x10ec]
lea eax, [ebp - 0x88]
push eax
call fcn.00489de0
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x491d47
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.004a0750
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x580991
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004856e0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.004853f0
mov ecx, dword [esi + 0x10f0]
lea eax, [ebp - 0x88]
push eax
call fcn.00446950
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x491dbc
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], 0x49dea0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x580991
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004856e0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.004853f0
mov ecx, dword [esi + 0x10f0]
lea eax, [ebp - 0x88]
push eax
call fcn.00489de0
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x491e31
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], 0x49ba00
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x580991
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004856e0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.004853f0
mov ecx, dword [esi + 0x10f4]
lea eax, [ebp - 0x88]
push eax
call fcn.00489de0
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x491ea6
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], 0x49acd0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x580991
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004856e0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.004853f0
mov ecx, dword [esi + 0x10f4]
lea eax, [ebp - 0x88]
push eax
call fcn.00489d20
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x491f1b
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 + 0x10ec], 0
je 0x492270
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 0x491fb3
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 0x491fb3
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 + 0x10ec]
push 0
push 0x5ba1a0
push 0x5b9c68
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 0x492270
mov dword [ebp - 0x14], esi
mov dword [ebp - 0xb4], 0x49d8c0
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x9c], 0x49a820
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x4c], 0x49ae50
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.0053428c
add esp, 4
test eax, eax
je 0x492024
push 1
mov ecx, eax
call fcn.0043fd40
mov edi, eax
jmp 0x492026
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 + 0x10ec]
mov eax, dword [ecx]
call dword [eax + 0x160]
movq xmm0, qword [ebp - 0xb4]
lea eax, [ebp - 0x14]
push 0x580991
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.004856e0
lea eax, [ebp - 0x80]
push eax
call fcn.00485cb0
mov ecx, dword [ebp - 0x7c]
add esp, 0x1c
mov ebx, eax
mov dword [ebp - 0x1c], ebx
test ecx, ecx
je 0x4920f8
or edx, 0xffffffff
lock xadd dword [ecx + 8], edx
jne 0x4920f8
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.00489de0
test ebx, ebx
je 0x49211a
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 0x580991
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.004856e0
lea eax, [ebp - 0x80]
push eax
call fcn.00485cb0
mov ecx, dword [ebp - 0x7c]
add esp, 0x1c
mov ebx, eax
mov dword [ebp - 0x1c], ebx
test ecx, ecx
je 0x49216b
or edx, 0xffffffff
lock xadd dword [ecx + 8], edx
jne 0x49216b
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.00489e40
test ebx, ebx
je 0x49218d
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 0x580991
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.004856e0
lea eax, [ebp - 0x80]
push eax
call fcn.00485cb0
mov ecx, dword [ebp - 0x7c]
add esp, 0x1c
mov ebx, eax
mov dword [ebp - 0x1c], ebx
test ecx, ecx
je 0x4921de
or edx, 0xffffffff
lock xadd dword [ecx + 8], edx
jne 0x4921de
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.00489d20
test ebx, ebx
je 0x492200
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 0x491ff6
test edi, edi
jle 0x492270
mov dword [esi + 0x1530], 0
call fcn.0047aee0
cmp dword [eax + 0x48], 0
jl 0x492259
call fcn.0047aee0
cmp dword [eax + 0x48], edi
jge 0x492259
mov edi, dword [esi + 0x10ec]
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 0x492270
mov ecx, dword [esi + 0x10ec]
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 0x492338
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 + 0x153c], eax
je 0x492338
test edi, edi
je 0x492338
test ebx, ebx
je 0x492338
cmp edi, 5
je 0x4922c2
cmp edi, 6
jne 0x4922d0
call fcn.0047aee0
mov byte [eax], 1
mov eax, dword [esi + 0x153c]
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 0x492338
push edi
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.00480000
cmp dword [ebp - 0x1c], 8
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x78]
push 0x582be0
push eax
call fcn.004014d0
add esp, 0x18
cmp dword [eax + 0x14], 8
jb 0x492315
mov eax, dword [eax]
push 0x40010
push 0x5829a4
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 0x492403
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 + 0x1540], eax
je 0x492403
test edi, edi
je 0x492403
test ebx, ebx
je 0x492403
cmp edi, 5
je 0x49238d
cmp edi, 6
jne 0x49239b
call fcn.0047aee0
mov byte [eax], 1
mov eax, dword [esi + 0x1540]
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 0x492403
push edi
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.00480000
cmp dword [ebp - 0x1c], 8
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x78]
push 0x582be0
push eax
call fcn.004014d0
add esp, 0x18
cmp dword [eax + 0x14], 8
jb 0x4923e0
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 + 0x10d4]
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 + 0x10d8]
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 + 0x10f0]
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 + 0x10dc]
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.0053428c
mov edi, eax
add esp, 4
test edi, edi
je 0x492490
push 1
mov ecx, esi
call fcn.004237c0
push eax
mov ecx, edi
call fcn.00532740
mov ecx, eax
jmp 0x492492
xor ecx, ecx
lea ebx, [esi + 0x1108]
lea eax, [ebp - 0xdc]
cmp ebx, eax
je 0x4924b3
mov edx, dword [ebx]
mov dword [ebx], ecx
test edx, edx
je 0x4924c4
mov eax, dword [edx]
mov ecx, dword [eax + 4]
add ecx, edx
jmp 0x4924be
test ecx, ecx
je 0x4924c4
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.005332d0
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.00532d10
mov edi, eax
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], edi
call fcn.00403070
test edi, edi
je 0x492978
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.0053428c
add esp, 4
test eax, eax
je 0x49257e
push 1
mov ecx, eax
call fcn.005326a0
mov ebx, eax
jmp 0x492580
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 0x4925e8
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4925de
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49325a
push edx
push ecx
call fcn.005342bc
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 0x492653
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x492649
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49325a
push edx
push ecx
call fcn.005342bc
add esp, 8
push 0x3c0
call fcn.0053428c
mov edi, eax
add esp, 4
test edi, edi
je 0x4926b8
or dword [ebp - 0x60], 1
mov ecx, edi
mov dword [edi + 4], 0x59c524
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 0x4926ba
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 + 0x5b5438]
mov dword [ebp - 0x8c], eax
test eax, eax
je 0x492725
mov ecx, eax
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4926e1
sub ecx, dword [ebp - 8]
sar ecx, 1
je 0x492725
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 0x492715
sub ecx, dword [ebp - 8]
jmp 0x492755
mov edx, dword [edx + 0x5b543c]
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 0x492747
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.0053428c
add esp, 4
test eax, eax
je 0x4927c1
push 1
mov ecx, eax
call fcn.004548a0
mov edi, eax
jmp 0x4927c3
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 0x492836
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x49282c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49325a
push edx
push ecx
call fcn.005342bc
add esp, 8
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov edx, dword [eax + 0x5b5434]
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 0x492860
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 0x4928c2
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4928b8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49325a
push edx
push ecx
call fcn.005342bc
add esp, 8
mov edx, dword [edi]
mov ecx, edi
movaps xmm0, xmmword [0x5840b0]
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 + 0x5b5444]
test edx, edx
je 0x49294d
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4928f2
sub ecx, dword [ebp - 8]
sar ecx, 1
je 0x49294d
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 0x492920
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 0x492972
mov edi, dword [ebp - 0x18]
jmp 0x492560
lea ebx, [esi + 0x1108]
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.00532d10
mov edx, dword [ebp - 0x44]
mov edi, eax
mov dword [ebp - 8], edi
cmp edx, 8
jb 0x4929e5
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4929db
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49325a
push edx
push ecx
call fcn.005342bc
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 0x492dc3
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 0x492db0
cmp eax, 0xffffffff
je 0x492db0
push 0x478
call fcn.0053428c
add esp, 4
test eax, eax
je 0x492a83
push 1
mov ecx, eax
call fcn.005326a0
mov ebx, eax
jmp 0x492a85
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 0x492b02
mov ecx, dword [ebp - 0xa8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x492af8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49325a
push edx
push ecx
call fcn.005342bc
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 0x492b7f
mov ecx, dword [ebp - 0xa8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x492b75
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49325a
push edx
push ecx
call fcn.005342bc
add esp, 8
push 0x3c0
call fcn.0053428c
mov edi, eax
add esp, 4
test edi, edi
je 0x492be4
or dword [ebp - 0x60], 2
mov ecx, edi
mov dword [edi + 4], 0x59c524
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 0x492be6
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 0x492c6f
mov ecx, dword [ebp - 0xa8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x492c65
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49325a
push edx
push ecx
call fcn.005342bc
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.0053428c
add esp, 4
test eax, eax
je 0x492ca1
push 1
mov ecx, eax
call fcn.004548a0
mov edi, eax
jmp 0x492ca3
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 0x492d37
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 [0x5840b0]
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 0x492a65
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 0x492e0f
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 0x492e29
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 0x492ecd
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.0048c6d0
call fcn.0047aee0
cmp byte [eax + 0x23], 0
jne 0x492ea5
push 0
push 0x1f4
push 0
mov ecx, esi
mov dword [esi + 0x280], 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 0x48dee0
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 0x492eeb
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 + 0x1544], eax
call sub.IMM32.dll_ImmSetOpenStatus
push dword [esi + 0x1544]
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.00496720
add esp, 0x10
test eax, eax
je 0x492f9b
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 0x492fac
push 0x80
push dword [esi + 0x1148]
call dword [sym.imp.USER32.dll_LoadIconW]
mov dword [esi + 0x1161], eax
lea edi, [esi + 0x114d]
mov eax, dword [esi + 0x10]
mov dword [esi + 0x1151], eax
mov eax, 0x5b581c
mov dword [edi], 0x3bc
cmp dword [0x5b5830], 8
cmovae eax, dword [0x5b581c]
push eax
lea eax, [esi + 0x1165]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov dword [esi + 0x115d], 0x464
mov dword [esi + 0x1159], 7
mov byte [esi + 0x114c], 0
call fcn.0047aee0
cmp byte [eax + 0x37], 0
jne 0x49301e
push edi
push 0
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
mov byte [esi + 0x114c], 1
push 0x2ac
call fcn.0053428c
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x493101
mov dword [ebx + 8], 0x581878
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 0x57badc
push 1
call dword [sym.imp.SHELL32.dll_SHGetImageList]
jmp 0x493103
xor ebx, ebx
lea ecx, [ebp - 0x50]
mov dword [esi + 0x1110], ebx
cmp dword [0x5b5818], 8
mov eax, 0x5b5804
push ecx
cmovae eax, dword [0x5b5804]
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 0x49316d
call fcn.0047aee0
cmp dword [eax + 0xd0], 0xffffffff
jne 0x49316d
mov ecx, dword [esi + 0x1110]
call fcn.00423f80
jmp 0x49319f
push 5
push 0
push 0
call fcn.0047aee0
mov eax, dword [eax + 0xd0]
push eax
call fcn.0047aee0
mov ecx, dword [esi + 0x1110]
mov eax, dword [eax + 0xcc]
push eax
push 0
call fcn.004237c0
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [0x5bb8c4]
test eax, eax
je 0x4931b9
push eax
call dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
mov dword [0x5bb8c4], 0
mov ecx, dword [esi + 0x1110]
call fcn.004237c0
push 0
push dword [0x5bb70c]
mov dword [0x5bb8c8], eax
push 0x496e50
push 0xe
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
lea ecx, [ebp - 0xd8]
mov dword [0x5bb8c4], 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 0x5829a4
push 0x5829b8
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call fcn.0056f1a0
push 0x40010
push 0x5829a4
push 0x5829cc
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call fcn.0056f1a0
push 0x40010
push 0x5829a4
push 0x5829e4
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call fcn.0056f1a0
call fcn.00560610
int3