Function at 0x1001f060
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x58
push esi
push edi
mov edi, ecx
mov ecx, dword [0x10531940]
mov dword [esp + 0x10], edi
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x10531944]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov dword [esp + 0x18], eax
test eax, eax
je 0x1001ff94
mov esi, dword [ebp + 8]
test esi, esi
je 0x1001ff94
imul eax, dword [esi + 0x64], 0x440
mov ecx, dword [0x10531f4c]
add eax, edi
mov dword [esp + 0xc], eax
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x14], eax
mov ecx, eax
mov eax, dword [0x1052c6a8]
cmp eax, dword [ecx + 4]
jg 0x1001ff9c
jmp 0x1001f0dc
mov ecx, dword [esp + 0x14]
mov eax, dword [0x1052caf0]
cmp eax, dword [ecx + 4]
jg 0x1001ffe4
mov edi, dword [ebp + 8]
push edi
call fcn.1003fc50
add esp, 4
test al, al
jne 0x1001ff6e
mov esi, dword [esp + 0x10]
mov ecx, esi
push edi
call fcn.1001e960
test al, al
je 0x1001ff6e
push edi
mov ecx, esi
call fcn.1001e9e0
test al, al
je 0x1001f173
imul eax, dword [edi + 0x64], 0x440
add eax, esi
cmp byte [eax + 0x422], 0
jne 0x1001f173
mov esi, eax
mov ecx, 0x110
mov eax, dword [esp + 0xc]
mov edi, 0x1052c6b0
rep movsd dword es:[edi], dword [esi]
movss xmm0, dword [0x1052cab4]
mov esi, eax
or word [eax + 0x400], 4
mov ecx, 0x110
mov edi, 0x1052c268
movss dword [eax + 0x35c], xmm0
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
push edi
mov ecx, esi
call fcn.1001e9e0
test al, al
jne 0x1001f1da
mov eax, dword [0x10531aa0]
movq xmm0, qword [eax + edi]
mov eax, dword [eax + edi + 8]
movq qword [esp + 0x44], xmm0
movss xmm1, dword [esp + 0x48]
movss xmm0, dword [esp + 0x44]
mulss xmm1, xmm1
mov dword [esp + 0x4c], eax
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x1001f1c1
sqrtsd xmm0, xmm0
jmp 0x1001f1c6
call fcn.10047870
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [0x1006c384]
comiss xmm0, xmm1
ja 0x1001f1ef
imul eax, dword [edi + 0x64], 0x440
cmp byte [eax + esi + 0x422], 0
je 0x1001f994
mov esi, dword [esp + 0xc]
movss xmm1, dword [0x1052ca30]
movss xmm2, dword [0x1052ca2c]
movss xmm0, dword [0x1052ca34]
subss xmm1, dword [esi + 0x380]
subss xmm2, dword [esi + 0x37c]
subss xmm0, dword [esi + 0x384]
mulss xmm1, xmm1
mulss xmm2, xmm2
mulss xmm0, xmm0
addss xmm1, xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x1001f249
sqrtsd xmm0, xmm0
jmp 0x1001f24e
call fcn.10047870
mov ecx, dword [esp + 0x10]
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [0x1006d4b0]
comiss xmm0, xmm1
jb 0x1001f294
cmp dword [esi + 0x3ec], 1
jge 0x1001f294
imul eax, dword [edi + 0x64], 0x440
cmp byte [eax + ecx + 0x422], 0
jne 0x1001f294
mov eax, dword [esi + 0x408]
or word [esi + 0x400], 0x20
mov dword [esi + 0x35c], eax
cmp byte [esi + 0x427], 0
je 0x1001f2d5
imul eax, dword [edi + 0x64], 0x440
cmp byte [eax + ecx + 0x422], 0
jne 0x1001f2d5
movss xmm2, dword [esi + 0x404]
lea eax, [esi + 0x404]
or word [esi + 0x400], 8
mov dword [esp + 0xc], eax
movss dword [esi + 0x35c], xmm2
jmp 0x1001f396
movss xmm0, dword [0x1052cab4]
push ecx
movss dword [esp], xmm0
push edi
call fcn.1001ea60
movss xmm4, dword [0x1052cab4]
movss xmm5, dword [0x1006c470]
test al, al
je 0x1001f338
movss xmm2, dword [esi + 0x404]
lea eax, [esi + 0x404]
movss xmm0, dword [0x1006d490]
movaps xmm1, xmm2
subss xmm1, xmm4
mov dword [esp + 0xc], eax
andps xmm1, xmm5
comiss xmm0, xmm1
jb 0x1001f338
cmp byte [esi + 0x421], 0
je 0x1001f338
cmp dword [esi + 0x3ec], 2
jl 0x1001f382
movss xmm3, dword [esi + 0x404]
lea ecx, [esi + 0x404]
movss xmm0, dword [0x1006c41c]
movaps xmm1, xmm3
subss xmm1, xmm4
mov dword [esp + 0xc], ecx
movaps xmm2, xmm3
andps xmm1, xmm5
comiss xmm0, xmm1
jb 0x1001f396
cmp byte [esi + 0x421], 0
mov dword [esp + 0xc], ecx
je 0x1001f396
cmp dword [esi + 0x3ec], 2
mov dword [esp + 0xc], ecx
jge 0x1001f396
mov dword [esp + 0xc], ecx
mov eax, dword [esi + 0x408]
or word [esi + 0x400], 0x20
mov dword [esi + 0x35c], eax
push ecx
mov ecx, dword [esp + 0x14]
movss dword [esp], xmm2
push edi
call fcn.10021580
test al, al
je 0x1001f5ca
mov eax, dword [0x10531aac]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
movq xmm0, qword [eax + ecx]
mov eax, dword [eax + ecx + 8]
movq qword [esp + 0x2c], xmm0
movss xmm0, dword [esp + 0x2c]
subss xmm0, dword [esi + 0x37c]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x48]
push eax
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0x38]
subss xmm0, dword [esi + 0x380]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x3c]
subss xmm0, dword [esi + 0x384]
movss dword [esp + 0x54], xmm0
call fcn.1003b4f0
mov eax, dword [esp + 0x14]
movss xmm1, dword [esp + 0x44]
movss dword [esp + 0x18], xmm1
movss xmm0, dword [eax]
lea eax, [esp + 0x20]
subss xmm0, xmm1
push eax
movss dword [esp + 0x24], xmm0
call fcn.1003b440
movss xmm0, dword [esp + 0x24]
mov eax, 0x800
or word [esi + 0x400], ax
add esp, 0xc
ucomiss xmm0, dword [0x1006c388]
lahf
test ah, 0x44
jp 0x1001f51a
mov eax, dword [esi + 0x3f8]
mov ecx, 3
cdq
idiv ecx
sub edx, 0
je 0x1001f4f0
sub edx, 1
je 0x1001f4c6
sub edx, 1
jne 0x1001ff88
movss xmm0, dword [esp + 0x10]
mov ecx, 0x110
subss xmm0, dword [0x1006c440]
mov edi, 0x1052c268
movss dword [esi + 0x35c], xmm0
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
movss xmm0, dword [esp + 0x10]
mov ecx, 0x110
subss xmm0, dword [0x1006c498]
mov edi, 0x1052c268
movss dword [esi + 0x35c], xmm0
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
movss xmm0, dword [esp + 0x10]
mov ecx, 0x110
subss xmm0, dword [0x1006d4ac]
mov edi, 0x1052c268
movss dword [esi + 0x35c], xmm0
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
ucomiss xmm0, dword [0x1006c574]
lahf
test ah, 0x44
jp 0x1001ff88
mov eax, dword [esi + 0x3f8]
mov ecx, 3
cdq
idiv ecx
sub edx, 0
je 0x1001f5a0
sub edx, 1
je 0x1001f576
sub edx, 1
jne 0x1001ff88
movss xmm0, dword [esp + 0x10]
mov ecx, 0x110
addss xmm0, dword [0x1006c440]
mov edi, 0x1052c268
movss dword [esi + 0x35c], xmm0
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
movss xmm0, dword [esp + 0x10]
mov ecx, 0x110
addss xmm0, dword [0x1006c498]
mov edi, 0x1052c268
movss dword [esi + 0x35c], xmm0
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
movss xmm0, dword [esp + 0x10]
mov ecx, 0x110
addss xmm0, dword [0x1006d4ac]
mov edi, 0x1052c268
movss dword [esi + 0x35c], xmm0
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esp + 0xc]
push ecx
mov ecx, dword [esp + 0x14]
movss xmm0, dword [eax]
movss dword [esp], xmm0
push edi
call fcn.10021580
test al, al
jne 0x1001f7ca
mov eax, dword [0x10531aac]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
movq xmm0, qword [eax + ecx]
mov eax, dword [eax + ecx + 8]
movq qword [esp + 0x38], xmm0
movss xmm0, dword [esp + 0x38]
subss xmm0, dword [esi + 0x37c]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x48]
push eax
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0x44]
subss xmm0, dword [esi + 0x380]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x48]
subss xmm0, dword [esi + 0x384]
movss dword [esp + 0x54], xmm0
call fcn.1003b4f0
mov eax, dword [esp + 0x14]
movss xmm1, dword [esp + 0x38]
movss dword [esp + 0x1c], xmm1
movss xmm0, dword [eax]
lea eax, [esp + 0x20]
subss xmm0, xmm1
push eax
movss dword [esp + 0x24], xmm0
call fcn.1003b440
add esp, 0xc
mov eax, 0x400
or word [esi + 0x400], ax
mov ecx, 0x1051ad38
lea eax, [esp + 0x50]
push edi
push eax
call fcn.1000c450
mov eax, dword [esi + 0x3f4]
and eax, 0x80000003
jns 0x1001f6c2
dec eax
or eax, 0xfffffffc
inc eax
cmp eax, 3
ja case.default.0x1001f6cb
jmp dword [eax*4 + 0x10020028]
movss xmm0, dword [esp + 0x14]
lea ecx, [esp + 0x50]
subss xmm0, dword [0x1006c3a8]
movss dword [esi + 0x35c], xmm0
call fcn.10001bf0
mov ecx, 0x110
mov edi, 0x1052c268
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
cmp byte [esi + 0x421], 0
je 0x1001f73b
movss xmm0, dword [esi + 0x408]
lea ecx, [esp + 0x50]
movss dword [esi + 0x35c], xmm0
call fcn.10001bf0
mov ecx, 0x110
mov edi, 0x1052c268
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
movss xmm0, dword [esp + 0x14]
lea ecx, [esp + 0x50]
addss xmm0, dword [0x1006d4c8]
movss dword [esi + 0x35c], xmm0
call fcn.10001bf0
mov ecx, 0x110
mov edi, 0x1052c268
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
movss xmm0, dword [esp + 0x14]
lea ecx, [esp + 0x50]
subss xmm0, dword [0x1006d4bc]
movss dword [esi + 0x35c], xmm0
call fcn.10001bf0
mov ecx, 0x110
mov edi, 0x1052c268
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov dword [esi + 0x35c], eax
lea ecx, [esp + 0x50]
call fcn.10001bf0
mov ecx, 0x110
mov edi, 0x1052c268
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
cmp byte [esi + 0x421], 0
je 0x1001f7fc
cmp dword [esi + 0x3ec], 1
jge 0x1001f7fc
movss xmm0, dword [esi + 0x408]
push ecx
mov ecx, dword [esp + 0x14]
movss dword [esp], xmm0
push edi
call fcn.1001ea60
test al, al
jne 0x1001f96c
imul eax, dword [edi + 0x64], 0x440
mov ecx, dword [esp + 0x10]
movups xmm0, xmmword [eax + ecx + 0x348]
mov ecx, dword [0x10531940]
movups xmmword [esp + 0x50], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x10531944]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov edx, eax
test edx, edx
je 0x1001f952
cmp dword [esp + 0x54], 0x14
jl 0x1001f84b
cmp dword [esp + 0x50], 0x14
jge 0x1001f952
mov ecx, dword [0x10531aac]
movq xmm0, qword [ecx + edi]
mov eax, dword [ecx + edi + 8]
movq qword [esp + 0x38], xmm0
movq xmm0, qword [edx + ecx]
movq qword [esp + 0x2c], xmm0
movss xmm0, dword [esp + 0x38]
subss xmm0, dword [esp + 0x2c]
mov dword [esp + 0x40], eax
mov eax, dword [edx + ecx + 8]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x18]
push eax
movss dword [esp + 0x48], xmm0
lea eax, [esp + 0x48]
movss xmm0, dword [esp + 0x40]
subss xmm0, dword [esp + 0x34]
push eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x48]
subss xmm0, dword [esp + 0x3c]
movss dword [esp + 0x54], xmm0
call fcn.1003b4f0
mov ecx, dword [esp + 0x5c]
add esp, 8
mov eax, dword [esp + 0x50]
test ecx, ecx
jg 0x1001f90e
test eax, eax
jg 0x1001f90e
movss xmm0, dword [esp + 0x5c]
comiss xmm0, dword [esp + 0x58]
movss xmm0, dword [esp + 0x1c]
jbe 0x1001f904
addss xmm0, dword [0x1006d3a4]
jmp 0x1001f92a
subss xmm0, dword [0x1006d4a4]
jmp 0x1001f92a
movss xmm0, dword [esp + 0x1c]
cmp ecx, eax
jle 0x1001f922
addss xmm0, dword [0x1006c444]
jmp 0x1001f92a
subss xmm0, dword [0x1006c430]
movss dword [esi + 0x35c], xmm0
mov eax, 0x200
or word [esi + 0x400], ax
mov ecx, 0x110
mov edi, 0x1052c268
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
cmp byte [esi + 0x421], 0
je 0x1001ff88
cmp dword [esi + 0x3ec], 1
jge 0x1001ff88
mov eax, dword [esi + 0x408]
mov ecx, 0x110
or word [esi + 0x400], 0x20
mov edi, 0x1052c268
mov dword [esi + 0x35c], eax
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
mov eax, dword [0x10531a9c]
test byte [eax + edi], 1
jne 0x1001fbf5
mov eax, dword [0x10531aac]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
movq xmm0, qword [eax + ecx]
mov eax, dword [eax + ecx + 8]
movq qword [esp + 0x38], xmm0
movss xmm0, dword [esp + 0x38]
subss xmm0, dword [esi + 0x37c]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x48]
push eax
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0x44]
subss xmm0, dword [esi + 0x380]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x48]
subss xmm0, dword [esi + 0x384]
movss dword [esp + 0x54], xmm0
call fcn.1003b4f0
movss xmm0, dword [esp + 0x38]
add esp, 8
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esi + 0x374]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
movss xmm0, dword [esi + 0x370]
fld qword [esp + 0x18]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
call fcn.10047da0
fstp qword [esp + 0x18]
movsd xmm0, qword [esp + 0x18]
lea eax, [esp + 0x10]
cvtpd2ps xmm0, xmm0
push eax
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x1006d488]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x10], xmm0
addss xmm0, dword [0x1006c3a8]
subss xmm0, dword [esi + 0x404]
movss dword [esp + 0x14], xmm0
call fcn.1003b440
movss xmm0, dword [esi + 0x404]
lea eax, [esp + 0x1c]
subss xmm0, dword [esp + 0x18]
push eax
movss dword [esp + 0x20], xmm0
call fcn.1003b440
movss xmm0, dword [esp + 0x20]
add esp, 8
ucomiss xmm0, dword [0x1006c388]
lahf
test ah, 0x44
jnp 0x1001faf0
ucomiss xmm0, dword [0x1006c574]
lahf
test ah, 0x44
jnp 0x1001faf0
movss xmm2, dword [esp + 0x14]
jmp 0x1001faf6
movss xmm2, dword [esp + 0xc]
mov eax, dword [0x10531948]
xorps xmm1, xmm1
movss xmm0, dword [esi + 0x42c]
subss xmm0, dword [eax + 0x20]
comiss xmm0, xmm1
jbe 0x1001fb41
movss xmm1, dword [0x1052cab4]
subss xmm1, dword [esi + 0x404]
movss xmm0, dword [0x1006d490]
andps xmm1, xmmword [0x1006c470]
comiss xmm0, xmm1
jbe 0x1001fb41
cmp dword [esi + 0x3ec], 1
jge 0x1001fb41
mov al, 1
jmp 0x1001fb43
xor al, al
movss xmm0, dword [0x1006c48c]
or word [esi + 0x400], 0x20
comiss xmm0, dword [esp + 0x10]
jb 0x1001fbbc
cmp dword [esi + 0x3ec], 2
jge 0x1001fbbc
cmp byte [0x1052caf4], 0
je 0x1001fb94
movss xmm0, dword [0x1006d4c0]
mov ecx, 0x110
addss xmm2, xmm0
mov edi, 0x1052c268
movss dword [esi + 0x35c], xmm2
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
movss xmm0, dword [0x1006d4c4]
mov ecx, 0x110
addss xmm2, xmm0
mov edi, 0x1052c268
movss dword [esi + 0x35c], xmm2
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
test al, al
je 0x1001ff88
cmp byte [esi + 0x421], 0
je 0x1001ff88
movss xmm0, dword [0x1052cab4]
mov ecx, 0x110
mov edi, 0x1052c268
movss dword [esi + 0x35c], xmm0
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [0x10531940]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x10531944]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov dword [esp + 0x18], eax
test eax, eax
je 0x1001fdb0
mov ecx, dword [0x1052f484]
cmp ecx, 0xffffffff
je 0x1001fdb0
push ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1001fdb0
mov ecx, dword [0x10531940]
lea edx, [esp + 0x44]
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x48]
call eax
mov ecx, dword [0x10531aac]
mov eax, dword [ecx + edi + 8]
movq xmm0, qword [ecx + edi]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
movq qword [esp + 0x38], xmm0
movq xmm0, qword [eax + ecx]
mov eax, dword [eax + ecx + 8]
movq qword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x38]
subss xmm0, dword [esp + 0x18]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x54]
mov dword [esp + 0x30], 0
push eax
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x44]
subss xmm0, dword [esp + 0x24]
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
movss dword [esp + 0x5c], xmm0
movss xmm0, dword [esp + 0x48]
subss xmm0, dword [esp + 0x28]
movss dword [esp + 0x60], xmm0
call fcn.1003b4f0
movss xmm0, dword [esp + 0x50]
add esp, 4
subss xmm0, dword [esp + 0x34]
movss dword [esp], xmm0
call fcn.10009820
fstp dword [esp + 0x1c]
movss xmm1, dword [esp + 0x1c]
add esp, 4
movaps xmm0, xmm1
andps xmm0, xmmword [0x1006c470]
comiss xmm0, dword [0x1006d3a0]
ja 0x1001fdb0
xorps xmm0, xmm0
comiss xmm1, xmm0
movss xmm1, dword [esp + 0x30]
jbe 0x1001fd47
addss xmm1, dword [0x1006c3a0]
jmp 0x1001fd4f
subss xmm1, dword [0x1006c3a0]
mov eax, dword [0x10531aa4]
sub esp, 8
movss xmm0, dword [eax + edi]
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call fcn.1003fae0
fstp dword [esp + 0x20]
movss xmm0, dword [esp + 0x20]
add esp, 8
ucomiss xmm0, dword [0x1006c3b4]
lahf
test ah, 0x44
jnp 0x1001fdb0
mov eax, dword [esp + 0xc]
mov ecx, 0x110
mov esi, eax
mov edi, 0x1052c268
or word [eax + 0x400], 1
movss dword [eax + 0x35c], xmm0
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [0x10531940]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x10531944]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov edx, eax
test edx, edx
je 0x1001ff56
imul eax, dword [edi + 0x64], 0x440
mov ecx, 0x80
or word [eax + esi + 0x400], cx
mov ecx, dword [0x10531aac]
add eax, esi
movq xmm0, qword [edx + ecx]
movq qword [esp + 0x44], xmm0
movq xmm0, qword [ecx + edi]
movq qword [esp + 0x38], xmm0
movss xmm0, dword [esp + 0x44]
subss xmm0, dword [esp + 0x38]
mov dword [esp + 0x18], eax
mov eax, dword [edx + ecx + 8]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + edi + 8]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x48]
subss xmm0, dword [esp + 0x3c]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x54]
mov dword [esp + 0x30], 0
push eax
movss dword [esp + 0x5c], xmm0
movss xmm0, dword [esp + 0x54]
subss xmm0, dword [esp + 0x48]
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
movss dword [esp + 0x60], xmm0
call fcn.1003b4f0
mov eax, dword [esp + 0x20]
add esp, 8
mov ecx, esi
movzx eax, word [eax + 0x400]
push eax
call fcn.1001e8b0
mov esi, dword [esp + 0x18]
mov ecx, dword [esi + eax*4 + 0x3c0]
sub ecx, dword [esi + eax*4 + 0x394]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*2]
sub ecx, eax
sub ecx, 0
je 0x1001ff22
sub ecx, 1
je 0x1001fef4
sub ecx, 1
jne 0x1001ff56
movss xmm0, dword [esp + 0x30]
mov ecx, 0x110
subss xmm0, dword [0x1006d4a8]
mov edi, 0x1052c268
movss dword [esi + 0x35c], xmm0
mov esi, dword [esp + 0xc]
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
movss xmm0, dword [esp + 0x30]
mov ecx, 0x110
addss xmm0, dword [0x1006d4b4]
mov edi, 0x1052c268
movss dword [esi + 0x35c], xmm0
mov esi, dword [esp + 0xc]
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
movss xmm0, dword [esp + 0x30]
sub esp, 8
mov eax, dword [0x10531aa4]
addss xmm0, dword [0x1006c434]
movss xmm1, dword [eax + edi]
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.1003fae0
fstp dword [esi + 0x35c]
add esp, 8
mov esi, dword [esp + 0xc]
mov ecx, 0x110
mov edi, 0x1052c268
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
mov edx, dword [esp + 0xc]
mov esi, edx
mov eax, dword [edx + 0x368]
or word [edx + 0x400], 2
mov dword [edx + 0x35c], eax
mov ecx, 0x110
mov edi, 0x1052c268
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
push 0x1052c6a8
call fcn.1004210c
add esp, 4
cmp dword [0x1052c6a8], 0xffffffff
jne 0x1001f0d8
imul esi, dword [esi + 0x64], 0x440
mov ecx, 0x110
push 0x1052c6a8
add esi, edi
mov edi, 0x1052c268
rep movsd dword es:[edi], dword [esi]
call fcn.100420c2
mov esi, dword [ebp + 8]
add esp, 4
mov edi, dword [esp + 0x10]
jmp 0x1001f0d8
push 0x1052caf0
call fcn.1004210c
add esp, 4
cmp dword [0x1052caf0], 0xffffffff
jne 0x1001f0ed
imul esi, dword [esi + 0x64], 0x440
mov ecx, 0x110
push 0x1052caf0
add esi, edi
mov edi, 0x1052c6b0
rep movsd dword es:[edi], dword [esi]
call fcn.100420c2
add esp, 4
jmp 0x1001f0ed