Function at 0x1000ed90
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001f74a
mov eax, dword fs:[0]
push eax
sub esp, 0x150
mov eax, dword [0x1002abc0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, ecx
mov dword [ebp - 0x128], edx
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 0x18]
add edi, 0xa
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x118], eax
mov eax, dword [edx + 0x14]
add edi, eax
mov dword [ebp - 0x134], eax
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x138], esi
mov dword [ebp - 0x12c], edi
lea ecx, [eax + eax*4]
lea ebx, [ecx*4 + 0xf]
mov ecx, dword [ebp + 8]
add ebx, dword [edx + 0x18]
mov dword [ebp - 0x140], ebx
cmp ecx, 3
je 0x1000ee86
cmp ecx, 2
mov edx, 0x12
mov eax, 0xf
mov ecx, 0x1002ef08
cmove eax, edx
mov edx, 0x168
push eax
mov eax, 0x8a
cmove eax, edx
push eax
push ebx
push edi
call fcn.1001bd30
test al, al
je 0x1000ee80
push dword [ebp - 0x118]
mov eax, dword [0x1002d6ec]
push 0xff
push 0
push 0
push 0xb4
add eax, 7
push eax
mov eax, dword [0x1002d6e8]
add eax, 0xf
push eax
push 0
push dword [0x1002f06c]
push 0x1002f060
call fcn.10005fc0
add esp, 0x28
mov edx, dword [ebp - 0x128]
mov eax, 0xffffffd7
lea ecx, [edx + 0x29]
sub eax, edx
mov dword [ebp - 0x118], eax
mov esi, eax
nop dword [eax + eax]
mov al, byte [ecx - 1]
mov byte [ebp - 0x11d], al
test al, al
jne 0x1000eeeb
mov al, byte [ecx]
mov byte [ebp - 0x11d], al
test al, al
jne 0x1000eeeb
mov al, byte [ecx + 1]
mov byte [ebp - 0x11d], al
test al, al
jne 0x1000eeeb
mov al, byte [ecx + 2]
mov byte [ebp - 0x11d], al
test al, al
jne 0x1000eeeb
mov al, byte [ecx + 3]
mov byte [ebp - 0x11d], al
test al, al
jne 0x1000eeeb
add ecx, 5
lea eax, [esi + ecx]
cmp eax, 0x32
jl 0x1000eea0
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x138]
test eax, eax
jne 0x1000f133
push dword [ebp - 0x13c]
push 0xff
push 0xff
push 0xff
push 0xff
push ebx
push edi
push 0
push dword [0x1002f06c]
push 0x1002f060
call fcn.10005fc0
add esp, 0x28
lea eax, [ebx - 3]
add edi, 0x64
mov ecx, 0x1002ef08
mov dword [ebp - 0x12c], edi
push 0x12
push 0x12
push eax
lea eax, [edi - 3]
push eax
call fcn.1001bdb0
xorps xmm1, xmm1
test al, al
je 0x1000ef7c
cmp byte [ebp - 0x11d], 0
jne 0x1000ef7c
movss xmm0, dword [esi]
mov edx, 1
ucomiss xmm0, xmm1
lahf
xor ecx, ecx
test ah, 0x44
cmovnp ecx, edx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [esi], xmm0
push 0xff
push 0x49
push 0x49
push 0x49
push 0xd
push 0xd
inc ebx
mov ecx, 0x1002f060
push ebx
push edi
call fcn.10006360
movss xmm0, dword [esi]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1000f00a
mov ecx, dword [0x1002d610]
push 0xff
push 0x23
push 0x23
mov eax, dword [ecx]
push 0x23
mov eax, dword [eax + 0x2c]
call eax
mov ecx, dword [0x1002d610]
lea esi, [ebx + 0xc]
mov eax, dword [ebp - 0x12c]
lea edi, [ebx + 2]
add eax, 0xc
push esi
mov edx, dword [ecx]
push eax
mov eax, dword [ebp - 0x12c]
add eax, 2
push edi
push eax
mov eax, dword [edx + 0x3c]
call eax
mov eax, dword [ebp - 0x12c]
mov ecx, dword [0x1002d610]
inc eax
push esi
push eax
push edi
mov edi, dword [ebp - 0x12c]
mov edx, dword [ecx]
lea eax, [edi + 0xb]
push eax
mov eax, dword [edx + 0x3c]
call eax
push 0xd
push 0xd
push ebx
push edi
mov ecx, 0x1002ef08
call fcn.1001bd30
mov ecx, 0x1002f060
push 0xff
test al, al
je 0x1000f0c6
push 0
push 0
push 0x8c
push 1
push 0xd
push ebx
push edi
call fcn.10006360
push 0xff
push 0
push 0
push 0x8c
push 0xd
push 1
push ebx
push edi
mov ecx, 0x1002f060
call fcn.10006360
push 0xff
push 0
push 0
push 0x8c
push 0xe
push 1
push ebx
lea eax, [edi + 0xd]
mov ecx, 0x1002f060
push eax
call fcn.10006360
push 0xff
push 0
push 0
push 0x8c
push 1
push 0xd
lea eax, [ebx + 0xd]
mov ecx, 0x1002f060
push eax
push edi
call fcn.10006360
mov ecx, dword [0x1002d6f8]
mov eax, ecx
mov edx, dword [ebp - 0x128]
shr eax, 1
test al, 1
jne 0x1000ff93
or ecx, 2
mov dword [0x1002d6f8], ecx
jmp 0x1000ff93
push 0x23
push 0x23
push 0x23
push 1
push 0xd
push ebx
push edi
call fcn.10006360
push 0xff
push 0x23
push 0x23
push 0x23
push 0xd
push 1
push ebx
push edi
mov ecx, 0x1002f060
call fcn.10006360
push 0xff
push 0x23
push 0x23
push 0x23
push 0xe
push 1
push ebx
lea eax, [edi + 0xd]
mov ecx, 0x1002f060
push eax
call fcn.10006360
push 0xff
push 0x23
push 0x23
push 0x23
push 1
push 0xd
lea eax, [ebx + 0xd]
mov ecx, 0x1002f060
push eax
push edi
call fcn.10006360
jmp 0x1000ff8d
cmp eax, 1
jne 0x1000f205
push dword [ebp - 0x13c]
push 0xff
push 0xff
push 0xff
push 0xff
push ebx
push edi
push 0
push dword [0x1002f06c]
push 0x1002f060
call fcn.10005fc0
mov edx, dword [ebp - 0x128]
add edi, 0x50
dec ebx
mov dword [ebp - 0x15c], edi
add esp, 0x28
mov dword [ebp - 0x158], ebx
mov ecx, dword [edx + 0x20]
mov eax, dword [edx + 0x1c]
mov esi, dword [edx + 0x24]
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0x148], ecx
lea ecx, [edx + 0x5c]
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x150], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x118], esi
mov dword [ebp - 0x154], esi
mov esi, dword [ebp - 0x138]
mov dword [ebp - 0x14c], esi
cmp eax, dword [ecx + 8]
je 0x1000f1f3
mov dword [eax], edi
mov edi, dword [ebp - 0x144]
mov dword [eax + 4], ebx
mov ebx, dword [ebp - 0x118]
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], esi
mov esi, dword [ebp - 0x134]
mov dword [eax + 0x14], esi
add dword [ecx + 4], 0x18
jmp 0x1000ff93
lea edx, [ebp - 0x15c]
push edx
push eax
call fcn.1000e320
jmp 0x1000ff8d
cmp eax, 2
jne 0x1000fae3
cmp byte [edx + 0x6d], 0
movss xmm0, dword [ebp + 0x20]
divss xmm0, dword [edx + 0x70]
mov byte [ebp - 0x123], 0
movss dword [ebp - 0x130], xmm0
je 0x1000f2c6
mov ecx, dword [ebp - 0x13c]
lea edx, [ebp - 0x110]
sub edx, ecx
nop
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x1000f240
movss xmm0, dword [esi]
sub esp, 8
cvtps2pd xmm0, xmm0
mov byte [ebp - 0x114], al
lea eax, [ebp - 0x11c]
mov dword [ebp - 0x11c], 0x25207325
mov dword [ebp - 0x118], 0x66322e32
movsd qword [esp], xmm0
push dword [ebp - 0x13c]
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.1000d030
lea eax, [ebp - 0x110]
push eax
push 0xff
push 0xff
push 0xff
push 0xff
lea eax, [ebx - 7]
push eax
push edi
push 0
push dword [0x1002f06c]
push 0x1002f060
call fcn.10005fc0
add esp, 0x3c
jmp 0x1000f2fa
push dword [ebp - 0x13c]
lea eax, [ebx - 7]
push 0xff
push 0xff
push 0xff
push 0xff
push eax
push edi
push 0
push dword [0x1002f06c]
push 0x1002f060
call fcn.10005fc0
add esp, 0x28
mov esi, dword [ebp - 0x128]
add ebx, 8
cmp byte [esi + 0x6c], 0
movss xmm0, dword [esi + 0x70]
addss xmm0, dword [0x100253d0]
je 0x1000f415
cvttss2si eax, dword [esi + 0xc]
lea ecx, [ebx + 4]
push eax
cvttss2si eax, dword [esi + 8]
push eax
cvttss2si eax, dword [esi + 4]
push eax
cvttss2si eax, dword [esi]
push eax
cvttss2si eax, xmm0
push 5
push eax
push ecx
push edi
mov ecx, 0x1002f060
call fcn.10006360
movss xmm0, dword [esi + 0x70]
addss xmm0, dword [0x100253d0]
push 0xff
push 0x46
push 0x46
push 0x46
cvttss2si eax, xmm0
push 5
push eax
lea eax, [ebx + 4]
push eax
push edi
call fcn.1001b710
mov esi, dword [ebp - 0x140]
push 0x7b
push 0x78
push 0x73
push 0xff
push 0x46
push 0x46
push 0x46
push 1
push 0x3a
add esi, 0x11
push esi
push edi
call fcn.10012c50
add esp, 0x4c
lea eax, [edi + 0x39]
mov ecx, 0x1002f060
mov dword [ebp - 0x13c], eax
push 0xb9
push 0x7b
push 0x78
push 0x73
push 1
push 0xf0
push esi
push eax
call fcn.10006360
push 0x46
push 0x46
push 0x46
push 0xff
push 0x7b
push 0x78
push 0x73
push 1
push 0x43
lea eax, [edi + 0x129]
push esi
push eax
mov dword [ebp - 0x118], eax
call fcn.10012c50
push 0x7b
push 0x78
push 0x73
push 0xff
push 0x46
push 0x46
push 0x46
push 1
push 0x3a
lea esi, [ebx + 4]
push esi
push edi
call fcn.10012c50
mov dword [ebp - 0x144], 0x43
jmp 0x1000f507
mov ecx, dword [ebp - 0x140]
push 0xff
push 0x46
push 0x46
cvttss2si eax, xmm0
push 0x46
push 5
add ecx, 0xc
push eax
push ecx
push edi
call fcn.1001b810
mov esi, dword [ebp - 0x140]
mov eax, dword [ebp - 0x134]
add esi, 0x11
mov edi, dword [ebp + 0xc]
add eax, 0xc
push 0x7b
push 0x78
push 0x73
push 0xff
push 0x46
push 0x46
push 0x46
push 1
push 0x38
add edi, eax
push esi
push edi
call fcn.10012c50
mov ecx, dword [ebp + 0xc]
add esp, 0x4c
mov eax, dword [ebp - 0x134]
add ecx, 0x43
add eax, ecx
mov ecx, 0x1002f060
mov dword [ebp - 0x13c], eax
push 0xb9
push 0x7b
push 0x78
push 0x73
push 1
push 0xf0
push esi
push eax
call fcn.10006360
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x134]
add ecx, 0x133
push 0x46
push 0x46
push 0x46
push 0xff
push 0x7b
push 0x78
push 0x73
push 1
push 0x41
add eax, ecx
push esi
push eax
mov dword [ebp - 0x118], eax
call fcn.10012c50
mov esi, dword [ebp - 0x140]
push 0x7b
push 0x78
push 0x73
push 0xff
push 0x46
push 0x46
push 0x46
push 1
push 0x38
add esi, 0xc
push esi
push edi
call fcn.10012c50
mov edi, dword [ebp - 0x12c]
mov dword [ebp - 0x144], 0x41
add esp, 0x58
mov ecx, 0x1002f060
push 0xb9
push 0x7b
push 0x78
push 0x73
push 1
push 0xf0
push esi
push dword [ebp - 0x13c]
call fcn.10006360
push 0x46
push 0x46
push 0x46
push 0xff
push 0x7b
push 0x78
push 0x73
push 1
push dword [ebp - 0x144]
push esi
push dword [ebp - 0x118]
call fcn.10012c50
mov eax, dword [ebp - 0x134]
add esp, 0x2c
mov ecx, dword [0x1002ef24]
add eax, 7
add eax, dword [ebp + 0xc]
mov edx, dword [0x1002ef28]
mov esi, dword [ebp - 0x128]
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0x144], edx
cmp ecx, eax
jl 0x1000f611
movd xmm0, edi
cvtdq2ps xmm0, xmm0
movd xmm1, ecx
addss xmm0, dword [esi + 0x70]
cvtdq2ps xmm1, xmm1
addss xmm0, dword [0x100253d4]
comiss xmm0, xmm1
jb 0x1000f611
cmp edx, ebx
jl 0x1000f611
mov eax, dword [ebp - 0x140]
add eax, 0x12
cmp edx, eax
jg 0x1000f611
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1000f611
cmp dword [0x1002a8ec], 0xffffffff
jne 0x1000f611
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [0x1002d6e4], eax
jae 0x1000f611
mov ecx, dword [0x1002d6e0]
cmp byte [ecx + 0x1002d6ac], 0
jne 0x1000f617
mov edx, dword [0x1002d6f8]
mov eax, edx
shr eax, 1
mov dword [0x1002a8ec], ecx
mov byte [ecx + 0x1002d6ac], 1
test al, 1
jne 0x1000f617
or edx, 2
mov dword [0x1002d6f8], edx
jmp 0x1000f617
mov ecx, dword [0x1002d6e0]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x134]
add edx, 0xfffffc22
add eax, edx
mov edx, dword [ebp - 0x118]
cmp edx, eax
jl 0x1000f6f6
movd xmm0, edi
cvtdq2ps xmm0, xmm0
movd xmm1, edx
addss xmm0, dword [esi + 0x70]
cvtdq2ps xmm1, xmm1
addss xmm0, dword [0x100266f4]
comiss xmm0, xmm1
jb 0x1000f6f6
mov esi, dword [ebp - 0x140]
mov edx, dword [ebp - 0x144]
lea eax, [esi - 0x3e0]
cmp edx, eax
jl 0x1000f6f6
lea eax, [esi + 0x3f0]
cmp edx, eax
jg 0x1000f6f6
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1000f6f0
cmp byte [ebp - 0x11d], 0
jne 0x1000f6f0
mov eax, dword [0x1002d6e0]
movss xmm3, dword [ebp - 0x130]
movss xmm1, dword [ebp + 0x1c]
mov esi, dword [ebp - 0x138]
cmp byte [eax + 0x1002d6ac], 0
je 0x1000f72c
mov eax, dword [ebp - 0x118]
sub eax, edi
mov byte [ebp - 0x123], 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [esi], xmm0
mov ecx, dword [0x1002d6f8]
mov eax, ecx
shr eax, 1
test al, 1
jne 0x1000f72c
or ecx, 2
mov dword [0x1002d6f8], ecx
jmp 0x1000f72c
mov ecx, dword [0x1002d6e0]
cmp byte [ecx + 0x1002d6ac], 0
je 0x1000f719
mov dword [0x1002a8ec], 0xffffffff
cmp ecx, 0x32
jae 0x1000ffbe
mov byte [ecx + 0x1002d6ac], 0
mov esi, dword [ebp - 0x138]
movss xmm1, dword [ebp + 0x1c]
movss xmm3, dword [ebp - 0x130]
movss xmm0, dword [esi]
movss xmm2, dword [ebp + 0x20]
comiss xmm0, xmm2
jbe 0x1000f741
movss dword [esi], xmm2
movaps xmm0, xmm2
comiss xmm1, xmm0
jbe 0x1000f74a
movss dword [esi], xmm1
mov edx, dword [0x1002ab78]
test edx, edx
js 0x1000f8b9
movd xmm0, edi
xor edi, edi
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x134], xmm0
jmp 0x1000f778
movss xmm3, dword [ebp - 0x130]
movss xmm1, dword [esi]
mov ecx, edx
divss xmm1, xmm3
push 0xff
push 0x23
sub ecx, edi
push 0x23
push 0x23
push 1
lea eax, [ecx + 1]
push eax
lea eax, [ecx + ebx]
mov ecx, 0x1002f060
push eax
movd xmm2, edi
addss xmm1, xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm2, xmm2
subss xmm1, xmm0
addss xmm1, xmm2
cvttss2si eax, xmm1
push eax
call fcn.10006360
movss xmm1, dword [esi]
divss xmm1, dword [ebp - 0x130]
mov ecx, dword [0x1002ab78]
mov eax, ecx
push 0xff
push 0x23
push 0x23
sub eax, edi
inc eax
push 0x23
push 1
push eax
lea eax, [edi + ecx]
add eax, ebx
push eax
movd xmm0, ecx
mov ecx, 0x1002f060
addss xmm1, dword [ebp - 0x134]
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
cvttss2si eax, xmm1
push eax
call fcn.10006360
movss xmm0, dword [esi]
divss xmm0, dword [ebp - 0x130]
mov ecx, dword [0x1002ab78]
push 0xff
push 0x23
push 0x23
sub ecx, edi
push 0x23
push 1
lea eax, [ecx + 1]
push eax
lea eax, [ecx + ebx]
mov ecx, 0x1002f060
push eax
addss xmm0, dword [ebp - 0x134]
cvttss2si eax, xmm0
push eax
call fcn.10006360
mov ecx, dword [0x1002ab78]
mov eax, ecx
push 0xff
push 0x23
push 0x23
push 0x23
sub eax, edi
inc eax
push 1
push eax
lea eax, [edi + ecx]
add eax, ebx
push eax
movss xmm0, dword [esi]
mov ecx, 0x1002f060
divss xmm0, dword [ebp - 0x130]
addss xmm0, dword [ebp - 0x134]
cvttss2si eax, xmm0
push eax
call fcn.10006360
mov edx, dword [0x1002ab78]
inc edi
movss xmm0, dword [ebp - 0x134]
cmp edi, edx
jle 0x1000f770
mov edi, dword [ebp - 0x12c]
movss xmm1, dword [esi]
mov ecx, 0x1002ef08
divss xmm1, dword [ebp - 0x130]
mov eax, dword [ebp - 0x140]
add eax, 7
push 0xe
push 0xa
push eax
mov dword [ebp - 0x118], eax
movd xmm0, edi
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
cvttss2si eax, xmm1
push eax
call fcn.1001bd30
test al, al
jne 0x1000f917
cmp byte [ebp - 0x123], al
jne 0x1000f917
push 0xff
push 0x64
push 0x64
push 0x64
jmp 0x1000f925
push 0xff
push 0
push 0
push 0x8c
mov ecx, dword [0x1002d610]
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
movss xmm1, dword [esi]
divss xmm1, dword [ebp - 0x130]
mov edx, dword [0x1002ab78]
mov ecx, dword [0x1002d610]
mov esi, dword [ecx]
push dword [ebp - 0x118]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
cvttss2si eax, xmm1
push eax
lea eax, [edx + ebx]
push eax
lea eax, [edx + 1]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
cvttss2si eax, xmm1
push eax
mov eax, dword [esi + 0x3c]
call eax
mov eax, dword [ebp - 0x138]
mov edx, dword [0x1002ab78]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov ecx, dword [0x1002d610]
movss xmm1, dword [eax]
lea eax, [edx + ebx]
divss xmm1, dword [ebp - 0x130]
push eax
lea eax, [edx + 1]
mov esi, dword [ecx]
addss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
cvttss2si eax, xmm0
push eax
push dword [ebp - 0x118]
cvttss2si eax, xmm1
push eax
mov eax, dword [esi + 0x3c]
call eax
mov eax, dword [ebp - 0x138]
mov edx, dword [0x1002ab78]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov ecx, dword [0x1002d610]
movss xmm1, dword [eax]
divss xmm1, dword [ebp - 0x130]
mov eax, dword [ebp - 0x140]
mov esi, dword [ecx]
lea eax, [eax + edx*2]
add eax, 9
push eax
addss xmm1, xmm0
cvttss2si eax, xmm1
push eax
lea eax, [edx + ebx]
push eax
lea eax, [edx + 1]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
cvttss2si eax, xmm0
push eax
mov eax, dword [esi + 0x3c]
call eax
mov eax, dword [ebp - 0x138]
mov ecx, dword [0x1002d610]
mov edx, dword [0x1002ab78]
movd xmm0, edi
movss xmm2, dword [eax]
divss xmm2, dword [ebp - 0x130]
mov esi, dword [ecx]
cvtdq2ps xmm0, xmm0
addss xmm2, xmm0
lea eax, [edx + ebx]
movaps xmm1, xmm2
push eax
lea eax, [edx + 1]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
cvttss2si eax, xmm1
push eax
mov eax, dword [ebp - 0x140]
lea eax, [eax + edx*2]
add eax, 9
push eax
cvttss2si eax, xmm2
push eax
mov eax, dword [esi + 0x3c]
call eax
mov edx, dword [ebp - 0x128]
mov ecx, dword [edx + 0x68]
cmp ecx, 0xffffffff
je 0x1000ff93
mov eax, dword [edx]
mov dword [ecx*4 + 0x1002c120], eax
mov ecx, dword [edx + 0x68]
mov eax, dword [edx + 4]
mov dword [ecx*4 + 0x1002c124], eax
mov ecx, dword [edx + 0x68]
mov eax, dword [edx + 8]
mov dword [ecx*4 + 0x1002c128], eax
cmp byte [edx + 0x6e], 0
je 0x1000facf
mov eax, dword [edx + 0xc]
mov ecx, 0x1002c2a4
mov dword [ecx], eax
jmp 0x1000ff93
mov eax, dword [edx + 0x68]
lea ecx, [eax*4 + 0x1002c12c]
mov eax, dword [edx + 0xc]
mov dword [ecx], eax
jmp 0x1000ff93
cmp eax, 3
jne 0x1000fc79
push 0x14
push 0x3c
push ebx
push edi
mov ecx, 0x1002ef08
call fcn.1001bd70
movss xmm0, dword [ebp + 0x28]
xorps xmm2, xmm2
ucomiss xmm0, dword [0x100253f8]
mov byte [ebp - 0x123], al
movss xmm1, dword [esi]
lahf
test ah, 0x44
jp 0x1000fb32
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jnp 0x1000fb49
mov dword [ebp - 0x12c], 0x8c
xor ecx, ecx
jmp 0x1000fb6a
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x1000fb49
mov dword [ebp - 0x12c], 0x8c
xor ecx, ecx
jmp 0x1000fb6a
test al, al
je 0x1000fb5f
mov ecx, 0x23
xor eax, eax
mov dword [ebp - 0x12c], ecx
lea edx, [ecx + 0x69]
jmp 0x1000fb71
mov ecx, 0x32
mov dword [ebp - 0x12c], ecx
mov edx, 0x23
mov eax, edx
push ecx
push ecx
push dword [ebp - 0x12c]
push 0xff
push eax
push eax
push edx
push 0x14
push 0x3c
push ebx
push edi
call fcn.10012d40
push dword [ebp - 0x13c]
movd xmm0, edi
lea eax, [ebx + 2]
push 0xff
cvtdq2pd xmm0, xmm0
push 0xff
push 0xff
push 0xff
push eax
addsd xmm0, qword [0x100266e8]
cvttsd2si eax, xmm0
push eax
push 1
push dword [0x1002f06c]
push 0x1002f060
call fcn.10005fc0
add esp, 0x54
mov ecx, 0x1002ef08
push 0x14
push 0x3c
push ebx
push edi
call fcn.1001bd30
push 0xff
push 0
push 0
test al, al
je 0x1000fc64
xor ecx, ecx
mov eax, 0x8c
cmp byte [ebp - 0x123], cl
cmovne eax, ecx
push eax
push 0x14
push 0x3c
push ebx
push edi
call fcn.1001b810
add esp, 0x20
cmp byte [0x1002ef2d], 0
je 0x1000ff8d
cmp byte [ebp - 0x11d], 0
jne 0x1000ff8d
movss xmm0, dword [ebp + 0x28]
ucomiss xmm0, dword [0x100253f8]
lahf
test ah, 0x44
jp 0x1000fc5b
movss xmm0, dword [esi]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
mov edx, 1
lahf
xor ecx, ecx
test ah, 0x44
cmovnp ecx, edx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [esi], xmm0
jmp 0x1000ff8d
push 0
push 0x14
push 0x3c
push ebx
push edi
call fcn.1001b810
add esp, 0x20
jmp 0x1000ff8d
cmp eax, 4
jne 0x1000ff93
push dword [ebp - 0x13c]
push 0xff
push 0xff
push 0xff
push 0xff
push ebx
push edi
push 0
push dword [0x1002f06c]
push 0x1002f060
call fcn.10005fc0
mov eax, dword [ebp - 0x134]
add esp, 0x28
mov edi, dword [ebp + 0xc]
add eax, 0x5a
inc ebx
add edi, eax
mov ecx, 0x1002f060
push 0xff
push 0x49
push 0x49
push 0x49
push 0xc
push 0xc
push ebx
push edi
call fcn.10006360
push 0xc
push 0xc
push ebx
push edi
mov ecx, 0x1002ef08
call fcn.1001bd30
push 0xff
test al, al
je 0x1000fd4c
push 0
push 0
push 0x8c
push 0xc
push 0xc
push ebx
push edi
call fcn.1001b710
mov al, byte [ebp - 0x11d]
add esp, 0x20
cmp byte [0x1002ef2d], 0
je 0x1000fd2d
test al, al
jne 0x1000fd2d
movss xmm0, dword [esi]
subss xmm0, dword [ebp + 0x24]
movss dword [esi], xmm0
cmp byte [0x1002ef2e], 0
je 0x1000fd60
test al, al
jne 0x1000fd60
movss xmm0, dword [esi]
subss xmm0, dword [0x100266f0]
movss dword [esi], xmm0
jmp 0x1000fd60
push 0x23
push 0x23
push 0x23
push 0xc
push 0xc
push ebx
push edi
call fcn.1001b710
add esp, 0x20
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1002f0bc]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x1002eecc]
cmp eax, dword [ecx + 4]
jg 0x1000ffc3
cmp dword [0x1002eec8], 0xf
mov eax, 0x1002eeb4
movd xmm0, edi
cmova eax, dword [0x1002eeb4]
push eax
push 0xff
cvtdq2pd xmm0, xmm0
push 0
push 0
push 0x50
lea eax, [ebx - 3]
push eax
addsd xmm0, qword [0x100266d8]
cvttsd2si eax, xmm0
push eax
push 1
push dword [0x1002f06c]
push 0x1002f060
call fcn.10005fc0
mov esi, dword [0x1002f0bc]
add esp, 0x28
mov edx, dword fs:[0x2c]
mov eax, dword [0x1002eee8]
mov ecx, dword [edx + esi*4]
mov esi, dword [ebp - 0x138]
cmp eax, dword [ecx + 4]
jg 0x10010025
movss xmm0, dword [esi]
mov eax, 0x1002eed0
cmp dword [0x1002eee4], 0xf
cvtps2pd xmm0, xmm0
cmova eax, dword [0x1002eed0]
sub esp, 8
movsd qword [esp], xmm0
push eax
push 0xff
push 0xff
push 0xff
push 0xff
lea eax, [ebx - 2]
push eax
lea eax, [edi + 6]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [0x100266e0]
cvttsd2si eax, xmm0
push eax
push 1
push dword [0x1002f06c]
push 0x1002f060
call fcn.10005fc0
add esp, 0x30
add edi, 0x2c
mov ecx, 0x1002f060
push 0xff
push 0x49
push 0x49
push 0x49
push 0xc
push 0xc
push ebx
push edi
call fcn.10006360
push 0xc
push 0xc
push ebx
push edi
mov ecx, 0x1002ef08
call fcn.1001bd30
push 0xff
test al, al
je 0x1000fee9
push 0
push 0
push 0x8c
push 0xc
push 0xc
push ebx
push edi
call fcn.1001b710
mov al, byte [ebp - 0x11d]
add esp, 0x20
cmp byte [0x1002ef2d], 0
je 0x1000feca
test al, al
jne 0x1000feca
movss xmm0, dword [ebp + 0x24]
addss xmm0, dword [esi]
movss dword [esi], xmm0
cmp byte [0x1002ef2e], 0
je 0x1000fefd
test al, al
jne 0x1000fefd
movss xmm0, dword [esi]
addss xmm0, dword [0x100266f0]
movss dword [esi], xmm0
jmp 0x1000fefd
push 0x23
push 0x23
push 0x23
push 0xc
push 0xc
push ebx
push edi
call fcn.1001b710
add esp, 0x20
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1002f0bc]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x1002ef04]
cmp eax, dword [ecx + 4]
jg 0x10010091
cmp dword [0x1002ef00], 0xf
mov eax, 0x1002eeec
movd xmm0, edi
cmova eax, dword [0x1002eeec]
push eax
push 0xff
cvtdq2pd xmm0, xmm0
push 0
push 0
push 0x50
lea eax, [ebx - 3]
push eax
addsd xmm0, qword [0x100266d8]
cvttsd2si eax, xmm0
push eax
push 1
push dword [0x1002f06c]
push 0x1002f060
call fcn.10005fc0
movss xmm1, dword [esi]
add esp, 0x28
movss xmm2, dword [ebp + 0x1c]
comiss xmm2, xmm1
movss xmm0, dword [ebp + 0x20]
jbe 0x1000ff84
movss dword [esi], xmm0
movaps xmm1, xmm0
comiss xmm1, xmm0
jbe 0x1000ff8d
movss dword [esi], xmm2
mov edx, dword [ebp - 0x128]
xor eax, eax
cmp dword [ebp + 8], 2
sete al
inc eax
add dword [edx + 0x10], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1001d9f0
mov esp, ebp
pop ebp
ret 0x28
call fcn.1001e097
push 0x1002eecc
call fcn.1001d98c
add esp, 4
cmp dword [0x1002eecc], 0xffffffff
jne 0x1000fd80
mov dword [ebp - 4], 0
mov word [ebp - 0x124], 0x3c
lea eax, [ebp - 0x124]
mov byte [ebp - 4], 1
push eax
mov ecx, 0x1002eeb4
call fcn.1000e740
push 0x10022d00
call fcn.1001dd61
push 0x1002eecc
mov dword [ebp - 4], 0xffffffff
call fcn.1001d93b
add esp, 8
jmp 0x1000fd80
push 0x1002eee8
call fcn.1001d98c
add esp, 4
cmp dword [0x1002eee8], 0xffffffff
jne 0x1000fdf4
mov dword [ebp - 4], 2
mov dword [ebp - 0x11c], 0x302e3225
mov word [ebp - 0x118], 0x66
lea eax, [ebp - 0x11c]
mov byte [ebp - 4], 3
push eax
mov ecx, 0x1002eed0
call fcn.1000e740
push 0x10024520
call fcn.1001dd61
push 0x1002eee8
mov dword [ebp - 4], 0xffffffff
call fcn.1001d93b
add esp, 8
jmp 0x1000fdf4
push 0x1002ef04
call fcn.1001d98c
add esp, 4
cmp dword [0x1002ef04], 0xffffffff
jne 0x1000ff1d
mov dword [ebp - 4], 4
mov word [ebp - 0x124], 0x3e
lea eax, [ebp - 0x124]
mov byte [ebp - 4], 5
push eax
mov ecx, 0x1002eeec
call fcn.1000e740
push 0x10023ae0
call fcn.1001dd61
push 0x1002ef04
mov dword [ebp - 4], 0xffffffff
call fcn.1001d93b
add esp, 8
jmp 0x1000ff1d