Function at 0x1000e340
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001e07a
mov eax, dword fs:[0]
push eax
sub esp, 0x150
mov eax, dword [0x10029bc0]
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 0x1000e436
cmp ecx, 2
mov edx, 0x12
mov eax, 0xf
mov ecx, 0x1002d7d8
cmove eax, edx
mov edx, 0x168
push eax
mov eax, 0x8a
cmove eax, edx
push eax
push ebx
push edi
call fcn.1001b2d0
test al, al
je 0x1000e430
push dword [ebp - 0x118]
mov eax, dword [0x1002bfbc]
push 0xff
push 0
push 0
push 0xb4
add eax, 7
push eax
mov eax, dword [0x1002bfb8]
add eax, 0xf
push eax
push 0
push dword [0x1002d93c]
push 0x1002d930
call fcn.10005fb0
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 0x1000e49b
mov al, byte [ecx]
mov byte [ebp - 0x11d], al
test al, al
jne 0x1000e49b
mov al, byte [ecx + 1]
mov byte [ebp - 0x11d], al
test al, al
jne 0x1000e49b
mov al, byte [ecx + 2]
mov byte [ebp - 0x11d], al
test al, al
jne 0x1000e49b
mov al, byte [ecx + 3]
mov byte [ebp - 0x11d], al
test al, al
jne 0x1000e49b
add ecx, 5
lea eax, [esi + ecx]
cmp eax, 0x32
jl 0x1000e450
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x138]
test eax, eax
jne 0x1000e6e3
push dword [ebp - 0x13c]
push 0xff
push 0xff
push 0xff
push 0xff
push ebx
push edi
push 0
push dword [0x1002d93c]
push 0x1002d930
call fcn.10005fb0
add esp, 0x28
lea eax, [ebx - 3]
add edi, 0x64
mov ecx, 0x1002d7d8
mov dword [ebp - 0x12c], edi
push 0x12
push 0x12
push eax
lea eax, [edi - 3]
push eax
call fcn.1001b350
xorps xmm1, xmm1
test al, al
je 0x1000e52c
cmp byte [ebp - 0x11d], 0
jne 0x1000e52c
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, 0x1002d930
push ebx
push edi
call fcn.10006350
movss xmm0, dword [esi]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1000e5ba
mov ecx, dword [0x1002bee0]
push 0xff
push 0x23
push 0x23
mov eax, dword [ecx]
push 0x23
mov eax, dword [eax + 0x2c]
call eax
mov ecx, dword [0x1002bee0]
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 [0x1002bee0]
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, 0x1002d7d8
call fcn.1001b2d0
mov ecx, 0x1002d930
push 0xff
test al, al
je 0x1000e676
push 0
push 0
push 0x8c
push 1
push 0xd
push ebx
push edi
call fcn.10006350
push 0xff
push 0
push 0
push 0x8c
push 0xd
push 1
push ebx
push edi
mov ecx, 0x1002d930
call fcn.10006350
push 0xff
push 0
push 0
push 0x8c
push 0xe
push 1
push ebx
lea eax, [edi + 0xd]
mov ecx, 0x1002d930
push eax
call fcn.10006350
push 0xff
push 0
push 0
push 0x8c
push 1
push 0xd
lea eax, [ebx + 0xd]
mov ecx, 0x1002d930
push eax
push edi
call fcn.10006350
mov ecx, dword [0x1002bfc8]
mov eax, ecx
mov edx, dword [ebp - 0x128]
shr eax, 1
test al, 1
jne 0x1000f543
or ecx, 2
mov dword [0x1002bfc8], ecx
jmp 0x1000f543
push 0x23
push 0x23
push 0x23
push 1
push 0xd
push ebx
push edi
call fcn.10006350
push 0xff
push 0x23
push 0x23
push 0x23
push 0xd
push 1
push ebx
push edi
mov ecx, 0x1002d930
call fcn.10006350
push 0xff
push 0x23
push 0x23
push 0x23
push 0xe
push 1
push ebx
lea eax, [edi + 0xd]
mov ecx, 0x1002d930
push eax
call fcn.10006350
push 0xff
push 0x23
push 0x23
push 0x23
push 1
push 0xd
lea eax, [ebx + 0xd]
mov ecx, 0x1002d930
push eax
push edi
call fcn.10006350
jmp 0x1000f53d
cmp eax, 1
jne 0x1000e7b5
push dword [ebp - 0x13c]
push 0xff
push 0xff
push 0xff
push 0xff
push ebx
push edi
push 0
push dword [0x1002d93c]
push 0x1002d930
call fcn.10005fb0
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 0x1000e7a3
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 0x1000f543
lea edx, [ebp - 0x15c]
push edx
push eax
call fcn.1000d8d0
jmp 0x1000f53d
cmp eax, 2
jne 0x1000f093
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 0x1000e876
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 0x1000e7f0
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.1000c6a0
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 [0x1002d93c]
push 0x1002d930
call fcn.10005fb0
add esp, 0x3c
jmp 0x1000e8aa
push dword [ebp - 0x13c]
lea eax, [ebx - 7]
push 0xff
push 0xff
push 0xff
push 0xff
push eax
push edi
push 0
push dword [0x1002d93c]
push 0x1002d930
call fcn.10005fb0
add esp, 0x28
mov esi, dword [ebp - 0x128]
add ebx, 8
cmp byte [esi + 0x6c], 0
movss xmm0, dword [esi + 0x70]
addss xmm0, dword [0x100243d0]
je 0x1000e9c5
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, 0x1002d930
call fcn.10006350
movss xmm0, dword [esi + 0x70]
addss xmm0, dword [0x100243d0]
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.1001acb0
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.100121f0
add esp, 0x4c
lea eax, [edi + 0x39]
mov ecx, 0x1002d930
mov dword [ebp - 0x13c], eax
push 0xb9
push 0x7b
push 0x78
push 0x73
push 1
push pe_nt_image_headers32
push esi
push eax
call fcn.10006350
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.100121f0
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.100121f0
mov dword [ebp - 0x144], 0x43
jmp 0x1000eab7
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.1001adb0
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.100121f0
mov ecx, dword [ebp + 0xc]
add esp, 0x4c
mov eax, dword [ebp - 0x134]
add ecx, 0x43
add eax, ecx
mov ecx, 0x1002d930
mov dword [ebp - 0x13c], eax
push 0xb9
push 0x7b
push 0x78
push 0x73
push 1
push pe_nt_image_headers32
push esi
push eax
call fcn.10006350
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.100121f0
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.100121f0
mov edi, dword [ebp - 0x12c]
mov dword [ebp - 0x144], 0x41
add esp, 0x58
mov ecx, 0x1002d930
push 0xb9
push 0x7b
push 0x78
push 0x73
push 1
push pe_nt_image_headers32
push esi
push dword [ebp - 0x13c]
call fcn.10006350
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.100121f0
mov eax, dword [ebp - 0x134]
add esp, 0x2c
mov ecx, dword [0x1002d7f4]
add eax, 7
add eax, dword [ebp + 0xc]
mov edx, dword [0x1002d7f8]
mov esi, dword [ebp - 0x128]
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0x144], edx
cmp ecx, eax
jl 0x1000ebc1
movd xmm0, edi
cvtdq2ps xmm0, xmm0
movd xmm1, ecx
addss xmm0, dword [esi + 0x70]
cvtdq2ps xmm1, xmm1
addss xmm0, dword [0x100243d4]
comiss xmm0, xmm1
jb 0x1000ebc1
cmp edx, ebx
jl 0x1000ebc1
mov eax, dword [ebp - 0x140]
add eax, 0x12
cmp edx, eax
jg 0x1000ebc1
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1000ebc1
cmp dword [0x100298ec], 0xffffffff
jne 0x1000ebc1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [0x1002bfb4], eax
jae 0x1000ebc1
mov ecx, dword [0x1002bfb0]
cmp byte [ecx + 0x1002bf7c], 0
jne 0x1000ebc7
mov edx, dword [0x1002bfc8]
mov eax, edx
shr eax, 1
mov dword [0x100298ec], ecx
mov byte [ecx + 0x1002bf7c], 1
test al, 1
jne 0x1000ebc7
or edx, 2
mov dword [0x1002bfc8], edx
jmp 0x1000ebc7
mov ecx, dword [0x1002bfb0]
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 0x1000eca6
movd xmm0, edi
cvtdq2ps xmm0, xmm0
movd xmm1, edx
addss xmm0, dword [esi + 0x70]
cvtdq2ps xmm1, xmm1
addss xmm0, dword [0x10025ad4]
comiss xmm0, xmm1
jb 0x1000eca6
mov esi, dword [ebp - 0x140]
mov edx, dword [ebp - 0x144]
lea eax, [esi - 0x3e0]
cmp edx, eax
jl 0x1000eca6
lea eax, [esi + 0x3f0]
cmp edx, eax
jg 0x1000eca6
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1000eca0
cmp byte [ebp - 0x11d], 0
jne 0x1000eca0
mov eax, dword [0x1002bfb0]
movss xmm3, dword [ebp - 0x130]
movss xmm1, dword [ebp + 0x1c]
mov esi, dword [ebp - 0x138]
cmp byte [eax + 0x1002bf7c], 0
je 0x1000ecdc
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 [0x1002bfc8]
mov eax, ecx
shr eax, 1
test al, 1
jne 0x1000ecdc
or ecx, 2
mov dword [0x1002bfc8], ecx
jmp 0x1000ecdc
mov ecx, dword [0x1002bfb0]
cmp byte [ecx + 0x1002bf7c], 0
je 0x1000ecc9
mov dword [0x100298ec], 0xffffffff
cmp ecx, 0x32
jae 0x1000f56e
mov byte [ecx + 0x1002bf7c], 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 0x1000ecf1
movss dword [esi], xmm2
movaps xmm0, xmm2
comiss xmm1, xmm0
jbe 0x1000ecfa
movss dword [esi], xmm1
mov edx, dword [0x10029b78]
test edx, edx
js 0x1000ee69
movd xmm0, edi
xor edi, edi
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x134], xmm0
jmp 0x1000ed28
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, 0x1002d930
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.10006350
movss xmm1, dword [esi]
divss xmm1, dword [ebp - 0x130]
mov ecx, dword [0x10029b78]
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, 0x1002d930
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.10006350
movss xmm0, dword [esi]
divss xmm0, dword [ebp - 0x130]
mov ecx, dword [0x10029b78]
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, 0x1002d930
push eax
addss xmm0, dword [ebp - 0x134]
cvttss2si eax, xmm0
push eax
call fcn.10006350
mov ecx, dword [0x10029b78]
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, 0x1002d930
divss xmm0, dword [ebp - 0x130]
addss xmm0, dword [ebp - 0x134]
cvttss2si eax, xmm0
push eax
call fcn.10006350
mov edx, dword [0x10029b78]
inc edi
movss xmm0, dword [ebp - 0x134]
cmp edi, edx
jle 0x1000ed20
mov edi, dword [ebp - 0x12c]
movss xmm1, dword [esi]
mov ecx, 0x1002d7d8
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.1001b2d0
test al, al
jne 0x1000eec7
cmp byte [ebp - 0x123], al
jne 0x1000eec7
push 0xff
push 0x64
push 0x64
push 0x64
jmp 0x1000eed5
push 0xff
push 0
push 0
push 0x8c
mov ecx, dword [0x1002bee0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
movss xmm1, dword [esi]
divss xmm1, dword [ebp - 0x130]
mov edx, dword [0x10029b78]
mov ecx, dword [0x1002bee0]
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 [0x10029b78]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov ecx, dword [0x1002bee0]
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 [0x10029b78]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov ecx, dword [0x1002bee0]
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 [0x1002bee0]
mov edx, dword [0x10029b78]
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 0x1000f543
mov eax, dword [edx]
mov dword [ecx*4 + 0x1002a9f0], eax
mov ecx, dword [edx + 0x68]
mov eax, dword [edx + 4]
mov dword [ecx*4 + 0x1002a9f4], eax
mov ecx, dword [edx + 0x68]
mov eax, dword [edx + 8]
mov dword [ecx*4 + 0x1002a9f8], eax
cmp byte [edx + 0x6e], 0
je 0x1000f07f
mov eax, dword [edx + 0xc]
mov ecx, 0x1002ab74
mov dword [ecx], eax
jmp 0x1000f543
mov eax, dword [edx + 0x68]
lea ecx, [eax*4 + 0x1002a9fc]
mov eax, dword [edx + 0xc]
mov dword [ecx], eax
jmp 0x1000f543
cmp eax, 3
jne 0x1000f229
push 0x14
push 0x3c
push ebx
push edi
mov ecx, 0x1002d7d8
call fcn.1001b310
movss xmm0, dword [ebp + 0x28]
xorps xmm2, xmm2
ucomiss xmm0, dword [0x100243f8]
mov byte [ebp - 0x123], al
movss xmm1, dword [esi]
lahf
test ah, 0x44
jp 0x1000f0e2
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jnp 0x1000f0f9
mov dword [ebp - 0x12c], 0x8c
xor ecx, ecx
jmp 0x1000f11a
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x1000f0f9
mov dword [ebp - 0x12c], 0x8c
xor ecx, ecx
jmp 0x1000f11a
test al, al
je 0x1000f10f
mov ecx, 0x23
xor eax, eax
mov dword [ebp - 0x12c], ecx
lea edx, [ecx + 0x69]
jmp 0x1000f121
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.100122e0
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 [0x10025ac8]
cvttsd2si eax, xmm0
push eax
push 1
push dword [0x1002d93c]
push 0x1002d930
call fcn.10005fb0
add esp, 0x54
mov ecx, 0x1002d7d8
push 0x14
push 0x3c
push ebx
push edi
call fcn.1001b2d0
push 0xff
push 0
push 0
test al, al
je 0x1000f214
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.1001adb0
add esp, 0x20
cmp byte [0x1002d7fd], 0
je 0x1000f53d
cmp byte [ebp - 0x11d], 0
jne 0x1000f53d
movss xmm0, dword [ebp + 0x28]
ucomiss xmm0, dword [0x100243f8]
lahf
test ah, 0x44
jp 0x1000f20b
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 0x1000f53d
push 0
push 0x14
push 0x3c
push ebx
push edi
call fcn.1001adb0
add esp, 0x20
jmp 0x1000f53d
cmp eax, 4
jne 0x1000f543
push dword [ebp - 0x13c]
push 0xff
push 0xff
push 0xff
push 0xff
push ebx
push edi
push 0
push dword [0x1002d93c]
push 0x1002d930
call fcn.10005fb0
mov eax, dword [ebp - 0x134]
add esp, 0x28
mov edi, dword [ebp + 0xc]
add eax, 0x5a
inc ebx
add edi, eax
mov ecx, 0x1002d930
push 0xff
push 0x49
push 0x49
push 0x49
push 0xc
push 0xc
push ebx
push edi
call fcn.10006350
push 0xc
push 0xc
push ebx
push edi
mov ecx, 0x1002d7d8
call fcn.1001b2d0
push 0xff
test al, al
je 0x1000f2fc
push 0
push 0
push 0x8c
push 0xc
push 0xc
push ebx
push edi
call fcn.1001acb0
mov al, byte [ebp - 0x11d]
add esp, 0x20
cmp byte [0x1002d7fd], 0
je 0x1000f2dd
test al, al
jne 0x1000f2dd
movss xmm0, dword [esi]
subss xmm0, dword [ebp + 0x24]
movss dword [esi], xmm0
cmp byte [0x1002d7fe], 0
je 0x1000f310
test al, al
jne 0x1000f310
movss xmm0, dword [esi]
subss xmm0, dword [0x10025ad0]
movss dword [esi], xmm0
jmp 0x1000f310
push 0x23
push 0x23
push 0x23
push 0xc
push 0xc
push ebx
push edi
call fcn.1001acb0
add esp, 0x20
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1002d970]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x1002d79c]
cmp eax, dword [ecx + 4]
jg 0x1000f573
cmp dword [0x1002d798], 0xf
mov eax, 0x1002d784
movd xmm0, edi
cmova eax, dword [0x1002d784]
push eax
push 0xff
cvtdq2pd xmm0, xmm0
push 0
push 0
push 0x50
lea eax, [ebx - 3]
push eax
addsd xmm0, qword [0x10025ab8]
cvttsd2si eax, xmm0
push eax
push 1
push dword [0x1002d93c]
push 0x1002d930
call fcn.10005fb0
mov esi, dword [0x1002d970]
add esp, 0x28
mov edx, dword fs:[0x2c]
mov eax, dword [0x1002d7b8]
mov ecx, dword [edx + esi*4]
mov esi, dword [ebp - 0x138]
cmp eax, dword [ecx + 4]
jg 0x1000f5d5
movss xmm0, dword [esi]
mov eax, 0x1002d7a0
cmp dword [0x1002d7b4], 0xf
cvtps2pd xmm0, xmm0
cmova eax, dword [0x1002d7a0]
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 [0x10025ac0]
cvttsd2si eax, xmm0
push eax
push 1
push dword [0x1002d93c]
push 0x1002d930
call fcn.10005fb0
add esp, 0x30
add edi, 0x2c
mov ecx, 0x1002d930
push 0xff
push 0x49
push 0x49
push 0x49
push 0xc
push 0xc
push ebx
push edi
call fcn.10006350
push 0xc
push 0xc
push ebx
push edi
mov ecx, 0x1002d7d8
call fcn.1001b2d0
push 0xff
test al, al
je 0x1000f499
push 0
push 0
push 0x8c
push 0xc
push 0xc
push ebx
push edi
call fcn.1001acb0
mov al, byte [ebp - 0x11d]
add esp, 0x20
cmp byte [0x1002d7fd], 0
je 0x1000f47a
test al, al
jne 0x1000f47a
movss xmm0, dword [ebp + 0x24]
addss xmm0, dword [esi]
movss dword [esi], xmm0
cmp byte [0x1002d7fe], 0
je 0x1000f4ad
test al, al
jne 0x1000f4ad
movss xmm0, dword [esi]
addss xmm0, dword [0x10025ad0]
movss dword [esi], xmm0
jmp 0x1000f4ad
push 0x23
push 0x23
push 0x23
push 0xc
push 0xc
push ebx
push edi
call fcn.1001acb0
add esp, 0x20
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1002d970]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x1002d7d4]
cmp eax, dword [ecx + 4]
jg 0x1000f641
cmp dword [0x1002d7d0], 0xf
mov eax, 0x1002d7bc
movd xmm0, edi
cmova eax, dword [0x1002d7bc]
push eax
push 0xff
cvtdq2pd xmm0, xmm0
push 0
push 0
push 0x50
lea eax, [ebx - 3]
push eax
addsd xmm0, qword [0x10025ab8]
cvttsd2si eax, xmm0
push eax
push 1
push dword [0x1002d93c]
push 0x1002d930
call fcn.10005fb0
movss xmm1, dword [esi]
add esp, 0x28
movss xmm2, dword [ebp + 0x1c]
comiss xmm2, xmm1
movss xmm0, dword [ebp + 0x20]
jbe 0x1000f534
movss dword [esi], xmm0
movaps xmm1, xmm0
comiss xmm1, xmm0
jbe 0x1000f53d
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.1001c2d0
mov esp, ebp
pop ebp
ret 0x28
call fcn.1001c975
push 0x1002d79c
call fcn.1001c26c
add esp, 4
cmp dword [0x1002d79c], 0xffffffff
jne 0x1000f330
mov dword [ebp - 4], 0
mov word [ebp - 0x124], 0x3c
lea eax, [ebp - 0x124]
mov byte [ebp - 4], 1
push eax
mov ecx, 0x1002d784
call fcn.1000dcf0
push 0x10021460
call fcn.1001c641
push 0x1002d79c
mov dword [ebp - 4], 0xffffffff
call fcn.1001c21b
add esp, 8
jmp 0x1000f330
push 0x1002d7b8
call fcn.1001c26c
add esp, 4
cmp dword [0x1002d7b8], 0xffffffff
jne 0x1000f3a4
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, 0x1002d7a0
call fcn.1000dcf0
push 0x10022c60
call fcn.1001c641
push 0x1002d7b8
mov dword [ebp - 4], 0xffffffff
call fcn.1001c21b
add esp, 8
jmp 0x1000f3a4
push 0x1002d7d4
call fcn.1001c26c
add esp, 4
cmp dword [0x1002d7d4], 0xffffffff
jne 0x1000f4cd
mov dword [ebp - 4], 4
mov word [ebp - 0x124], 0x3e
lea eax, [ebp - 0x124]
mov byte [ebp - 4], 5
push eax
mov ecx, 0x1002d7bc
call fcn.1000dcf0
push 0x10022240
call fcn.1001c641
push 0x1002d7d4
mov dword [ebp - 4], 0xffffffff
call fcn.1001c21b
add esp, 8
jmp 0x1000f4cd