Function at 0x1005db20
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10148684
mov eax, dword fs:[0]
push eax
sub esp, 0x1a8
mov eax, dword [0x101900e0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x188], ecx
mov dword [ebp - 0x100], 0
push 0x104
push str.InputHook::hook
push 0x39
push 0x1015c50c
call fcn.1005f8e0
add esp, 8
add eax, 0x1015c4d0
push eax
push 0x1015c548
lea ecx, [ebp - 0xf8]
call fcn.1001eab0
mov dword [ebp - 0x144], eax
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x1a8]
mov dword [ebp - 0x1a4], ecx
push 0x1015c554
mov ecx, dword [ebp - 0x1a4]
call fcn.1002df00
mov dword [ebp - 0x19c], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x1a0]
push edx
mov ecx, dword [ebp - 0x19c]
call fcn.10048d50
mov dword [ebp - 0x198], eax
push 0x1015c55c
mov ecx, dword [ebp - 0x198]
call fcn.1002df00
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xf8]
call fcn.100b7260
mov byte [ebp - 0xf9], 1
push 0x1015c560
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x10195950], eax
push 0x1015c56c
mov eax, dword [0x10195950]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x10195954], eax
push 0x28
call fcn.100e67ed
add esp, 4
mov dword [ebp - 0x104], eax
mov dword [ebp - 4], 1
cmp dword [ebp - 0x104], 0
je 0x1005dcae
mov ecx, dword [0x10195954]
mov dword [ebp - 0x190], ecx
push 0x1015c580
lea ecx, [ebp - 0xb8]
call fcn.100486a0
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x100]
or edx, 1
mov dword [ebp - 0x100], edx
push 0x1005ece0
mov eax, dword [ebp - 0x190]
push eax
lea ecx, [ebp - 0xb8]
push ecx
mov ecx, dword [ebp - 0x104]
call fcn.1005f940
mov dword [ebp - 0x108], eax
jmp 0x1005dcb8
mov dword [ebp - 0x108], 0
mov edx, dword [ebp - 0x108]
mov dword [ebp - 0x18c], edx
mov dword [ebp - 4], 3
mov eax, dword [ebp - 0x18c]
push eax
mov ecx, 0x10195998
call fcn.10061480
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x100]
and ecx, 1
je 0x1005dd00
and dword [ebp - 0x100], 0xfffffffe
lea ecx, [ebp - 0xb8]
call fcn.1001fa50
movzx ebx, byte [ebp - 0xf9]
mov ecx, 0x10195998
call fcn.10060540
mov ecx, eax
call fcn.10060aa0
movzx edx, al
and ebx, edx
mov byte [ebp - 0xf9], bl
push 0x1015c5a4
mov eax, dword [0x10195950]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x10195958], eax
push 0x28
call fcn.100e67ed
add esp, 4
mov dword [ebp - 0x10c], eax
mov dword [ebp - 4], 4
cmp dword [ebp - 0x10c], 0
je 0x1005ddae
mov ecx, dword [0x10195958]
mov dword [ebp - 0x180], ecx
push 0x1015c5b0
lea ecx, [ebp - 0xa0]
call fcn.100486a0
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x100]
or edx, 2
mov dword [ebp - 0x100], edx
push 0x1005ed80
mov eax, dword [ebp - 0x180]
push eax
lea ecx, [ebp - 0xa0]
push ecx
mov ecx, dword [ebp - 0x10c]
call fcn.1005f940
mov dword [ebp - 0x110], eax
jmp 0x1005ddb8
mov dword [ebp - 0x110], 0
mov edx, dword [ebp - 0x110]
mov dword [ebp - 0x194], edx
mov dword [ebp - 4], 6
mov eax, dword [ebp - 0x194]
push eax
mov ecx, 0x1019599c
call fcn.10061480
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x100]
and ecx, 2
je 0x1005de00
and dword [ebp - 0x100], 0xfffffffd
lea ecx, [ebp - 0xa0]
call fcn.1001fa50
movzx ebx, byte [ebp - 0xf9]
mov ecx, 0x1019599c
call fcn.10060540
mov ecx, eax
call fcn.10060aa0
movzx edx, al
and ebx, edx
mov byte [ebp - 0xf9], bl
push 0x1015c5c8
mov eax, dword [0x10195950]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1019595c], eax
push 0x28
call fcn.100e67ed
add esp, 4
mov dword [ebp - 0x140], eax
mov dword [ebp - 4], 7
cmp dword [ebp - 0x140], 0
je 0x1005deae
mov ecx, dword [0x1019595c]
mov dword [ebp - 0x148], ecx
push 0x1015c5dc
lea ecx, [ebp - 0xd0]
call fcn.100486a0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x100]
or edx, 4
mov dword [ebp - 0x100], edx
push 0x1005ee20
mov eax, dword [ebp - 0x148]
push eax
lea ecx, [ebp - 0xd0]
push ecx
mov ecx, dword [ebp - 0x140]
call fcn.1005fa30
mov dword [ebp - 0x114], eax
jmp 0x1005deb8
mov dword [ebp - 0x114], 0
mov edx, dword [ebp - 0x114]
mov dword [ebp - 0x14c], edx
mov dword [ebp - 4], 9
mov eax, dword [ebp - 0x14c]
push eax
mov ecx, 0x101959a0
call fcn.10061540
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x100]
and ecx, 4
je 0x1005df00
and dword [ebp - 0x100], 0xfffffffb
lea ecx, [ebp - 0xd0]
call fcn.1001fa50
movzx ebx, byte [ebp - 0xf9]
mov ecx, 0x101959a0
call fcn.10060570
mov ecx, eax
call fcn.10060c80
movzx edx, al
and ebx, edx
mov byte [ebp - 0xf9], bl
push 0x1015c600
mov eax, dword [0x10195950]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x10195960], eax
push 0x28
call fcn.100e67ed
add esp, 4
mov dword [ebp - 0x118], eax
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x118], 0
je 0x1005dfae
mov ecx, dword [0x10195960]
mov dword [ebp - 0x150], ecx
push 0x1015c60c
lea ecx, [ebp - 0x88]
call fcn.100486a0
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x100]
or edx, 8
mov dword [ebp - 0x100], edx
push 0x1005eed0
mov eax, dword [ebp - 0x150]
push eax
lea ecx, [ebp - 0x88]
push ecx
mov ecx, dword [ebp - 0x118]
call fcn.1005f990
mov dword [ebp - 0x11c], eax
jmp 0x1005dfb8
mov dword [ebp - 0x11c], 0
mov edx, dword [ebp - 0x11c]
mov dword [ebp - 0x154], edx
mov dword [ebp - 4], 0xc
mov eax, dword [ebp - 0x154]
push eax
mov ecx, 0x101959a4
call fcn.100614c0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x100]
and ecx, 8
je 0x1005e000
and dword [ebp - 0x100], 0xfffffff7
lea ecx, [ebp - 0x88]
call fcn.1001fa50
movzx ebx, byte [ebp - 0xf9]
mov ecx, 0x101959a4
call fcn.10060550
mov ecx, eax
call fcn.10060b40
movzx edx, al
and ebx, edx
mov byte [ebp - 0xf9], bl
push 0x1015c624
mov eax, dword [0x10195950]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x10195964], eax
push 0x28
call fcn.100e67ed
add esp, 4
mov dword [ebp - 0x120], eax
mov dword [ebp - 4], 0xd
cmp dword [ebp - 0x120], 0
je 0x1005e0a8
mov ecx, dword [0x10195964]
mov dword [ebp - 0x158], ecx
push 0x1015c634
lea ecx, [ebp - 0x70]
call fcn.100486a0
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x100]
or edx, 0x10
mov dword [ebp - 0x100], edx
push 0x1005efc0
mov eax, dword [ebp - 0x158]
push eax
lea ecx, [ebp - 0x70]
push ecx
mov ecx, dword [ebp - 0x120]
call fcn.1005fa80
mov dword [ebp - 0x124], eax
jmp 0x1005e0b2
mov dword [ebp - 0x124], 0
mov edx, dword [ebp - 0x124]
mov dword [ebp - 0x15c], edx
mov dword [ebp - 4], 0xf
mov eax, dword [ebp - 0x15c]
push eax
mov ecx, 0x101959a8
call fcn.10061580
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x100]
and ecx, 0x10
je 0x1005e0f7
and dword [ebp - 0x100], 0xffffffef
lea ecx, [ebp - 0x70]
call fcn.1001fa50
movzx ebx, byte [ebp - 0xf9]
mov ecx, 0x101959a8
call fcn.10060580
mov ecx, eax
call fcn.10060d20
movzx edx, al
and ebx, edx
mov byte [ebp - 0xf9], bl
push 0x1015c650
mov eax, dword [0x10195950]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x10195968], eax
push 0x28
call fcn.100e67ed
add esp, 4
mov dword [ebp - 0x128], eax
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x128], 0
je 0x1005e19f
mov ecx, dword [0x10195968]
mov dword [ebp - 0x160], ecx
push 0x1015c660
lea ecx, [ebp - 0x58]
call fcn.100486a0
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x100]
or edx, 0x20
mov dword [ebp - 0x100], edx
push 0x1005f080
mov eax, dword [ebp - 0x160]
push eax
lea ecx, [ebp - 0x58]
push ecx
mov ecx, dword [ebp - 0x128]
call fcn.1005f9e0
mov dword [ebp - 0x12c], eax
jmp 0x1005e1a9
mov dword [ebp - 0x12c], 0
mov edx, dword [ebp - 0x12c]
mov dword [ebp - 0x164], edx
mov dword [ebp - 4], 0x12
mov eax, dword [ebp - 0x164]
push eax
mov ecx, 0x101959ac
call fcn.10061500
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x100]
and ecx, 0x20
je 0x1005e1ee
and dword [ebp - 0x100], 0xffffffdf
lea ecx, [ebp - 0x58]
call fcn.1001fa50
movzx ebx, byte [ebp - 0xf9]
mov ecx, 0x101959ac
call fcn.10060560
mov ecx, eax
call fcn.10060be0
movzx edx, al
and ebx, edx
mov byte [ebp - 0xf9], bl
push 0x1015c67c
mov eax, dword [0x10195950]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1019596c], eax
push 0x28
call fcn.100e67ed
add esp, 4
mov dword [ebp - 0x130], eax
mov dword [ebp - 4], 0x13
cmp dword [ebp - 0x130], 0
je 0x1005e296
mov ecx, dword [0x1019596c]
mov dword [ebp - 0x168], ecx
push 0x1015c688
lea ecx, [ebp - 0x40]
call fcn.100486a0
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x100]
or edx, 0x40
mov dword [ebp - 0x100], edx
push 0x1005f140
mov eax, dword [ebp - 0x168]
push eax
lea ecx, [ebp - 0x40]
push ecx
mov ecx, dword [ebp - 0x130]
call fcn.1005fad0
mov dword [ebp - 0x134], eax
jmp 0x1005e2a0
mov dword [ebp - 0x134], 0
mov edx, dword [ebp - 0x134]
mov dword [ebp - 0x16c], edx
mov dword [ebp - 4], 0x15
mov eax, dword [ebp - 0x16c]
push eax
mov ecx, 0x101959b0
call fcn.10061640
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x100]
and ecx, 0x40
je 0x1005e2e5
and dword [ebp - 0x100], 0xffffffbf
lea ecx, [ebp - 0x40]
call fcn.1001fa50
movzx ebx, byte [ebp - 0xf9]
mov ecx, 0x101959b0
call fcn.100605b0
mov ecx, eax
call fcn.10060dc0
movzx edx, al
and ebx, edx
mov byte [ebp - 0xf9], bl
push 0x1015c69c
mov eax, dword [0x10195950]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x10195970], eax
push 0x28
call fcn.100e67ed
add esp, 4
mov dword [ebp - 0x138], eax
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x138], 0
je 0x1005e390
mov ecx, dword [0x10195970]
mov dword [ebp - 0x170], ecx
push 0x1015c6a8
lea ecx, [ebp - 0x28]
call fcn.100486a0
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x100]
or edx, 0x80
mov dword [ebp - 0x100], edx
push 0x1005f1f0
mov eax, dword [ebp - 0x170]
push eax
lea ecx, [ebp - 0x28]
push ecx
mov ecx, dword [ebp - 0x138]
call fcn.1005fb20
mov dword [ebp - 0x13c], eax
jmp 0x1005e39a
mov dword [ebp - 0x13c], 0
mov edx, dword [ebp - 0x13c]
mov dword [ebp - 0x174], edx
mov dword [ebp - 4], 0x18
mov eax, dword [ebp - 0x174]
push eax
mov ecx, 0x101959b4
call fcn.10061680
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x100]
and ecx, 0x80
je 0x1005e3e5
and dword [ebp - 0x100], 0xffffff7f
lea ecx, [ebp - 0x28]
call fcn.1001fa50
movzx ebx, byte [ebp - 0xf9]
mov ecx, 0x101959b4
call fcn.100605c0
mov ecx, eax
call fcn.10060e60
movzx edx, al
and ebx, edx
mov byte [ebp - 0xf9], bl
call fcn.100542f0
mov dword [ebp - 0x178], eax
lea eax, [ebp - 0x1b4]
push eax
mov ecx, dword [ebp - 0x178]
call fcn.100275e0
mov dword [ebp - 0x17c], eax
mov ecx, dword [ebp - 0x17c]
mov dword [ebp - 0x1ac], ecx
mov dword [ebp - 4], 0x19
mov ecx, dword [ebp - 0x1ac]
call fcn.1001a0f0
mov dword [ebp - 0x184], eax
movzx edx, byte [ebp - 0xf9]
push edx
mov ecx, dword [ebp - 0x184]
call fcn.1006cc20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1b4]
call fcn.1001fc20
movzx eax, byte [ebp - 0xf9]
push eax
mov ecx, dword [ebp - 0x188]
add ecx, 4
call fcn.100203e0
movzx eax, byte [ebp - 0xf9]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100e6bb9
mov esp, ebp
pop ebp
ret