Function at 0x490740
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
push esi
push edi
mov esi, ecx
mov dword [ebp - 0x48], 0
call fcn.0047a9c0
mov ecx, esi
mov eax, dword [eax + 0xd4]
push eax
call fcn.004278c0
cmp dword [0x5b4830], 8
mov eax, 0x5b481c
mov ecx, esi
cmovae eax, dword [0x5b481c]
push eax
call fcn.004237c0
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
lea eax, [esi + 0x113c]
push eax
push 0x57aadc
push 1
call dword [sym.imp.SHELL32.dll_SHGetImageList]
xor ebx, ebx
mov dword [ebp - 0x44], 0
push ebx
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov edi, eax
cmp edi, 0xffffffff
je 0x49084b
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 0x490821
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 0x49081b
lea eax, [ebp - 0x328]
push eax
push edi
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x4907f0
jmp 0x490821
mov ebx, dword [ebp - 0x320]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x49084b
push ebx
push 1
push 0x400
call dword [sym.imp.KERNEL32.dll_OpenProcess]
cmp eax, 0xffffffff
je 0x49084b
push eax
call fcn.00495a30
add esp, 4
mov dword [ebp - 0x44], 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 0x4909a3
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 0x49088f
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 0x4909a3
cmp dword [ebp - 0x44], 0
jne 0x4909a3
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 0x490928
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 0x490928
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 - 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 0x490939
push eax
call ebx
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x49094e
push eax
call dword [sym.imp.ADVAPI32.dll_FreeSid]
mov dword [ebp - 0x14], 0
test edi, edi
jne 0x4909a3
push 1
mov ecx, esi
call fcn.004237c0
push eax
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
push 0x57aa28
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x4909d7
push str.ChangeWindowMessageFilter
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
je 0x49099a
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 0x4909d7
mov ebx, dword [esi + 0x10]
lea edi, [esi + 0x258]
push ebx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4909cd
push edi
push ebx
mov dword [edi + 4], ebx
call dword [sym.imp.ole32.dll_RegisterDragDrop]
test eax, eax
jne 0x4909cd
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 0x490a30
xor eax, eax
mov word [esi + ecx*2 + 0x6a6], ax
mov ecx, esi
call fcn.004237c0
mov edi, eax
call fcn.0047a7f0
mov dword [eax], edi
call fcn.0047a880
mov ecx, eax
call fcn.0046fe00
test al, al
je 0x4923fb
call fcn.0048d6d0
test al, al
je 0x492419
call fcn.0047a8e0
mov ecx, eax
call fcn.00477cd0
test al, al
je 0x492437
push str.tips
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5b9710
push 0x5b880c
push 0
lea eax, [ebp - 0x30]
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 - 0x30]
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], 0x49c680
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57f7e1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00484f00
add esp, 0x18
lea ecx, [ebp - 0x70]
call fcn.00484c10
push str.titlebox
lea ecx, [ebp - 0x30]
call fcn.00402fa0
lea eax, [ebp - 0x70]
mov ecx, esi
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.004270b0
mov ecx, eax
call fcn.00489650
lea ecx, [ebp - 0x30]
call fcn.00403070
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x490b61
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], 0x4973f0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57f7e1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00484f00
add esp, 0x18
lea ecx, [ebp - 0x70]
call fcn.00484c10
push str.btn_close
lea ecx, [ebp - 0x30]
call fcn.00402fa0
lea eax, [ebp - 0x70]
mov ecx, esi
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.004270b0
mov ecx, eax
call fcn.0043a7e0
lea ecx, [ebp - 0x30]
call fcn.00403070
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x490be9
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], 0x4973f0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57f7e1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00484f00
add esp, 0x18
lea ecx, [ebp - 0x70]
call fcn.00484c10
push str.btn_menu
lea ecx, [ebp - 0x30]
call fcn.00402fa0
lea eax, [ebp - 0x70]
mov ecx, esi
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.004270b0
mov ecx, eax
call fcn.0043a7e0
lea ecx, [ebp - 0x30]
call fcn.00403070
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x490c71
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], 0x4973f0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57f7e1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00484f00
add esp, 0x18
lea ecx, [ebp - 0x70]
call fcn.00484c10
push str.btn_search
lea ecx, [ebp - 0x30]
call fcn.00402fa0
lea eax, [ebp - 0x70]
mov ecx, esi
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.004270b0
mov ecx, eax
call fcn.0043a7e0
lea ecx, [ebp - 0x30]
call fcn.00403070
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x490cf9
mov edx, dword [ecx]
lea eax, [ebp - 0x70]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
push 0x581844
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5b9710
push 0x5b880c
push 0
lea eax, [ebp - 0x30]
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 - 0x30]
call fcn.00403070
call fcn.0047a9c0
cmp byte [eax + 0x37], 0
je 0x490e0a
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movups xmm0, xmmword [ebp - 0x58]
mov dword [ebp - 0x94], 0x581850
mov dword [ebp - 0x90], 0x581854
pextrw eax, xmm0, 2
mov dword [ebp - 0x8c], 0x581528
mov dword [ebp - 0x88], 0x58152c
mov dword [ebp - 0x84], 0x581530
movzx eax, ax
mov dword [ebp - 0x80], 0x581534
mov dword [ebp - 0x7c], 0x581538
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 - 0x30]
push 0x581858
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.0048bfc0
add esp, 0x24
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x490df1
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
lea ecx, [ebp - 0x30]
call fcn.00402350
lea ecx, [ebp - 0x90]
call fcn.00403070
jmp 0x490e17
push 0x595304
lea ecx, [ebp - 0x30]
call fcn.00402fa0
mov ecx, dword [esi + 0x10f8]
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.004270b0
mov edi, eax
mov ebx, dword [edi]
call fcn.0047a9c0
movzx ecx, byte [eax + 0x38]
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.004270b0
mov edi, eax
mov ebx, dword [edi]
call fcn.0047a9c0
movzx ecx, byte [eax + 0x39]
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 0x5b89d8
push 0x5b880c
push 0
lea eax, [ebp - 0x30]
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 - 0x30]
call fcn.00403070
push str.major_group_box
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5b89d8
push 0x5b880c
push 0
lea eax, [ebp - 0x30]
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 - 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.004270b0
mov dword [esi + 0x10f0], eax
lea ecx, [ebp - 0x30]
call fcn.00403070
push str.list_major_group
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5b9308
push 0x5b880c
push 0
lea eax, [ebp - 0x30]
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 - 0x30]
call fcn.00403070
push str.list_minor_group
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5b9308
push 0x5b880c
push 0
lea eax, [ebp - 0x30]
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 - 0x30]
call fcn.00403070
push str.linkbox
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5b9308
push 0x5b880c
push 0
lea eax, [ebp - 0x30]
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 - 0x30]
call fcn.00403070
push str.linktabbox
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5b9248
push 0x5b880c
push 0
lea eax, [ebp - 0x30]
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 - 0x30]
call fcn.00403070
push str.edit_todo
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5b69b0
push 0x5b880c
push 0
lea eax, [ebp - 0x30]
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 - 0x30]
call fcn.00403070
sub esp, 0x20
mov dword [ebp - 0x10], 0x49e6f0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57f7e1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00484f00
add esp, 0x18
lea ecx, [ebp - 0x40]
call fcn.00484c10
mov ecx, dword [esi + 0x1110]
lea eax, [ebp - 0x40]
push eax
call fcn.00489590
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x4910da
mov edx, dword [ecx]
lea eax, [ebp - 0x40]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
call fcn.0047a9c0
cmp byte [eax + 0x74], 0
je 0x491174
push str.tag_lnk_box
lea ecx, [ebp - 0x30]
call fcn.00402fa0
push 0
push 0x5b89d8
push 0x5b880c
push 0
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.004270b0
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 + 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.0047a9c0
push 1
sub esp, 8
mov ecx, dword [eax + 0x60]
mov eax, esp
push 0
push 0x5b91a0
mov dword [eax], ecx
mov dword [eax + 4], 0x1e
mov ecx, dword [esi + 0x1100]
push 0x5b8c68
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.0043c8e0
push 1
push 1
call fcn.0047a9c0
mov ecx, dword [esi + 0x1104]
mov eax, dword [eax + 0x68]
push eax
call fcn.00429e60
sub esp, 0x20
mov dword [ebp - 0x10], fcn.0049e860
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57f7e1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00484f00
add esp, 0x18
lea ecx, [ebp - 0x40]
call fcn.00484c10
mov ecx, dword [esi + 0x1100]
lea eax, [ebp - 0x40]
push eax
call fcn.00446690
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x49123c
mov edx, dword [ecx]
lea eax, [ebp - 0x40]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x49c700
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57f7e1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00484f00
add esp, 0x18
lea ecx, [ebp - 0x40]
call fcn.00484c10
mov ecx, dword [esi + 0x1100]
lea eax, [ebp - 0x40]
push eax
call fcn.00489650
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x4912a8
mov edx, dword [ecx]
lea eax, [ebp - 0x40]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], fcn.0049f630
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57f7e1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00484f00
add esp, 0x18
lea ecx, [ebp - 0x40]
call fcn.00484c10
mov ecx, dword [esi + 0x1104]
lea eax, [ebp - 0x40]
push eax
call fcn.00446690
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x491314
mov edx, dword [ecx]
lea eax, [ebp - 0x40]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x49cdd0
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57f7e1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00484f00
add esp, 0x18
lea ecx, [ebp - 0x40]
call fcn.00484c10
mov ecx, dword [esi + 0x1104]
lea eax, [ebp - 0x40]
push eax
call fcn.00489650
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x491380
mov edx, dword [ecx]
lea eax, [ebp - 0x40]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x49a950
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57f7e1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00484f00
add esp, 0x18
lea ecx, [ebp - 0x40]
call fcn.00484c10
mov ecx, dword [esi + 0x1108]
lea eax, [ebp - 0x40]
push eax
call fcn.00489650
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x4913ec
mov edx, dword [ecx]
lea eax, [ebp - 0x40]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 0x20
mov dword [ebp - 0x10], 0x499c20
mov ecx, esp
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
lea eax, [ebp - 4]
mov dword [ebp - 4], esi
push 0x57f7e1
push eax
sub esp, 0xc
mov eax, esp
push ecx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.00484f00
add esp, 0x18
lea ecx, [ebp - 0x40]
call fcn.00484c10
mov ecx, dword [esi + 0x1108]
lea eax, [ebp - 0x40]
push eax
call fcn.00489590
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x491458
mov edx, dword [ecx]
lea eax, [ebp - 0x40]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
cmp dword [esi + 0x1100], 0
je 0x4917c2
call fcn.0047a8e0
mov edi, dword [eax + 0x20]
mov dword [ebp - 8], edi
call fcn.0047a9c0
mov ebx, dword [eax + 0x60]
call fcn.0047a9c0
cmp byte [eax + 0x64], 0
je 0x4914f0
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 0x4914f0
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 0x5b91a0
push 0x5b8c68
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.0043c8e0
xor ebx, ebx
mov dword [ebp - 0x44], ebx
test edi, edi
jle 0x4917c2
mov dword [ebp - 0x14], esi
mov dword [ebp - 0xd4], 0x49c7f0
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x84], 0x499780
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x54], 0x499da0
mov dword [ebp - 0x50], ebx
nop dword [eax]
push ebx
call fcn.0047a8e0
mov ecx, eax
call fcn.00476fc0
push 0x43c
mov dword [ebp - 4], eax
call fcn.00532e0c
add esp, 4
test eax, eax
je 0x49155e
push 1
mov ecx, eax
call fcn.0043fa90
mov edi, eax
jmp 0x491560
xor edi, edi
push ebx
lea eax, [ebp - 0x30]
push str.major_d
push eax
call fcn.004014d0
add esp, 0xc
mov ecx, edi
push eax
call fcn.00429da0
lea ecx, [ebp - 0x30]
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.0042f600
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 + 0x1100]
mov eax, dword [ecx]
call dword [eax + 0x160]
movq xmm0, qword [ebp - 0xd4]
lea eax, [ebp - 0x14]
push 0x57f7e1
push eax
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], 0
lea eax, [ebp - 0x38]
push eax
call fcn.00484f00
lea eax, [ebp - 0x38]
push eax
call fcn.004854d0
mov ecx, dword [ebp - 0x34]
add esp, 0x1c
mov ebx, eax
mov dword [ebp - 0xd8], ebx
test ecx, ecx
je 0x491635
or edx, 0xffffffff
lock xadd dword [ecx + 8], edx
jne 0x491635
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0xfc]
mov ecx, edi
push eax
call fcn.00489650
test ebx, ebx
je 0x49165d
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 - 0x18]
push 0x57f7e1
push eax
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], 0
lea eax, [ebp - 0x38]
push eax
call fcn.00484f00
lea eax, [ebp - 0x38]
push eax
call fcn.004854d0
mov ecx, dword [ebp - 0x34]
add esp, 0x1c
mov ebx, eax
mov dword [ebp - 0xd8], ebx
test ecx, ecx
je 0x4916b1
or edx, 0xffffffff
lock xadd dword [ecx + 8], edx
jne 0x4916b1
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0xfc]
mov ecx, edi
push eax
call fcn.004896b0
test ebx, ebx
je 0x4916d9
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 0x57f7e1
push eax
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], 0
lea eax, [ebp - 0x38]
push eax
call fcn.00484f00
lea eax, [ebp - 0x38]
push eax
call fcn.004854d0
mov ecx, dword [ebp - 0x34]
add esp, 0x1c
mov ebx, eax
mov dword [ebp - 0xd8], ebx
test ecx, ecx
je 0x49172a
or edx, 0xffffffff
lock xadd dword [ecx + 8], edx
jne 0x49172a
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0xfc]
mov ecx, edi
push eax
call fcn.00489590
test ebx, ebx
je 0x491752
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 - 0x44]
mov edi, dword [ebp - 8]
inc ebx
mov dword [ebp - 0x44], ebx
cmp ebx, edi
jl 0x491530
test edi, edi
jle 0x4917c2
mov dword [esi + 0x1544], 0
call fcn.0047a9c0
cmp dword [eax + 0x44], 0
jl 0x4917ab
call fcn.0047a9c0
cmp dword [eax + 0x44], edi
jge 0x4917ab
mov edi, dword [esi + 0x1100]
push 1
push 0
mov ebx, dword [edi + 0x560]
call fcn.0047a9c0
lea ecx, [edi + 0x560]
mov eax, dword [eax + 0x44]
push eax
call dword [ebx + 0xc]
jmp 0x4917c2
mov ecx, dword [esi + 0x1100]
add ecx, 0x560
push 1
push 0
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
call fcn.0047a9c0
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x49188a
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 + 0x1550], eax
je 0x49188a
test edi, edi
je 0x49188a
test ebx, ebx
je 0x49188a
cmp edi, 5
je 0x491814
cmp edi, 6
jne 0x491822
call fcn.0047a9c0
mov byte [eax], 1
mov eax, dword [esi + 0x1550]
push edi
push ebx
push eax
mov ecx, esi
call fcn.004237c0
push eax
call dword [sym.imp.USER32.dll_RegisterHotKey]
test eax, eax
jne 0x49188a
push edi
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.0047f980
cmp dword [ebp - 0x1c], 8
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x60]
push 0x5819b4
push eax
call fcn.004014d0
add esp, 0x18
cmp dword [eax + 0x14], 8
jb 0x491867
mov eax, dword [eax]
push 0x40010
push 0x58178c
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [ebp - 0x60]
call fcn.00403070
lea ecx, [ebp - 0x30]
call fcn.00403070
call fcn.0047a9c0
mov eax, dword [eax + 0xc8]
test eax, eax
je 0x491955
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 + 0x1554], eax
je 0x491955
test edi, edi
je 0x491955
test ebx, ebx
je 0x491955
cmp edi, 5
je 0x4918df
cmp edi, 6
jne 0x4918ed
call fcn.0047a9c0
mov byte [eax], 1
mov eax, dword [esi + 0x1554]
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 0x491955
push edi
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.0047f980
cmp dword [ebp - 0x1c], 8
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x60]
push 0x5819b4
push eax
call fcn.004014d0
add esp, 0x18
cmp dword [eax + 0x14], 8
jb 0x491932
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 - 0x30]
call fcn.00403070
mov edi, dword [esi + 0x10e8]
mov ebx, dword [edi]
call fcn.0047a9c0
mov ecx, edi
movzx eax, byte [eax + 0x1d]
push eax
call dword [ebx + 0x90]
mov edi, dword [esi + 0x10ec]
mov ebx, dword [edi]
call fcn.0047a9c0
mov ecx, edi
movzx eax, byte [eax + 0x1e]
push eax
call dword [ebx + 0x90]
mov edi, dword [esi + 0x1104]
mov ebx, dword [edi]
call fcn.0047a9c0
mov ecx, edi
movzx eax, byte [eax + 0x1f]
push eax
call dword [ebx + 0x90]
mov edi, dword [esi + 0x10f0]
mov ebx, dword [edi]
call fcn.0047a9c0
mov ecx, edi
movzx eax, byte [eax + 0x1f]
push eax
call dword [ebx + 0x90]
push 0x24
call fcn.00532e0c
mov edi, eax
add esp, 4
test edi, edi
je 0x4919e2
push 1
mov ecx, esi
call fcn.004237c0
push eax
mov ecx, edi
call fcn.005312c0
mov ecx, eax
jmp 0x4919e4
xor ecx, ecx
lea ebx, [esi + 0x111c]
lea eax, [ebp - 0xc8]
cmp ebx, eax
je 0x491a05
mov edx, dword [ebx]
mov dword [ebx], ecx
test edx, edx
je 0x491a16
mov eax, dword [edx]
mov ecx, dword [eax + 4]
add ecx, edx
jmp 0x491a10
test ecx, ecx
je 0x491a16
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.00531e50
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.00531890
mov edi, eax
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], edi
call fcn.00403070
test edi, edi
je 0x491ec2
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]
push 0x478
call fcn.00532e0c
add esp, 4
test eax, eax
je 0x491ace
push 1
mov ecx, eax
call fcn.00531220
mov ebx, eax
jmp 0x491ad0
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.0042f600
mov edx, dword [ebp - 0x4c]
cmp edx, 8
jb 0x491b38
mov ecx, dword [ebp - 0x60]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x491b2e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x492455
push edx
push ecx
call fcn.00532e3c
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.00429da0
mov edx, dword [ebp - 0x4c]
cmp edx, 8
jb 0x491ba3
mov ecx, dword [ebp - 0x60]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x491b99
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x492455
push edx
push ecx
call fcn.00532e3c
add esp, 8
push 0x3c0
call fcn.00532e0c
mov edi, eax
add esp, 4
test edi, edi
je 0x491c08
or dword [ebp - 0x48], 1
mov ecx, edi
mov dword [edi + 4], 0x59b274
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.004545f0
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 0x491c0a
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 + 0x5b4438]
mov dword [ebp - 0x74], eax
test eax, eax
je 0x491c71
mov ecx, eax
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x491c30
sub ecx, dword [ebp - 8]
sar ecx, 1
je 0x491c71
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 0x491c61
sub ecx, dword [ebp - 8]
jmp 0x491ca1
mov edx, dword [edx + 0x5b443c]
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 0x491c93
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.0047a880
mov ecx, eax
call fcn.0046f650
push eax
mov ecx, edi
call fcn.0042b470
lea ecx, [ebp - 0x90]
call fcn.00403070
lea ecx, [ebp - 0x60]
call fcn.00403070
push 1
mov ecx, edi
call fcn.0042a290
mov eax, dword [ebx]
mov ecx, ebx
push edi
call dword [eax + 0x160]
push 0x3c0
call fcn.00532e0c
add esp, 4
test eax, eax
je 0x491d13
push 1
mov ecx, eax
call fcn.004545f0
mov edi, eax
jmp 0x491d15
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.0042f600
mov edx, dword [ebp - 0x4c]
cmp edx, 8
jb 0x491d88
mov ecx, dword [ebp - 0x60]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x491d7e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x492455
push edx
push ecx
call fcn.00532e3c
add esp, 8
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 7
mov edx, dword [eax + 0x5b4434]
mov ecx, edx
xor eax, eax
mov word [ebp - 0x60], ax
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x491db0
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 0x491e12
mov ecx, dword [ebp - 0x60]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x491e08
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x492455
push edx
push ecx
call fcn.00532e3c
add esp, 8
mov edx, dword [edi]
mov ecx, edi
movaps xmm0, xmmword [0x582e00]
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 + 0x5b4444]
test edx, edx
je 0x491e9d
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x491e42
sub ecx, dword [ebp - 8]
sar ecx, 1
je 0x491e9d
mov ecx, edx
mov dword [ebp - 0x50], 0
xor eax, eax
mov dword [ebp - 0x4c], 7
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 0x491e70
sub ecx, dword [ebp - 8]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x60]
call fcn.00402e60
mov eax, dword [ebx]
lea ecx, [ebp - 0x60]
push ecx
mov ecx, ebx
call dword [eax + 0x48]
lea ecx, [ebp - 0x60]
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 0x491ec2
mov edi, dword [ebp - 0x18]
jmp 0x491ab0
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
call edi
push 1
mov dword [ebp - 0x48], eax
call edi
mov dword [ebp - 0x44], eax
call fcn.0047a9c0
mov edi, dword [eax + 0x58]
call fcn.0047a9c0
xor ebx, ebx
test edi, edi
cmovns ebx, edi
xor edi, edi
mov ecx, dword [eax + 0x5c]
test ecx, ecx
cmovns edi, ecx
call fcn.0047a9c0
mov eax, dword [eax + 0x50]
add eax, ebx
cmp eax, dword [ebp - 0x48]
jle 0x491f0e
call fcn.0047a9c0
mov ebx, dword [ebp - 0x48]
sub ebx, dword [eax + 0x50]
call fcn.0047a9c0
mov eax, dword [eax + 0x54]
add eax, edi
cmp eax, dword [ebp - 0x44]
jle 0x491f28
call fcn.0047a9c0
mov edi, dword [ebp - 0x44]
sub edi, dword [eax + 0x54]
push 0
call fcn.0047a9c0
mov eax, dword [eax + 0x54]
push eax
call fcn.0047a9c0
mov ecx, esi
mov eax, dword [eax + 0x50]
push eax
push edi
push ebx
call fcn.004237c0
push eax
call dword [sym.imp.USER32.dll_MoveWindow]
call fcn.0047a9c0
mov edi, dword [sym.imp.USER32.dll_SetTimer]
cmp byte [eax + 0x24], 0
je 0x491fcc
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.0048bf00
call fcn.0047a9c0
cmp byte [eax + 0x23], 0
jne 0x491fa4
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 0x48d6a0
push 1
push 5
call dword [sym.imp.WINMM.dll_timeSetEvent]
mov dword [esi + 0x27c], eax
call fcn.0047a9c0
cmp byte [eax + 0x37], 0
je 0x491fea
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.00453340
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 0x4920c0
test edi, 0x10
jne 0x4920c0
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 0x4920d1
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, 0x5b481c
mov dword [edi], 0x3bc
cmp dword [0x5b4830], 8
cmovae eax, dword [0x5b481c]
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.0047a9c0
cmp byte [eax + 0x36], 0
jne 0x492143
push edi
push 0
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
mov byte [esi + 0x1160], 1
push 0x2ac
call fcn.00532e0c
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x492297
mov dword [ebx + 8], 0x5806b4
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.004387e0
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.00532e0c
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.00532e0c
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.00471d00
mov dword [ebx + 0x298], eax
lea eax, [ebx + 0x294]
push eax
push 0x57aadc
push 1
call dword [sym.imp.SHELL32.dll_SHGetImageList]
jmp 0x492299
xor ebx, ebx
lea ecx, [ebp - 0x58]
mov dword [esi + 0x1124], ebx
cmp dword [0x5b4818], 8
mov eax, 0x5b4804
push ecx
cmovae eax, dword [0x5b4804]
mov edi, ebx
push 1
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.0047a9c0
cmp dword [eax + 0xc0], 0xffffffff
jne 0x492303
call fcn.0047a9c0
cmp dword [eax + 0xc4], 0xffffffff
jne 0x492303
mov ecx, dword [esi + 0x1124]
call fcn.00423f80
jmp 0x492335
push 5
push 0
push 0
call fcn.0047a9c0
mov eax, dword [eax + 0xc4]
push eax
call fcn.0047a9c0
mov ecx, dword [esi + 0x1124]
mov eax, dword [eax + 0xc0]
push eax
push 0
call fcn.004237c0
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [0x5ba8b4]
test eax, eax
je 0x49234f
push eax
call dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
mov dword [0x5ba8b4], 0
mov ecx, dword [esi + 0x1124]
call fcn.004237c0
push 0
push dword [0x5ba6f8]
mov dword [0x5ba8b8], eax
push 0x495ff0
push 0xe
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
mov edx, dword [ebp - 0x98]
mov dword [0x5ba8b4], eax
cmp edx, 8
jb 0x4923b9
mov ecx, dword [ebp - 0xac]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4923af
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x492455
push edx
push ecx
call fcn.00532e3c
add esp, 8
xor eax, eax
mov dword [ebp - 0x9c], 0
mov word [ebp - 0xac], ax
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x98], 7
cmp eax, 8
jb 0x4923f4
inc eax
lea ecx, [ebp - 0xc4]
push eax
push dword [ebp - 0xc4]
call fcn.00403030
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x40010
push 0x58178c
push 0x5817a0
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call fcn.0056dcd0
push 0x40010
push 0x58178c
push 0x5817b4
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call fcn.0056dcd0
push 0x40010
push 0x58178c
push 0x5817cc
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call fcn.0056dcd0
call fcn.0055f150
int3