Function at 0x48ec70
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.00478990
mov ecx, esi
mov eax, dword [eax + 0xe0]
push eax
call fcn.00428010
cmp dword [0x5b3830], 8
mov eax, 0x5b381c
mov ecx, esi
cmovae eax, dword [0x5b381c]
push eax
call fcn.00423fd0
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
lea eax, [esi + 0x1128]
push eax
push 0x579adc
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 0x48ed7b
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 0x48ed51
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 0x48ed4b
lea eax, [ebp - 0x320]
push eax
push edi
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x48ed20
jmp 0x48ed51
mov ebx, dword [ebp - 0x318]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x48ed7b
push ebx
push 1
push 0x400
call dword [sym.imp.KERNEL32.dll_OpenProcess]
cmp eax, 0xffffffff
je 0x48ed7b
push eax
call fcn.004943f0
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 0x48eedc
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 0x48edbf
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 0x48eedc
cmp dword [ebp - 0x5c], 0
jne 0x48eedc
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 0x48ee61
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 0x48ee61
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 0x48ee72
push eax
call ebx
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x48ee87
push eax
call dword [sym.imp.ADVAPI32.dll_FreeSid]
mov dword [ebp - 0x14], 0
test edi, edi
jne 0x48eedc
push 1
mov ecx, esi
call fcn.00423fd0
push eax
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
push 0x579a28
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x48ef10
push str.ChangeWindowMessageFilter
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
je 0x48eed3
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 0x48ef10
mov ebx, dword [esi + 0x10]
lea edi, [esi + 0x258]
push ebx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x48ef06
push edi
push ebx
mov dword [edi + 4], ebx
call dword [sym.imp.ole32.dll_RegisterDragDrop]
test eax, eax
jne 0x48ef06
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 0x48ef61
xor eax, eax
mov word [esi + ecx*2 + 0x6a6], ax
mov ecx, esi
call fcn.00423fd0
mov edi, eax
call fcn.004787a0
mov dword [eax], edi
call fcn.00478830
mov ecx, eax
call fcn.0046db30
test al, al
je 0x490d80
call fcn.0048bac0
test al, al
je 0x490d9e
call fcn.00478890
mov ecx, eax
call fcn.00475b90
test al, al
je 0x490dbc
push str.tips
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5b8710
push 0x5b780c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427880
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], 0x49b270
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57e969
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004831c0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00482ed0
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.00427880
mov ecx, eax
call fcn.00487990
lea ecx, [ebp - 0x30]
call fcn.00403070
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x48f09b
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], 0x495e90
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57e969
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004831c0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00482ed0
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.00427880
mov ecx, eax
call fcn.00439cf0
lea ecx, [ebp - 0x30]
call fcn.00403070
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x48f12c
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], 0x495e90
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57e969
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004831c0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00482ed0
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.00427880
mov ecx, eax
call fcn.00439cf0
lea ecx, [ebp - 0x30]
call fcn.00403070
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x48f1bd
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], 0x495e90
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57e969
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004831c0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00482ed0
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.00427880
mov ecx, eax
call fcn.00439cf0
lea ecx, [ebp - 0x30]
call fcn.00403070
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x48f24e
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], 0x495e90
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57e969
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004831c0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00482ed0
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.00427880
mov ecx, eax
call fcn.00439cf0
lea ecx, [ebp - 0x30]
call fcn.00403070
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x48f2df
mov edx, dword [ecx]
lea eax, [ebp - 0x88]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
push 0x580a20
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5b8710
push 0x5b780c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427880
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x10e4], eax
lea ecx, [ebp - 0x30]
call fcn.00403070
call fcn.00478990
cmp byte [eax + 0x38], 0
je 0x48f3d8
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movups xmm0, xmmword [ebp - 0x50]
mov dword [ebp - 0x7c], 0x580a2c
mov dword [ebp - 0x78], 0x580a30
pextrw eax, xmm0, 2
mov dword [ebp - 0x74], 0x5806f0
mov dword [ebp - 0x70], 0x5806f4
mov dword [ebp - 0x6c], 0x5806f8
movzx eax, ax
mov dword [ebp - 0x68], 0x5806fc
mov dword [ebp - 0x64], 0x580700
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 0x580a34
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.0048a330
add esp, 0x24
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x48f3c2
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 0x48f3e5
push 0x594564
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.00427880
mov edi, eax
mov ebx, dword [edi]
call fcn.00478990
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.00427880
mov edi, eax
mov ebx, dword [edi]
call fcn.00478990
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.00427880
mov edi, eax
mov ebx, dword [edi]
call fcn.00478990
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 0x5b79d8
push 0x5b780c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427880
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 0x5b79d8
push 0x5b780c
push 0
lea eax, [ebp - 0x30]
push eax
mov ecx, esi
call fcn.00427880
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.00427880
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 0x5b8308
push 0x5b780c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427880
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 0x5b8308
push 0x5b780c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427880
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 0x5b8308
push 0x5b780c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427880
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 0x5b8248
push 0x5b780c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427880
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 0x5b59b0
push 0x5b780c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427880
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], 0x49d2f0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57e969
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004831c0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00482ed0
mov ecx, dword [esi + 0x10fc]
lea eax, [ebp - 0x88]
push eax
call fcn.004878d0
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x48f6e7
mov edx, dword [ecx]
lea eax, [ebp - 0x88]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
call fcn.00478990
cmp byte [eax + 0x78], 0
je 0x48f781
push str.tag_lnk_box
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5b79d8
push 0x5b780c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00427880
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 + 0x10f4]
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.00478990
push 1
sub esp, 8
mov ecx, dword [eax + 0x64]
mov eax, esp
push 0
push 0x5b81a0
mov dword [eax], ecx
mov dword [eax + 4], 0x1e
mov ecx, dword [esi + 0x10ec]
push 0x5b7c68
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.0043bb80
push 1
push 1
call fcn.00478990
mov ecx, dword [esi + 0x10f0]
mov eax, dword [eax + 0x6c]
push eax
call fcn.0042a610
sub esp, 0x20
mov dword [ebp - 0x10], fcn.0049d480
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57e969
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004831c0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00482ed0
mov ecx, dword [esi + 0x10ec]
lea eax, [ebp - 0x88]
push eax
call fcn.00444b30
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x48f852
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], 0x49b2f0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57e969
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004831c0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00482ed0
mov ecx, dword [esi + 0x10ec]
lea eax, [ebp - 0x88]
push eax
call fcn.00487990
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x48f8c7
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.0049e290
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57e969
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004831c0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00482ed0
mov ecx, dword [esi + 0x10f0]
lea eax, [ebp - 0x88]
push eax
call fcn.00444b30
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x48f93c
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], 0x49b9c0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57e969
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004831c0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00482ed0
mov ecx, dword [esi + 0x10f0]
lea eax, [ebp - 0x88]
push eax
call fcn.00487990
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x48f9b1
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], 0x499520
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57e969
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004831c0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00482ed0
mov ecx, dword [esi + 0x10f4]
lea eax, [ebp - 0x88]
push eax
call fcn.00487990
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x48fa26
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], 0x4987f0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57e969
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004831c0
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00482ed0
mov ecx, dword [esi + 0x10f4]
lea eax, [ebp - 0x88]
push eax
call fcn.004878d0
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x48fa9b
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 0x48fdf0
call fcn.00478890
mov edi, dword [eax + 0x20]
mov dword [ebp - 8], edi
call fcn.00478990
mov ebx, dword [eax + 0x64]
call fcn.00478990
cmp byte [eax + 0x68], 0
je 0x48fb33
push 0
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00425370
imul ebx, edi
mov ecx, dword [eax + 8]
sub ecx, dword [eax]
cmp ebx, ecx
jge 0x48fb33
push 0
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00425370
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 0x5b81a0
push 0x5b7c68
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.0043bb80
xor ebx, ebx
mov dword [ebp - 0x5c], ebx
test edi, edi
jle 0x48fdf0
mov dword [ebp - 0x14], esi
mov dword [ebp - 0xb4], 0x49b3e0
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x9c], 0x498340
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x4c], 0x498970
mov dword [ebp - 0x48], ebx
push ebx
call fcn.00478890
mov ecx, eax
call fcn.00474e80
push 0x43c
mov dword [ebp - 4], eax
call fcn.00531cfc
add esp, 4
test eax, eax
je 0x48fba4
push 1
mov ecx, eax
call fcn.0043e3d0
mov edi, eax
jmp 0x48fba6
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.0042a550
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.0042faf0
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 0x57e969
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.004831c0
lea eax, [ebp - 0x80]
push eax
call fcn.00483790
mov ecx, dword [ebp - 0x7c]
add esp, 0x1c
mov ebx, eax
mov dword [ebp - 0x1c], ebx
test ecx, ecx
je 0x48fc78
or edx, 0xffffffff
lock xadd dword [ecx + 8], edx
jne 0x48fc78
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.00487990
test ebx, ebx
je 0x48fc9a
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 0x57e969
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.004831c0
lea eax, [ebp - 0x80]
push eax
call fcn.00483790
mov ecx, dword [ebp - 0x7c]
add esp, 0x1c
mov ebx, eax
mov dword [ebp - 0x1c], ebx
test ecx, ecx
je 0x48fceb
or edx, 0xffffffff
lock xadd dword [ecx + 8], edx
jne 0x48fceb
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.004879f0
test ebx, ebx
je 0x48fd0d
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 0x57e969
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.004831c0
lea eax, [ebp - 0x80]
push eax
call fcn.00483790
mov ecx, dword [ebp - 0x7c]
add esp, 0x1c
mov ebx, eax
mov dword [ebp - 0x1c], ebx
test ecx, ecx
je 0x48fd5e
or edx, 0xffffffff
lock xadd dword [ecx + 8], edx
jne 0x48fd5e
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.004878d0
test ebx, ebx
je 0x48fd80
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 0x48fb76
test edi, edi
jle 0x48fdf0
mov dword [esi + 0x1530], 0
call fcn.00478990
cmp dword [eax + 0x48], 0
jl 0x48fdd9
call fcn.00478990
cmp dword [eax + 0x48], edi
jge 0x48fdd9
mov edi, dword [esi + 0x10ec]
push 1
push 0
mov ebx, dword [edi + 0x560]
call fcn.00478990
lea ecx, [edi + 0x560]
mov eax, dword [eax + 0x48]
push eax
call dword [ebx + 0xc]
jmp 0x48fdf0
mov ecx, dword [esi + 0x10ec]
add ecx, 0x560
push 1
push 0
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
call fcn.00478990
mov eax, dword [eax + 0x50]
test eax, eax
je 0x48feb8
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 0x48feb8
test edi, edi
je 0x48feb8
test ebx, ebx
je 0x48feb8
cmp edi, 5
je 0x48fe42
cmp edi, 6
jne 0x48fe50
call fcn.00478990
mov byte [eax], 1
mov eax, dword [esi + 0x153c]
push edi
push ebx
push eax
mov ecx, esi
call fcn.00423fd0
push eax
call dword [sym.imp.USER32.dll_RegisterHotKey]
test eax, eax
jne 0x48feb8
push edi
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.0047dab0
cmp dword [ebp - 0x1c], 8
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x78]
push 0x580b90
push eax
call fcn.004014d0
add esp, 0x18
cmp dword [eax + 0x14], 8
jb 0x48fe95
mov eax, dword [eax]
push 0x40010
push 0x580954
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.00478990
mov eax, dword [eax + 0xd4]
test eax, eax
je 0x48ff83
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 0x48ff83
test edi, edi
je 0x48ff83
test ebx, ebx
je 0x48ff83
cmp edi, 5
je 0x48ff0d
cmp edi, 6
jne 0x48ff1b
call fcn.00478990
mov byte [eax], 1
mov eax, dword [esi + 0x1540]
push edi
push ebx
push eax
mov ecx, esi
call fcn.00423fd0
push eax
call dword [sym.imp.USER32.dll_RegisterHotKey]
test eax, eax
jne 0x48ff83
push edi
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.0047dab0
cmp dword [ebp - 0x1c], 8
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x78]
push 0x580b90
push eax
call fcn.004014d0
add esp, 0x18
cmp dword [eax + 0x14], 8
jb 0x48ff60
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.00478990
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.00478990
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.00478990
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.00478990
mov ecx, edi
movzx eax, byte [eax + 0x1f]
push eax
call dword [ebx + 0x90]
push 0x24
call fcn.00531cfc
mov edi, eax
add esp, 4
test edi, edi
je 0x490010
push 1
mov ecx, esi
call fcn.00423fd0
push eax
mov ecx, edi
call fcn.005301b0
mov ecx, eax
jmp 0x490012
xor ecx, ecx
lea ebx, [esi + 0x1108]
lea eax, [ebp - 0xdc]
cmp ebx, eax
je 0x490033
mov edx, dword [ebx]
mov dword [ebx], ecx
test edx, edx
je 0x490044
mov eax, dword [edx]
mov ecx, dword [eax + 4]
add ecx, edx
jmp 0x49003e
test ecx, ecx
je 0x490044
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.00423fd0
push eax
mov ecx, edi
call fcn.00530d40
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.00530780
mov edi, eax
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], edi
call fcn.00403070
test edi, edi
je 0x4904f8
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.00531cfc
add esp, 4
test eax, eax
je 0x4900fe
push 1
mov ecx, eax
call fcn.00530110
mov ebx, eax
jmp 0x490100
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.0042faf0
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x490168
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x49015e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x490dda
push edx
push ecx
call fcn.00531d2c
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.0042a550
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x4901d3
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4901c9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x490dda
push edx
push ecx
call fcn.00531d2c
add esp, 8
push 0x3c0
call fcn.00531cfc
mov edi, eax
add esp, 4
test edi, edi
je 0x490238
or dword [ebp - 0x60], 1
mov ecx, edi
mov dword [edi + 4], 0x59a4d4
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.004520a0
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 0x49023a
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 + 0x5b3438]
mov dword [ebp - 0x8c], eax
test eax, eax
je 0x4902a5
mov ecx, eax
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x490261
sub ecx, dword [ebp - 8]
sar ecx, 1
je 0x4902a5
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 0x490295
sub ecx, dword [ebp - 8]
jmp 0x4902d5
mov edx, dword [edx + 0x5b343c]
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 0x4902c7
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.00478830
mov ecx, eax
call fcn.0046d380
push eax
mov ecx, edi
call fcn.0042bb30
lea ecx, [ebp - 0x78]
call fcn.00403070
lea ecx, [ebp - 0x58]
call fcn.00403070
push 1
mov ecx, edi
call fcn.0042aa40
mov eax, dword [ebx]
mov ecx, ebx
push edi
call dword [eax + 0x160]
push 0x3c0
call fcn.00531cfc
add esp, 4
test eax, eax
je 0x490341
push 1
mov ecx, eax
call fcn.004520a0
mov edi, eax
jmp 0x490343
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.0042faf0
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x4903b6
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4903ac
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x490dda
push edx
push ecx
call fcn.00531d2c
add esp, 8
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov edx, dword [eax + 0x5b3434]
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 0x4903e0
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 0x490442
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x490438
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x490dda
push edx
push ecx
call fcn.00531d2c
add esp, 8
mov edx, dword [edi]
mov ecx, edi
movaps xmm0, xmmword [0x582060]
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 + 0x5b3444]
test edx, edx
je 0x4904cd
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x490472
sub ecx, dword [ebp - 8]
sar ecx, 1
je 0x4904cd
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 0x4904a0
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 0x4904f2
mov edi, dword [ebp - 0x18]
jmp 0x4900e0
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.00530780
mov edx, dword [ebp - 0x44]
mov edi, eax
mov dword [ebp - 8], edi
cmp edx, 8
jb 0x490565
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x49055b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x490dda
push edx
push ecx
call fcn.00531d2c
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 0x490943
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x170]
lea eax, [ebp - 0x78]
push eax
call fcn.00450d40
push str.theme.xml
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0xc0]
push eax
call fcn.0040bff0
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 0x490930
cmp eax, 0xffffffff
je 0x490930
push 0x478
call fcn.00531cfc
add esp, 4
test eax, eax
je 0x490603
push 1
mov ecx, eax
call fcn.00530110
mov ebx, eax
jmp 0x490605
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.0042faf0
mov edx, dword [ebp - 0x94]
cmp edx, 8
jb 0x490682
mov ecx, dword [ebp - 0xa8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x490678
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x490dda
push edx
push ecx
call fcn.00531d2c
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.0042a550
mov edx, dword [ebp - 0x94]
cmp edx, 8
jb 0x4906ff
mov ecx, dword [ebp - 0xa8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4906f5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x490dda
push edx
push ecx
call fcn.00531d2c
add esp, 8
push 0x3c0
call fcn.00531cfc
mov edi, eax
add esp, 4
test edi, edi
je 0x490764
or dword [ebp - 0x60], 2
mov ecx, edi
mov dword [edi + 4], 0x59a4d4
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.004520a0
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 0x490766
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.0042bb30
mov edx, dword [ebp - 0x94]
cmp edx, 8
jb 0x4907ef
mov ecx, dword [ebp - 0xa8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4907e5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x490dda
push edx
push ecx
call fcn.00531d2c
add esp, 8
push 1
mov ecx, edi
call fcn.0042aa40
mov eax, dword [ebx]
mov ecx, ebx
push edi
call dword [eax + 0x160]
push 0x3c0
call fcn.00531cfc
add esp, 4
test eax, eax
je 0x490821
push 1
mov ecx, eax
call fcn.004520a0
mov edi, eax
jmp 0x490823
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.0042faf0
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.0042a550
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 0x4908b7
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 [0x582060]
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 0x4905e5
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.00478990
mov edi, dword [eax + 0x5c]
call fcn.00478990
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.00478990
mov eax, dword [eax + 0x54]
add eax, ebx
cmp eax, dword [ebp - 0x5c]
jle 0x49098f
call fcn.00478990
mov ebx, dword [ebp - 0x5c]
sub ebx, dword [eax + 0x54]
call fcn.00478990
mov eax, dword [eax + 0x58]
add eax, edi
cmp eax, dword [ebp - 0x60]
jle 0x4909a9
call fcn.00478990
mov edi, dword [ebp - 0x60]
sub edi, dword [eax + 0x58]
push 0
call fcn.00478990
mov eax, dword [eax + 0x58]
push eax
call fcn.00478990
mov ecx, esi
mov eax, dword [eax + 0x54]
push eax
push edi
push ebx
call fcn.00423fd0
push eax
call dword [sym.imp.USER32.dll_MoveWindow]
call fcn.00478990
mov edi, dword [sym.imp.USER32.dll_SetTimer]
cmp byte [eax + 0x24], 0
je 0x490a4d
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00423fd0
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
push 0
call fcn.0048a280
call fcn.00478990
cmp byte [eax + 0x23], 0
jne 0x490a25
push 0
push 0x1f4
push 0
mov ecx, esi
mov dword [esi + 0x280], 1
call fcn.00423fd0
push eax
call edi
push 0
push 0x64
push 1
mov ecx, esi
call fcn.00423fd0
push eax
call edi
push 1
push esi
push 0x48ba90
push 1
push 5
call dword [sym.imp.WINMM.dll_timeSetEvent]
mov dword [esi + 0x27c], eax
call fcn.00478990
cmp byte [eax + 0x38], 0
je 0x490a6b
push 0
push 0x3e8
push 7
mov ecx, esi
call fcn.00423fd0
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.00450d40
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.0040bff0
cmp dword [ebp - 0xc4], 8
lea eax, [ebp - 0xd8]
cmovae eax, dword [ebp - 0xd8]
push eax
call fcn.00494280
add esp, 0x10
test eax, eax
je 0x490b1b
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 0x490b2c
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, 0x5b381c
mov dword [edi], 0x3bc
cmp dword [0x5b3830], 8
cmovae eax, dword [0x5b381c]
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.00478990
cmp byte [eax + 0x37], 0
jne 0x490b9e
push edi
push 0
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
mov byte [esi + 0x114c], 1
push 0x2ac
call fcn.00531cfc
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x490c81
mov dword [ebx + 8], 0x57f850
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.00437fa0
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.00471370
lea ecx, [ebx + 0x280]
call fcn.00471370
lea ecx, [ebx + 0x298]
mov dword [ebx + 0x298], 0
mov dword [ebx + 0x29c], 0
call fcn.0046fa30
mov dword [ebx + 0x298], eax
lea eax, [ebx + 0x294]
push eax
push 0x579adc
push 1
call dword [sym.imp.SHELL32.dll_SHGetImageList]
jmp 0x490c83
xor ebx, ebx
lea ecx, [ebp - 0x50]
mov dword [esi + 0x1110], ebx
cmp dword [0x5b3818], 8
mov eax, 0x5b3804
push ecx
cmovae eax, dword [0x5b3804]
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.00478990
cmp dword [eax + 0xcc], 0xffffffff
jne 0x490ced
call fcn.00478990
cmp dword [eax + 0xd0], 0xffffffff
jne 0x490ced
mov ecx, dword [esi + 0x1110]
call fcn.00424760
jmp 0x490d1f
push 5
push 0
push 0
call fcn.00478990
mov eax, dword [eax + 0xd0]
push eax
call fcn.00478990
mov ecx, dword [esi + 0x1110]
mov eax, dword [eax + 0xcc]
push eax
push 0
call fcn.00423fd0
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [0x5b98c4]
test eax, eax
je 0x490d39
push eax
call dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
mov dword [0x5b98c4], 0
mov ecx, dword [esi + 0x1110]
call fcn.00423fd0
push 0
push dword [0x5b970c]
mov dword [0x5b98c8], eax
push 0x4949b0
push 0xe
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
lea ecx, [ebp - 0xd8]
mov dword [0x5b98c4], 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 0x580954
push 0x580968
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call fcn.0056cbf0
push 0x40010
push 0x580954
push 0x58097c
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call fcn.0056cbf0
push 0x40010
push 0x580954
push 0x580994
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call fcn.0056cbf0
call fcn.0055e070
int3