Function at 0x4338c0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
mov eax, dword [0x4e0070]
xor eax, esp
mov dword [esp + 0x18], eax
mov eax, dword [0x4e40a0]
mov dword [esp + 0x14], eax
push ebx
mov ebx, ecx
mov dword [esp + 4], ebx
push esi
push edi
test eax, eax
je case.0x433d43.527
mov edi, dword [eax + 0x74]
lea esi, [eax + 8]
cmp edx, 0x200
ja 0x433d2b
je 0x433cc2
lea eax, [edx - 7]
cmp eax, 0xfe
ja case.0x433d43.527
movzx eax, byte [eax + 0x433f18]
jmp dword [eax*4 + 0x433f04]
cmp edx, 0x100
je 0x433936
cmp edx, 0x104
je 0x433936
xor bl, bl
jmp 0x433938
mov bl, 1
cmp dword [ebp + 8], 0x100
mov byte [esp + 0x20], bl
jae case.0x433d43.527
call fcn.00432a30
mov esi, dword [ebp + 8]
cmp esi, 0xd
jne 0x433969
mov eax, dword [ebp + 0xc]
shr eax, 0x10
test eax, 0x100
mov eax, 0x10d
cmovne esi, eax
mov ecx, esi
call fcn.00433380
test eax, eax
je 0x433982
push ecx
push esi
mov dl, bl
mov ecx, eax
call fcn.00432840
add esp, 8
cmp esi, 0x10
jne 0x433a54
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0xa0
call edi
shr eax, 0xf
and al, 1
cmp al, bl
jne 0x4339e7
mov eax, dword [0x4e40a0]
cmp byte [eax + 0x3769], 0
lea esi, [eax + 8]
je 0x4339d3
test bl, bl
je 0x4339c0
movss xmm3, dword [0x4d378c]
jmp 0x4339c3
xorps xmm3, xmm3
push dword [esp + 0x20]
mov ecx, esi
push 0x210
call fcn.0040cf40
mov dword [esi + 0x334], 0x210
mov dword [esi + 0x8f4], 0xa0
push 0xa1
call edi
shr eax, 0xf
and al, 1
cmp al, bl
jne case.0x433d43.527
mov esi, dword [0x4e40a0]
cmp byte [esi + 0x3769], 0
je 0x433a2c
test bl, bl
je 0x433a18
movss xmm3, dword [0x4d378c]
jmp 0x433a1b
xorps xmm3, xmm3
push dword [esp + 0x20]
lea ecx, [esi + 8]
push 0x214
call fcn.0040cf40
mov dword [esi + 0x340], 0x214
xor eax, eax
mov dword [esi + 0x90c], 0xa1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0045d520
mov esp, ebp
pop ebp
ret
cmp esi, 0x11
jne 0x433b26
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0xa2
call edi
shr eax, 0xf
and al, 1
cmp al, bl
jne 0x433ab9
mov eax, dword [0x4e40a0]
cmp byte [eax + 0x3769], 0
lea esi, [eax + 8]
je 0x433aa5
test bl, bl
je 0x433a92
movss xmm3, dword [0x4d378c]
jmp 0x433a95
xorps xmm3, xmm3
push dword [esp + 0x20]
mov ecx, esi
push 0x20f
call fcn.0040cf40
mov dword [esi + 0x33c], 0x20f
mov dword [esi + 0x8f0], 0xa2
push 0xa3
call edi
shr eax, 0xf
and al, 1
cmp al, bl
jne case.0x433d43.527
mov esi, dword [0x4e40a0]
cmp byte [esi + 0x3769], 0
je 0x433afe
test bl, bl
je 0x433aea
movss xmm3, dword [0x4d378c]
jmp 0x433aed
xorps xmm3, xmm3
push dword [esp + 0x20]
lea ecx, [esi + 8]
push 0x213
call fcn.0040cf40
mov dword [esi + 0x348], 0x213
xor eax, eax
mov dword [esi + 0x908], 0xa3
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0045d520
mov esp, ebp
pop ebp
ret
cmp esi, 0x12
jne case.0x433d43.527
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0xa4
call edi
shr eax, 0xf
and al, 1
cmp al, bl
jne 0x433b8b
mov eax, dword [0x4e40a0]
cmp byte [eax + 0x3769], 0
lea esi, [eax + 8]
je 0x433b77
test bl, bl
je 0x433b64
movss xmm3, dword [0x4d378c]
jmp 0x433b67
xorps xmm3, xmm3
push dword [esp + 0x20]
mov ecx, esi
push 0x211
call fcn.0040cf40
mov dword [esi + 0x344], 0x211
mov dword [esi + 0x8f8], 0xa4
push 0xa5
call edi
shr eax, 0xf
and al, 1
cmp al, bl
jne case.0x433d43.527
mov esi, dword [0x4e40a0]
cmp byte [esi + 0x3769], 0
je 0x433bd0
test bl, bl
je 0x433bbc
movss xmm3, dword [0x4d378c]
jmp 0x433bbf
xorps xmm3, xmm3
push dword [esp + 0x20]
lea ecx, [esi + 8]
push 0x215
call fcn.0040cf40
mov dword [esi + 0x350], 0x215
xor eax, eax
mov dword [esi + 0x910], 0xa5
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0045d520
mov esp, ebp
pop ebp
ret
cmp edx, 7
sete al
movzx eax, al
push eax
call fcn.0040d390
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0045d520
mov esp, ebp
pop ebp
ret
push ebx
call dword [sym.imp.USER32.dll_IsWindowUnicode]
test eax, eax
je 0x433c53
mov ecx, dword [ebp + 8]
lea eax, [ecx - 1]
cmp eax, 0xfffe
ja case.0x433d43.527
push ecx
mov ecx, esi
call fcn.0040cd80
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0045d520
mov esp, ebp
pop ebp
ret
push 1
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0
push eax
push 1
lea eax, [ebp + 8]
push eax
push 1
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movzx eax, word [esp + 0x20]
mov ecx, esi
push eax
call fcn.0040cd30
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0045d520
mov esp, ebp
pop ebp
ret
cmp word [ebp + 0xc], 1
jne case.0x433d43.527
call fcn.00432710
test al, al
je case.0x433d43.527
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0045d520
mov esp, ebp
pop ebp
ret
cmp byte [edi + 8], 0
mov dword [edi + 4], ebx
jne 0x433cf6
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x10
push eax
mov dword [esp + 0x18], 2
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], 0
call dword [sym.imp.USER32.dll_TrackMouseEvent]
mov byte [edi + 8], 1
mov ecx, dword [ebp + 0xc]
mov eax, ecx
shr eax, 0x10
cwde
movd xmm2, eax
movsx eax, cx
mov ecx, esi
cvtdq2ps xmm2, xmm2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
call fcn.0040d0a0
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0045d520
mov esp, ebp
pop ebp
ret
lea eax, [edx - 0x201]
cmp eax, 0xa2
ja case.0x433d43.527
movzx eax, byte [eax + 0x434034]
jmp dword [eax*4 + 0x434018]
cmp dword [edi + 4], ebx
jne 0x433d56
mov dword [edi + 4], 0
movss xmm1, dword [0x4d3844]
mov ecx, esi
movaps xmm2, xmm1
mov byte [edi + 8], 0
call fcn.0040d0a0
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0045d520
mov esp, ebp
pop ebp
ret
cmp edx, 0x204
je 0x433d92
xor esi, esi
cmp edx, 0x206
jne 0x433d97
mov esi, 1
cmp edx, 0x207
je 0x433da7
cmp edx, 0x209
jne 0x433dac
mov esi, 2
cmp edx, 0x20b
je 0x433dbc
cmp edx, 0x20d
jne 0x433dcc
mov esi, dword [ebp + 8]
shr esi, 0x10
dec esi
neg esi
sbb esi, esi
neg esi
add esi, 3
cmp dword [edi + 0xc], 0
jne 0x433de3
call dword [sym.imp.USER32.dll_GetCapture]
test eax, eax
jne 0x433de3
push ebx
call dword [sym.imp.USER32.dll_SetCapture]
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x20]
bts eax, esi
push 1
push esi
mov dword [edi + 0xc], eax
lea ecx, [ecx + 8]
call fcn.0040d240
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0045d520
mov esp, ebp
pop ebp
ret
xor ebx, ebx
cmp edx, 0x205
sete bl
cmp edx, 0x208
jne 0x433e29
mov ebx, 2
jmp 0x433e41
cmp edx, 0x20c
jne 0x433e41
mov ebx, dword [ebp + 8]
shr ebx, 0x10
dec ebx
neg ebx
sbb ebx, ebx
neg ebx
add ebx, 3
mov eax, dword [edi + 0xc]
btr eax, ebx
mov dword [edi + 0xc], eax
test eax, eax
jne 0x433e60
call dword [sym.imp.USER32.dll_GetCapture]
cmp eax, dword [esp + 0xc]
jne 0x433e60
call dword [sym.imp.USER32.dll_ReleaseCapture]
push 0
push ebx
mov ecx, esi
call fcn.0040d240
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0045d520
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
xorps xmm1, xmm1
shr eax, 0x10
mov ecx, esi
cwde
movd xmm2, eax
cvtdq2ps xmm2, xmm2
divss xmm2, dword [0x4d37fc]
call fcn.0040d2d0
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0045d520
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
xorps xmm2, xmm2
shr eax, 0x10
mov ecx, esi
cwde
movd xmm1, eax
cvtdq2ps xmm1, xmm1
divss xmm1, dword [0x4d37fc]
call fcn.0040d2d0
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0045d520
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 8], 7
jne case.0x433d43.527
mov byte [edi + 0x25], 1
mov ecx, dword [esp + 0x24]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0045d520
mov esp, ebp
pop ebp
ret