Function at 0x1800100a0
Capabilities:
Log keystrokes via polling

Disassembly:
push rdi
sub rsp, 0x20
mov eax, 8
movzx edi, cx
cmp ax, cx
jne 0x1800100d1
mov eax, dword [0x180033c94]
test eax, eax
jle case.default.0x180010178
dec eax
mov dword [0x180033c94], eax
xor eax, eax
add rsp, 0x20
pop rdi
ret
mov edx, 9
cmp dx, di
je 0x1800102a3
mov edx, reloc.ODBC32.dll_SQLFetch
cmp dx, di
jne 0x180010123
movsxd rcx, dword [0x180033c94]
lea r8, [0x180000000]
mov word [r8 + rcx*2 + 0x35ca0], dx
inc ecx
mov edx, 0xa
movsxd rax, ecx
inc ecx
mov word [r8 + rax*2 + 0x35ca0], dx
xor eax, eax
mov dword [0x180033c94], ecx
add rsp, 0x20
pop rdi
ret
mov edx, 0x20
cmp dx, di
je 0x1800102a3
lea eax, [rdi - 0x30]
cmp ax, 9
ja 0x1800101de
lea ecx, [rdx - 0x10]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
je 0x18001024f
movzx eax, di
add eax, 0xffffffd0
cmp eax, 9
ja case.default.0x180010178
lea r8, [0x180000000]
cdqe
mov eax, dword [r8 + rax*4 + 0x104a8]
add rax, r8
jmp rax
mov edx, SQLGetData
jmp 0x1800102aa
mov edx, 0x21
jmp 0x1800102aa
mov edx, 0x40
jmp 0x1800102aa
mov edx, 0x23
jmp 0x1800102aa
mov edx, 0x24
jmp 0x1800102aa
mov edx, 0x25
jmp 0x1800102aa
mov edx, 0x5e
jmp 0x1800102aa
mov edx, 0x26
jmp 0x1800102aa
mov edx, SQLGetData
jmp 0x1800102aa
mov edx, SQLGetData
jmp 0x1800102aa
lea eax, [rdi - 0x41]
cmp ax, 0x19
ja 0x18001022e
mov ecx, SQLAllocHandle
mov qword [rsp + 0x30], rbx
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, SQLNumResultCols
movzx ebx, ax
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movsxd rdx, dword [0x180033c94]
sar ax, 0xf
lea r8, [0x180000000]
xor ax, bx
mov rbx, qword [rsp + 0x30]
jne 0x180010225
or dil, 0x20
movsx ecx, dil
jmp 0x18001048d
lea eax, [rdi - 0x60]
cmp ax, 9
ja 0x180010258
mov ecx, 0x90
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
je case.default.0x180010178
sub dil, 0x30
movsx ecx, dil
jmp 0x18001047f
mov eax, 0x6a
cmp ax, di
jne 0x180010267
lea edx, [rax - 0x40]
jmp 0x1800102a3
mov eax, SQLExecDirectW
cmp ax, di
jne 0x180010276
lea edx, [rax - 0x40]
jmp 0x1800102a3
mov eax, SQLExecDirectW
cmp ax, di
jne 0x180010285
lea edx, [rax - 0x40]
jmp 0x1800102a3
mov eax, reloc.ODBC32.dll_SQLExecDirectW
cmp ax, di
jne 0x180010294
lea edx, [rax - 0x40]
jmp 0x1800102a3
mov eax, SQLExecDirectW
cmp ax, di
jne 0x1800102ca
mov edx, 0x2e
lea r8, [0x180000000]
movsxd rcx, dword [0x180033c94]
mov word [r8 + rcx*2 + 0x35ca0], dx
inc ecx
xor eax, eax
mov dword [0x180033c94], ecx
add rsp, 0x20
pop rdi
ret
mov eax, 0xba
cmp ax, di
jne 0x1800102f7
mov ecx, SQLNumResultCols
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx r11d, ax
shr r11d, 0xf
not r11b
and r11b, 1
or r11b, 0x3a
jmp 0x18001047b
mov eax, 0xbb
cmp ax, di
jne 0x180010329
mov ecx, SQLNumResultCols
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
mov edx, reloc.ODBC32.dll_SQLGetData
test cx, ax
mov eax, reloc.ODBC32.dll_SQLMoreResults
cmovne eax, edx
movsx ecx, al
jmp 0x18001047f
mov eax, 0xbc
cmp ax, di
jne 0x180010353
mov ecx, SQLNumResultCols
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx r11d, ax
shr r11d, 0xb
and r11b, 0x10
or r11b, 0x2c
jmp 0x18001047b
mov eax, 0xbd
cmp ax, di
jne 0x180010385
mov ecx, SQLNumResultCols
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
mov edx, 0x2d
test cx, ax
mov eax, 0x5f
cmovne edx, eax
movsx ecx, dl
jmp 0x18001047f
mov eax, 0xbe
cmp ax, di
jne 0x1800103af
mov ecx, SQLNumResultCols
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx r11d, ax
shr r11d, 0xb
and r11b, 0x10
or r11b, 0x2e
jmp 0x18001047b
mov eax, 0xbf
cmp ax, di
jne 0x1800103d9
mov ecx, SQLNumResultCols
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx r11d, ax
shr r11d, 0xb
and r11b, 0x10
or r11b, 0x2f
jmp 0x18001047b
mov eax, 0xc0
cmp ax, di
jne 0x180010408
mov ecx, SQLNumResultCols
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
mov ecx, SQLColAttributeW
mov eax, 0x60
cmovne eax, ecx
movsx ecx, al
jmp 0x18001047f
mov eax, 0xdb
cmp ax, di
jne 0x18001042f
mov ecx, SQLNumResultCols
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx r11d, ax
shr r11d, 0xa
and r11b, 0x20
or r11b, 0x5b
jmp 0x18001047b
mov eax, 0xdc
cmp ax, di
jne 0x180010456
mov ecx, SQLNumResultCols
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx r11d, ax
shr r11d, 0xa
and r11b, 0x20
or r11b, 0x5c
jmp 0x18001047b
mov eax, 0xdd
cmp ax, di
jne case.default.0x180010178
mov ecx, SQLNumResultCols
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx r11d, ax
shr r11d, 0xa
and r11b, 0x20
or r11b, 0x5d
movsx ecx, r11b
movsxd rdx, dword [0x180033c94]
lea r8, [0x180000000]
mov word [r8 + rdx*2 + 0x35ca0], cx
inc edx
mov dword [0x180033c94], edx
xor eax, eax
add rsp, 0x20
pop rdi
ret