Function at 0x11186ba0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1d4
mov eax, dword [0x11279148]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
test byte [esi + 0xc4], 1
push edi
mov ebx, edx
je 0x1118733c
cmp dword [esi + 0x4b8], 0
je 0x11186be4
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0x4a0]
push 0
push 0
push eax
push ebx
call fcn.11170230
mov ecx, dword [esi + 0x4a4]
test ecx, ecx
je 0x11186c05
cmp dword [esi + 0x4bc], 0
je 0x11186c05
mov edx, dword [ebp + 8]
push 0
push 0
push edx
push ebx
call fcn.11170230
cmp dword [esi + 0x4a8], 1
je 0x1118733c
mov eax, 0xe1
cmp word [ebx], ax
sete byte [ebp - 0x1a5]
cmp dword [esi + 0x1f0], 0
je 0x11186c41
push 0xa5
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x11186c41
mov byte [ebp - 0x1a5], 0
movsx eax, word [ebx + 8]
movzx ecx, word [ebx + 6]
mov dword [ebp - 0x1c0], eax
cdq
mov edi, eax
movzx eax, word [ebx + 2]
xor edi, edx
sub edi, edx
movzx edx, byte [ebx + 0xa]
mov dword [ebp - 0x1cc], edx
movzx edx, word [ebx + 4]
mov dword [ebp - 0x1b8], edx
mov edx, edi
imul edx, ecx
mov dword [ebp - 0x1c4], eax
lea eax, [ebx + 0xb]
mov dword [ebp - 0x1d4], eax
mov eax, dword [esi + 4]
add dword [eax + 0x28], edx
mov edx, dword [ebp + 8]
inc dword [eax + 0x1c]
add dword [eax + 0x2c], edx
cmp byte [esi + 0x732], 0
mov dword [ebp - 0x1b0], ecx
jne 0x11186ced
mov eax, dword [ebp - 0x1b8]
cmp eax, dword [esi + 0x4b0]
jge 0x11186cd7
inc dword [esi + 0x738]
cmp dword [esi + 0x74c], 0
mov byte [esi + 0x733], 1
je 0x11186cd7
push str.DoNewScrape
call fcn.1117a6e0
mov ecx, dword [ebp - 0x1b0]
add esp, 4
mov edx, dword [ebp - 0x1b8]
and edx, 0xfffffff8
mov byte [esi + 0x731], 2
mov dword [esi + 0x4b0], edx
cmp dword [esi + 0x4ac], 0
jne 0x111871e8
mov eax, dword [ebp - 0x1c4]
sub eax, dword [esi + 0x714]
mov ecx, dword [ebp - 0x1b8]
sub ecx, dword [esi + 0x718]
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1d0], ecx
test eax, eax
js 0x1118733c
test ecx, ecx
js 0x1118733c
mov eax, dword [esi + 0x24c]
mov eax, dword [eax + 8]
lea edx, [ecx + edi]
mov dword [ebp - 0x1bc], edx
cdq
xor eax, edx
sub eax, edx
cmp dword [ebp - 0x1bc], eax
jg 0x1118733c
mov eax, dword [ebp - 0x1b0]
test eax, eax
je 0x1118733c
add eax, dword [ebp - 0x1c8]
mov edx, dword [esi + 0x24c]
mov dword [ebp - 0x1ac], eax
cmp eax, dword [edx + 4]
jg 0x1118733c
mov eax, dword [ebp - 0x1cc]
imul eax, dword [ebp - 0x1b0]
add eax, 0x1f
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
imul eax, edi
cmp dword [esi + 0x4a8], 2
lea eax, [eax*4 + 0x100]
mov dword [ebp - 0x1b4], eax
je 0x1118733c
cmp dword [esi + 0x7e0], 0xffffffff
je 0x11186dff
mov eax, dword [ebp - 0x1c8]
mov edx, dword [ebp - 0x1bc]
mov dword [ebp - 0x1a0], ecx
mov ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x1a4], eax
mov eax, dword [ebp + 8]
push eax
mov dword [ebp - 0x19c], ecx
lea ecx, [ebp - 0x1a4]
push ebx
push ecx
mov ecx, esi
mov dword [ebp - 0x198], edx
call fcn.11184680
mov eax, dword [ebp - 0x1b4]
add esp, 0xc
cmp eax, 0x4000
jl 0x11186e1f
push eax
call dword [sym.imp.MSVCR100.dll_malloc]
add esp, 4
mov dword [ebp - 0x1ac], eax
mov byte [ebp - 0x1a6], 1
jmp 0x11186e33
call fcn.111d9480
mov dword [ebp - 0x1ac], esp
mov byte [ebp - 0x1a6], 0
mov eax, esp
test eax, eax
je 0x1118733c
mov edx, dword [ebp - 0x1b4]
push edx
push eax
mov eax, dword [ebp - 0x1d4]
push eax
call fcn.111cad50
mov ebx, eax
add esp, 0xc
cmp ebx, dword [ebp - 0x1b4]
jle 0x11186e73
push 0x44c7
push str...ctl32Remote.cpp
push str.cbUnpacked___cbMax
call fcn.11067750
add esp, 0xc
cmp dword [esi + 0x4a8], 3
jne 0x11186e9e
cmp byte [ebp - 0x1a6], 0
je 0x1118733c
mov ecx, dword [ebp - 0x1ac]
push ecx
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
jmp 0x1118733c
mov eax, ebx
cdq
idiv edi
mov dword [ebp - 0x1b4], eax
mov eax, dword [esi + 0x24c]
movzx ebx, word [eax + 0xe]
mov eax, dword [eax + 4]
imul eax, ebx
add eax, 0x1f
cdq
and edx, 0x1f
lea ecx, [edx + eax]
mov eax, ebx
imul eax, dword [ebp - 0x1c8]
sar ecx, 5
add ecx, ecx
add ecx, ecx
cdq
mov ebx, ecx
imul ebx, dword [ebp - 0x1d0]
and edx, 7
add edx, eax
mov eax, dword [esi + 0x250]
sar edx, 3
add edx, eax
add ebx, edx
mov dword [ebp - 0x1bc], ecx
cmp edi, dword [ebp - 0x1c0]
jne 0x11186f0d
lea edx, [edi - 1]
imul edx, ecx
add ebx, edx
neg ecx
mov dword [ebp - 0x1bc], ecx
mov edx, dword [esi + 0x254]
cmp ebx, edx
jbe 0x11186f4b
push edx
push eax
push ebx
lea eax, [ebp - 0x194]
push str.Error._b4cvt_dst_p__start_p__end_p_n
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
push 0x44e8
lea ecx, [ebp - 0x194]
push str...ctl32Remote.cpp
push ecx
call fcn.11067750
mov ecx, dword [ebp - 0x1bc]
add esp, 0x20
cmp byte [esi + 0x748], 0
je 0x11186f5b
mov byte [esi + 0x748], 0
mov eax, dword [ebp - 0x1cc]
cmp eax, 0x18
jl 0x11186f9b
cmp byte [ebp - 0x1a5], 0
mov edx, dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x1b0]
push ecx
mov ecx, dword [ebp - 0x1ac]
push edx
push edi
push eax
push ebx
push ecx
je 0x11186f91
call fcn.11179df0
jmp 0x1118710e
call fcn.11179e50
jmp 0x1118710e
cmp eax, 0xf
jl 0x11186fd5
cmp byte [ebp - 0x1a5], 0
mov edx, dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x1b0]
push ecx
mov ecx, dword [ebp - 0x1ac]
push edx
push edi
push eax
push ebx
push ecx
je 0x11186fcb
call fcn.11179610
jmp 0x1118710e
call fcn.111797d0
jmp 0x1118710e
cmp eax, 8
jl 0x1118704b
mov eax, dword [esi + 0x46c]
test eax, eax
je 0x11186fe9
add eax, 4
jmp 0x11186fee
mov eax, 0x11278d30
cmp byte [ebp - 0x1a5], 0
je 0x11187025
movzx edx, byte [esi + 0x474]
push edx
mov edx, dword [ebp - 0x1ac]
push eax
mov eax, dword [ebp - 0x1b4]
push ecx
mov ecx, dword [ebp - 0x1b0]
push eax
push edi
push ecx
push ebx
push edx
call fcn.11179a80
add esp, 0x20
jmp 0x11187111
mov edx, dword [ebp - 0x1ac]
push eax
mov eax, dword [ebp - 0x1b4]
push ecx
mov ecx, dword [ebp - 0x1b0]
push eax
push edi
push ecx
push ebx
push edx
call fcn.11179960
add esp, 0x1c
jmp 0x11187111
cmp eax, 4
jl 0x111870c4
mov eax, dword [esi + 0x46c]
test eax, eax
je 0x11187068
cmp byte [ebp - 0x1a5], 0
je 0x11187068
add eax, 4
jmp 0x1118706d
mov eax, 0x11278cd4
cmp byte [ebp - 0x1a5], 0
je 0x111870a1
movzx edx, byte [esi + 0x474]
push edx
mov edx, dword [ebp - 0x1ac]
push eax
mov eax, dword [ebp - 0x1b4]
push ecx
mov ecx, dword [ebp - 0x1b0]
push eax
push edi
push ecx
push ebx
push edx
call fcn.11179c60
add esp, 0x20
jmp 0x11187111
mov edx, dword [ebp - 0x1ac]
push eax
mov eax, dword [ebp - 0x1b4]
push ecx
mov ecx, dword [ebp - 0x1b0]
push eax
push edi
push ecx
push ebx
push edx
call fcn.11179bd0
add esp, 0x1c
jmp 0x11187111
cmp eax, 2
jne 0x111870e8
mov eax, dword [ebp - 0x1b4]
mov edx, dword [ebp - 0x1ac]
push ecx
mov ecx, dword [ebp - 0x1b0]
push eax
push edi
push ecx
push ebx
push edx
call fcn.11179d40
jmp 0x1118710e
cmp eax, 1
jne 0x111871b8
mov eax, dword [ebp - 0x1b4]
mov edx, dword [ebp - 0x1ac]
push ecx
mov ecx, dword [ebp - 0x1b0]
push eax
push edi
push ecx
push ebx
push edx
call fcn.11179ce0
add esp, 0x18
mov eax, dword [esi + 0x254]
cmp ebx, eax
jbe 0x1118714f
push eax
mov eax, dword [esi + 0x250]
push eax
push ebx
lea ecx, [ebp - 0x194]
push str.Error._cvt_overflow_dst_p__start_p__end_p_n
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
push 0x452e
lea edx, [ebp - 0x194]
push str...ctl32Remote.cpp
push edx
call fcn.11067750
add esp, 0x20
cmp byte [ebp - 0x1a6], 0
je 0x11187168
mov eax, dword [ebp - 0x1ac]
push eax
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
cmp dword [esi + 0x4a8], 4
je 0x1118733c
mov eax, dword [ebp - 0x1c4]
mov dword [ebp - 0x1a4], eax
add eax, dword [ebp - 0x1b0]
push 0
mov dword [ebp - 0x19c], eax
mov eax, dword [ebp - 0x1b8]
mov dword [ebp - 0x1a0], eax
add eax, edi
lea edx, [ebp - 0x1a4]
mov ecx, esi
mov dword [ebp - 0x198], eax
call fcn.11176060
add esp, 4
jmp 0x1118733c
push eax
push str.Error._Unknown_colordepth__d_for_newscrape_n
call fcn.111bd7b0
add esp, 8
cmp byte [ebp - 0x1a6], 0
je 0x1118733c
mov edx, dword [ebp - 0x1ac]
push edx
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
jmp 0x1118733c
mov eax, dword [esi + 0x284]
mov edx, dword [ebp - 0x1d4]
push 0
push eax
mov eax, dword [ebp - 0x1cc]
push edx
mov edx, dword [ebp - 0x1c0]
push eax
push edx
push ecx
call fcn.111cafd0
add esp, 0x18
cmp dword [esi + 0x4a8], 2
mov dword [ebp - 0x1c0], eax
jne 0x11187246
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
test eax, eax
jne 0x1118733c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_deleting_hbmp__e_d_n
call fcn.111bd7b0
add esp, 8
jmp 0x1118733c
test eax, eax
je 0x1118733c
mov eax, dword [esi + 0x244]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov ebx, eax
test ebx, ebx
jne 0x11187278
push 0x455a
push str...ctl32Remote.cpp
push str.workdc
call fcn.11067750
add esp, 0xc
mov ecx, dword [ebp - 0x1c0]
push ecx
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp dword [esi + 0x1f4], 0
mov dword [ebp - 0x1d0], eax
je 0x1118729d
mov eax, dword [esi + 0x240]
jmp 0x111872a3
mov eax, dword [esi + 0x244]
mov edx, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1b8]
push 0xcc0020
push 0
push 0
push ebx
push edi
push edx
mov edx, dword [ebp - 0x1c4]
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [ebp - 0x1d0]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp dword [esi + 0x4a8], 4
je 0x11187328
cmp dword [esi + 0x1f4], 0
jne 0x11187328
mov eax, dword [ebp - 0x1c4]
mov dword [ebp - 0x1a4], eax
add eax, dword [ebp - 0x1b0]
push 0
mov dword [ebp - 0x19c], eax
mov eax, dword [ebp - 0x1b8]
mov dword [ebp - 0x1a0], eax
add eax, edi
lea edx, [ebp - 0x1a4]
mov ecx, esi
mov dword [ebp - 0x198], eax
call fcn.11176060
add esp, 4
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov edx, dword [ebp - 0x1c0]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
lea esp, [ebp - 0x1e0]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.111d9022
mov esp, ebp
pop ebp
ret