Function at 0x48f530
Capabilities:
Check if file exists
Enumerate processes
Get common file path
Get file attributes
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x328
push ebx
mov dword [ebp - 0x48], 0
mov eax, 0x5b281c
cmp dword [0x5b2830], 8
push esi
cmovae eax, dword [0x5b281c]
mov esi, ecx
push edi
push eax
call fcn.004237c0
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
lea eax, [esi + 0x113c]
push eax
push 0x578adc
push 1
call dword [sym.imp.SHELL32.dll_SHGetImageList]
xor ebx, ebx
mov dword [ebp - 0x40], 0
push ebx
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov edi, eax
cmp edi, 0xffffffff
je 0x48f62b
push 0x228
lea eax, [ebp - 0x324]
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [ebp - 0x328], 0x22c
lea eax, [ebp - 0x328]
push eax
push edi
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
je 0x48f601
nop word [eax + eax]
lea eax, [ebp - 0x304]
push str.explorer.exe
push eax
call sub.msvcrt.dll__wcsicmp
add esp, 8
test eax, eax
je 0x48f5fb
lea eax, [ebp - 0x328]
push eax
push edi
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x48f5d0
jmp 0x48f601
mov ebx, dword [ebp - 0x320]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x48f62b
push ebx
push 1
push 0x400
call dword [sym.imp.KERNEL32.dll_OpenProcess]
cmp eax, 0xffffffff
je 0x48f62b
push eax
call fcn.00494610
add esp, 4
mov dword [ebp - 0x40], 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 0x48f783
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], 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 0x48f66f
cmp dword [ebp - 0x44], 4
cmove edi, dword [ebp - 4]
push dword [ebp - 0x14]
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
call ebx
test edi, edi
je 0x48f783
cmp dword [ebp - 0x40], 0
jne 0x48f783
lea eax, [ebp - 0x44]
mov word [ebp - 8], 0x1000
xor edi, edi
push eax
push 0x8b
mov dword [ebp - 0x44], 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 0x48f708
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 0x48f708
mov eax, dword [ebp - 0x14]
push eax
mov dword [ebp - 0x74], 0x20
mov dword [ebp - 0x78], eax
call dword [sym.imp.ADVAPI32.dll_GetLengthSid]
add eax, 8
push eax
lea eax, [ebp - 0x78]
push eax
push 0x19
push dword [ebp - 0x44]
call dword [sym.imp.ADVAPI32.dll_SetTokenInformation]
test eax, eax
mov ecx, 1
cmovne edi, ecx
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x48f719
push eax
call ebx
mov dword [ebp - 0x44], 0
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x48f72e
push eax
call dword [sym.imp.ADVAPI32.dll_FreeSid]
mov dword [ebp - 0x14], 0
test edi, edi
jne 0x48f783
push 1
mov ecx, esi
call fcn.004237c0
push eax
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
push 0x578a28
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x48f7b7
push str.ChangeWindowMessageFilter
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
je 0x48f77a
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 0x48f7b7
mov ebx, dword [esi + 0x10]
lea edi, [esi + 0x258]
push ebx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x48f7ad
push edi
push ebx
mov dword [edi + 4], ebx
call dword [sym.imp.ole32.dll_RegisterDragDrop]
test eax, eax
jne 0x48f7ad
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
nop dword [eax + eax]
cmp word [eax - 2], 0x5c
lea eax, [eax - 2]
lea ecx, [ecx - 1]
jne 0x48f810
xor eax, eax
mov word [esi + ecx*2 + 0x6a6], ax
mov ecx, esi
call fcn.004237c0
mov edi, eax
call fcn.0047a580
mov dword [eax], edi
call fcn.0047a610
mov ecx, eax
call fcn.0046fbc0
test al, al
je 0x49113c
call fcn.0048cbd0
test al, al
je 0x49115a
call fcn.0047a670
mov ecx, eax
call fcn.00477a90
test al, al
je 0x491178
push str.tips
lea ecx, [ebp - 0x2c]
call fcn.00402fa0
push 0
push 0x5b7ae0
push 0x5b67e4
push 0
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.004270b0
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x10fc], eax
lea ecx, [ebp - 0x2c]
call fcn.00403070
mov ecx, dword [esi + 0x10fc]
push 0
mov eax, dword [ecx]
call dword [eax + 0x90]
sub esp, 0x20
mov dword [ebp - 0x10], 0x49af40
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57d55b
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004846b0
add esp, 0x18
lea ecx, [ebp - 0x70]
call fcn.004843c0
push str.titlebox
lea ecx, [ebp - 0x2c]
call fcn.00402fa0
lea eax, [ebp - 0x70]
mov ecx, esi
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.004270b0
mov ecx, eax
call fcn.00488ce0
lea ecx, [ebp - 0x2c]
call fcn.00403070
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x48f941
mov edx, dword [ecx]
lea eax, [ebp - 0x70]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x495e00
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57d55b
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004846b0
add esp, 0x18
lea ecx, [ebp - 0x70]
call fcn.004843c0
push str.btn_close
lea ecx, [ebp - 0x2c]
call fcn.00402fa0
lea eax, [ebp - 0x70]
mov ecx, esi
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.004270b0
mov ecx, eax
call fcn.0043a9a0
lea ecx, [ebp - 0x2c]
call fcn.00403070
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x48f9c9
mov edx, dword [ecx]
lea eax, [ebp - 0x70]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x495e00
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57d55b
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004846b0
add esp, 0x18
lea ecx, [ebp - 0x70]
call fcn.004843c0
push str.btn_menu
lea ecx, [ebp - 0x2c]
call fcn.00402fa0
lea eax, [ebp - 0x70]
mov ecx, esi
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.004270b0
mov ecx, eax
call fcn.0043a9a0
lea ecx, [ebp - 0x2c]
call fcn.00403070
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x48fa51
mov edx, dword [ecx]
lea eax, [ebp - 0x70]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x495e00
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57d55b
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004846b0
add esp, 0x18
lea ecx, [ebp - 0x70]
call fcn.004843c0
push str.btn_search
lea ecx, [ebp - 0x2c]
call fcn.00402fa0
lea eax, [ebp - 0x70]
mov ecx, esi
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.004270b0
mov ecx, eax
call fcn.0043a9a0
lea ecx, [ebp - 0x2c]
call fcn.00403070
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x48fad9
mov edx, dword [ecx]
lea eax, [ebp - 0x70]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
push 0x57f474
lea ecx, [ebp - 0x2c]
call fcn.00402fa0
push 0
push 0x5b7ae0
push 0x5b67e4
push 0
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.004270b0
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x10f8], eax
lea ecx, [ebp - 0x2c]
call fcn.00403070
call fcn.00481830
cmp byte [eax + 0x33], 0
je 0x48fbea
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movups xmm0, xmmword [ebp - 0x58]
mov dword [ebp - 0x94], 0x57f480
mov dword [ebp - 0x90], 0x57f484
pextrw eax, xmm0, 2
mov dword [ebp - 0x8c], 0x57f158
mov dword [ebp - 0x88], 0x57f15c
mov dword [ebp - 0x84], 0x57f160
movzx eax, ax
mov dword [ebp - 0x80], 0x57f164
mov dword [ebp - 0x7c], 0x57f168
movups xmmword [esi + 0x114a], xmm0
push dword [ebp + eax*4 - 0x94]
pextrw eax, xmm0, 3
movzx eax, ax
push eax
pextrw eax, xmm0, 1
movzx eax, ax
push eax
lea eax, [ebp - 0x2c]
push 0x57f488
push eax
call fcn.004014d0
movzx eax, word [ebp - 0x52]
push eax
movzx eax, word [ebp - 0x56]
push eax
movzx eax, word [ebp - 0x58]
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.0048b640
add esp, 0x24
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x48fbd1
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.00402350
lea ecx, [ebp - 0x90]
call fcn.00403070
jmp 0x48fbf7
push 0x592f34
lea ecx, [ebp - 0x2c]
call fcn.00402fa0
mov ecx, dword [esi + 0x10f8]
lea edx, [ebp - 0x2c]
push edx
mov eax, dword [ecx]
call dword [eax + 0x154]
lea ecx, [ebp - 0x2c]
call fcn.00403070
push str.btn_search
lea ecx, [ebp - 0x2c]
call fcn.00402fa0
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.004270b0
mov edi, eax
mov ebx, dword [edi]
call fcn.00481830
movzx ecx, byte [eax + 0x34]
push ecx
mov ecx, edi
call dword [ebx + 0x90]
lea ecx, [ebp - 0x2c]
call fcn.00403070
push str.btn_menu
lea ecx, [ebp - 0x2c]
call fcn.00402fa0
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.004270b0
mov edi, eax
mov ebx, dword [edi]
call fcn.00481830
movzx ecx, byte [eax + 0x35]
push ecx
mov ecx, edi
call dword [ebx + 0x90]
lea ecx, [ebp - 0x2c]
call fcn.00403070
push str.titlebox_inside
lea ecx, [ebp - 0x2c]
call fcn.00402fa0
push 0
push 0x5b69b0
push 0x5b67e4
push 0
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.004270b0
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x10e8], eax
lea ecx, [ebp - 0x2c]
call fcn.00403070
push str.major_group_box
lea ecx, [ebp - 0x2c]
call fcn.00402fa0
push 0
push 0x5b69b0
push 0x5b67e4
push 0
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.004270b0
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x10ec], eax
lea ecx, [ebp - 0x2c]
call fcn.00403070
push str.minor_group_line
lea ecx, [ebp - 0x2c]
call fcn.00402fa0
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.004270b0
mov dword [esi + 0x10f0], eax
lea ecx, [ebp - 0x2c]
call fcn.00403070
push str.list_major_group
lea ecx, [ebp - 0x2c]
call fcn.00402fa0
push 0
push 0x5b72e0
push 0x5b67e4
push 0
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.004270b0
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x1100], eax
lea ecx, [ebp - 0x2c]
call fcn.00403070
push str.list_minor_group
lea ecx, [ebp - 0x2c]
call fcn.00402fa0
push 0
push 0x5b72e0
push 0x5b67e4
push 0
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.004270b0
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x1104], eax
lea ecx, [ebp - 0x2c]
call fcn.00403070
push str.linkbox
lea ecx, [ebp - 0x2c]
call fcn.00402fa0
push 0
push 0x5b72e0
push 0x5b67e4
push 0
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.004270b0
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x1108], eax
lea ecx, [ebp - 0x2c]
call fcn.00403070
push str.linktabbox
lea ecx, [ebp - 0x2c]
call fcn.00402fa0
push 0
push 0x5b7220
push 0x5b67e4
push 0
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.004270b0
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x110c], eax
lea ecx, [ebp - 0x2c]
call fcn.00403070
push str.edit_todo
lea ecx, [ebp - 0x2c]
call fcn.00402fa0
push 0
push 0x5b4974
push 0x5b67e4
push 0
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.004270b0
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
mov dword [esi + 0x1110], eax
lea ecx, [ebp - 0x2c]
call fcn.00403070
sub esp, 0x20
mov dword [ebp - 0x10], 0x49cfb0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57d55b
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004846b0
add esp, 0x18
lea ecx, [ebp - 0x3c]
call fcn.004843c0
mov ecx, dword [esi + 0x1110]
lea eax, [ebp - 0x3c]
push eax
call fcn.00488c20
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x48feba
mov edx, dword [ecx]
lea eax, [ebp - 0x3c]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
call fcn.00481830
cmp byte [eax + 0x70], 0
je 0x48ff54
push str.tag_lnk_box
lea ecx, [ebp - 0x2c]
call fcn.00402fa0
push 0
push 0x5b69b0
push 0x5b67e4
push 0
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.004270b0
push eax
call sub.msvcrt.dll___RTDynamicCast
add esp, 0x14
lea ecx, [ebp - 0x2c]
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 + 0x1108]
call dword [eax + 0x160]
mov eax, dword [edi]
mov ecx, edi
push dword [esi + 0x10f0]
call dword [eax + 0x160]
mov eax, dword [edi]
mov ecx, edi
push dword [esi + 0x1104]
call dword [eax + 0x160]
call fcn.00481830
push 1
sub esp, 8
mov ecx, dword [eax + 0x5c]
mov eax, esp
push 0
push 0x5b7178
mov dword [eax], ecx
mov dword [eax + 4], 0x1e
mov ecx, dword [esi + 0x1100]
push 0x5b6c40
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.0043ca90
push 1
push 1
call fcn.00481830
mov ecx, dword [esi + 0x1104]
mov eax, dword [eax + 0x64]
push eax
call fcn.00429fa0
sub esp, 0x20
mov dword [ebp - 0x10], fcn.0049d0c0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57d55b
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004846b0
add esp, 0x18
lea ecx, [ebp - 0x3c]
call fcn.004843c0
mov ecx, dword [esi + 0x1100]
lea eax, [ebp - 0x3c]
push eax
call fcn.00446840
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x49001c
mov edx, dword [ecx]
lea eax, [ebp - 0x3c]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x49afc0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57d55b
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004846b0
add esp, 0x18
lea ecx, [ebp - 0x3c]
call fcn.004843c0
mov ecx, dword [esi + 0x1100]
lea eax, [ebp - 0x3c]
push eax
call fcn.00488ce0
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x490088
mov edx, dword [ecx]
lea eax, [ebp - 0x3c]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], fcn.0049de60
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57d55b
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004846b0
add esp, 0x18
lea ecx, [ebp - 0x3c]
call fcn.004843c0
mov ecx, dword [esi + 0x1104]
lea eax, [ebp - 0x3c]
push eax
call fcn.00446840
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x4900f4
mov edx, dword [ecx]
lea eax, [ebp - 0x3c]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x49b690
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57d55b
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004846b0
add esp, 0x18
lea ecx, [ebp - 0x3c]
call fcn.004843c0
mov ecx, dword [esi + 0x1104]
lea eax, [ebp - 0x3c]
push eax
call fcn.00488ce0
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x490160
mov edx, dword [ecx]
lea eax, [ebp - 0x3c]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x499210
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57d55b
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004846b0
add esp, 0x18
lea ecx, [ebp - 0x3c]
call fcn.004843c0
mov ecx, dword [esi + 0x1108]
lea eax, [ebp - 0x3c]
push eax
call fcn.00488ce0
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x4901cc
mov edx, dword [ecx]
lea eax, [ebp - 0x3c]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x4984e0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57d55b
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.004846b0
add esp, 0x18
lea ecx, [ebp - 0x3c]
call fcn.004843c0
mov ecx, dword [esi + 0x1108]
lea eax, [ebp - 0x3c]
push eax
call fcn.00488c20
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x490238
mov edx, dword [ecx]
lea eax, [ebp - 0x3c]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
cmp dword [esi + 0x1100], 0
je 0x4905a2
call fcn.0047a670
mov edi, dword [eax + 0x20]
mov dword [ebp - 8], edi
call fcn.00481830
mov ebx, dword [eax + 0x5c]
call fcn.00481830
cmp byte [eax + 0x60], 0
je 0x4902d0
push 0
lea eax, [ebp - 0x58]
mov ecx, esi
push eax
call fcn.00424b80
imul ebx, edi
mov ecx, dword [eax + 8]
sub ecx, dword [eax]
cmp ebx, ecx
jge 0x4902d0
push 0
lea eax, [ebp - 0x58]
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 + 0x1100]
push 0
push 0x5b7178
push 0x5b6c40
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.0043ca90
xor ebx, ebx
mov dword [ebp - 0x40], ebx
test edi, edi
jle 0x4905a2
mov dword [ebp - 0x14], esi
mov dword [ebp - 0xd4], 0x49b0b0
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x84], 0x498040
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x54], 0x498660
mov dword [ebp - 0x50], ebx
nop dword [eax]
push ebx
call fcn.0047a670
mov ecx, eax
call fcn.00476d80
push 0x43c
mov dword [ebp - 4], eax
call fcn.005313dc
add esp, 4
test eax, eax
je 0x49033e
push 1
mov ecx, eax
call fcn.0043fc40
mov edi, eax
jmp 0x490340
xor edi, edi
push ebx
lea eax, [ebp - 0x2c]
push str.major_d
push eax
call fcn.004014d0
add esp, 0xc
mov ecx, edi
push eax
call fcn.00429ee0
lea ecx, [ebp - 0x2c]
call fcn.00403070
push 0x13
xor eax, eax
mov dword [ebp - 0x1c], 0
push str.listitem_majorgroup
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], 7
mov word [ebp - 0x2c], ax
call fcn.00402e60
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.0042f750
lea ecx, [ebp - 0x2c]
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 + 0x1100]
mov eax, dword [ecx]
call dword [eax + 0x160]
movq xmm0, qword [ebp - 0xd4]
lea eax, [ebp - 0x14]
push 0x57d55b
push eax
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], 0
lea eax, [ebp - 0x34]
push eax
call fcn.004846b0
lea eax, [ebp - 0x34]
push eax
call fcn.00484c80
mov ecx, dword [ebp - 0x30]
add esp, 0x1c
mov ebx, eax
mov dword [ebp - 0xd8], ebx
test ecx, ecx
je 0x490415
or edx, 0xffffffff
lock xadd dword [ecx + 8], edx
jne 0x490415
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0xfc]
mov ecx, edi
push eax
call fcn.00488ce0
test ebx, ebx
je 0x49043d
mov edx, dword [ebx]
lea eax, [ebp - 0xfc]
cmp ebx, eax
mov ecx, ebx
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
movq xmm0, qword [ebp - 0x84]
lea eax, [ebp - 0x44]
push 0x57d55b
push eax
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], 0
lea eax, [ebp - 0x34]
push eax
call fcn.004846b0
lea eax, [ebp - 0x34]
push eax
call fcn.00484c80
mov ecx, dword [ebp - 0x30]
add esp, 0x1c
mov ebx, eax
mov dword [ebp - 0xd8], ebx
test ecx, ecx
je 0x490491
or edx, 0xffffffff
lock xadd dword [ecx + 8], edx
jne 0x490491
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0xfc]
mov ecx, edi
push eax
call fcn.00488d40
test ebx, ebx
je 0x4904b9
mov edx, dword [ebx]
lea eax, [ebp - 0xfc]
cmp ebx, eax
mov ecx, ebx
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
movq xmm0, qword [ebp - 0x54]
lea eax, [ebp - 0x74]
push 0x57d55b
push eax
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], 0
lea eax, [ebp - 0x34]
push eax
call fcn.004846b0
lea eax, [ebp - 0x34]
push eax
call fcn.00484c80
mov ecx, dword [ebp - 0x30]
add esp, 0x1c
mov ebx, eax
mov dword [ebp - 0xd8], ebx
test ecx, ecx
je 0x49050a
or edx, 0xffffffff
lock xadd dword [ecx + 8], edx
jne 0x49050a
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0xfc]
mov ecx, edi
push eax
call fcn.00488c20
test ebx, ebx
je 0x490532
mov edx, dword [ebx]
lea eax, [ebp - 0xfc]
cmp ebx, eax
mov ecx, ebx
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov ebx, dword [ebp - 0x40]
mov edi, dword [ebp - 8]
inc ebx
mov dword [ebp - 0x40], ebx
cmp ebx, edi
jl 0x490310
test edi, edi
jle 0x4905a2
mov dword [esi + 0x1544], 0
call fcn.00481830
cmp dword [eax + 0x40], 0
jl 0x49058b
call fcn.00481830
cmp dword [eax + 0x40], edi
jge 0x49058b
mov edi, dword [esi + 0x1100]
push 1
push 0
mov ebx, dword [edi + 0x560]
call fcn.00481830
lea ecx, [edi + 0x560]
mov eax, dword [eax + 0x40]
push eax
call dword [ebx + 0xc]
jmp 0x4905a2
mov ecx, dword [esi + 0x1100]
add ecx, 0x560
push 1
push 0
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
call fcn.00481830
mov eax, dword [eax + 0x48]
test eax, eax
je 0x490646
movzx edi, al
shr eax, 8
push str.LucyHotKey
movzx ebx, al
call dword [sym.imp.KERNEL32.dll_GlobalAddAtomW]
movzx eax, ax
sub eax, 0xc000
mov dword [esi + 0x1550], eax
je 0x490646
test edi, edi
je 0x490646
test ebx, ebx
je 0x490646
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 0x490646
push edi
lea eax, [ebp - 0x2c]
push ebx
push eax
call fcn.0047f4f0
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
cmovae eax, dword [ebp - 0x2c]
push eax
lea eax, [ebp - 0x60]
push 0x57f5e4
push eax
call fcn.004014d0
add esp, 0x18
cmp dword [eax + 0x14], 8
jb 0x490623
mov eax, dword [eax]
push 0x40010
push 0x57f3bc
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [ebp - 0x60]
call fcn.00403070
lea ecx, [ebp - 0x2c]
call fcn.00403070
call fcn.00481830
mov eax, dword [eax + 0xc4]
test eax, eax
je 0x4906ed
movzx edi, al
shr eax, 8
push str.LucySearchHotKey
movzx ebx, al
call dword [sym.imp.KERNEL32.dll_GlobalAddAtomW]
movzx eax, ax
sub eax, 0xc000
mov dword [esi + 0x1554], eax
je 0x4906ed
test edi, edi
je 0x4906ed
test ebx, ebx
je 0x4906ed
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 0x4906ed
push edi
lea eax, [ebp - 0x2c]
push ebx
push eax
call fcn.0047f4f0
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
cmovae eax, dword [ebp - 0x2c]
push eax
lea eax, [ebp - 0x60]
push 0x57f5e4
push eax
call fcn.004014d0
add esp, 0x18
cmp dword [eax + 0x14], 8
jb 0x4906ca
mov eax, dword [eax]
push 0x40030
push str.Lucy__
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [ebp - 0x60]
call fcn.00403070
lea ecx, [ebp - 0x2c]
call fcn.00403070
mov edi, dword [esi + 0x10e8]
mov ebx, dword [edi]
call fcn.00481830
mov ecx, edi
movzx eax, byte [eax + 0x19]
push eax
call dword [ebx + 0x90]
mov edi, dword [esi + 0x10ec]
mov ebx, dword [edi]
call fcn.00481830
mov ecx, edi
movzx eax, byte [eax + 0x1a]
push eax
call dword [ebx + 0x90]
mov edi, dword [esi + 0x1104]
mov ebx, dword [edi]
call fcn.00481830
mov ecx, edi
movzx eax, byte [eax + 0x1b]
push eax
call dword [ebx + 0x90]
mov edi, dword [esi + 0x10f0]
mov ebx, dword [edi]
call fcn.00481830
mov ecx, edi
movzx eax, byte [eax + 0x1b]
push eax
call dword [ebx + 0x90]
push 0x24
call fcn.005313dc
mov edi, eax
add esp, 4
test edi, edi
je 0x49077a
push 1
mov ecx, esi
call fcn.004237c0
push eax
mov ecx, edi
call fcn.0052f990
mov ecx, eax
jmp 0x49077c
xor ecx, ecx
lea ebx, [esi + 0x111c]
lea eax, [ebp - 0xc8]
cmp ebx, eax
je 0x49079d
mov edx, dword [ebx]
mov dword [ebx], ecx
test edx, edx
je 0x4907ae
mov eax, dword [edx]
mov ecx, dword [eax + 4]
add ecx, edx
jmp 0x4907a8
test ecx, ecx
je 0x4907ae
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 - 0x1c], 0
push str.menumenu.xml
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], 7
mov word [ebp - 0x2c], ax
call fcn.00402e60
mov edi, dword [ebx]
lea eax, [ebp - 0x2c]
push eax
mov ecx, esi
call fcn.004237c0
push eax
mov ecx, edi
call fcn.005304f0
lea ecx, [ebp - 0x2c]
call fcn.00403070
push 0xc
xor eax, eax
mov dword [ebp - 0x1c], 0
push str.menu_sysfunc
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], 7
mov word [ebp - 0x2c], ax
call fcn.00402e60
mov ecx, dword [ebx]
lea eax, [ebp - 0x2c]
push eax
call fcn.0052fe80
mov edi, eax
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], edi
call fcn.00403070
test edi, edi
je 0x490be5
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x170]
xor edi, edi
xor eax, eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x14], eax
push 0x478
call fcn.005313dc
add esp, 4
test eax, eax
je 0x490863
push 1
mov ecx, eax
call fcn.0052f8f0
mov ebx, eax
jmp 0x490865
xor ebx, ebx
push 0xc
xor eax, eax
mov dword [ebp - 0x50], 0
push str.menu_element
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x4c], 7
mov word [ebp - 0x60], ax
call fcn.00402e60
lea eax, [ebp - 0x60]
mov ecx, ebx
push eax
call fcn.0042f750
mov edx, dword [ebp - 0x4c]
cmp edx, 8
jb 0x4908cd
mov ecx, dword [ebp - 0x60]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4908c3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x491196
push edx
push ecx
call fcn.0053140c
add esp, 8
push 7
xor eax, eax
mov dword [ebx + 0x64], edi
push str.SysFunc
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 7
mov word [ebp - 0x60], ax
call fcn.00402e60
lea eax, [ebp - 0x60]
mov ecx, ebx
push eax
call fcn.00429ee0
mov edx, dword [ebp - 0x4c]
cmp edx, 8
jb 0x490938
mov ecx, dword [ebp - 0x60]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x49092e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x491196
push edx
push ecx
call fcn.0053140c
add esp, 8
push 0x3c0
call fcn.005313dc
mov edi, eax
add esp, 4
test edi, edi
je 0x49099d
or dword [ebp - 0x48], 1
mov ecx, edi
mov dword [edi + 4], 0x598ff4
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.00455c10
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 0x49099f
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 + 0x5b2438]
mov dword [ebp - 0x74], eax
test eax, eax
je 0x490a04
mov ecx, eax
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4909c3
sub ecx, dword [ebp - 8]
sar ecx, 1
je 0x490a04
mov edx, dword [ebp - 0x74]
xor eax, eax
mov ecx, edx
mov word [ebp - 0x60], ax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 7
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4909f4
sub ecx, dword [ebp - 8]
jmp 0x490a34
mov edx, dword [edx + 0x5b243c]
xor eax, eax
mov ecx, edx
mov word [ebp - 0x60], ax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 7
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x490a26
sub ecx, dword [ebp - 8]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x60]
call fcn.00402e60
push 1
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.0047a610
mov ecx, eax
call fcn.0046f410
push eax
mov ecx, edi
call fcn.0042b5b0
lea ecx, [ebp - 0x90]
call fcn.00403070
lea ecx, [ebp - 0x60]
call fcn.00403070
push 1
mov ecx, edi
call fcn.0042a3d0
mov eax, dword [ebx]
mov ecx, ebx
push edi
call dword [eax + 0x160]
push 0x3c0
call fcn.005313dc
add esp, 4
test eax, eax
je 0x490aa6
push 1
mov ecx, eax
call fcn.00455c10
mov edi, eax
jmp 0x490aa8
xor edi, edi
mov eax, dword [ebx]
mov ecx, ebx
push edi
call dword [eax + 0x160]
push 9
xor eax, eax
mov dword [ebp - 0x50], 0
push str.menu_text
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x4c], 7
mov word [ebp - 0x60], ax
call fcn.00402e60
lea eax, [ebp - 0x60]
mov ecx, edi
push eax
call fcn.0042f750
mov edx, dword [ebp - 0x4c]
cmp edx, 8
jb 0x490b1b
mov ecx, dword [ebp - 0x60]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x490b11
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x491196
push edx
push ecx
call fcn.0053140c
add esp, 8
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 7
mov edx, dword [eax + 0x5b2434]
mov ecx, edx
xor eax, eax
mov word [ebp - 0x60], ax
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x490b40
sub ecx, dword [ebp - 8]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x60]
call fcn.00402e60
mov eax, dword [edi]
lea ecx, [ebp - 0x60]
push ecx
mov ecx, edi
call dword [eax + 0x154]
mov edx, dword [ebp - 0x4c]
cmp edx, 8
jb 0x490ba2
mov ecx, dword [ebp - 0x60]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x490b98
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x491196
push edx
push ecx
call fcn.0053140c
add esp, 8
mov edx, dword [edi]
mov ecx, edi
movaps xmm0, xmmword [0x580a30]
push 1
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0xe0]
mov ecx, dword [ebp - 4]
push ebx
mov eax, dword [ecx]
call dword [eax + 0x160]
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x40]
add ebx, 0x1c
inc edi
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x40], edi
cmp ebx, 0x3d4
jl 0x490845
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
call edi
push 1
mov dword [ebp - 0x48], eax
call edi
mov dword [ebp - 0x40], eax
call fcn.00481830
mov edi, dword [eax + 0x54]
call fcn.00481830
xor ebx, ebx
test edi, edi
cmovns ebx, edi
xor edi, edi
mov ecx, dword [eax + 0x58]
test ecx, ecx
cmovns edi, ecx
call fcn.00481830
mov eax, dword [eax + 0x4c]
add eax, ebx
cmp eax, dword [ebp - 0x48]
jle 0x490c31
call fcn.00481830
mov ebx, dword [ebp - 0x48]
sub ebx, dword [eax + 0x4c]
call fcn.00481830
mov eax, dword [eax + 0x50]
add eax, edi
cmp eax, dword [ebp - 0x40]
jle 0x490c4b
call fcn.00481830
mov edi, dword [ebp - 0x40]
sub edi, dword [eax + 0x50]
push 0
call fcn.00481830
mov eax, dword [eax + 0x50]
push eax
call fcn.00481830
mov ecx, esi
mov eax, dword [eax + 0x4c]
push eax
push edi
push ebx
call fcn.004237c0
push eax
call dword [sym.imp.USER32.dll_MoveWindow]
call fcn.00481830
mov edi, dword [sym.imp.USER32.dll_SetTimer]
cmp byte [eax + 0x20], 0
je 0x490cef
lea eax, [ebp - 0x58]
mov ecx, esi
push eax
call fcn.004237c0
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x58]
mov ecx, esi
push eax
push 0
call fcn.0048b590
call fcn.00481830
cmp byte [eax + 0x1f], 0
jne 0x490cc7
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 0x48cba0
push 1
push 5
call dword [sym.imp.WINMM.dll_timeSetEvent]
mov dword [esi + 0x27c], eax
call fcn.00481830
cmp byte [eax + 0x33], 0
je 0x490d0d
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 + 0x1558], eax
call sub.IMM32.dll_ImmSetOpenStatus
push dword [esi + 0x1558]
push dword [esi + 0x10]
call sub.IMM32.dll_ImmAssociateContext
lea eax, [ebp - 0xc4]
push eax
call fcn.00450ba0
add esp, 4
lea eax, [ebp - 0xc4]
cmp dword [ebp - 0xb0], 8
cmovae eax, dword [ebp - 0xc4]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push str.notify.ico
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0xac]
push eax
call fcn.0040bd70
add esp, 0xc
mov dword [ebp - 0x48], 0
cmp dword [ebp - 0x98], 8
lea eax, [ebp - 0x48]
lea edi, [ebp - 0xac]
cmovae edi, dword [ebp - 0xac]
push eax
call dword [sym.imp.KERNEL32.dll_Wow64DisableWow64FsRedirection]
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push dword [ebp - 0x48]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_Wow64RevertWow64FsRedirection]
cmp edi, 0xffffffff
je 0x490de3
test edi, 0x10
jne 0x490de3
cmp dword [ebp - 0x98], 8
lea eax, [ebp - 0xac]
push 0x10
cmovae eax, dword [ebp - 0xac]
push 0x10
push 0x10
push 1
push eax
push 0
call dword [sym.imp.USER32.dll_LoadImageW]
test eax, eax
jne 0x490df4
push 0x80
push dword [esi + 0x115c]
call dword [sym.imp.USER32.dll_LoadIconW]
mov dword [esi + 0x1175], eax
lea edi, [esi + 0x1161]
mov eax, dword [esi + 0x10]
mov dword [esi + 0x1165], eax
mov eax, 0x5b281c
mov dword [edi], 0x3bc
cmp dword [0x5b2830], 8
cmovae eax, dword [0x5b281c]
push eax
lea eax, [esi + 0x1179]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov dword [esi + 0x1171], 0x464
mov dword [esi + 0x116d], 7
mov byte [esi + 0x1160], 0
call fcn.00481830
cmp byte [eax + 0x32], 0
jne 0x490e66
push edi
push 0
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
mov byte [esi + 0x1160], 1
push 0x2ac
call fcn.005313dc
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x490fba
mov dword [ebx + 8], 0x57e35c
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.004389a0
mov eax, dword [ebx + 8]
lea edi, [ebx + 0x26c]
mov dword [ebx], vtable.CSearchWnd.0
mov dword [ebx + method.CHideWnd.virtual_60], vtable.CSearchWnd.1.0
push 8
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
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
call fcn.005313dc
mov dword [edi], eax
push 8
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [edi]
mov dword [eax], edi
lea edi, [ebx + 0x280]
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
call fcn.005313dc
mov dword [edi], eax
lea ecx, [ebx + 0x298]
add esp, 8
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [edi]
mov dword [eax], edi
mov dword [ebx + 0x298], 0
mov dword [ebx + 0x29c], 0
call fcn.00471ac0
mov dword [ebx + 0x298], eax
lea eax, [ebx + 0x294]
push eax
push 0x578adc
push 1
call dword [sym.imp.SHELL32.dll_SHGetImageList]
jmp 0x490fbc
xor ebx, ebx
lea ecx, [ebp - 0x58]
mov dword [esi + 0x1124], ebx
cmp dword [0x5b2818], 8
mov eax, 0x5b2804
push ecx
cmovae eax, dword [0x5b2804]
mov edi, ebx
push 0
push 0x80
xorps xmm0, xmm0
push 0x80000000
movups xmmword [ebp - 0x58], 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.00481830
cmp dword [eax + 0xbc], 0xffffffff
jne 0x491026
call fcn.00481830
cmp dword [eax + 0xc0], 0xffffffff
jne 0x491026
mov ecx, dword [esi + 0x1124]
call fcn.00423f80
jmp 0x491058
push 5
push 0
push 0
call fcn.00481830
mov eax, dword [eax + 0xc0]
push eax
call fcn.00481830
mov ecx, dword [esi + 0x1124]
mov eax, dword [eax + 0xbc]
push eax
push 0
call fcn.004237c0
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [0x5b8804]
test eax, eax
je 0x491072
push eax
call dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
mov dword [0x5b8804], 0
mov ecx, dword [esi + 0x1124]
call fcn.004237c0
push 0
push dword [0x5b85fc]
mov dword [0x5b8808], eax
push 0x494b10
push 0xe
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
mov edx, dword [ebp - 0x98]
mov dword [0x5b8804], eax
cmp edx, 8
jb 0x4910dc
mov ecx, dword [ebp - 0xac]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4910d2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x491196
push edx
push ecx
call fcn.0053140c
add esp, 8
mov edx, dword [ebp - 0xb0]
xor eax, eax
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 7
mov word [ebp - 0xac], ax
cmp edx, 8
jb 0x491135
mov ecx, dword [ebp - 0xc4]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x49112b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49119b
push edx
push ecx
call fcn.0053140c
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x40010
push 0x57f3bc
push 0x57f3d0
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call fcn.0056c1e0
push 0x40010
push 0x57f3bc
push 0x57f3e4
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call fcn.0056c1e0
push 0x40010
push 0x57f3bc
push 0x57f3fc
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call fcn.0056c1e0
call fcn.0055d660
call fcn.0055d660
int3