Function at 0x10039210
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10116676
mov eax, dword fs:[0]
push eax
sub esp, 0xc0
mov eax, dword [0x101453b8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x14], edi
mov esi, dword [edi + 0x1c]
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
add ecx, 0x14
push 0
mov eax, dword [esi + 0x14]
add edx, 0x8c
add edx, dword [esi + 0x10]
add eax, ecx
mov ecx, dword [esi + 8]
mov dword [ebp - 0x2c], eax
lea eax, [edi + 0x70]
push eax
push ecx
mov eax, esp
mov dword [ebp - 0x1c], edx
mov byte [eax + 3], cl
mov ecx, 0x10291c9c
mov word [eax], 0xcdcd
mov byte [eax + 2], 0xcd
mov eax, dword [ebp - 0x2c]
add eax, 0xfffffffe
push eax
lea eax, [edx + 0x14]
push eax
call fcn.100d8ce0
mov eax, dword [ebp - 0x14]
mov ecx, dword [0x10290d44]
mov esi, dword [ebp - 0x1c]
add esi, dword [edi + 0xc]
mov eax, dword [eax + 0x1c]
mov word [ebp - 0x18], 0
mov byte [ebp - 0x16], 0
lea edi, [esi - 0x14]
mov eax, dword [eax + 8]
mov byte [ebp - 0x15], al
mov eax, dword [ecx]
push dword [ebp - 0x18]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x10290d44]
mov eax, dword [ecx]
mov edx, dword [eax + 0x48]
mov eax, dword [ebp - 0x2c]
add eax, 8
push eax
push esi
mov esi, dword [ebp - 0x2c]
push esi
push edi
call edx
mov ecx, dword [ebp - 0x14]
lea edi, [esi + 7]
mov eax, dword [ecx + 0x88]
mov esi, dword [ecx + 0xc]
mov dword [ebp - 0x4c], eax
mov eax, dword [ecx + 0x1c]
mov ecx, dword [ebp - 0x1c]
add ecx, 0xffffffed
add esi, ecx
mov ecx, dword [0x10290d44]
mov al, byte [eax + 8]
mov byte [ebp - 0x49], al
push dword [ebp - 0x4c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x10290d44]
push edi
mov eax, dword [ecx]
mov edx, dword [eax + 0x40]
lea eax, [esi + 0x12]
push eax
mov eax, dword [ebp - 0x2c]
inc eax
push eax
push esi
call edx
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
add esi, 0xffffffed
mov eax, dword [ecx + 0x1c]
add esi, dword [ecx + 0xc]
mov ecx, dword [0x10290d44]
mov word [ebp - 0x18], 0x3232
mov eax, dword [eax + 8]
mov byte [ebp - 0x15], al
mov eax, dword [ecx]
mov byte [ebp - 0x16], 0x23
push dword [ebp - 0x18]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x10290d44]
push 0
push 0x96
push 0
mov eax, dword [ecx]
push edi
mov edx, dword [eax + 0x1ec]
lea eax, [esi + 0x12]
push eax
mov eax, dword [ebp - 0x2c]
inc eax
push eax
push esi
call edx
mov edi, dword [ebp - 0x14]
movss xmm1, dword [0x102978d8]
cmp byte [edi + 0x6c], 0
je 0x10039391
addss xmm1, dword [0x10135ae8]
jmp 0x10039399
subss xmm1, dword [0x10135ae8]
movss xmm0, dword [0x10135bb4]
comiss xmm1, xmm0
seta al
test al, al
je 0x100393b0
movaps xmm1, xmm0
jmp 0x100393c0
xorps xmm0, xmm0
comiss xmm0, xmm1
seta al
test al, al
je 0x100393c0
xorps xmm1, xmm1
movss dword [0x102978d8], xmm1
cmp byte [edi + 0x6c], 0
je 0x1003a060
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x20], eax
add ecx, 0xc
add eax, 0xa
mov dword [ebp - 0x44], eax
mov eax, dword [edi + 0x10]
add eax, ecx
mov ecx, dword [0x10290d44]
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 0x1c]
mov edi, dword [ebp - 0x1c]
dec edi
mov edx, dword [eax + 8]
mov eax, dword [ecx]
mov esi, dword [eax + 0x38]
movzx eax, dl
shl eax, 0x18
or eax, 0x3c3c3c
push eax
call esi
mov ecx, dword [0x10290d44]
mov esi, dword [ebp - 0x40]
mov eax, dword [ecx]
mov edx, dword [eax + 0x40]
mov eax, dword [ebp - 0x44]
add eax, 2
add eax, esi
push eax
mov eax, dword [ebp - 0x20]
add eax, 2
add eax, edi
push eax
push esi
push edi
call edx
mov ecx, dword [ebp - 0x14]
lea edi, [esi + 1]
mov eax, dword [ecx + 0x1c]
mov ecx, dword [0x10290d44]
mov edx, dword [eax + 8]
mov eax, dword [ecx]
mov esi, dword [eax + 0x38]
movzx eax, dl
shl eax, 0x18
or eax, 0x282828
push eax
call esi
mov ecx, dword [0x10290d44]
mov esi, dword [ebp - 0x1c]
add esi, dword [ebp - 0x20]
mov eax, dword [ecx]
mov edx, dword [eax + 0x40]
mov eax, dword [ebp - 0x44]
add eax, edi
push eax
push esi
push edi
push dword [ebp - 0x1c]
call edx
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff2
mov esi, dword [edx + 0xc]
mov edi, dword [edx + 0x10]
push dword [edx + 0x88]
add edi, 2
lea eax, [esi - 8]
mov dword [ebp - 0x54], edi
movd xmm0, eax
add esi, 0xffffffea
mov eax, dword [ebp - 0x20]
add eax, ecx
mov dword [ebp - 0x4c], esi
mov ecx, dword [0x10290d44]
mov dword [ebp - 0x18], eax
cvtdq2ps xmm0, xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
movss dword [ebp - 0x38], xmm0
call eax
mov edx, dword [ebp - 0x40]
mov ecx, dword [0x10290d44]
add edx, 5
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
cvttss2si esi, xmm0
add edx, esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x30], edx
push dword [ebp - 0x30]
mov edx, dword [ebp - 0x18]
add edx, esi
push edx
mov edx, dword [ebp - 0x40]
add edx, 5
push edx
push dword [ebp - 0x18]
call eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x1c]
mov ecx, dword [0x10290d44]
mov edx, dword [eax + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x34], eax
movzx eax, dl
shl eax, 0x18
or eax, 0x1a1a1a
push eax
call dword [ebp - 0x34]
mov ecx, dword [0x10290d44]
push dword [ebp - 0x30]
mov edx, dword [ebp - 0x18]
add edx, esi
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x40]
push edx
add ecx, 5
mov eax, dword [eax + 0x48]
push ecx
push dword [ebp - 0x18]
mov ecx, dword [0x10290d44]
call eax
mov esi, dword [ebp - 0x4c]
xorps xmm0, xmm0
movd xmm3, esi
cvtdq2ps xmm3, xmm3
comiss xmm3, xmm0
jbe 0x100395f0
movss xmm1, dword [0x10135bb4]
mov eax, 0xfffffffc
mov ecx, dword [ebp - 0x1c]
movaps xmm2, xmm1
divss xmm2, xmm3
sub eax, ecx
mov dword [ebp - 0x48], eax
lea edi, [ecx + 4]
movss dword [ebp - 0x20], xmm2
nop word [eax + eax]
mulss xmm0, xmm2
lea ecx, [ebp - 0x24]
movaps xmm3, xmm1
movaps xmm2, xmm1
movaps xmm1, xmm0
call fcn.10038e10
mov ecx, dword [0x10290d44]
push dword [eax]
mov edx, dword [ecx]
mov edx, dword [edx + 0x38]
call edx
push dword [ebp - 0x30]
mov edx, dword [0x10290d44]
lea ecx, [edi + 1]
push ecx
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x40]
mov eax, dword [edx]
add ecx, 5
push ecx
push edi
mov ecx, edx
mov eax, dword [eax + 0x40]
call eax
mov eax, dword [ebp - 0x48]
mov edi, dword [ebp - 0x34]
add eax, edi
mov esi, dword [ebp - 0x4c]
movss xmm2, dword [ebp - 0x20]
movd xmm0, eax
movd xmm1, esi
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
movss xmm1, dword [0x10135bb4]
ja 0x10039580
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x1c]
add eax, 4
mov dword [ebp - 0x3c], eax
mov eax, dword [0x10290d44]
mov eax, dword [eax]
mov edx, dword [eax + 0x38]
movzx eax, cl
mov ecx, dword [0x10290d44]
shl eax, 0x18
or eax, 0x3c3c3c
push eax
call edx
mov ecx, dword [0x10290d44]
push dword [ebp - 0x30]
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov eax, dword [ecx]
mov edx, dword [eax + 0x48]
cvttss2si eax, xmm0
add eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x40]
add eax, 5
push eax
push dword [ebp - 0x3c]
call edx
mov edi, dword [ebp - 0x54]
xor edx, edx
movd xmm5, dword [ebp - 0x44]
xorps xmm2, xmm2
movss xmm1, dword [ebp - 0x38]
comiss xmm1, xmm2
mov dword [ebp - 0x44], edx
movd xmm0, edi
cvtdq2ps xmm5, xmm5
cvtdq2ps xmm0, xmm0
subss xmm5, xmm0
subss xmm5, dword [0x10135c54]
movss dword [ebp - 0x30], xmm5
jbe 0x100398e0
movss xmm6, dword [0x10135ac4]
xorps xmm0, xmm0
mov esi, dword [ebp - 0x14]
comiss xmm5, xmm2
mov dword [ebp - 0x34], 0
jbe 0x100398ca
mov eax, dword [ebp - 0x1c]
movaps xmm4, xmm2
divss xmm0, xmm1
lea ecx, [eax + 7]
add ecx, edx
mov dword [ebp - 0x54], ecx
lea ecx, [eax + 4]
add ecx, edx
mov dword [ebp - 0x5c], ecx
movss xmm1, dword [0x10135bb4]
movaps xmm3, xmm1
movss dword [ebp - 0x48], xmm4
divss xmm3, xmm5
movss dword [ebp - 0x60], xmm0
movss dword [ebp - 0x24], xmm3
comiss xmm2, xmm0
jbe 0x100396e2
movaps xmm7, xmm2
jmp 0x100396e9
movaps xmm7, xmm0
minss xmm7, xmm1
movaps xmm0, xmm3
movaps xmm3, xmm1
mulss xmm0, xmm4
subss xmm3, xmm0
comiss xmm2, xmm3
jbe 0x10039701
movaps xmm3, xmm2
jmp 0x10039705
minss xmm3, xmm1
mov ecx, dword [esi + 0xc]
add eax, 0xfffffffd
add eax, ecx
mov dword [ebp - 0x18], 3
mov dword [ebp - 0x20], 3
cmp dword [ebp - 0x54], eax
jle 0x10039728
sub ecx, edx
sub ecx, 8
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x2c]
mov eax, dword [esi + 0x10]
add ecx, 0xe
add eax, ecx
movd xmm0, edi
cvtdq2ps xmm0, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
addss xmm1, xmm0
addss xmm1, dword [0x10135c1c]
addss xmm4, xmm1
addss xmm1, xmm5
movaps xmm0, xmm4
addss xmm0, dword [0x10135c0c]
comiss xmm0, xmm1
jbe 0x10039770
subss xmm1, xmm4
cvttss2si eax, xmm1
mov dword [ebp - 0x20], eax
movzx eax, byte [esi + 0x8a]
movd xmm0, eax
movzx eax, byte [esi + 0x89]
cvtdq2ps xmm0, xmm0
movd xmm4, eax
movzx eax, byte [esi + 0x88]
cvtdq2ps xmm4, xmm4
movd xmm5, eax
cvtdq2ps xmm5, xmm5
mulss xmm0, xmm6
mulss xmm4, xmm6
mulss xmm5, xmm6
movaps xmm6, xmm2
comiss xmm0, xmm4
jbe 0x100397b6
movss xmm6, dword [0x10135d74]
movaps xmm2, xmm4
minss xmm4, xmm0
maxss xmm2, xmm0
comiss xmm2, xmm5
jbe 0x100397d5
movss xmm0, dword [0x10135d70]
subss xmm0, xmm6
movaps xmm6, xmm0
movaps xmm0, xmm5
maxss xmm5, xmm2
minss xmm0, xmm2
movaps xmm1, xmm0
subss xmm0, xmm4
minss xmm1, xmm4
subss xmm5, xmm1
mulss xmm5, dword [0x10135c24]
addss xmm5, dword [0x10135aa8]
divss xmm0, xmm5
addss xmm0, xmm6
call fcn.1002e3b0
movaps xmm2, xmm7
lea ecx, [ebp - 0x58]
movaps xmm1, xmm0
call fcn.10038e10
mov edx, dword [ebp - 0x2c]
mov eax, dword [esi + 0x10]
add edx, 0x10
add eax, edx
movd xmm2, edi
mov ecx, dword [0x10290d44]
cvtdq2ps xmm2, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
push dword [ebp - 0x58]
addss xmm0, xmm2
addss xmm0, dword [0x10135c1c]
addss xmm0, dword [ebp - 0x48]
cvttss2si eax, xmm0
mov dword [ebp - 0x48], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x10290d44]
mov esi, dword [ebp - 0x5c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x40]
mov eax, dword [ebp - 0x48]
add eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x18]
add eax, esi
push eax
push dword [ebp - 0x48]
push esi
call edx
mov eax, dword [ebp - 0x34]
xorps xmm2, xmm2
movss xmm5, dword [ebp - 0x30]
add eax, 3
movss xmm1, dword [0x10135bb4]
movss xmm0, dword [ebp - 0x60]
movss xmm6, dword [0x10135ac4]
movss xmm3, dword [ebp - 0x24]
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x44]
movd xmm4, eax
cvtdq2ps xmm4, xmm4
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
comiss xmm5, xmm4
movss dword [ebp - 0x48], xmm4
ja 0x100396d8
movss xmm1, dword [ebp - 0x38]
add edx, 3
mov dword [ebp - 0x44], edx
movd xmm0, edx
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
ja 0x10039690
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x1c]
mov eax, dword [eax + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + 0x10]
mov ecx, dword [0x10290d44]
add eax, 0x1c
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp - 0x24]
movzx eax, al
shl eax, 0x18
or eax, 0x3c3c3c
push eax
call edx
mov ecx, dword [0x10290d44]
movss xmm0, dword [ebp - 0x30]
addss xmm0, dword [0x10135bb4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x48]
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0x38]
addss xmm0, dword [0x10135be8]
add eax, dword [ebp - 0x34]
push eax
cvttss2si eax, xmm0
add eax, dword [ebp - 0x3c]
push eax
push dword [ebp - 0x34]
push dword [ebp - 0x3c]
call edx
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x10]
add eax, 0x1b
add eax, dword [ebp - 0x2c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0x30]
addss xmm0, dword [0x10135c0c]
cvttss2si eax, xmm0
mov dword [ebp - 0x18], eax
mov eax, dword [edx + 0x1c]
movzx edx, byte [edx + 0x8a]
mov ecx, dword [eax + 8]
mov eax, dword [0x10290d44]
mov eax, dword [eax]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x24], eax
movzx eax, cl
mov ecx, dword [ebp - 0x14]
shl eax, 8
or edx, eax
shl edx, 8
movzx eax, byte [ecx + 0x89]
or edx, eax
movzx eax, byte [ecx + 0x88]
mov ecx, dword [0x10290d44]
shl edx, 8
or edx, eax
push edx
call dword [ebp - 0x24]
mov ecx, dword [0x10290d44]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov eax, dword [ecx]
subss xmm0, dword [0x10135be8]
mov edx, dword [eax + 0x40]
cvttss2si eax, xmm0
cvttss2si esi, xmm0
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x18]
movss dword [ebp - 0x5c], xmm0
add eax, esi
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x34], eax
cvttss2si eax, dword [ebp - 0x38]
push dword [ebp - 0x34]
add eax, esi
mov dword [ebp - 0x60], eax
push eax
push dword [ebp - 0x18]
push esi
call edx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x1c]
mov ecx, dword [0x10290d44]
mov edx, dword [eax + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x24], eax
movzx eax, dl
shl eax, 0x18
or eax, 0x3c3c3c
push eax
call dword [ebp - 0x24]
push dword [ebp - 0x34]
mov ecx, dword [0x10290d44]
push dword [ebp - 0x60]
push dword [ebp - 0x18]
mov eax, dword [ecx]
push esi
mov eax, dword [eax + 0x48]
call eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov esi, dword [ebp - 0x4c]
cmp byte [eax + 0xb0], 0
je 0x10039bb7
push 1
call ecx
test ax, ax
je 0x10039ba7
movd xmm1, dword [ebp - 0x3c]
movd xmm2, dword [0x1028e568]
mov eax, dword [ebp - 0x40]
add eax, 5
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
movd xmm0, eax
comiss xmm2, xmm1
mov eax, dword [ebp - 0x14]
cvtdq2ps xmm0, xmm0
jbe 0x10039bb1
movd xmm3, esi
cvtdq2ps xmm3, xmm3
addss xmm1, xmm3
comiss xmm1, xmm2
jbe 0x10039bb1
movd xmm1, dword [0x1028e56c]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x10039bb1
movd xmm2, edi
cvtdq2ps xmm2, xmm2
addss xmm0, xmm2
comiss xmm0, xmm1
jbe 0x10039bb1
movss xmm3, dword [eax + 0xac]
lea ecx, [ebp - 0x24]
movss xmm2, dword [eax + 0xa8]
movss xmm1, dword [eax + 0xa4]
call fcn.10038e10
mov edx, eax
xorps xmm0, xmm0
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + 0x8b]
mov al, byte [edx]
mov byte [ebp - 0x20], al
mov al, byte [edx + 1]
movd xmm1, ecx
movzx ecx, byte [edx + 3]
cvtdq2ps xmm1, xmm1
mov byte [ebp - 0x1f], al
mov al, byte [edx + 2]
mov byte [ebp - 0x1e], al
maxss xmm1, xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
minss xmm1, dword [0x10135bb4]
mulss xmm0, xmm1
movd xmm1, esi
cvtdq2ps xmm1, xmm1
cvttss2si ecx, xmm0
mov byte [ebp - 0x1d], cl
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov dword [ecx + 0x88], eax
mov eax, dword [0x1028e568]
sub eax, dword [ebp - 0x1c]
sub eax, 4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx + 0x98], xmm0
mov eax, dword [0x1028e56c]
sub eax, dword [ebp - 0x40]
sub eax, 5
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
movss dword [eax + 0x9c], xmm0
mov eax, dword [0x1028e568]
sub eax, dword [ebp - 0x1c]
add eax, 4
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [eax + 0xa4], xmm0
jmp 0x10039bb1
mov eax, dword [ebp - 0x14]
mov byte [eax + 0xb0], 0
mov ecx, dword [sym.imp.USER32.dll_GetAsyncKeyState]
cmp byte [eax + 0xb3], 0
je 0x10039c9c
push 1
call ecx
test ax, ax
je 0x10039c80
mov edx, dword [ebp - 0x3c]
mov eax, dword [0x1028e568]
mov ecx, dword [ebp - 0x18]
movd xmm1, edx
movd xmm2, eax
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
movd xmm0, ecx
comiss xmm2, xmm1
cvtdq2ps xmm0, xmm0
jbe 0x10039c99
movss xmm3, dword [ebp - 0x38]
addss xmm1, xmm3
comiss xmm1, xmm2
jbe 0x10039c99
movd xmm1, dword [0x1028e56c]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x10039c99
addss xmm0, dword [ebp - 0x5c]
comiss xmm0, xmm1
jbe 0x10039c99
sub eax, edx
jns 0x10039c2e
xor eax, eax
jmp 0x10039c38
mov edx, 0xff
cmp eax, edx
cmovg eax, edx
movd xmm1, eax
mov eax, dword [ebp - 0x14]
cvtdq2ps xmm1, xmm1
movss dword [eax + 0xb4], xmm1
mov eax, dword [0x1028e568]
divss xmm1, xmm3
sub eax, ecx
mov ecx, dword [ebp - 0x14]
movd xmm0, eax
mov eax, dword [ebp - 0x14]
mulss xmm1, dword [0x10135d10]
cvtdq2ps xmm0, xmm0
movss dword [eax + 0xb8], xmm0
cvttss2si eax, xmm1
mov byte [ecx + 0x8b], al
mov eax, ecx
jmp 0x10039c9c
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov eax, dword [ebp - 0x14]
jne 0x10039c9c
mov byte [eax + 0xb3], 0
jmp 0x10039c9c
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0xb1], 0
je 0x10039e57
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov edx, dword [ebp - 0x2c]
movss xmm5, dword [ebp - 0x38]
test ax, ax
je 0x10039e4b
mov eax, dword [ebp - 0x14]
movd xmm2, dword [0x1028e568]
movd xmm1, edi
cvtdq2ps xmm1, xmm1
mov eax, dword [eax + 0x10]
add eax, 0x10
add eax, edx
cvtdq2ps xmm2, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
movd xmm1, dword [ebp - 0x3c]
cvtdq2ps xmm1, xmm1
addss xmm0, dword [0x10135c1c]
comiss xmm2, xmm1
movss dword [ebp - 0x24], xmm0
jbe 0x10039e5f
mov edi, dword [ebp - 0x14]
addss xmm1, xmm5
comiss xmm1, xmm2
movss xmm1, dword [ebp - 0x30]
jbe 0x10039e67
movd xmm2, dword [0x1028e56c]
cvtdq2ps xmm2, xmm2
comiss xmm2, xmm0
jbe 0x10039e67
addss xmm0, xmm1
comiss xmm0, xmm2
jbe 0x10039e67
movss xmm3, dword [edi + 0xac]
lea ecx, [ebp - 0x60]
movss xmm2, dword [edi + 0xa8]
movss xmm1, dword [edi + 0xa4]
call fcn.10038e10
movzx ecx, byte [edi + 0x8b]
mov edx, eax
movss xmm3, dword [0x10135bb4]
xorps xmm2, xmm2
movss xmm5, dword [ebp - 0x38]
mov al, byte [edx]
movd xmm1, ecx
movzx ecx, byte [edx + 3]
cvtdq2ps xmm1, xmm1
mov byte [ebp - 0x20], al
mov al, byte [edx + 1]
mov byte [ebp - 0x1f], al
mov al, byte [edx + 2]
movd xmm0, ecx
maxss xmm1, xmm2
mov byte [ebp - 0x1e], al
cvtdq2ps xmm0, xmm0
minss xmm1, xmm3
mulss xmm0, xmm1
cvttss2si ecx, xmm0
mov byte [ebp - 0x1d], cl
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
mov dword [edi + 0x88], eax
mov eax, dword [0x1028e568]
sub eax, ecx
sub eax, 4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm5
comiss xmm2, xmm0
jbe 0x10039dd8
xorps xmm0, xmm0
jmp 0x10039ddc
minss xmm0, xmm3
movss xmm1, dword [ebp - 0x30]
movaps xmm4, xmm3
movss dword [edi + 0xa8], xmm0
movd xmm0, dword [0x1028e56c]
cvtdq2ps xmm0, xmm0
subss xmm0, dword [ebp - 0x24]
divss xmm0, xmm1
subss xmm4, xmm0
comiss xmm2, xmm4
jbe 0x10039e0e
xorps xmm4, xmm4
jmp 0x10039e12
minss xmm4, xmm3
mov edx, dword [ebp - 0x2c]
movss dword [edi + 0xac], xmm4
mov eax, dword [0x1028e56c]
sub eax, edx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x94], xmm0
mov eax, dword [0x1028e568]
sub eax, ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x90], xmm0
jmp 0x10039e6d
mov edi, dword [ebp - 0x14]
mov byte [edi + 0xb1], 0
jmp 0x10039e62
movss xmm5, dword [ebp - 0x38]
mov edx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x14]
movss xmm1, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1c]
xorps xmm2, xmm2
movss xmm3, dword [edi + 0x90]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x10039f2b
movss xmm4, dword [edi + 0x94]
ucomiss xmm4, xmm2
lahf
test ah, 0x44
jnp 0x10039f2b
comiss xmm2, xmm3
movaps xmm0, xmm5
subss xmm0, dword [0x10135c20]
jbe 0x10039eac
xorps xmm3, xmm3
jmp 0x10039eb0
minss xmm3, xmm0
comiss xmm2, xmm4
addss xmm1, dword [0x10135c80]
movss dword [edi + 0x90], xmm3
jbe 0x10039eca
xorps xmm4, xmm4
jmp 0x10039ece
minss xmm4, xmm1
movd xmm0, edx
cvtdq2ps xmm0, xmm0
push 0xff2e2c2b
movss dword [edi + 0x94], xmm4
addss xmm0, xmm4
cvttss2si eax, xmm0
movd xmm0, ecx
mov ecx, dword [0x10290d44]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x34], eax
mov eax, dword [ecx]
addss xmm0, xmm3
mov eax, dword [eax + 0x38]
cvttss2si edi, xmm0
call eax
mov ecx, dword [0x10290d44]
mov eax, dword [ecx]
mov edx, dword [eax + 0x48]
mov eax, dword [ebp - 0x34]
add eax, 5
push eax
lea eax, [edi + 5]
push eax
push dword [ebp - 0x34]
push edi
call edx
mov edi, dword [ebp - 0x14]
xorps xmm2, xmm2
movss xmm1, dword [edi + 0x98]
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jnp 0x10039fc6
movss xmm0, dword [edi + 0x9c]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x10039fc6
movss xmm0, dword [0x10135be8]
comiss xmm0, xmm1
movd xmm2, esi
cvtdq2ps xmm2, xmm2
subss xmm2, xmm0
jbe 0x10039f6e
movaps xmm1, xmm0
jmp 0x10039f72
minss xmm1, xmm2
movss dword [edi + 0x98], xmm1
subss xmm1, xmm0
movd xmm0, dword [ebp - 0x3c]
mov ecx, dword [0x10290d44]
cvtdq2ps xmm0, xmm0
push 0xff2e2c2b
mov eax, dword [ecx]
addss xmm1, xmm0
mov eax, dword [eax + 0x38]
cvttss2si esi, xmm1
call eax
mov ecx, dword [0x10290d44]
mov edi, dword [ebp - 0x40]
mov eax, dword [ecx]
mov edx, dword [eax + 0x48]
lea eax, [edi + 5]
add eax, dword [ebp - 0x50]
push eax
lea eax, [esi + 4]
push eax
lea eax, [edi + 5]
push eax
push esi
call edx
mov edi, dword [ebp - 0x14]
xorps xmm2, xmm2
movss xmm1, dword [edi + 0xb4]
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jnp 0x1003a054
movss xmm0, dword [edi + 0xb8]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x1003a054
movss xmm2, dword [0x10135be8]
comiss xmm2, xmm1
movss xmm0, dword [ebp - 0x38]
subss xmm0, xmm2
jbe 0x1003a003
movaps xmm1, xmm2
jmp 0x1003a007
minss xmm1, xmm0
movd xmm0, dword [ebp - 0x3c]
cvtdq2ps xmm0, xmm0
push 0xff2e2c2b
movss dword [edi + 0xb4], xmm1
mov ecx, dword [0x10290d44]
addss xmm0, xmm1
mov eax, dword [ecx]
subss xmm0, xmm2
mov eax, dword [eax + 0x38]
cvttss2si esi, xmm0
call eax
mov ecx, dword [0x10290d44]
mov eax, dword [ecx]
mov edx, dword [eax + 0x48]
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x58]
push eax
lea eax, [esi + 4]
push eax
push dword [ebp - 0x18]
push esi
call edx
mov edi, dword [ebp - 0x14]
mov al, byte [edi + 0x8b]
mov byte [edi + 0x8b], al
cmp byte [edi + 0xb2], 0
je 0x1003a478
push 4
mov dword [ebp - 0x7c], 0
lea ecx, [ebp - 0x7c]
push str.copy
mov byte [edi + 0x6c], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0xf
mov byte [ebp - 0x7c], 0
call fcn.100250c0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x94]
push 5
mov dword [ebp - 0x94], 0
push str.paste
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0xf
mov byte [ebp - 0x94], 0
call fcn.100250c0
lea eax, [ebp - 0x94]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x28]
mov ecx, 0x102939bc
push eax
call fcn.100d8f30
mov ecx, 0x102939bc
mov esi, dword [eax]
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.100d8f30
mov eax, dword [eax]
add eax, 2
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x80]
add eax, esi
mov dword [ebp - 0x50], eax
cmp edx, 0x10
jb 0x1003a146
mov ecx, dword [ebp - 0x94]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1003a13c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003a4a3
push edx
push ecx
call fcn.100eba52
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0xf
mov byte [ebp - 0x94], 0
cmp edx, 0x10
jb 0x1003a199
mov ecx, dword [ebp - 0x7c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1003a18f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003a4a3
push edx
push ecx
call fcn.100eba52
add esp, 8
mov eax, dword [edi + 0x1c]
mov ecx, dword [0x10290d44]
mov esi, dword [ebp - 0x2c]
add esi, 0xa
mov eax, dword [eax + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0xc]
mov edi, dword [ebp - 0x1c]
add edi, 0xffffffed
add edi, eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp - 0x24]
movzx eax, al
shl eax, 0x18
or eax, 0x3c3c3c
push eax
call edx
mov ecx, dword [0x10290d44]
mov eax, dword [ecx]
mov edx, dword [eax + 0x40]
lea eax, [esi + 0x14]
push eax
mov eax, dword [ebp - 0x50]
add eax, 0x12
add eax, edi
push eax
push esi
push edi
call edx
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x2c]
add edi, 0xffffffee
add esi, 0xb
mov eax, dword [ecx + 0x1c]
add edi, dword [ecx + 0xc]
mov ecx, dword [0x10290d44]
mov eax, dword [eax + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp - 0x24]
movzx eax, al
shl eax, 0x18
or eax, 0x282828
push eax
call edx
mov ecx, dword [0x10290d44]
mov eax, dword [ecx]
mov edx, dword [eax + 0x40]
lea eax, [esi + 0x12]
push eax
mov eax, dword [ebp - 0x50]
add eax, 0x10
add eax, edi
push eax
push esi
push edi
call edx
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x28], 0x79706f63
lea edx, [ecx + 1]
mov word [ebp - 0x24], 0x2f20
mov byte [ebp - 0x22], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0xf
mov byte [ebp - 0x7c], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003a270
sub ecx, edx
lea eax, [ebp - 0x28]
push ecx
push eax
lea ecx, [ebp - 0x7c]
call fcn.100250c0
mov edi, dword [ebp - 0x14]
mov ecx, 0x102939bc
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 4], 2
add esi, 0xd
push 0
mov eax, dword [edi + 0x1c]
mov word [ebp - 0x20], 0xcdcd
mov byte [ebp - 0x1e], 0xcd
mov eax, dword [eax + 8]
mov byte [ebp - 0x1d], al
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
push esi
add eax, 0xa1
push eax
call fcn.100d8ce0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x68]
cmp edx, 0x10
jb 0x1003a301
mov ecx, dword [ebp - 0x7c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1003a2f7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003a4a8
push edx
push ecx
call fcn.100eba52
add esp, 8
lea ecx, [ebp - 0x28]
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0x28], 0x61702020
lea edx, [ecx + 1]
mov dword [ebp - 0x24], 0x657473
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0xf
mov byte [ebp - 0xcc], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003a340
sub ecx, edx
lea eax, [ebp - 0x28]
push ecx
push eax
lea ecx, [ebp - 0xcc]
call fcn.100250c0
mov dword [ebp - 4], 3
lea ecx, [ebp - 0xac]
mov eax, dword [edi + 0x1c]
push 4
push str.copy
mov eax, dword [eax + 8]
mov dword [ebp - 0xac], 0
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0xf
mov byte [ebp - 0xac], 0
call fcn.100250c0
lea eax, [ebp - 0xac]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0xb4]
mov ecx, 0x102939bc
push eax
call fcn.100d8f30
mov edx, dword [ebp - 0x1c]
mov ecx, 0x102939bc
add edx, 0xa6
push 0
mov eax, dword [eax]
add edx, eax
lea eax, [ebp - 0xcc]
push eax
mov eax, dword [ebp - 0x24]
movzx eax, al
shl eax, 0x18
or eax, 0xcdcdcd
push eax
push esi
push edx
call fcn.100d8ce0
mov edx, dword [ebp - 0x98]
cmp edx, 0x10
jb 0x1003a427
mov ecx, dword [ebp - 0xac]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1003a41d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003a4ad
push edx
push ecx
call fcn.100eba52
add esp, 8
mov edx, dword [ebp - 0xb8]
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0xf
mov byte [ebp - 0xac], 0
cmp edx, 0x10
jb 0x1003a478
mov ecx, dword [ebp - 0xcc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1003a46e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003a4ad
push edx
push ecx
call fcn.100eba52
add esp, 8
cmp byte [edi + 0x6c], 0
jne 0x1003a488
mov dword [0x102978d8], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100eb51f
mov esp, ebp
pop ebp
ret
call fcn.100f1a4e
call fcn.100f1a4e
call fcn.100f1a4e
int3