Function at 0x1001f690
Capabilities:
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x1cd4
call fcn.100d7610
cmp byte [0x101331d0], 0
push ebx
push esi
push edi
je 0x10020f08
mov ecx, dword [0x101315b8]
mov eax, dword [0x101331cc]
cmp ecx, 3
ja case.0x1001f6c0.0
jmp dword [ecx*4 + 0x10020f10]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x1001f6f8
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x1001f6f8
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x10020f08
mov ecx, dword [0x10132a7c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je 0x10020f08
mov ecx, dword [0x10132a7c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x10020f08
mov eax, dword [0x10132a9c]
mov edx, 1
mov dword [esp + 0x6c], edx
cmp dword [eax + 0x18], edx
jl 0x10020f08
mov ecx, dword [0x10132a94]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov esi, eax
mov dword [esp + 0x20], esi
test esi, esi
je 0x10020ef1
cmp esi, dword [0x10132ac8]
je 0x10020ef1
mov eax, dword [esi + 8]
lea ebx, [esi + 8]
mov ecx, ebx
mov eax, dword [eax + 0x28]
call eax
cmp byte [0x10133198], 0
mov edi, eax
mov ecx, dword [0x10132a9c]
movss xmm0, dword [ecx + 0x14]
divss xmm0, dword [0x1013319c]
movss dword [esp + 0x14], xmm0
je 0x1001f864
mov ecx, dword [ebx]
mov edx, dword [ecx + 0x24]
mov ecx, ebx
call edx
test al, al
jne 0x1001f7ff
mov eax, dword [0x10132ac4]
test eax, eax
jne 0x1001f7e6
mov edx, 0xe80c2f78
mov ecx, 0x101114a5
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov esi, dword [esp + 0x20]
mov dword [0x10132ac4], eax
cmp dword [eax + esi], 0
jle 0x1001f7ff
movss xmm0, dword [esp + 0x14]
lea edx, [edi*4 + 0x101331d8]
addss xmm0, dword [edx]
jmp 0x1001f815
movss xmm0, dword [edi*4 + 0x101331d8]
lea edx, [edi*4 + 0x101331d8]
subss xmm0, dword [esp + 0x14]
comiss xmm0, dword [0x1012c718]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x28], 0x3f800000
lea eax, [esp + 0x28]
mov dword [esp + 0x2c], 0
movss xmm1, dword [0x1012c844]
movss dword [edx], xmm0
cmovae ecx, edx
comiss xmm1, xmm0
movss xmm1, dword [0x1012c7ac]
cmovae eax, ecx
movss xmm0, dword [eax]
comiss xmm1, xmm0
movss dword [edx], xmm0
ja 0x10020ef1
jmp 0x1001f8ba
mov eax, dword [0x10132ac4]
test eax, eax
jne 0x1001f89f
mov edx, 0xe80c2f78
mov ecx, 0x101114a5
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov esi, dword [esp + 0x20]
mov dword [0x10132ac4], eax
cmp dword [eax + esi], 0
jle 0x10020ef1
mov eax, dword [ebx]
mov ecx, ebx
mov eax, dword [eax + 0x24]
call eax
test al, al
jne 0x10020ef1
lea eax, [esp + 0x4d4]
mov ecx, esi
push eax
call fcn.10004950
push eax
push esi
call fcn.10004a10
mov cl, byte [0x10133198]
mov byte [esp + 0x13], al
test cl, cl
je 0x1001f934
movss xmm0, dword [0x1013148c]
lea eax, [esp + 0xf4]
movss dword [esp + 0xf4], xmm0
movss xmm0, dword [0x10131490]
movss dword [esp + 0xf8], xmm0
movss xmm0, dword [0x10131494]
movss dword [esp + 0xfc], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x10131498]
movss dword [esp + 0x100], xmm0
jmp 0x1001f94a
movups xmm0, xmmword [0x1013148c]
lea eax, [esp + 0x104]
movups xmmword [esp + 0x104], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x40], xmm0
test cl, cl
je 0x1001f9ac
movss xmm0, dword [0x1013151c]
lea eax, [esp + 0x114]
movss dword [esp + 0x114], xmm0
movss xmm0, dword [0x10131520]
movss dword [esp + 0x118], xmm0
movss xmm0, dword [0x10131524]
movss dword [esp + 0x11c], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x10131528]
movss dword [esp + 0x120], xmm0
jmp 0x1001f9c2
movups xmm0, xmmword [0x1013151c]
lea eax, [esp + 0x124]
movups xmmword [esp + 0x124], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x30], xmm0
test cl, cl
je 0x1001fa24
movss xmm0, dword [0x1013154c]
lea eax, [esp + 0x134]
movss dword [esp + 0x134], xmm0
movss xmm0, dword [0x10131550]
movss dword [esp + 0x138], xmm0
movss xmm0, dword [0x10131554]
movss dword [esp + 0x13c], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x10131558]
movss dword [esp + 0x140], xmm0
jmp 0x1001fa3a
movups xmm0, xmmword [0x1013154c]
lea eax, [esp + 0x144]
movups xmmword [esp + 0x144], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x3e0], xmm0
test cl, cl
je 0x1001fa9f
movss xmm0, dword [0x1013158c]
lea eax, [esp + 0x154]
movss dword [esp + 0x154], xmm0
movss xmm0, dword [0x10131590]
movss dword [esp + 0x158], xmm0
movss xmm0, dword [0x10131594]
movss dword [esp + 0x15c], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x10131598]
movss dword [esp + 0x160], xmm0
jmp 0x1001fab5
movups xmm0, xmmword [0x1013158c]
lea eax, [esp + 0x164]
movups xmmword [esp + 0x164], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x410], xmm0
test cl, cl
je 0x1001fb1a
movss xmm0, dword [0x1013147c]
lea eax, [esp + 0x174]
movss dword [esp + 0x174], xmm0
movss xmm0, dword [0x10131480]
movss dword [esp + 0x178], xmm0
movss xmm0, dword [0x10131484]
movss dword [esp + 0x17c], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x10131488]
movss dword [esp + 0x180], xmm0
jmp 0x1001fb30
movups xmm0, xmmword [0x1013147c]
lea eax, [esp + 0x184]
movups xmmword [esp + 0x184], xmm0
mov dword [esp + 0x14], eax
test cl, cl
je 0x1001fb8e
movss xmm0, dword [0x1013143c]
lea eax, [esp + 0x194]
movss dword [esp + 0x194], xmm0
movss xmm0, dword [0x10131440]
movss dword [esp + 0x198], xmm0
movss xmm0, dword [0x10131444]
movss dword [esp + 0x19c], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x10131448]
movss dword [esp + 0x1a0], xmm0
jmp 0x1001fba4
movups xmm0, xmmword [0x1013143c]
lea eax, [esp + 0x1a4]
movups xmmword [esp + 0x1a4], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x440], xmm0
test cl, cl
je 0x1001fc09
movss xmm0, dword [0x1013145c]
lea eax, [esp + 0x1b4]
movss dword [esp + 0x1b4], xmm0
movss xmm0, dword [0x10131460]
movss dword [esp + 0x1b8], xmm0
movss xmm0, dword [0x10131464]
movss dword [esp + 0x1bc], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x10131468]
movss dword [esp + 0x1c0], xmm0
jmp 0x1001fc1f
movups xmm0, xmmword [0x1013145c]
lea eax, [esp + 0x1c4]
movups xmmword [esp + 0x1c4], xmm0
mov dword [esp + 0x24], eax
test cl, cl
je 0x1001fc7d
movss xmm0, dword [0x101314dc]
lea eax, [esp + 0x1d4]
movss dword [esp + 0x1d4], xmm0
movss xmm0, dword [0x101314e0]
movss dword [esp + 0x1d8], xmm0
movss xmm0, dword [0x101314e4]
movss dword [esp + 0x1dc], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x101314e8]
movss dword [esp + 0x1e0], xmm0
jmp 0x1001fc93
movups xmm0, xmmword [0x101314dc]
lea eax, [esp + 0x1e4]
movups xmmword [esp + 0x1e4], xmm0
mov dword [esp + 0x1c], eax
test cl, cl
je 0x1001fcf1
movss xmm0, dword [0x101314bc]
lea eax, [esp + 0x1f4]
movss dword [esp + 0x1f4], xmm0
movss xmm0, dword [0x101314c0]
movss dword [esp + 0x1f8], xmm0
movss xmm0, dword [0x101314c4]
movss dword [esp + 0x1fc], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x101314c8]
movss dword [esp + 0x200], xmm0
jmp 0x1001fd07
movups xmm0, xmmword [0x101314bc]
lea eax, [esp + 0x204]
movups xmmword [esp + 0x204], xmm0
mov dword [esp + 0x18], eax
test cl, cl
je 0x1001fd65
movss xmm0, dword [0x101314ac]
lea eax, [esp + 0x214]
movss dword [esp + 0x214], xmm0
movss xmm0, dword [0x101314b0]
movss dword [esp + 0x218], xmm0
movss xmm0, dword [0x101314b4]
movss dword [esp + 0x21c], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x101314b8]
movss dword [esp + 0x220], xmm0
jmp 0x1001fd7b
movups xmm0, xmmword [0x101314ac]
lea eax, [esp + 0x224]
movups xmmword [esp + 0x224], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x450], xmm0
test cl, cl
je 0x1001fde0
movss xmm0, dword [0x1013146c]
lea eax, [esp + 0x234]
movss dword [esp + 0x234], xmm0
movss xmm0, dword [0x10131470]
movss dword [esp + 0x238], xmm0
movss xmm0, dword [0x10131474]
movss dword [esp + 0x23c], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x10131478]
movss dword [esp + 0x240], xmm0
jmp 0x1001fdf6
movups xmm0, xmmword [0x1013146c]
lea eax, [esp + 0x244]
movups xmmword [esp + 0x244], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x460], xmm0
test cl, cl
je 0x1001fe5b
movss xmm0, dword [0x1013149c]
lea eax, [esp + 0x254]
movss dword [esp + 0x254], xmm0
movss xmm0, dword [0x101314a0]
movss dword [esp + 0x258], xmm0
movss xmm0, dword [0x101314a4]
movss dword [esp + 0x25c], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x101314a8]
movss dword [esp + 0x260], xmm0
jmp 0x1001fe71
movups xmm0, xmmword [0x1013149c]
lea eax, [esp + 0x264]
movups xmmword [esp + 0x264], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x3b0], xmm0
test cl, cl
je 0x1001fed6
movss xmm0, dword [0x1013155c]
lea eax, [esp + 0x274]
movss dword [esp + 0x274], xmm0
movss xmm0, dword [0x10131560]
movss dword [esp + 0x278], xmm0
movss xmm0, dword [0x10131564]
movss dword [esp + 0x27c], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x10131568]
movss dword [esp + 0x280], xmm0
jmp 0x1001feec
movups xmm0, xmmword [0x1013155c]
lea eax, [esp + 0x284]
movups xmmword [esp + 0x284], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x3c0], xmm0
test cl, cl
je 0x1001ff51
movss xmm0, dword [0x1013150c]
lea eax, [esp + 0x294]
movss dword [esp + 0x294], xmm0
movss xmm0, dword [0x10131510]
movss dword [esp + 0x298], xmm0
movss xmm0, dword [0x10131514]
movss dword [esp + 0x29c], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x10131518]
movss dword [esp + 0x2a0], xmm0
jmp 0x1001ff67
movups xmm0, xmmword [0x1013150c]
lea eax, [esp + 0x2a4]
movups xmmword [esp + 0x2a4], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x3d0], xmm0
test cl, cl
je 0x1001ffcc
movss xmm0, dword [0x1013153c]
lea eax, [esp + 0x2b4]
movss dword [esp + 0x2b4], xmm0
movss xmm0, dword [0x10131540]
movss dword [esp + 0x2b8], xmm0
movss xmm0, dword [0x10131544]
movss dword [esp + 0x2bc], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x10131548]
movss dword [esp + 0x2c0], xmm0
jmp 0x1001ffe2
movups xmm0, xmmword [0x1013153c]
lea eax, [esp + 0x2c4]
movups xmmword [esp + 0x2c4], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x4c0], xmm0
test cl, cl
je 0x10020047
movss xmm0, dword [0x101314cc]
lea eax, [esp + 0x2d4]
movss dword [esp + 0x2d4], xmm0
movss xmm0, dword [0x101314d0]
movss dword [esp + 0x2d8], xmm0
movss xmm0, dword [0x101314d4]
movss dword [esp + 0x2dc], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x101314d8]
movss dword [esp + 0x2e0], xmm0
jmp 0x1002005d
movups xmm0, xmmword [0x101314cc]
lea eax, [esp + 0x2e4]
movups xmmword [esp + 0x2e4], xmm0
mov dword [esp + 0x2c], eax
test cl, cl
je 0x100200bb
movss xmm0, dword [0x1013152c]
lea eax, [esp + 0x2f4]
movss dword [esp + 0x2f4], xmm0
movss xmm0, dword [0x10131530]
movss dword [esp + 0x2f8], xmm0
movss xmm0, dword [0x10131534]
movss dword [esp + 0x2fc], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x10131538]
movss dword [esp + 0x300], xmm0
jmp 0x100200d1
movups xmm0, xmmword [0x1013152c]
lea eax, [esp + 0x304]
movups xmmword [esp + 0x304], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x490], xmm0
test cl, cl
je 0x10020136
movss xmm0, dword [0x101314fc]
lea eax, [esp + 0x314]
movss dword [esp + 0x314], xmm0
movss xmm0, dword [0x10131500]
movss dword [esp + 0x318], xmm0
movss xmm0, dword [0x10131504]
movss dword [esp + 0x31c], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x10131508]
movss dword [esp + 0x320], xmm0
jmp 0x1002014c
movups xmm0, xmmword [0x101314fc]
lea eax, [esp + 0x324]
movups xmmword [esp + 0x324], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x4a0], xmm0
test cl, cl
je 0x100201b1
movss xmm0, dword [0x1013157c]
lea eax, [esp + 0x334]
movss dword [esp + 0x334], xmm0
movss xmm0, dword [0x10131580]
movss dword [esp + 0x338], xmm0
movss xmm0, dword [0x10131584]
movss dword [esp + 0x33c], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x10131588]
movss dword [esp + 0x340], xmm0
jmp 0x100201c7
movups xmm0, xmmword [0x1013157c]
lea eax, [esp + 0x344]
movups xmmword [esp + 0x344], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x470], xmm0
test cl, cl
je 0x1002022c
movss xmm0, dword [0x1013156c]
lea eax, [esp + 0x354]
movss dword [esp + 0x354], xmm0
movss xmm0, dword [0x10131570]
movss dword [esp + 0x358], xmm0
movss xmm0, dword [0x10131574]
movss dword [esp + 0x35c], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x10131578]
movss dword [esp + 0x360], xmm0
jmp 0x10020242
movups xmm0, xmmword [0x1013156c]
lea eax, [esp + 0x364]
movups xmmword [esp + 0x364], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x4b0], xmm0
test cl, cl
je 0x100202a7
movss xmm0, dword [0x1013144c]
lea eax, [esp + 0x374]
movss dword [esp + 0x374], xmm0
movss xmm0, dword [0x10131450]
movss dword [esp + 0x378], xmm0
movss xmm0, dword [0x10131454]
movss dword [esp + 0x37c], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x10131458]
movss dword [esp + 0x380], xmm0
jmp 0x100202bd
movups xmm0, xmmword [0x1013144c]
lea eax, [esp + 0x384]
movups xmmword [esp + 0x384], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x480], xmm0
test cl, cl
je 0x10020322
movss xmm0, dword [0x101314ec]
lea eax, [esp + 0x394]
movss dword [esp + 0x394], xmm0
movss xmm0, dword [0x101314f0]
movss dword [esp + 0x398], xmm0
movss xmm0, dword [0x101314f4]
movss dword [esp + 0x39c], xmm0
movss xmm0, dword [edi*4 + 0x101331d8]
mulss xmm0, dword [0x101314f8]
movss dword [esp + 0x3a0], xmm0
jmp 0x10020338
movups xmm0, xmmword [0x101314ec]
lea eax, [esp + 0xe4]
movups xmmword [esp + 0xe4], xmm0
movups xmm0, xmmword [eax]
mov ecx, dword [0x10132a90]
movups xmmword [esp + 0xc0], xmm0
test ecx, ecx
jne 0x10020382
mov edx, 0xe80c2f78
mov ecx, 0x10111409
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113c9
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov esi, dword [esp + 0x20]
mov ecx, eax
mov dword [0x10132a90], ecx
mov ebx, dword [0x10132ac8]
lea edi, [ecx + esi]
test ecx, ecx
jne 0x100203c4
mov edx, 0xe80c2f78
mov ecx, 0x10111409
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113c9
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov esi, dword [esp + 0x20]
mov ecx, eax
mov dword [0x10132a90], ecx
mov eax, dword [edi]
cmp eax, dword [ebx + ecx]
je 0x10020ef1
cmp byte [0x101331ad], 0
je 0x10020417
mov eax, dword [0x10133180]
test eax, eax
jne 0x10020413
mov edx, 0xe80c2f78
mov ecx, 0x10113b29
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113c9
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov esi, dword [esp + 0x20]
mov dword [0x10133180], eax
mov byte [eax + esi], 1
cmp byte [0x101331af], 0
je 0x10020457
cmp byte [0x101331ae], 0
je 0x10020432
lea ecx, [esp + 0xc0]
jmp 0x10020442
cmp byte [esp + 0x13], 0
lea ecx, [esp + 0x40]
lea eax, [esp + 0x30]
cmove ecx, eax
movups xmm0, xmmword [ecx]
sub esp, 0x10
mov ecx, esi
mov eax, esp
movups xmmword [eax], xmm0
call fcn.10024040
add esp, 0x10
lea edx, [esp + 0x80]
mov ecx, esi
call fcn.1001ee10
test al, al
je 0x10020ef1
cmp byte [0x101331ba], 0
movaps xmm1, xmmword [esp + 0x80]
je 0x100204c5
cmp byte [0x101331ae], 0
je 0x10020490
lea ecx, [esp + 0x3e0]
jmp 0x100204a0
cmp byte [esp + 0x13], 0
lea ecx, [esp + 0x40]
lea eax, [esp + 0x30]
cmove ecx, eax
movups xmm0, xmmword [ecx]
sub esp, 0x10
mov ecx, esi
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
movups xmmword [eax], xmm1
call fcn.10020f20
movaps xmm1, xmmword [esp + 0xa0]
add esp, 0x20
cmp byte [0x101331ca], 0
je 0x10020548
mov al, byte [0x101331ae]
test al, al
je 0x100204ef
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x3f0]
movups xmm0, xmmword [ecx]
movups xmmword [esp + 0x3f0], xmm0
jmp 0x10020505
movaps xmm0, xmmword [0x1012cb20]
lea edx, [esp + 0x400]
movups xmmword [esp + 0x400], xmm0
test al, al
je 0x10020512
lea ecx, [esp + 0x410]
jmp 0x10020522
cmp byte [esp + 0x13], 0
lea ecx, [esp + 0x40]
lea eax, [esp + 0x30]
cmove ecx, eax
movups xmm0, xmmword [edx]
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
mov eax, esp
movups xmmword [eax], xmm1
call fcn.10021170
add esp, 0x30
cmp byte [0x10133195], 0
je 0x100205f7
mov al, byte [0x101331ae]
test al, al
je 0x10020576
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x420]
movups xmm0, xmmword [ecx]
movups xmmword [esp + 0x420], xmm0
jmp 0x1002058c
movaps xmm0, xmmword [0x1012cb20]
lea edx, [esp + 0x430]
movups xmmword [esp + 0x430], xmm0
test al, al
je 0x10020599
lea ecx, [esp + 0x440]
jmp 0x100205a9
cmp byte [esp + 0x13], 0
lea ecx, [esp + 0x40]
lea eax, [esp + 0x30]
cmove ecx, eax
movups xmm0, xmmword [edx]
mov edx, dword [esp + 0x1c]
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [edx]
mov edx, dword [esp + 0x54]
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [edx]
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [ecx]
mov ecx, esi
movups xmmword [eax], xmm0
mov eax, esp
movaps xmm0, xmmword [esp + 0xd0]
movups xmmword [eax], xmm0
call fcn.10021340
add esp, 0x50
cmp byte [0x101331ab], 0
je 0x10020637
cmp byte [0x101331ae], 0
je 0x10020612
lea ecx, [esp + 0x450]
jmp 0x10020622
cmp byte [esp + 0x13], 0
lea ecx, [esp + 0x40]
lea eax, [esp + 0x30]
cmove ecx, eax
movups xmm0, xmmword [ecx]
sub esp, 0x10
mov ecx, esi
mov eax, esp
movups xmmword [eax], xmm0
call fcn.10021d80
add esp, 0x10
cmp byte [0x10133197], 0
je 0x10020677
cmp byte [0x101331ae], 0
je 0x10020652
lea ecx, [esp + 0x460]
jmp 0x10020662
cmp byte [esp + 0x13], 0
lea ecx, [esp + 0x40]
lea eax, [esp + 0x30]
cmove ecx, eax
movups xmm0, xmmword [ecx]
sub esp, 0x10
mov ecx, esi
mov eax, esp
movups xmmword [eax], xmm0
call fcn.10021ab0
add esp, 0x10
cmp byte [0x101331ac], 0
je 0x100208a1
cmp byte [0x101331ae], 0
je 0x10020696
lea eax, [esp + 0x3b0]
jmp 0x100206a6
cmp byte [esp + 0x13], 0
lea eax, [esp + 0x40]
lea ecx, [esp + 0x30]
cmove eax, ecx
movups xmm0, xmmword [eax]
mov eax, dword [esi + 8]
lea ecx, [esi + 8]
movups xmmword [esp + 0x3b0], xmm0
mov eax, dword [eax + 0x28]
call eax
mov dword [esp + 0xbc], eax
mov ecx, 0x10132eec
lea eax, [esp + 0xbc]
push eax
call fcn.10006c10
cmp dword [eax + 0x10], 1
jb 0x100208a1
mov ebx, dword [esp + 0x20]
xorps xmm0, xmm0
movss dword [esp + 0x14], xmm0
mov esi, 1
movss dword [esp + 0x18], xmm0
movss dword [esp + 0x1c], xmm0
mov eax, dword [ebx + 8]
lea ecx, [ebx + 8]
mov eax, dword [eax + 0x28]
call eax
mov dword [esp + 0x58], eax
mov ecx, 0x10132eec
lea eax, [esp + 0x58]
push eax
call fcn.10006c10
cmp dword [eax + 0x10], esi
jbe 0x1002089d
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [ebx + 8]
lea ecx, [ebx + 8]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov eax, dword [eax + 0x28]
call eax
mov dword [esp + 0x70], eax
mov ecx, 0x10132eec
lea eax, [esp + 0x70]
push eax
call fcn.10006c10
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 8]
add edx, esi
mov eax, dword [eax + 4]
dec ecx
and edx, ecx
mov ecx, dword [0x10133174]
mov eax, dword [eax + edx*4]
lea edx, [esp + 0x74]
push edx
lea edx, [esp + 0x3a8]
push edx
movq xmm0, qword [eax + 0xc]
movq qword [esp + 0x3ac], xmm0
mov eax, dword [eax + 0x14]
mov dword [esp + 0x3b4], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
cmp eax, 1
je 0x10020875
fld dword [esp + 0x1c]
push ecx
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__fdclass
add esp, 4
test ax, ax
jg 0x10020851
fld dword [esp + 0x18]
push ecx
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__fdclass
add esp, 4
test ax, ax
jg 0x10020851
fld dword [esp + 0x14]
push ecx
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__fdclass
add esp, 4
test ax, ax
jg 0x10020851
movss xmm0, dword [esp + 0x1c]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10020825
movss xmm0, dword [esp + 0x18]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10020825
movss xmm0, dword [esp + 0x14]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10020851
movss xmm3, dword [0x1012c890]
lea eax, [esp + 0x3b0]
movss xmm2, dword [esp + 0x78]
sub esp, 8
movss xmm1, dword [esp + 0x7c]
push eax
push ecx
mov dword [esp], 0x40000000
call fcn.1007f750
movss xmm0, dword [esp + 0x74]
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [esp + 0x78]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x7c]
movss dword [esp + 0x14], xmm0
mov eax, dword [ebx + 8]
lea ecx, [ebx + 8]
inc esi
mov eax, dword [eax + 0x28]
call eax
mov dword [esp + 0x58], eax
mov ecx, 0x10132eec
lea eax, [esp + 0x58]
push eax
call fcn.10006c10
cmp esi, dword [eax + 0x10]
jb 0x10020730
mov esi, dword [esp + 0x20]
cmp byte [0x101331b9], 0
je 0x10020b11
cmp byte [0x101331ae], 0
je 0x100208c0
lea eax, [esp + 0x3c0]
jmp 0x100208d0
cmp byte [esp + 0x13], 0
lea eax, [esp + 0x40]
lea ecx, [esp + 0x30]
cmove eax, ecx
movups xmm0, xmmword [eax]
mov eax, dword [esi + 4]
lea ecx, [esi + 4]
push ecx
mov dword [esp], 0
lea edx, [esp + 0x4e4]
push pe_nt_image_headers32
mov eax, dword [eax + 0x34]
push 0x80
push edx
movups xmmword [esp + 0x3d0], xmm0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
call eax
test al, al
je 0x1002095a
movss xmm1, dword [esp + 0x67c]
movss xmm0, dword [esp + 0x66c]
movss dword [esp + 0x18], xmm1
movss dword [esp + 0x60], xmm1
movss xmm1, dword [esp + 0x68c]
movss dword [esp + 0x1c], xmm1
movss dword [esp + 0x64], xmm1
jmp 0x10020975
xorps xmm0, xmm0
movss dword [esp + 0x1c], xmm0
movss dword [esp + 0x64], xmm0
movss dword [esp + 0x18], xmm0
movss dword [esp + 0x60], xmm0
mov eax, dword [0x1013318c]
movss dword [esp + 0x5c], xmm0
movss dword [esp + 0x14], xmm0
test eax, eax
jne 0x100209e0
mov edx, 0xe80c2f78
mov ecx, 0x10113e09
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
movss xmm0, dword [esp + 0x64]
mov esi, dword [esp + 0x20]
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [esp + 0x60]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x5c]
mov dword [0x1013318c], eax
movss dword [esp + 0x14], xmm0
lea ecx, [eax + esi]
lea edx, [esp + 0x98]
call fcn.10007460
movss xmm1, dword [0x101315b0]
lea edx, [esp + 0xb0]
movaps xmm0, xmm1
mov ecx, dword [0x10133174]
mulss xmm0, dword [esp + 0x98]
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], 0
addss xmm0, dword [esp + 0x14]
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
push edx
movss dword [esp + 0xdc], xmm0
lea edx, [esp + 0x60]
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0xa0]
push edx
addss xmm0, dword [esp + 0x20]
movss dword [esp + 0xe4], xmm0
movss xmm0, dword [esp + 0xa8]
mulss xmm0, xmm1
addss xmm0, dword [esp + 0x24]
movss dword [esp + 0xe8], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
cmp eax, 1
je 0x10020b11
mov ecx, dword [0x10133174]
lea edx, [esp + 0xa4]
push edx
lea edx, [esp + 0xdc]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
cmp eax, 1
je 0x10020b11
movss xmm0, dword [0x101315ac]
lea eax, [esp + 0x3c0]
movss xmm3, dword [esp + 0xa4]
movss xmm2, dword [esp + 0xb4]
movss xmm1, dword [esp + 0xb0]
push ecx
movss dword [esp], xmm0
movss xmm0, dword [esp + 0xac]
push eax
push ecx
movss dword [esp], xmm0
call fcn.1007f3c0
cmp byte [0x101331b1], 0
mov al, byte [0x101331ae]
je 0x10020ca2
test al, al
je 0x10020b30
lea ecx, [esp + 0x3d0]
jmp 0x10020b40
cmp byte [esp + 0x13], 0
lea ecx, [esp + 0x40]
lea edx, [esp + 0x30]
cmove ecx, edx
cmp byte [0x101331b4], 0
movups xmm0, xmmword [ecx]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x80]
movups xmmword [esp + 0xc0], xmm0
je 0x10020bbb
movss xmm0, dword [0x101315a4]
lea eax, [esp + 0xc0]
movd xmm3, dword [0x10132f58]
push ecx
movss dword [esp], xmm0
push eax
mov eax, esi
movd xmm2, edi
cdq
sub eax, edx
sar eax, 1
add eax, ebx
cvtdq2ps xmm3, xmm3
push ecx
mov dword [esp], 0
movd xmm1, eax
mulss xmm3, dword [0x1012c800]
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm1, xmm1
call fcn.1007f3c0
mov al, byte [0x101331ae]
cmp byte [0x101331b5], 0
je 0x10020c35
movss xmm0, dword [0x101315a4]
lea eax, [esp + 0xc0]
movd xmm3, dword [0x10132f58]
push ecx
movss dword [esp], xmm0
push eax
mov eax, dword [esp + 0x94]
movd xmm0, dword [0x10132f54]
cdq
sub eax, edx
sar eax, 1
add eax, edi
cvtdq2ps xmm0, xmm0
push ecx
movd xmm2, eax
mov eax, esi
mulss xmm0, dword [0x1012c800]
cdq
sub eax, edx
sar eax, 1
add eax, ebx
movss dword [esp], xmm0
cvtdq2ps xmm3, xmm3
movd xmm1, eax
mulss xmm3, dword [0x1012c800]
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm1, xmm1
call fcn.1007f3c0
mov al, byte [0x101331ae]
cmp byte [0x101331b6], 0
je 0x10020ca2
movss xmm0, dword [0x101315a4]
lea eax, [esp + 0xc0]
movd xmm3, dword [0x10132f58]
push ecx
movss dword [esp], xmm0
movd xmm0, dword [0x10132f54]
push eax
mov eax, esi
cdq
push ecx
mov ecx, dword [esp + 0x98]
sub eax, edx
sar eax, 1
add ecx, edi
add eax, ebx
cvtdq2ps xmm3, xmm3
movd xmm2, ecx
mulss xmm3, dword [0x1012c800]
movd xmm1, eax
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm1, xmm1
movss dword [esp], xmm0
call fcn.1007f3c0
mov al, byte [0x101331ae]
cmp byte [0x101331a0], 0
je 0x10020cf4
test al, al
je 0x10020cb8
lea ecx, [esp + 0x3d0]
jmp 0x10020cc8
cmp byte [esp + 0x13], 0
lea ecx, [esp + 0x40]
lea eax, [esp + 0x30]
cmove ecx, eax
movups xmm0, xmmword [ecx]
mov ecx, dword [esp + 0x20]
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
movaps xmm0, xmmword [esp + 0xa0]
movups xmmword [eax], xmm0
call fcn.10021fd0
mov al, byte [0x101331ae]
add esp, 0x20
mov ah, byte [esp + 0x13]
test al, al
je 0x10020d05
lea ecx, [esp + 0x470]
jmp 0x10020d20
test ah, ah
je 0x10020d1c
lea ecx, [esp + 0x40]
mov edx, ecx
mov esi, ecx
mov edi, ecx
mov ebx, ecx
mov eax, ecx
jmp 0x10020e60
lea ecx, [esp + 0x30]
mov esi, ecx
test al, al
je 0x10020d2f
lea edx, [esp + 0x480]
jmp 0x10020d4c
mov ecx, esi
test ah, ah
je 0x10020d46
lea edx, [esp + 0x40]
mov esi, edx
mov edi, edx
mov ebx, edx
mov eax, edx
jmp 0x10020e60
lea edx, [esp + 0x30]
mov ecx, esi
mov edi, ecx
mov ebx, edx
test al, al
je 0x10020d5d
lea esi, [esp + 0x490]
jmp 0x10020d7c
mov edx, ebx
mov ecx, edi
test ah, ah
je 0x10020d74
lea esi, [esp + 0x40]
mov edi, esi
mov ebx, esi
mov eax, esi
jmp 0x10020e60
lea esi, [esp + 0x30]
mov edx, ebx
mov ecx, edi
mov dword [esp + 0x24], esi
mov edi, edx
mov dword [esp + 0x28], edi
mov ebx, ecx
test al, al
je 0x10020d95
lea edi, [esp + 0x4a0]
jmp 0x10020dbc
mov esi, dword [esp + 0x24]
mov edx, edi
mov ecx, ebx
test ah, ah
je 0x10020dae
lea edi, [esp + 0x40]
mov ebx, edi
mov eax, edi
jmp 0x10020e60
mov esi, dword [esp + 0x24]
lea edi, [esp + 0x30]
mov edx, dword [esp + 0x28]
mov ecx, ebx
mov dword [esp + 0x18], edx
mov ebx, ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x24], edi
test al, al
je 0x10020ddb
lea ebx, [esp + 0x4b0]
jmp 0x10020e09
mov edi, dword [esp + 0x24]
mov ecx, ebx
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
test ah, ah
je 0x10020df5
lea ebx, [esp + 0x40]
mov eax, ebx
jmp 0x10020e60
mov edi, dword [esp + 0x24]
lea ebx, [esp + 0x30]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], ebx
test al, al
je 0x10020e2a
lea eax, [esp + 0x4c0]
jmp 0x10020e60
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x28]
test ah, ah
je 0x10020e48
lea eax, [esp + 0x40]
jmp 0x10020e60
mov ebx, dword [esp + 0x24]
lea eax, [esp + 0x30]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], eax
sub esp, 0x10
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x38], esp
movups xmm0, xmmword [eax]
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [ecx]
mov ecx, dword [esp + 0x44]
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [edx]
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [esi]
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [edi]
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [ebx]
mov ebx, dword [esp + 0x90]
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [ecx]
mov ecx, ebx
movups xmmword [eax], xmm0
mov eax, esp
movaps xmm0, xmmword [esp + 0x100]
movups xmmword [eax], xmm0
call fcn.10022a60
add esp, 0x80
cmp byte [0x10133191], 0
je 0x10020ef1
mov ecx, ebx
call fcn.100253b0
mov edx, dword [esp + 0x6c]
mov eax, dword [0x10132a9c]
inc edx
mov dword [esp + 0x6c], edx
cmp edx, dword [eax + 0x18]
jle 0x1001f741
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret