Function at 0x10040641
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x48
push esi
mov esi, dword [0x100dc8dc]
mov eax, ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], esi
push edi
mov edi, edx
test esi, esi
je case.0x10040d67.527
mov edx, dword [esi + 0x6c]
lea ecx, [esi + 8]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
cmp edi, 0x200
ja 0x10040d4f
je 0x10040c97
lea eax, [edi - 7]
cmp eax, 0xfe
ja case.0x10040d67.527
movzx eax, byte [eax + 0x1004102c]
jmp dword [eax*4 + 0x10041018]
cmp edi, 0x100
je 0x10040656
mov byte [esp + 8], 0
cmp edi, 0x104
jne 0x1004065b
mov byte [esp + 8], 1
mov edi, dword [ebp + 8]
cmp edi, 0x100
jae case.0x10040d67.527
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
mov byte [esp + 0x10], al
je 0x10040687
movss xmm3, dword [0x1005e6c4]
jmp 0x1004068a
xorps xmm3, xmm3
push dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov ecx, esi
push 0x281
call fcn.10003fb0
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
mov byte [esp + 0x10], al
je 0x100406bb
movss xmm3, dword [0x1005e6c4]
jmp 0x100406be
xorps xmm3, xmm3
push dword [esp + 0x10]
mov ecx, esi
push 0x282
call fcn.10003fb0
push 0x12
call dword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
mov byte [esp + 0x10], al
je 0x100406eb
movss xmm3, dword [0x1005e6c4]
jmp 0x100406ee
xorps xmm3, xmm3
push dword [esp + 0x10]
mov ecx, esi
push 0x283
call fcn.10003fb0
push 0x5d
call dword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
mov byte [esp + 0x10], al
je 0x1004071b
movss xmm3, dword [0x1005e6c4]
jmp 0x1004071e
xorps xmm3, xmm3
push dword [esp + 0x10]
mov ecx, esi
push 0x284
call fcn.10003fb0
cmp edi, 0xd
jne 0x10040746
mov eax, dword [ebp + 0xc]
shr eax, 0x10
test eax, 0x100
mov eax, 0x10d
cmovne edi, eax
mov ecx, edi
call fcn.100400a0
test eax, eax
je 0x10040761
mov dl, byte [esp + 8]
push ecx
push edi
mov ecx, eax
call fcn.1003f640
add esp, 8
cmp edi, 0x10
jne 0x10040857
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0xa0
call esi
mov edi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
shr eax, 0xf
and al, 1
cmp al, byte [esp + 8]
jne 0x100407e3
mov eax, dword [0x100dc8dc]
test eax, eax
jne 0x100407aa
push 0xe85
push str.C:UsersAdministratorDesktopCharlinhoCharlenoexample_win32_directx9imguiimgui.cpp
push str.GImGui___0___No_current_context._Did_you_call_ImGui::CreateContext___and_ImGui::SetCurrentContext_____
call edi
mov eax, dword [0x100dc8dc]
add esp, 0xc
add eax, 8
cmp byte [esp + 8], 0
mov dword [esp + 0x10], eax
je 0x100407c2
movss xmm3, dword [0x1005e6c4]
jmp 0x100407c5
xorps xmm3, xmm3
push dword [esp + 8]
mov ecx, eax
push 0x210
call fcn.10003fb0
mov eax, dword [esp + 0x10]
mov dword [eax + 0x32c], 0x210
push 0xa1
call esi
shr eax, 0xf
and al, 1
cmp al, byte [esp + 8]
jne case.0x10040d67.527
mov eax, dword [0x100dc8dc]
test eax, eax
jne 0x1004081b
push 0xe85
push str.C:UsersAdministratorDesktopCharlinhoCharlenoexample_win32_directx9imguiimgui.cpp
push str.GImGui___0___No_current_context._Did_you_call_ImGui::CreateContext___and_ImGui::SetCurrentContext_____
call edi
mov eax, dword [0x100dc8dc]
add esp, 0xc
cmp byte [esp + 8], 0
lea esi, [eax + 8]
je 0x1004082f
movss xmm0, dword [0x1005e6c4]
jmp 0x10040832
xorps xmm0, xmm0
push dword [esp + 8]
movaps xmm3, xmm0
mov ecx, esi
push 0x214
call fcn.10003fb0
mov dword [esi + 0x330], 0x214
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp edi, 0x11
jne 0x1004094d
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0xa2
call esi
mov edi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
shr eax, 0xf
and al, 1
cmp al, byte [esp + 8]
jne 0x100408d9
mov eax, dword [0x100dc8dc]
test eax, eax
jne 0x100408a0
push 0xe85
push str.C:UsersAdministratorDesktopCharlinhoCharlenoexample_win32_directx9imguiimgui.cpp
push str.GImGui___0___No_current_context._Did_you_call_ImGui::CreateContext___and_ImGui::SetCurrentContext_____
call edi
mov eax, dword [0x100dc8dc]
add esp, 0xc
add eax, 8
cmp byte [esp + 8], 0
mov dword [esp + 0x10], eax
je 0x100408b8
movss xmm3, dword [0x1005e6c4]
jmp 0x100408bb
xorps xmm3, xmm3
push dword [esp + 8]
mov ecx, eax
push 0x20f
call fcn.10003fb0
mov eax, dword [esp + 0x10]
mov dword [eax + 0x334], 0x20f
push 0xa3
call esi
shr eax, 0xf
and al, 1
cmp al, byte [esp + 8]
jne case.0x10040d67.527
mov eax, dword [0x100dc8dc]
test eax, eax
jne 0x10040911
push 0xe85
push str.C:UsersAdministratorDesktopCharlinhoCharlenoexample_win32_directx9imguiimgui.cpp
push str.GImGui___0___No_current_context._Did_you_call_ImGui::CreateContext___and_ImGui::SetCurrentContext_____
call edi
mov eax, dword [0x100dc8dc]
add esp, 0xc
cmp byte [esp + 8], 0
lea esi, [eax + 8]
je 0x10040925
movss xmm0, dword [0x1005e6c4]
jmp 0x10040928
xorps xmm0, xmm0
push dword [esp + 8]
movaps xmm3, xmm0
mov ecx, esi
push 0x213
call fcn.10003fb0
mov dword [esi + 0x338], 0x213
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp edi, 0x12
jne case.0x10040d67.527
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0xa4
call esi
mov edi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
shr eax, 0xf
and al, 1
cmp al, byte [esp + 8]
jne 0x100409cf
mov eax, dword [0x100dc8dc]
test eax, eax
jne 0x10040996
push 0xe85
push str.C:UsersAdministratorDesktopCharlinhoCharlenoexample_win32_directx9imguiimgui.cpp
push str.GImGui___0___No_current_context._Did_you_call_ImGui::CreateContext___and_ImGui::SetCurrentContext_____
call edi
mov eax, dword [0x100dc8dc]
add esp, 0xc
add eax, 8
cmp byte [esp + 8], 0
mov dword [esp + 0x10], eax
je 0x100409ae
movss xmm3, dword [0x1005e6c4]
jmp 0x100409b1
xorps xmm3, xmm3
push dword [esp + 8]
mov ecx, eax
push 0x211
call fcn.10003fb0
mov eax, dword [esp + 0x10]
mov dword [eax + 0x33c], 0x211
push 0xa5
call esi
shr eax, 0xf
and al, 1
cmp al, byte [esp + 8]
jne case.0x10040d67.527
mov eax, dword [0x100dc8dc]
test eax, eax
jne 0x10040a07
push 0xe85
push str.C:UsersAdministratorDesktopCharlinhoCharlenoexample_win32_directx9imguiimgui.cpp
push str.GImGui___0___No_current_context._Did_you_call_ImGui::CreateContext___and_ImGui::SetCurrentContext_____
call edi
mov eax, dword [0x100dc8dc]
add esp, 0xc
cmp byte [esp + 8], 0
lea esi, [eax + 8]
je 0x10040a1b
movss xmm0, dword [0x1005e6c4]
jmp 0x10040a1e
xorps xmm0, xmm0
push dword [esp + 8]
movaps xmm3, xmm0
mov ecx, esi
push 0x215
call fcn.10003fb0
mov dword [esi + 0x340], 0x215
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [esi + 8]
cmp eax, ecx
je 0x10040a62
push 0x565
push str.C:UsersAdministratorDesktopCharlinhoCharlenoexample_win32_directx9imguiimgui.cpp
push str.g.IO__this___Can_only_add_events_to_current_context._
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
xorps xmm0, xmm0
lea eax, [esp + 0x30]
movaps xmmword [esp + 0x30], xmm0
lea ecx, [esi + 0x3710]
cmp edi, 7
movq qword [esp + 0x40], xmm0
push eax
mov dword [esp + 0x34], 6
sete byte [esp + 0x3c]
call fcn.1001a480
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
test eax, eax
je case.0x10040d67.527
cmp eax, 0x10000
jae case.0x10040d67.527
movzx edx, ax
mov eax, edx
mov edi, edx
mov dword [esp + 8], eax
movzx eax, ax
mov dword [esp + 0x10], eax
test dx, dx
jne 0x10040ae6
cmp word [ecx + 0x36f4], dx
je case.0x10040d67.527
mov edx, dword [esp + 0x10]
and edi, 0xfc00
mov eax, edi
movzx edi, dx
jmp 0x10040b91
mov eax, edi
mov esi, 0xd800
mov dword [esp + 0x10], eax
and eax, 0xfc00
cmp ax, si
mov esi, dword [esp + 0x14]
jne 0x10040b7e
movzx eax, word [ecx + 0x36f4]
test ax, ax
je 0x10040b6f
lea eax, [esi + 8]
cmp eax, ecx
je 0x10040b2f
push 0x49c
push str.C:UsersAdministratorDesktopCharlinhoCharlenoexample_win32_directx9imguiimgui.cpp
push str.g.IO__this___Can_only_add_events_to_current_context._
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov eax, edi
add esp, 0xc
movzx edi, ax
lea eax, [esp + 0x18]
mov dword [esp + 0x2c], 0
xorps xmm0, xmm0
mov dword [esp + 0x18], 5
push eax
lea ecx, [esi + 0x3710]
movlpd qword [esp + 0x28], xmm0
mov dword [esp + 0x20], 2
mov dword [esp + 0x24], 0xfffd
call fcn.1001a480
mov ecx, dword [esp + 0xc]
movzx edx, di
mov word [ecx + 0x36f4], dx
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 8]
movzx edi, dx
movzx edx, word [ecx + 0x36f4]
test dx, dx
je 0x10040c0d
mov edx, 0xdc00
cmp ax, dx
je 0x10040bff
lea eax, [esi + 8]
cmp eax, ecx
je 0x10040bba
push 0x49c
push str.C:UsersAdministratorDesktopCharlinhoCharlenoexample_win32_directx9imguiimgui.cpp
push str.g.IO__this___Can_only_add_events_to_current_context._
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
lea eax, [esp + 0x18]
mov dword [esp + 0x2c], 0
xorps xmm0, xmm0
mov dword [esp + 0x18], 5
push eax
lea ecx, [esi + 0x3710]
movlpd qword [esp + 0x28], xmm0
mov dword [esp + 0x20], 2
mov dword [esp + 0x24], 0xfffd
call fcn.1001a480
mov esi, dword [0x100dc8dc]
mov ecx, dword [esp + 0xc]
jmp 0x10040c04
mov edi, 0xfffd
xor eax, eax
mov word [ecx + 0x36f4], ax
lea eax, [esi + 8]
movzx edi, di
cmp eax, ecx
je 0x10040c2f
push 0x49c
push str.C:UsersAdministratorDesktopCharlinhoCharlenoexample_win32_directx9imguiimgui.cpp
push str.g.IO__this___Can_only_add_events_to_current_context._
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
test edi, edi
je case.0x10040d67.527
lea eax, [esp + 0x18]
mov dword [esp + 0x2c], 0
xorps xmm0, xmm0
mov dword [esp + 0x18], 5
push eax
lea ecx, [esi + 0x3710]
movlpd qword [esp + 0x28], xmm0
mov dword [esp + 0x20], 2
mov dword [esp + 0x24], edi
call fcn.1001a480
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp word [ebp + 0xc], 1
jne case.0x10040d67.527
call fcn.1003f4f0
test al, al
je case.0x10040d67.527
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [edx + 8], 0
mov dword [edx + 4], eax
jne 0x10040cd9
mov dword [esp + 0x20], eax
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x1c], 0x10
mov dword [esp + 0x20], 2
mov dword [esp + 0x28], 0
call dword [sym.imp.USER32.dll_TrackMouseEvent]
mov eax, dword [esp + 8]
mov esi, dword [0x100dc8dc]
mov ecx, dword [esp + 0xc]
mov byte [eax + 8], 1
lea eax, [esi + 8]
cmp eax, ecx
je 0x10040cf8
push 0x53a
push str.C:UsersAdministratorDesktopCharlinhoCharlenoexample_win32_directx9imguiimgui.cpp
push str.g.IO__this___Can_only_add_events_to_current_context._
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
mov ecx, dword [ebp + 0xc]
xorps xmm0, xmm0
movsx eax, cx
movlpd qword [esp + 0x40], xmm0
shr ecx, 0x10
mov dword [esp + 0x30], 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movsx eax, cx
lea ecx, [esi + 0x3710]
mov dword [esp + 0x34], 1
movss dword [esp + 0x38], xmm0
movd xmm0, eax
lea eax, [esp + 0x30]
cvtdq2ps xmm0, xmm0
push eax
movss dword [esp + 0x40], xmm0
call fcn.1001a480
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [edi - 0x201]
cmp eax, 0xa2
ja case.0x10040d67.527
movzx eax, byte [eax + 0x10041148]
jmp dword [eax*4 + 0x1004112c]
mov edi, dword [esp + 0x10]
cmp dword [edx + 4], edi
jne 0x10040d7e
mov dword [edx + 4], 0
lea eax, [esi + 8]
mov byte [edx + 8], 0
cmp eax, ecx
je 0x10040da1
push 0x53a
push str.C:UsersAdministratorDesktopCharlinhoCharlenoexample_win32_directx9imguiimgui.cpp
push str.g.IO__this___Can_only_add_events_to_current_context._
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
lea eax, [esp + 0x30]
mov dword [esp + 0x30], 1
xorps xmm0, xmm0
mov dword [esp + 0x34], 1
push eax
lea ecx, [esi + 0x3710]
movlpd qword [esp + 0x44], xmm0
mov dword [esp + 0x3c], 0xff7fffff
mov dword [esp + 0x40], 0xff7fffff
call fcn.1001a480
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor esi, esi
cmp edi, 0x201
je 0x10040df4
cmp edi, 0x203
jne 0x10040df6
xor esi, esi
cmp edi, 0x204
je 0x10040e06
cmp edi, 0x206
jne 0x10040e0b
mov esi, 1
cmp edi, 0x207
je 0x10040e1b
cmp edi, 0x209
jne 0x10040e20
mov esi, 2
cmp edi, 0x20b
je 0x10040e30
cmp edi, 0x20d
jne 0x10040e40
mov esi, dword [ebp + 8]
shr esi, 0x10
dec esi
neg esi
sbb esi, esi
neg esi
add esi, 3
cmp dword [edx + 0xc], 0
jne 0x10040e63
call dword [sym.imp.USER32.dll_GetCapture]
test eax, eax
jne 0x10040e5b
mov edi, dword [esp + 0x10]
push edi
call dword [sym.imp.USER32.dll_SetCapture]
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov eax, dword [edx + 0xc]
push 1
bts eax, esi
push esi
mov dword [edx + 0xc], eax
call fcn.10004200
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor ecx, ecx
cmp edi, 0x205
sete cl
mov dword [esp + 8], ecx
cmp edi, 0x208
jne 0x10040e9a
mov ecx, 2
jmp 0x10040eb2
cmp edi, 0x20c
jne 0x10040eb6
mov ecx, dword [ebp + 8]
shr ecx, 0x10
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
add ecx, 3
mov dword [esp + 8], ecx
mov eax, dword [edx + 0xc]
btr eax, ecx
mov dword [edx + 0xc], eax
test eax, eax
jne 0x10040ed9
call dword [sym.imp.USER32.dll_GetCapture]
cmp eax, dword [esp + 0x10]
jne 0x10040ed5
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov ecx, dword [esp + 8]
push 0
push ecx
mov ecx, dword [esp + 0x14]
call fcn.10004200
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
shr eax, 0x10
cwde
movd xmm1, eax
lea eax, [esi + 8]
cvtdq2ps xmm1, xmm1
divss xmm1, dword [0x1005e7a4]
movss dword [esp + 0x14], xmm1
cmp eax, ecx
je 0x10040f2e
push 0x556
push str.C:UsersAdministratorDesktopCharlinhoCharlenoexample_win32_directx9imguiimgui.cpp
push str.g.IO__this___Can_only_add_events_to_current_context._
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
movss xmm1, dword [esp + 0x20]
add esp, 0xc
xorps xmm0, xmm0
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp case.0x10040d67.527
lea eax, [esp + 0x30]
movlpd qword [esp + 0x40], xmm0
push eax
lea ecx, [esi + 0x3710]
mov dword [esp + 0x34], 2
mov dword [esp + 0x38], 1
mov dword [esp + 0x3c], 0
movss dword [esp + 0x40], xmm1
call fcn.1001a480
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
shr eax, 0x10
cwde
movd xmm1, eax
lea eax, [esi + 8]
cvtdq2ps xmm1, xmm1
divss xmm1, dword [0x1005e7a4]
movss dword [esp + 0x14], xmm1
cmp eax, ecx
je 0x10040fbb
push 0x556
push str.C:UsersAdministratorDesktopCharlinhoCharlenoexample_win32_directx9imguiimgui.cpp
push str.g.IO__this___Can_only_add_events_to_current_context._
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
movss xmm1, dword [esp + 0x20]
add esp, 0xc
xorps xmm0, xmm0
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp case.0x10040d67.527
lea eax, [esp + 0x30]
movlpd qword [esp + 0x40], xmm0
push eax
lea ecx, [esi + 0x3710]
mov dword [esp + 0x34], 2
mov dword [esp + 0x38], 1
movss dword [esp + 0x3c], xmm1
mov dword [esp + 0x40], 0
call fcn.1001a480
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 8], 7
jne case.0x10040d67.527
mov byte [edx + 0x25], 1
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret