Function at 0x419130
Capabilities:
Check if file exists
Get file attributes
Get keyboard layout

Disassembly:
sub esp, 0x78
mov edx, dword [esp + 0x7c]
xor eax, eax
mov dword [esp + 8], 0x90020
mov word [esp + 0xc], ax
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov edi, edx
test edx, edx
je 0x419198
movzx eax, word [edx]
test ax, ax
je 0x419198
mov esi, eax
nop dword [eax]
lea ecx, [esp + 0x18]
mov edx, 0x20
nop dword [eax]
cmp si, dx
je 0x4191ce
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x419170
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x419160
mov edx, dword [esp + 0x8c]
mov ecx, edx
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4191a0
sub ecx, esi
sar ecx, 1
lea edi, [edx + ecx*2]
xor esi, esi
mov ebx, edi
sub ebx, edx
sar ebx, 1
cmp ebx, 0x20
jb 0x4191f0
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
mov esi, edi
movzx eax, word [esi]
cmp eax, 0x20
je 0x4191dd
cmp eax, 9
jne 0x4191e2
add esi, 2
jmp 0x4191d0
mov edx, dword [esp + 0x8c]
test ax, ax
jne 0x4191b4
jmp 0x4191b2
cmp word [edi], 0
je 0x419212
push ebx
push edx
lea eax, [esp + 0x50]
push eax
call fcn.0049fc44
add esp, 0xc
lea edi, [esp + 0x48]
xor eax, eax
mov word [esp + ebx*2 + 0x48], ax
jmp 0x419214
mov edi, edx
push str.Include
push edi
call fcn.004979b3
add esp, 8
test eax, eax
je 0x419e96
push str.IncludeAgain
push edi
call fcn.004979b3
add esp, 8
test eax, eax
je 0x419e96
push str.DllLoad
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x41939e
test esi, esi
jne 0x419284
push esi
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
test eax, eax
jne 0x419e96
push 0x4b431c
push str.An_internal_function_call_failed.
mov ecx, ebp
call fcn.00428f20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
movzx eax, word [esi]
mov ecx, eax
cmp eax, 0x22
je 0x419295
mov edx, ecx
cmp eax, 0x27
jne 0x4192b9
lea edi, [esi + 2]
push 0
push edi
call fcn.0049515e
movzx ecx, word [esi]
add esp, 8
mov edx, ecx
cmp word [eax - 2], cx
jne 0x4192b9
xor ecx, ecx
mov esi, edi
mov word [eax - 2], cx
movzx edx, word [edi]
cmp dx, 0x2a
jne 0x419309
movzx eax, word [esi + 2]
mov edi, eax
test eax, 0xffffff80
je 0x4192d0
xor eax, eax
jmp 0x4192d9
push eax
call fcn.00498650
add esp, 4
mov ecx, edi
and ecx, 0xffdf
test eax, eax
movzx edx, cx
mov ecx, edi
cmove edx, ecx
cmp dx, 0x49
jne 0x419309
movzx eax, word [esi + 4]
add esi, 4
mov bl, 1
cmp eax, 0x20
je 0x419304
cmp eax, 9
jne 0x41930b
add esi, 2
jmp 0x41930b
xor bl, bl
push esi
lea eax, [esp + 0x18]
mov ecx, ebp
push eax
call fcn.00427db0
test eax, eax
je 0x419612
mov edi, dword [esp + 0x14]
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x41934d
test al, 0x10
je 0x41934d
push edi
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
push edi
mov esi, eax
call fcn.00497f48
add esp, 4
test esi, esi
jmp 0x419263
push edi
mov esi, 3
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [esp + 0x10], eax
test eax, eax
je 0x419376
lea eax, [esp + 0x10]
push eax
push edi
push 1
call dword [sym.imp.KERNEL32.dll_GetModuleHandleExW]
cmp dword [esp + 0x10], 0
jne 0x419389
test bl, bl
jne 0x419389
push edi
push str.Failed_to_load_DLL.
mov ecx, ebp
call fcn.00428f20
mov esi, eax
push edi
call fcn.00497f48
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.NoTrayIcon
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x4193c6
mov byte [0x4dbea4], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.Persistent
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x4193ee
mov byte [0x4dbea5], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.SingleInstance
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x4194bb
test esi, esi
je 0x4194a2
push str.Force
push esi
call fcn.004979b3
add esp, 8
test eax, eax
je 0x4194a2
push 0x4ca73c
push esi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x41944d
mov dword [0x4d78d0], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.Ignore
push esi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x419478
mov dword [0x4d78d0], 3
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push 0x4c6418
push esi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x419d0a
mov dword [0x4d78d0], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
mov dword [0x4d78d0], 2
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.InstallKeybdHook
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x4194e3
or byte [0x4dbffe], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.InstallMouseHook
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x41950b
or byte [0x4dbffe], 2
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.UseHook
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x419598
test esi, esi
je 0x419582
cmp word [esi], ax
je 0x419582
push str.true
push esi
call fcn.004979b3
add esp, 8
test eax, eax
je 0x419582
cmp word [esi], 0x31
jne 0x419545
cmp word [esi + 2], 0
je 0x419582
push str.false
push esi
call fcn.004979b3
add esp, 8
test eax, eax
je 0x41956c
cmp word [esi], 0x30
jne 0x419c02
cmp word [esi + 2], 0
jne 0x419c02
mov byte [0x4dbcb1], 0
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
mov byte [0x4dbcb1], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push 0x4b496c
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x41973a
mov edi, dword [0x4d78c8]
cmp dword [edi + 0x18], eax
jne 0x41971f
cmp dword [ebp + 0x54], eax
jne 0x41971f
cmp dword [ebp + 0x1c], eax
jne 0x41971f
test esi, esi
jne 0x4195e3
mov dword [edi + 0x58], esi
lea eax, [esi + 3]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
mov ecx, esi
call fcn.0040a150
mov dword [edi + 0x58], eax
test eax, eax
jne 0x419e96
mov ecx, ebp
call fcn.00436170
mov edx, dword [ebp + 0x1c]
lea eax, [esp + 0x20]
push eax
xor ecx, ecx
call fcn.0040ab70
add esp, 4
test eax, eax
jne 0x41961e
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
cmp word [esi], 0
je 0x4196b0
mov edi, esi
lea ecx, [edi + 2]
nop dword [eax]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x419630
sub edi, ecx
sar edi, 1
lea eax, [edi + edi]
lea ecx, [eax + 2]
mov dword [esp + 0x10], eax
call fcn.00477ed0
mov ebx, eax
test ebx, ebx
jne 0x41968a
push esi
push str.Out_of_memory.
mov ecx, 0x4dcd68
call fcn.00428f20
mov eax, dword [0x4d78c8]
mov eax, dword [eax + 0x58]
mov dword [eax + 0xc], ebx
push 0x4b431c
push str.Out_of_memory.
mov ecx, ebp
call fcn.00428f20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
test edi, edi
mov edi, dword [esp + 0x10]
je 0x41969d
push edi
push esi
push ebx
call fcn.00497340
add esp, 0xc
xor eax, eax
mov word [edi + ebx], ax
mov eax, dword [0x4d78c8]
mov eax, dword [eax + 0x58]
mov dword [eax + 0xc], ebx
jmp 0x4196bf
mov eax, dword [0x4d78c8]
mov eax, dword [eax + 0x58]
mov dword [eax + 0xc], 0x4b431c
mov edi, dword [ebp + 0x1c]
mov ecx, ebp
push 0
push 0
push 0
push 0
push 3
call fcn.0041b540
test eax, eax
je 0x41966f
push 0
push 0
push 6
push esi
mov ecx, ebp
call fcn.00419fc0
test eax, eax
je 0x41966f
push 0
push 0
push 0
push 0
push 4
mov ecx, ebp
call fcn.0041b540
test eax, eax
je 0x41966f
mov eax, dword [0x4d78c8]
mov ecx, dword [edi + 0x28]
mov eax, dword [eax + 0x58]
mov dword [ecx + 0xc], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push 0x4b431c
push str.Invalid_usage.
mov ecx, ebp
call fcn.00428f20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.HotIfTimeout
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x41976f
test esi, esi
je 0x419e96
mov ecx, esi
call fcn.0047b060
mov dword [0x4d7e24], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.Hotstring
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x4198a3
test esi, esi
je 0x419e96
mov edx, str.EndChars
mov ecx, esi
call fcn.0047abc0
mov edi, eax
test edi, edi
je 0x419826
movzx eax, word [edi]
test ax, ax
je 0x419e96
mov esi, eax
mov ecx, 0x4ca80c
mov edx, 9
nop dword [eax + eax]
cmp si, dx
je 0x4197f0
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4197c0
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4197b1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push 0x64
lea eax, [edi + 2]
push eax
push str._____:____.___n__t
call fcn.0049fc44
add esp, 0xc
xor eax, eax
xor edx, edx
mov word [0x4d7e18], ax
mov ecx, str._____:____.___n__t
call fcn.0047cd70
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push 7
push str.NoMouse
push esi
call fcn.00497b0e
add esp, 0xc
test eax, eax
jne 0x41984e
mov byte [0x4d7e1a], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push 0x4dbc7d
push 0x4dbcb2
push 0x4dbcb3
push 0x4d7e1b
push 0x4dbd5e
push 0x4dbd5c
push 0x4d7e1c
push 0x4d7e1d
push 0x4dbd5d
push 0x4d7e20
push 0x4dbd60
mov edx, 0x4dbd64
mov ecx, esi
call fcn.0040c9a0
add esp, 0x2c
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.HotkeyModifierTimeout
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x4198d8
test esi, esi
je 0x419e96
mov ecx, esi
call fcn.0047b060
mov dword [0x4d7e38], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.HotkeyInterval
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x419920
test esi, esi
je 0x419e96
mov ecx, esi
call fcn.0047b060
mov dword [0x4d7e28], eax
cmp eax, 0xa
jge 0x419e96
mov dword [0x4d7e28], 0xa
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.MaxHotkeysPerInterval
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x419968
test esi, esi
je 0x419e96
mov ecx, esi
call fcn.0047b060
mov dword [0x4d7e2c], eax
cmp eax, 1
jge 0x419e96
mov dword [0x4d7e2c], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.MaxThreadsPerHotkey
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x4199c5
test esi, esi
je 0x419e96
mov ecx, esi
call fcn.0047b060
cmp eax, 0xff
jle 0x4199a9
mov eax, 0xff
mov byte [0x4d7e1e], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
mov ecx, 1
cmp eax, ecx
cmovl eax, ecx
mov byte [0x4d7e1e], al
lea eax, [ecx + 2]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.MaxThreadsBuffer
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x419a56
test esi, esi
je 0x419a40
cmp word [esi], ax
je 0x419a40
push str.true
push esi
call fcn.004979b3
add esp, 8
test eax, eax
je 0x419a40
cmp word [esi], 0x31
jne 0x419a03
cmp word [esi + 2], 0
je 0x419a40
push str.false
push esi
call fcn.004979b3
add esp, 8
test eax, eax
je 0x419a2a
cmp word [esi], 0x30
jne 0x419c02
cmp word [esi + 2], 0
jne 0x419c02
mov byte [0x4dbe33], 0
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
mov byte [0x4dbe33], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.MaxThreads
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x419ab3
test esi, esi
je 0x419e96
mov ecx, esi
call fcn.0047b060
cmp eax, 0xff
jle 0x419a97
mov eax, 0xff
mov dword [0x4d78c4], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
mov ecx, 1
cmp eax, ecx
cmovl eax, ecx
mov dword [0x4d78c4], eax
lea eax, [ecx + 2]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.SuspendExempt
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x419b44
test esi, esi
je 0x419b2e
cmp word [esi], ax
je 0x419b2e
push str.true
push esi
call fcn.004979b3
add esp, 8
test eax, eax
je 0x419b2e
cmp word [esi], 0x31
jne 0x419af1
cmp word [esi + 2], 0
je 0x419b2e
push str.false
push esi
call fcn.004979b3
add esp, 8
test eax, eax
je 0x419b18
cmp word [esi], 0x30
jne 0x419d0a
cmp word [esi + 2], 0
jne 0x419d0a
mov byte [0x4dbc7c], 0
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
mov byte [0x4dbc7c], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.ClipboardTimeout
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x419b79
test esi, esi
je 0x419e96
mov ecx, esi
call fcn.0047b060
mov dword [0x4d78d4], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.WinActivateForce
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x419ba1
mov byte [0x4dbea7], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.ErrorStdOut
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x419c19
test esi, esi
je 0x419be3
movzx eax, word [esi]
cmp eax, 0x22
je 0x419bc4
cmp eax, 0x27
jne 0x419be3
lea edi, [esi + 2]
push 0
push edi
call fcn.0049515e
add esp, 8
mov cx, word [eax - 2]
cmp cx, word [esi]
jne 0x419be3
xor ecx, ecx
mov esi, edi
mov word [eax - 2], cx
mov ecx, esi
call fcn.00414370
cmp eax, 0xffffffff
mov dword [ebp + 0x6d0], eax
setne cl
mov byte [ebp + 0x6cf], cl
jne 0x419e96
push esi
push str.Parameter_1_invalid.
mov ecx, ebp
call fcn.00428f20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.KeyHistory
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x419c80
test esi, esi
je 0x419e96
mov ecx, esi
call fcn.0047b060
mov dword [0x4d78cc], eax
test eax, eax
jns 0x419c5c
mov dword [0x4d78cc], 0
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
cmp eax, 0x1f4
jle 0x419e96
mov dword [0x4d78cc], 0x1f4
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.MenuMaskKey
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x419ce4
test esi, esi
je 0x419cbc
push eax
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push 0
push 0x4d7e3c
mov edx, 0x4d7e1f
mov ecx, esi
call fcn.00413350
add esp, 0xc
test al, al
jne 0x419e96
push dword [esp + 0x8c]
test esi, esi
mov ecx, str.Parameter_1_required
mov eax, str.Parameter_1_invalid.
cmove eax, ecx
mov ecx, ebp
push eax
call fcn.00428f20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.InputLevel
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x419d3d
test esi, esi
je 0x419d27
mov ecx, esi
call fcn.0047b060
test eax, eax
js 0x419d0a
cmp eax, 0x64
jle 0x419d29
push dword [esp + 0x8c]
mov ecx, ebp
push str.Parameter_1_invalid.
call fcn.00428f20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
xor eax, eax
mov byte [0x4dbe32], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.Warn
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x419e7f
test esi, esi
mov edi, 0x4b431c
push 0x2c
cmovne edi, esi
push edi
call fcn.0049515e
mov ecx, eax
add esp, 8
mov ebx, 0x4b431c
test ecx, ecx
je 0x419daa
lea ebx, [ecx + 2]
movzx eax, word [ebx]
cmp eax, 0x20
je 0x419d83
cmp eax, 9
jne 0x419d88
add ebx, 2
jmp 0x419d76
lea eax, [ecx - 2]
cmp eax, edi
jbe 0x419da4
nop
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x419d9d
cmp ecx, 9
jne 0x419da4
sub eax, 2
cmp eax, edi
ja 0x419d90
xor ecx, ecx
mov word [eax + 2], cx
cmp word [edi], 0
mov esi, 3
je 0x419df7
xor esi, esi
nop word [eax + eax]
push dword [esi*4 + 0x4ccf48]
push edi
call fcn.004979b3
add esp, 8
test eax, eax
je 0x419df7
inc esi
cmp esi, 4
jne 0x419dc0
push dword [esp + 0x8c]
mov ecx, ebp
push str.Parameter_1_invalid.
call fcn.00428f20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
cmp word [ebx], 0
mov edi, 2
je 0x419e41
xor edi, edi
nop dword [eax]
nop dword [eax + eax]
push dword [edi*4 + 0x4ccf38]
push ebx
call fcn.004979b3
add esp, 8
test eax, eax
je 0x419e41
inc edi
cmp edi, 4
jne 0x419e10
push ebx
push str.Parameter_2_invalid.
mov ecx, ebp
call fcn.00428f20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
test esi, esi
je 0x419e4a
cmp esi, 3
jne 0x419e50
mov dword [0x4dbea8], edi
cmp esi, 1
je 0x419e5a
cmp esi, 3
jne 0x419e60
mov dword [0x4d7e34], edi
cmp esi, 2
je 0x419e6a
cmp esi, 3
jne 0x419e96
mov dword [0x4d7e30], edi
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
push str.Requires
push edi
call fcn.004979b3
add esp, 8
test eax, eax
mov eax, 4
jne 0x419e9b
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4