Function at 0x462444
Capabilities:
Set global application hook

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push dword [ebp + 0xc]
mov edi, ecx
lea eax, [edi + 0x49]
mov ecx, esi
call fcn.0053fb8a
mov ebx, dword [ebp + 0x10]
mov eax, 0x110
cmp esi, eax
ja 0x4626d0
je 0x4626c6
mov eax, esi
dec eax
dec eax
je 0x46268f
sub eax, 3
je 0x462638
sub eax, 0xb
je 0x462622
sub eax, 6
je 0x462602
sub eax, 4
je 0x4625b9
sub eax, 0xa
je 0x462559
sub eax, 0x26
jne 0x462591
mov eax, ebx
cmp dword [eax + 4], 0x10404
jne 0x462808
mov ebx, dword [eax + 8]
mov esi, dword [ebx]
test esi, esi
mov dword [esp + 0x14], esi
je 0x462808
xor ecx, ecx
push 4
pop edx
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0058f8c4
and dword [esp + 0x10], 0
test esi, esi
pop ecx
mov dword [esp + 0x18], eax
jle 0x462541
add ebx, 4
mov dword [esp + 0x10], ebx
mov ebx, 0x208
push ebx
call fcn.0058f8c4
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [ecx + edx*4], eax
mov edx, dword [esp + 0x14]
mov esi, eax
mov dword [esp], 0x104
call fcn.004a8ff7
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
add dword [esp + 0x10], ebx
cmp eax, dword [esp + 0x14]
jl 0x462508
mov esi, dword [esp + 0x14]
push dword [esp + 0x18]
push esi
push 0x406
push dword [edi + 4]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x46285c
lea edx, [esp + 0x14]
push edx
lea ecx, [edi + 0x3d]
mov eax, dword [ecx]
lea edx, [esp + 0x1c]
push edx
call dword [eax + 4]
mov eax, dword [esp + 0x18]
mov ecx, dword [ebx + 0x20]
cmp eax, ecx
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], edx
jg 0x462582
mov eax, ecx
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x24]
cmp edx, eax
jg 0x46258e
mov edx, eax
mov dword [ebx + 0x24], edx
mov esi, dword [ebp + 8]
cmp esi, dword [edi + 0x473]
jne 0x4625a8
push edi
call fcn.0046298d
push edi
call fcn.004628ee
push ebx
push dword [ebp + 0xc]
mov ecx, edi
push esi
call fcn.00469655
jmp 0x46285f
call fcn.0040136d
test al, al
je 0x462591
call fcn.00450219
test al, al
lea esi, [edi + 0x19f0]
je 0x4625e3
mov eax, dword [esi]
test eax, eax
je 0x462591
push eax
call dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
and dword [esi], 0
jmp 0x462591
cmp dword [esi], 0
jne 0x462591
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push 0
push 0x462a19
push 3
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
mov dword [esi], eax
jmp 0x462591
cmp dword [ebp + 0xc], 0
je 0x462808
mov byte [edi + 0x5b], 1
mov byte [edi + 0x5d], 1
push dword [edi + 4]
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x462808
cmp byte [edi + 0x5b], 0
jne 0x46285c
mov esi, edi
call fcn.00461dad
jmp 0x46285c
xor eax, eax
cmp dword [ebp + 0xc], eax
jne 0x462665
mov ecx, dword [edi + 4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x20], 0x14
mov dword [esp + 0x24], ecx
call dword [sym.imp.USER32.dll_FlashWindowEx]
cmp dword [ebp + 0xc], 1
je 0x462591
cmp byte [edi + 0x2c], 0
jne 0x462591
mov edx, ebx
shr edx, 0x10
push edx
movzx edx, bx
lea ecx, [edi + 0x3d]
mov eax, dword [ecx]
push edx
call dword [eax]
jmp 0x462591
push edi
call fcn.0046298d
call fcn.0049f0ec
mov eax, dword [edi]
push str.MainWindow
mov ecx, edi
mov dword [0x623ae4], 3
call dword [eax + 0x28]
lea eax, [edi + 0x5b]
push eax
call fcn.0044ed0e
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x462591
call fcn.00462196
jmp 0x462591
mov ecx, esi
mov eax, 0x111
sub ecx, eax
je 0x46280c
dec ecx
dec ecx
je 0x4627ec
sub ecx, 0x2f3
je 0x46277e
sub ecx, 0x60
je 0x462762
sub ecx, 0x7c01
je 0x462715
sub ecx, 7
jne 0x462591
mov esi, edi
call fcn.00409e7a
jmp 0x46285c
cmp byte [edi + 0x2c], 0
jne 0x462591
mov eax, dword [ebp + 0x10]
sub eax, 0x7b
je 0x462756
sub eax, 0x187
je 0x46274a
sub eax, 3
je 0x462756
sub eax, 0x200
jne 0x46285c
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x44]
jmp 0x46285c
mov esi, edi
call fcn.00461d00
jmp 0x46285c
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x40]
jmp 0x46285c
cmp dword [ebp + 0x10], 0
jne 0x462770
mov byte [edi + 0x5b], 1
mov byte [edi + 0x5d], 1
push dword [edi + 4]
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x46285c
mov ebx, dword [ebp + 0x10]
test ebx, ebx
je 0x46285c
cmp dword [ebp + 0xc], 1
jne 0x462796
mov esi, edi
call fcn.00461d00
cmp dword [ebp + 0xc], 2
jne 0x4627c2
mov eax, dword [ebx + 4]
push 0xb
push str.nch.switch:
push eax
call fcn.0059091d
add esp, 0xc
test eax, eax
jne 0x4627c2
push dword [ebx + 4]
mov eax, 0x6a4e0c
call fcn.004b52f3
jmp 0x4627cd
push dword [ebp + 0xc]
mov eax, dword [edi]
push ebx
mov ecx, edi
call dword [eax + 0x3c]
xor esi, esi
cmp dword [ebp + 0xc], esi
jle 0x4627e3
push dword [ebx + esi*4]
call fcn.0058f8c9
inc esi
cmp esi, dword [ebp + 0xc]
pop ecx
jl 0x4627d4
push ebx
call fcn.0058f8c9
pop ecx
jmp 0x46285c
cmp dword [ebp + 0xc], 0x3e5
jne 0x462591
mov esi, edi
call fcn.004623e0
test al, al
je 0x462591
xor eax, eax
jmp 0x46285f
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
push edi
lea eax, [edi + 0x28]
call fcn.00469a78
test eax, eax
jne 0x46285f
movzx eax, word [ebp + 0xc]
mov esi, dword [0x623ae4]
mov dword [0x623ae4], eax
mov eax, dword [ebp + 0xc]
shr eax, 0x10
push eax
push dword [ebp + 0xc]
mov eax, edi
call fcn.004621fd
cmp esi, 5
jne 0x46284f
mov eax, dword [0x623ae4]
mov dword [0x623ae8], eax
mov eax, dword [edi]
mov ecx, edi
mov dword [0x623ae4], esi
call dword [eax + 0x18]
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc