Function at 0x439150
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x38
push esi
push edi
push 0
push 0xb371a0
call fcn.00405cc0
mov edi, eax
add esp, 8
mov dword [esp + 0x14], edi
test edi, edi
je 0x439dc7
cmp byte [0x46bcf9], 0
je 0x4391a0
push 0
push 0xc94c40
xor cl, cl
call fcn.00405880
push 0
push 0xc94c44
xor cl, cl
call fcn.00405880
add esp, 0x10
cmp byte [0x46bd00], 0
je 0x4391cb
push 0
push 0xb3b9c0
mov ecx, 1
call fcn.00405ff0
push 0
push 0xb3b9c4
xor ecx, ecx
call fcn.00405ff0
add esp, 0x10
cmp byte [0x46bcf8], 0
mov ecx, 0xeb
mov eax, 0x75
cmovne eax, ecx
push 0
push 0x5f660e
mov cl, al
mov dword [esp + 0x18], eax
call fcn.00405880
mov cl, byte [esp + 0x18]
push 0
push 0x5f6686
call fcn.00405880
add esp, 0x10
lea ecx, [esp + 0xc]
cmp byte [0x46bcf5], 0
mov edx, 3
push 0
push 0x502a95
je 0x439266
mov word [esp + 0x14], 0xcc2
mov byte [esp + 0x16], 0
call fcn.004060e0
lea eax, [edi + 0x62f0]
xorps xmm1, xmm1
push 0
push eax
call fcn.004061d0
lea eax, [edi + 0x62f4]
xorps xmm1, xmm1
push 0
push eax
call fcn.004061d0
lea eax, [edi + 0x62fc]
xorps xmm1, xmm1
push 0
push eax
call fcn.004061d0
add esp, 0x20
jmp 0x43927a
mov word [esp + 0x14], 0x8d56
mov byte [esp + 0x16], 0x44
call fcn.004060e0
add esp, 8
cmp byte [0x46bcf6], 0
lea ecx, [esp + 0x20]
push 0
mov edx, 7
push 0x513d9a
je 0x4392a9
mov dword [esp + 0x28], 0x2b8
mov word [esp + 0x2c], 0x9000
mov byte [esp + 0x2e], 0x90
jmp 0x4392bd
mov dword [esp + 0x28], 0xf085b70f
mov word [esp + 0x2c], 0xfffe
mov byte [esp + 0x2e], 0xff
call fcn.004060e0
movss xmm1, dword [0x457888]
add esp, 8
cmp byte [0x46bcfd], 0
push 0
push 0x90f80c
je 0x439346
call fcn.004061d0
movss xmm1, dword [0x457888]
push 0
push 0x90fdf8
call fcn.004061d0
push 0
push 0x90fe00
xorps xmm1, xmm1
call fcn.004061d0
push 0
push 0x90fe04
xorps xmm1, xmm1
call fcn.004061d0
push 0
push 0x90fe08
xorps xmm1, xmm1
call fcn.004061d0
add esp, 0x28
mov ecx, 0x45cb50
call fcn.0043ba00
mov ecx, 0x45fcd0
call fcn.0043ba00
mov ecx, 0x45dbd0
call fcn.0043ba00
jmp 0x4393bc
call fcn.004061d0
movss xmm1, dword [0x457888]
push 0
push 0x90fdf8
call fcn.004061d0
movss xmm1, dword [0x45786c]
push 0
push 0x90fe00
call fcn.004061d0
movss xmm1, dword [0x45787c]
push 0
push 0x90fe04
call fcn.004061d0
movss xmm1, dword [0x457874]
push 0
push 0x90fe08
call fcn.004061d0
add esp, 0x28
mov ecx, 0x45cb50
call fcn.0043b930
mov ecx, 0x45fcd0
call fcn.0043b930
mov ecx, 0x45dbd0
call fcn.0043b930
cmp byte [0x461fe5], 0
jne 0x4395c1
xor ecx, ecx
mov dword [esp + 0x10], 0x462074
mov dword [esp + 0xc], ecx
sub esp, 0xc
mov dword [esp + 0x24], ecx
mov edi, esp
mov dword [esp + 0x28], 0xb4
push 8
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
call fcn.00406871
add esp, 4
mov esi, eax
lea eax, [esp + 0x24]
mov dword [edi], esi
mov dword [edi + 4], esi
push 8
push eax
lea ecx, [esi + 8]
push esi
mov dword [edi + 8], ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
lea eax, [esi + 8]
mov ecx, 0xb541d0
mov dword [edi + 4], eax
call fcn.0043b300
add esp, 0xc
push 0
push eax
call fcn.00405970
mov ecx, dword [esp + 0x18]
push ecx
mov edi, esp
mov dword [esp + 0x38], 0xb0
push 8
mov dword [ecx - 4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
call fcn.00406871
add esp, 4
mov esi, eax
lea eax, [esp + 0x34]
mov dword [edi], esi
mov dword [edi + 4], esi
push 8
push eax
lea ecx, [esi + 8]
push esi
mov dword [edi + 8], ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
lea eax, [esi + 8]
mov ecx, 0xb541d0
mov dword [edi + 4], eax
call fcn.0043b300
add esp, 0xc
push 0
push eax
call fcn.00405970
mov ecx, dword [esp + 0x18]
push ecx
mov edi, esp
mov dword [esp + 0x40], 0x90
push 8
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
call fcn.00406871
mov esi, eax
add esp, 4
mov dword [edi], esi
lea eax, [esp + 0x3c]
mov dword [edi + 4], esi
lea ecx, [esi + 8]
mov dword [edi + 8], ecx
push 8
push eax
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
lea eax, [esi + 8]
mov ecx, 0xb541d0
mov dword [edi + 4], eax
call fcn.0043b300
add esp, 0xc
push 0
push eax
call fcn.00405970
mov ecx, dword [esp + 0x18]
push ecx
mov edi, esp
mov dword [esp + 0x48], 0x9c
push 8
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
call fcn.00406871
add esp, 4
mov esi, eax
lea eax, [esp + 0x44]
mov dword [edi], esi
mov dword [edi + 4], esi
push 8
push eax
lea ecx, [esi + 8]
push esi
mov dword [edi + 8], ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
lea eax, [esi + 8]
mov ecx, 0xb541d0
mov dword [edi + 4], eax
call fcn.0043b300
add esp, 0xc
push 0
push eax
call fcn.00405b00
mov eax, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 0xc]
add ecx, 4
mov byte [0x461fe5], 1
mov dword [esp + 0xc], ecx
movss dword [eax + 8], xmm0
add eax, 0x14
mov dword [esp + 0x10], eax
cmp eax, 0x46bcb4
jl 0x4393d7
mov edi, dword [esp + 0x14]
cmp byte [0x46bcfb], 0
push 0
push 0xaf28f0
je 0x439636
call fcn.00405970
add esp, 8
cmp eax, 0x7d0
jge 0x4395f6
push 0
push 0xaf28f0
call fcn.00405970
add esp, 8
mov dword [0x45b048], eax
jmp 0x4395fb
mov eax, dword [0x45b048]
cmp eax, 0xffffffff
je 0x4396b5
sub esp, 0xc
shl eax, 2
mov ecx, esp
mov dword [esp + 0x24], eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x28], 0xb4
lea edx, [esp + 0x24]
push ecx
push eax
push edx
call fcn.00405340
mov ecx, 0xb541d0
call fcn.0043b300
xor ecx, ecx
jmp 0x4396a7
call fcn.00405970
add esp, 8
cmp eax, 0x7d0
jge 0x43965e
push 0
push 0xaf28f0
call fcn.00405970
mov ecx, eax
add esp, 8
mov dword [0x45b048], ecx
jmp 0x439664
mov ecx, dword [0x45b048]
cmp ecx, 0xffffffff
je 0x4396b5
lea eax, [ecx + ecx*4]
mov dword [esp + 0x1c], 0xb4
mov esi, dword [eax*4 + 0x462070]
lea edx, [esp + 0x18]
sub esp, 0xc
lea eax, [ecx*4]
mov ecx, esp
mov dword [esp + 0x24], eax
lea eax, [esp + 0x2c]
push ecx
push eax
push edx
call fcn.00405340
mov ecx, 0xb541d0
call fcn.0043b300
mov ecx, esi
add esp, 0xc
push 0
push eax
call fcn.00405ff0
add esp, 8
cmp byte [0x46bd02], 0
push 0
push 0xaf28f0
je 0x43972d
call fcn.00405970
add esp, 8
cmp eax, 0x7d0
jge 0x4396ea
push 0
push 0xaf28f0
call fcn.00405970
add esp, 8
mov dword [0x45b048], eax
jmp 0x4396ef
mov eax, dword [0x45b048]
cmp eax, 0xffffffff
je 0x4397ac
sub esp, 0xc
shl eax, 2
mov ecx, esp
mov dword [esp + 0x24], eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x28], 0xb0
lea edx, [esp + 0x24]
push ecx
push eax
push edx
call fcn.00405340
mov ecx, 0xb541d0
call fcn.0043b300
mov ecx, 0xc350
jmp 0x43979e
call fcn.00405970
add esp, 8
cmp eax, 0x7d0
jge 0x439755
push 0
push 0xaf28f0
call fcn.00405970
mov ecx, eax
add esp, 8
mov dword [0x45b048], ecx
jmp 0x43975b
mov ecx, dword [0x45b048]
cmp ecx, 0xffffffff
je 0x4397ac
lea eax, [ecx + ecx*4]
mov dword [esp + 0x1c], 0xb0
mov esi, dword [eax*4 + 0x462074]
lea edx, [esp + 0x18]
sub esp, 0xc
lea eax, [ecx*4]
mov ecx, esp
mov dword [esp + 0x24], eax
lea eax, [esp + 0x2c]
push ecx
push eax
push edx
call fcn.00405340
mov ecx, 0xb541d0
call fcn.0043b300
mov ecx, esi
add esp, 0xc
push 0
push eax
call fcn.00405ff0
add esp, 8
cmp byte [0x46bcf7], 0
push 0
push 0xaf28f0
je 0x439824
call fcn.00405970
add esp, 8
cmp eax, 0x7d0
jge 0x4397e1
push 0
push 0xaf28f0
call fcn.00405970
add esp, 8
mov dword [0x45b048], eax
jmp 0x4397e6
mov eax, dword [0x45b048]
cmp eax, 0xffffffff
je 0x4398a3
sub esp, 0xc
shl eax, 2
mov ecx, esp
mov dword [esp + 0x24], eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x28], 0x90
lea edx, [esp + 0x24]
push ecx
push eax
push edx
call fcn.00405340
mov ecx, 0xb541d0
call fcn.0043b300
mov ecx, 0xf4240
jmp 0x439895
call fcn.00405970
add esp, 8
cmp eax, 0x7d0
jge 0x43984c
push 0
push 0xaf28f0
call fcn.00405970
mov ecx, eax
add esp, 8
mov dword [0x45b048], ecx
jmp 0x439852
mov ecx, dword [0x45b048]
cmp ecx, 0xffffffff
je 0x4398a3
lea eax, [ecx + ecx*4]
mov dword [esp + 0x1c], 0x90
mov esi, dword [eax*4 + 0x462078]
lea edx, [esp + 0x18]
sub esp, 0xc
lea eax, [ecx*4]
mov ecx, esp
mov dword [esp + 0x24], eax
lea eax, [esp + 0x2c]
push ecx
push eax
push edx
call fcn.00405340
mov ecx, 0xb541d0
call fcn.0043b300
mov ecx, esi
add esp, 0xc
push 0
push eax
call fcn.00405ff0
add esp, 8
cmp byte [0x46bcfc], 0
push 0
push 0xaf28f0
je 0x43991e
call fcn.00405970
add esp, 8
cmp eax, 0x7d0
jge 0x4398d8
push 0
push 0xaf28f0
call fcn.00405970
add esp, 8
mov dword [0x45b048], eax
jmp 0x4398dd
mov eax, dword [0x45b048]
cmp eax, 0xffffffff
je 0x4399a9
sub esp, 0xc
shl eax, 2
mov ecx, esp
mov dword [esp + 0x24], eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x28], 0x9c
lea edx, [esp + 0x24]
push ecx
push eax
push edx
call fcn.00405340
mov ecx, 0xb541d0
call fcn.0043b300
movss xmm1, dword [0x4578bc]
jmp 0x43999b
call fcn.00405970
add esp, 8
cmp eax, 0x7d0
jge 0x439946
push 0
push 0xaf28f0
call fcn.00405970
mov ecx, eax
add esp, 8
mov dword [0x45b048], ecx
jmp 0x43994c
mov ecx, dword [0x45b048]
cmp ecx, 0xffffffff
je 0x4399a9
lea eax, [ecx + ecx*4]
mov dword [esp + 0x1c], 0x9c
movss xmm0, dword [eax*4 + 0x46207c]
lea edx, [esp + 0x18]
sub esp, 0xc
movss dword [esp + 0x1c], xmm0
lea eax, [ecx*4]
mov ecx, esp
mov dword [esp + 0x24], eax
lea eax, [esp + 0x2c]
push ecx
push eax
push edx
call fcn.00405340
mov ecx, 0xb541d0
call fcn.0043b300
movss xmm1, dword [esp + 0x1c]
add esp, 0xc
push 0
push eax
call fcn.004061d0
add esp, 8
cmp byte [0x46bd0f], 0
je 0x439a1c
push 0x24
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x439a1c
lea eax, [edi + 0x6fac]
push 0
push eax
call fcn.00405b00
lea eax, [edi + 0x6fb0]
movss dword [esp + 0x18], xmm0
push 0
push eax
call fcn.00405b00
lea eax, [edi + 0x6fb4]
movss dword [esp + 0x1c], xmm0
push 0
push eax
call fcn.00405b00
movss xmm1, dword [esp + 0x28]
add esp, 0x18
movss dword [0x462068], xmm1
movss xmm1, dword [esp + 0xc]
movss dword [0x46201c], xmm1
movss dword [0x462058], xmm0
cmp byte [0x46bd10], 0
je 0x439b3e
xor esi, esi
nop dword [eax + eax]
lea eax, [esi*4 + 0xb37120]
cdq
push edx
push eax
call fcn.00405970
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
lea eax, [edi + 0x6348]
push 0
push eax
jne 0x439a6a
call fcn.004062c0
add esp, 4
mov ecx, esi
call fcn.00405eb0
add esp, 4
jmp 0x439b34
call fcn.004062c0
add esp, 4
mov byte [esp + 0xf], al
mov ecx, esi
call fcn.00405eb0
mov ecx, eax
add esp, 4
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
test eax, eax
jle 0x439b34
movzx eax, byte [esp + 0xb]
cmp esi, eax
je 0x439b34
lea eax, [edi + 0x70c4]
push 0
push eax
call fcn.00405b00
lea eax, [edi + 0x70d4]
movss dword [esp + 0x14], xmm0
push 0
push eax
call fcn.00405b00
lea eax, [edi + 0x70cc]
movss dword [esp + 0x28], xmm0
push 0
push eax
call fcn.00405b00
movss xmm1, dword [esp + 0x24]
addss xmm1, dword [0x457894]
mov eax, dword [esp + 0x28]
add eax, 0x70c4
movss dword [esp + 0x38], xmm0
push 0
push eax
call fcn.004061d0
mov eax, dword [esp + 0x30]
movss xmm1, dword [esp + 0x38]
add eax, 0x70d4
push 0
push eax
call fcn.004061d0
mov eax, dword [esp + 0x38]
movss xmm1, dword [esp + 0x48]
add eax, 0x70cc
push 0
push eax
call fcn.004061d0
add esp, 0x30
inc esi
cmp esi, 0x20
jl 0x439a30
cmp byte [0x46bd15], 0
je 0x439c27
mov eax, dword [esp + 0x14]
mov edi, 4
add eax, 0x6348
mov dword [esp + 0x20], eax
nop dword [eax]
push 0
push eax
call fcn.004062c0
movzx eax, al
add esp, 8
cmp eax, edi
je 0x439c19
lea eax, [edi*4 + 0xb37120]
cdq
push edx
push eax
call fcn.00405970
mov esi, eax
add esp, 8
test esi, esi
je 0x439c19
movss xmm1, dword [0x462068]
lea ecx, [esi + 0x70c4]
push 0
push ecx
call fcn.004061d0
movss xmm1, dword [0x46201c]
lea eax, [esi + 0x70cc]
push 0
push eax
call fcn.004061d0
movss xmm1, dword [0x462058]
lea eax, [esi + 0x70d4]
push 0
push eax
call fcn.004061d0
movss xmm1, dword [0x462068]
lea eax, [esi + 0x6fac]
push 0
push eax
call fcn.004061d0
movss xmm1, dword [0x46201c]
lea eax, [esi + 0x6fb0]
push 0
push eax
call fcn.004061d0
movss xmm1, dword [0x462058]
lea eax, [esi + 0x6fb4]
push 0
push eax
call fcn.004061d0
add esp, 0x30
mov eax, dword [esp + 0x20]
inc edi
cmp edi, 0x20
jl 0x439b60
cmp byte [0x46bd14], 0
je 0x439d2d
mov eax, dword [esp + 0x14]
xor edi, edi
add eax, 0x6348
mov dword [esp + 0x10], edi
mov dword [esp + 0x20], eax
push 0
push eax
call fcn.004062c0
movzx eax, al
add esp, 8
cmp eax, edi
je 0x439d12
lea eax, [edi*4 + 0xb37120]
cdq
push edx
push eax
call fcn.00405970
mov esi, eax
add esp, 8
test esi, esi
je 0x439d12
movd xmm1, dword [esp + 0x10]
lea ecx, [esi + 0x70c4]
cvtdq2ps xmm1, xmm1
push 0
push ecx
addss xmm1, dword [0x462068]
call fcn.004061d0
movss xmm1, dword [0x46201c]
lea eax, [esi + 0x70cc]
push 0
push eax
call fcn.004061d0
movss xmm1, dword [0x462058]
lea eax, [esi + 0x70d4]
push 0
push eax
call fcn.004061d0
movd xmm0, dword [esp + 0x28]
lea eax, [esi + 0x6fac]
cvtdq2ps xmm1, xmm0
push 0
push eax
addss xmm1, dword [0x462068]
call fcn.004061d0
movss xmm1, dword [0x46201c]
lea eax, [esi + 0x6fb0]
push 0
push eax
call fcn.004061d0
movss xmm1, dword [0x462058]
lea eax, [esi + 0x6fb4]
push 0
push eax
call fcn.004061d0
add esp, 0x30
mov eax, dword [esp + 0x10]
inc edi
add eax, 0x17
mov dword [esp + 0x10], eax
cmp eax, 0x2e0
mov eax, dword [esp + 0x20]
jl 0x439c47
cmp byte [0x46bd0d], 0
mov ecx, 0x45b290
je 0x439d42
call fcn.0043ba00
jmp 0x439d47
call fcn.0043b930
cmp byte [0x46bd03], 0
mov ecx, 0x45fee0
je 0x439d5c
call fcn.0043ba00
jmp 0x439d61
call fcn.0043b930
cmp byte [0x46bd0e], 0
mov ecx, 0x461380
je 0x439d80
call fcn.0043ba00
mov ecx, 0x460f60
call fcn.0043ba00
jmp 0x439d8f
call fcn.0043b930
mov ecx, 0x460f60
call fcn.0043b930
cmp byte [0x46bd13], 0
mov ecx, 0x460930
je 0x439da4
call fcn.0043ba00
jmp 0x439da9
call fcn.0043b930
cmp byte [0x46bcff], 0
mov ecx, 0x45cf70
je 0x439dc2
call fcn.0043ba00
pop edi
pop esi
mov esp, ebp
pop ebp
ret
call fcn.0043b930
pop edi
pop esi
mov esp, ebp
pop ebp
ret