Function at 0x1000f070
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x244
push ebx
mov ebx, ecx
mov ecx, dword [0x1024b32c]
push ebp
push esi
push edi
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x102812e0]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
cmp dword [0x10281360], 0
mov ebp, eax
je 0x100102f9
mov ecx, dword [0x1024b32c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x6c]
call edx
test al, al
je 0x100102f9
mov ecx, dword [0x1024b32c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x100102f9
cmp byte [0x1028142a], 0
je 0x100102f9
mov ecx, dword [0x1024b328]
push str.sv_cheats
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x30]
mov dword [esp + 0x10], ecx
mov ecx, eax
call dword [esp + 0x10]
fstp dword [esp + 0x10]
movss xmm0, dword [esp + 0x10]
ucomiss xmm0, dword [0x10240668]
lahf
test ah, 0x44
jp 0x10010317
mov edi, dword [0x10281360]
test edi, edi
je 0x10010317
mov eax, dword [0x1028135c]
test eax, eax
jne 0x1000f15c
mov edx, 0xe80c2f78
mov ecx, 0x10219689
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195b1
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov dword [0x1028135c], eax
cmp dword [eax + edi], 0
jle 0x10010317
mov eax, dword [0x102812e8]
movss xmm0, dword [eax]
comiss xmm0, dword [0x1024b34c]
jbe 0x10010317
push ecx
lea ecx, [esp + 0x1a4]
call fcn.10012330
push dword [0x10281430]
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
call edi
test ax, ax
je 0x1000f30f
mov eax, dword [0x10281360]
mov dword [esp + 0x10], eax
mov eax, dword [0x102813b4]
test eax, eax
jne 0x1000f1e0
mov edx, 0xe80c2f78
mov ecx, 0x102197a5
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195b1
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov dword [0x102813b4], eax
mov ecx, dword [esp + 0x10]
test byte [ecx + eax], 1
je 0x1000f30f
movss xmm1, dword [ebx + 0x10]
movss xmm0, dword [ebx + 0xc]
mov eax, dword [0x102812f0]
movss dword [esp + 0x10], xmm0
movss dword [esp + 0x14], xmm1
mov dword [esp + 0x18], 0
test eax, eax
jne 0x1000f243
mov edx, 0xe80c2f78
mov ecx, 0x102195cd
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195d9
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov dword [0x102812f0], eax
movq xmm0, qword [esp + 0x10]
mov esi, dword [0x1024b554]
mov ecx, dword [esp + 0x18]
movq qword [esp + 0x68], xmm0
movq xmm0, qword [eax + ebp]
mov eax, dword [eax + ebp + 8]
mov dword [esp + 0x7c], eax
mov eax, dword [0x1024b55c]
inc eax
mov dword [esp + 0x70], ecx
movq qword [esp + 0x74], xmm0
cmp esi, eax
ja 0x1000f286
push ecx
call fcn.100135e0
mov esi, dword [0x1024b554]
lea edi, [esi - 1]
mov eax, edi
and eax, dword [0x1024b558]
mov dword [0x1024b558], eax
cmovne esi, eax
mov eax, dword [0x1024b550]
dec esi
and edi, esi
cmp dword [eax + edi*4], 0
jne 0x1000f2bf
push 0x18
call fcn.1018b313
mov ecx, dword [0x1024b550]
add esp, 4
mov dword [ecx + edi*4], eax
mov eax, dword [0x1024b550]
mov eax, dword [eax + edi*4]
movups xmm0, xmmword [esp + 0x68]
mov dword [0x1024b350], 0
movups xmmword [eax], xmm0
movq xmm0, qword [esp + 0x78]
movq qword [eax + 0x10], xmm0
mov ecx, dword [0x1024b55c]
mov dword [0x1024b558], esi
lea eax, [ecx + 1]
mov dword [0x1024b55c], eax
cmp eax, 0x63
jbe 0x1000f308
mov dword [0x1024b55c], ecx
test ecx, ecx
jne 0x1000f308
mov dword [0x1024b558], ecx
push str.gravity_print_saved_c
jmp 0x1000f364
push dword [0x10281430]
call edi
test ax, ax
je 0x1000f392
mov eax, dword [0x102813b4]
mov edi, dword [0x10281360]
test eax, eax
jne 0x1000f359
mov edx, 0xe80c2f78
mov ecx, 0x102197a5
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195b1
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov dword [0x102813b4], eax
test byte [edi + eax], 1
jne 0x1000f392
push str.gravity_print_save_c
mov eax, dword [0x102812e8]
push dword [0x102813dc]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x10240698]
cvtpd2ps xmm0, xmm0
movss dword [0x1024b34c], xmm0
call fcn.1000b720
add esp, 8
mov eax, dword [0x1024b55c]
test eax, eax
je 0x10010287
mov edx, dword [0x102471f0]
mov ecx, dword [0x10281418]
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
cmp edx, 3
ja case.0x1000f3b6.0
jmp dword [edx*4 + 0x10010328]
push ecx
call edi
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x1000f3e2
push ecx
call edi
test ax, ax
setne al
jmp 0x1000f3e2
push ecx
call edi
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x100100b4
mov eax, dword [0x1024b55c]
mov ecx, dword [0x1024b350]
cmp eax, ecx
jbe 0x10010322
mov esi, dword [0x1024b558]
mov edx, dword [0x1024b54c]
add esi, ecx
test edx, edx
je 0x1000f413
mov eax, dword [edx]
jmp 0x1000f415
xor eax, eax
mov ecx, dword [eax + 8]
sub esp, 8
mov eax, dword [eax + 4]
dec ecx
and ecx, esi
mov ebx, dword [eax + ecx*4]
movss xmm0, dword [ebx + 0x14]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10219b18
movsd qword [esp + 0x1c], xmm0
call fcn.1000c8a0
add esp, 0xc
lea ecx, [esp + 0x110]
mov esi, eax
push 0
push esi
call fcn.10012bb0
cmp dword [esp + 0x124], 0xf
lea ecx, [esp + 0x110]
movsd xmm0, qword [esp + 0x10]
lea eax, [esi + 1]
cmova ecx, dword [esp + 0x110]
sub esp, 8
movsd qword [esp], xmm0
push 0x10219b18
push eax
push ecx
call fcn.1000c860
movss xmm0, dword [ebx + 0x10]
add esp, 0xc
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10219b18
movsd qword [esp + 0x1c], xmm0
call fcn.1000c8a0
add esp, 0xc
lea ecx, [esp + 0xf8]
mov esi, eax
push 0
push esi
call fcn.10012bb0
cmp dword [esp + 0x10c], 0xf
lea ecx, [esp + 0xf8]
movsd xmm0, qword [esp + 0x10]
lea eax, [esi + 1]
cmova ecx, dword [esp + 0xf8]
sub esp, 8
movsd qword [esp], xmm0
push 0x10219b18
push eax
push ecx
call fcn.1000c860
movss xmm0, dword [ebx + 0xc]
add esp, 0xc
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10219b18
movsd qword [esp + 0x1c], xmm0
call fcn.1000c8a0
add esp, 0xc
lea ecx, [esp + 0xe0]
mov esi, eax
push 0
push esi
call fcn.10012bb0
cmp dword [esp + 0xf4], 0xf
lea ecx, [esp + 0xe0]
movsd xmm0, qword [esp + 0x10]
lea eax, [esi + 1]
cmova ecx, dword [esp + 0xe0]
sub esp, 8
movsd qword [esp], xmm0
push 0x10219b18
push eax
push ecx
call fcn.1000c860
add esp, 0x14
push 7
push str.setpos
push 0
lea ecx, [esp + 0xec]
call fcn.100139f0
mov dword [esp + 0x48], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x38], xmm0
mov dword [esp + 0x4c], 0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x38], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x48], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov edx, dword [esp + 0x4c]
mov eax, edx
mov ecx, dword [esp + 0x48]
sub eax, ecx
cmp eax, 1
jb 0x1000f5dd
lea eax, [ecx + 1]
cmp edx, 0xf
mov dword [esp + 0x48], eax
lea eax, [esp + 0x38]
cmova eax, dword [esp + 0x38]
mov word [eax + ecx], 0x20
lea eax, [esp + 0x38]
jmp 0x1000f5f3
push 1
push 0x10219c48
push dword [esp + 0x18]
lea ecx, [esp + 0x44]
push 1
call fcn.10004980
movups xmm0, xmmword [eax]
lea ecx, [esp + 0x98]
movups xmmword [esp + 0x158], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x168], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [esp + 0xf8]
push eax
lea eax, [esp + 0x15c]
push eax
push dword [esp + 0x18]
call fcn.10013790
mov edx, dword [esp + 0xac]
mov eax, edx
mov ecx, dword [esp + 0xa8]
sub eax, ecx
cmp eax, 1
jb 0x1000f67f
lea eax, [ecx + 1]
cmp edx, 0xf
mov dword [esp + 0xa8], eax
lea eax, [esp + 0x98]
cmova eax, dword [esp + 0x98]
mov word [eax + ecx], 0x20
lea eax, [esp + 0x98]
jmp 0x1000f698
push 1
push 0x10219c48
push dword [esp + 0x18]
lea ecx, [esp + 0xa4]
push 1
call fcn.10004980
movups xmm0, xmmword [eax]
lea ecx, [esp + 0x80]
movups xmmword [esp + 0x170], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x180], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [esp + 0x110]
push eax
lea eax, [esp + 0x174]
push eax
push dword [esp + 0x18]
call fcn.10013790
mov edx, dword [esp + 0x94]
mov eax, edx
mov ecx, dword [esp + 0x90]
sub eax, ecx
cmp eax, 1
jb 0x1000f724
lea eax, [ecx + 1]
cmp edx, 0xf
mov dword [esp + 0x90], eax
lea eax, [esp + 0x80]
cmova eax, dword [esp + 0x80]
mov word [eax + ecx], 0x3b
lea eax, [esp + 0x80]
jmp 0x1000f73d
push 1
push 0x10219c24
push dword [esp + 0x18]
lea ecx, [esp + 0x8c]
push 1
call fcn.10004980
mov dword [esp + 0x30], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x20], xmm0
mov dword [esp + 0x34], 0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x20], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x30], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov ecx, dword [esp + 0x94]
cmp ecx, 0xf
jbe 0x1000f7b5
mov edx, dword [esp + 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000f7ab
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000f9ce
push ecx
push edx
call fcn.1018b662
add esp, 8
mov ecx, dword [esp + 0x184]
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0xf
mov byte [esp + 0x80], 0
cmp ecx, 0xf
jbe 0x1000f80f
mov edx, dword [esp + 0x170]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000f805
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000f9ce
push ecx
push edx
call fcn.1018b662
add esp, 8
mov ecx, dword [esp + 0xac]
cmp ecx, 0xf
jbe 0x1000f84b
mov edx, dword [esp + 0x98]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000f841
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000f9ce
push ecx
push edx
call fcn.1018b662
add esp, 8
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0xf
mov byte [esp + 0x98], 0
cmp ecx, 0xf
jbe 0x1000f8a5
mov edx, dword [esp + 0x158]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000f89b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000f9ce
push ecx
push edx
call fcn.1018b662
add esp, 8
mov ecx, dword [esp + 0x4c]
cmp ecx, 0xf
jbe 0x1000f8db
mov edx, dword [esp + 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000f8d1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000f9ce
push ecx
push edx
call fcn.1018b662
add esp, 8
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0xf
mov byte [esp + 0x38], 0
cmp ecx, 0xf
jbe 0x1000f92c
mov edx, dword [esp + 0xe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000f922
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000f9ce
push ecx
push edx
call fcn.1018b662
add esp, 8
mov ecx, dword [esp + 0x10c]
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0xf
mov byte [esp + 0xe0], 0
cmp ecx, 0xf
jbe 0x1000f982
mov edx, dword [esp + 0xf8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000f978
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000f9ce
push ecx
push edx
call fcn.1018b662
add esp, 8
mov ecx, dword [esp + 0x124]
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0xf
mov byte [esp + 0xf8], 0
cmp ecx, 0xf
jbe 0x1000f9de
mov edx, dword [esp + 0x110]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000f9d4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1000f9d4
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1018b662
add esp, 8
mov ecx, dword [0x1024b32c]
lea edx, [esp + 0x20]
cmp dword [esp + 0x34], 0xf
mov dword [esp + 0x120], 0
cmova edx, dword [esp + 0x20]
mov dword [esp + 0x124], 0xf
mov byte [esp + 0x110], 0
mov eax, dword [ecx]
push 0
push edx
mov eax, dword [eax + 0x1c8]
call eax
movss xmm0, dword [ebx + 8]
sub esp, 8
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10219b18
movsd qword [esp + 0x1c], xmm0
call fcn.1000c8a0
add esp, 0xc
lea ecx, [esp + 0x68]
mov esi, eax
push 0
push esi
call fcn.10012bb0
cmp dword [esp + 0x7c], 0xf
lea ecx, [esp + 0x68]
movsd xmm0, qword [esp + 0x10]
lea eax, [esi + 1]
cmova ecx, dword [esp + 0x68]
sub esp, 8
movsd qword [esp], xmm0
push 0x10219b18
push eax
push ecx
call fcn.1000c860
movss xmm0, dword [ebx + 4]
add esp, 0xc
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10219b18
movsd qword [esp + 0x1c], xmm0
call fcn.1000c8a0
add esp, 0xc
lea ecx, [esp + 0x140]
mov esi, eax
push 0
push esi
call fcn.10012bb0
cmp dword [esp + 0x154], 0xf
lea ecx, [esp + 0x140]
movsd xmm0, qword [esp + 0x10]
lea eax, [esi + 1]
cmova ecx, dword [esp + 0x140]
sub esp, 8
movsd qword [esp], xmm0
push 0x10219b18
push eax
push ecx
call fcn.1000c860
movss xmm0, dword [ebx]
add esp, 0xc
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10219b18
movsd qword [esp + 0x1c], xmm0
call fcn.1000c8a0
add esp, 0xc
lea ecx, [esp + 0x128]
mov esi, eax
push 0
push esi
call fcn.10012bb0
cmp dword [esp + 0x13c], 0xf
lea ecx, [esp + 0x128]
movsd xmm0, qword [esp + 0x10]
lea eax, [esi + 1]
cmova ecx, dword [esp + 0x128]
sub esp, 8
movsd qword [esp], xmm0
push 0x10219b18
push eax
push ecx
call fcn.1000c860
add esp, 0x14
lea ecx, [esp + 0x128]
push 7
push str.setang
push 0
call fcn.100139f0
mov dword [esp + 0x60], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x50], xmm0
mov dword [esp + 0x64], 0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x50], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x60], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov edx, dword [esp + 0x64]
mov eax, edx
mov ecx, dword [esp + 0x60]
sub eax, ecx
cmp eax, 1
jb 0x1000fbcc
lea eax, [ecx + 1]
cmp edx, 0xf
mov dword [esp + 0x60], eax
lea eax, [esp + 0x50]
cmova eax, dword [esp + 0x50]
mov word [eax + ecx], 0x20
lea eax, [esp + 0x50]
jmp 0x1000fbe2
push 1
push 0x10219c48
push dword [esp + 0x18]
lea ecx, [esp + 0x5c]
push 1
call fcn.10004980
movups xmm0, xmmword [eax]
lea ecx, [esp + 0xc8]
movups xmmword [esp + 0x188], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x198], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [esp + 0x140]
push eax
lea eax, [esp + 0x18c]
push eax
push dword [esp + 0x18]
call fcn.10013790
mov edx, dword [esp + 0xdc]
mov eax, edx
mov ecx, dword [esp + 0xd8]
sub eax, ecx
cmp eax, 1
jb 0x1000fc6e
lea eax, [ecx + 1]
cmp edx, 0xf
mov dword [esp + 0xd8], eax
lea eax, [esp + 0xc8]
cmova eax, dword [esp + 0xc8]
mov word [eax + ecx], 0x20
lea eax, [esp + 0xc8]
jmp 0x1000fc87
push 1
push 0x10219c48
push dword [esp + 0x18]
lea ecx, [esp + 0xd4]
push 1
call fcn.10004980
movups xmm0, xmmword [eax]
lea ecx, [esp + 0xb0]
movups xmmword [esp + 0x158], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x168], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x15c]
push eax
push dword [esp + 0x18]
call fcn.10013790
mov edx, dword [esp + 0xc4]
mov eax, edx
mov ecx, dword [esp + 0xc0]
sub eax, ecx
cmp eax, 1
jb 0x1000fd10
lea eax, [ecx + 1]
cmp edx, 0xf
mov dword [esp + 0xc0], eax
lea eax, [esp + 0xb0]
cmova eax, dword [esp + 0xb0]
mov word [eax + ecx], 0x3b
lea eax, [esp + 0xb0]
jmp 0x1000fd29
push 1
push 0x10219c24
push dword [esp + 0x18]
lea ecx, [esp + 0xbc]
push 1
call fcn.10004980
movups xmm0, xmmword [eax]
movq xmm1, qword [eax + 0x10]
movups xmmword [esp + 0x170], xmm0
movq qword [esp + 0x10], xmm1
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov ecx, dword [esp + 0x34]
cmp ecx, 0xf
jbe 0x1000fd94
mov edx, dword [esp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000fd7c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000ffee
push ecx
push edx
call fcn.1018b662
movups xmm0, xmmword [esp + 0x178]
add esp, 8
movq xmm1, qword [esp + 0x10]
mov ecx, dword [esp + 0xc4]
movq qword [esp + 0x30], xmm1
movups xmmword [esp + 0x20], xmm0
cmp ecx, 0xf
jbe 0x1000fddb
mov edx, dword [esp + 0xb0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000fdd1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000ffee
push ecx
push edx
call fcn.1018b662
add esp, 8
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0xf
mov byte [esp + 0xb0], 0
cmp ecx, 0xf
jbe 0x1000fe35
mov edx, dword [esp + 0x158]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000fe2b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000ffee
push ecx
push edx
call fcn.1018b662
add esp, 8
mov ecx, dword [esp + 0xdc]
cmp ecx, 0xf
jbe 0x1000fe71
mov edx, dword [esp + 0xc8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000fe67
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000ffee
push ecx
push edx
call fcn.1018b662
add esp, 8
mov ecx, dword [esp + 0x19c]
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0xf
mov byte [esp + 0xc8], 0
cmp ecx, 0xf
jbe 0x1000fecb
mov edx, dword [esp + 0x188]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000fec1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000ffee
push ecx
push edx
call fcn.1018b662
add esp, 8
mov ecx, dword [esp + 0x64]
cmp ecx, 0xf
jbe 0x1000ff01
mov edx, dword [esp + 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000fef7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000ffee
push ecx
push edx
call fcn.1018b662
add esp, 8
mov ecx, dword [esp + 0x13c]
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0xf
mov byte [esp + 0x50], 0
cmp ecx, 0xf
jbe 0x1000ff52
mov edx, dword [esp + 0x128]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000ff48
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000ffee
push ecx
push edx
call fcn.1018b662
add esp, 8
mov ecx, dword [esp + 0x154]
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0xf
mov byte [esp + 0x128], 0
cmp ecx, 0xf
jbe 0x1000ffa8
mov edx, dword [esp + 0x140]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000ff9e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000ffee
push ecx
push edx
call fcn.1018b662
add esp, 8
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0xf
mov byte [esp + 0x140], 0
cmp ecx, 0xf
jbe 0x1000fffe
mov edx, dword [esp + 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000fff4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1000fff4
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1018b662
add esp, 8
mov ecx, dword [0x1024b32c]
lea edx, [esp + 0x20]
cmp dword [esp + 0x34], 0xf
mov dword [esp + 0x78], 0
cmova edx, dword [esp + 0x20]
mov dword [esp + 0x7c], 0xf
mov byte [esp + 0x68], 0
mov eax, dword [ecx]
push 0
push edx
mov eax, dword [eax + 0x1c8]
call eax
mov eax, dword [0x102812e8]
push str.gravity_print_tp_c
push dword [0x102813dc]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x10240698]
cvtpd2ps xmm0, xmm0
movss dword [0x1024b34c], xmm0
call fcn.1000b720
mov ecx, dword [esp + 0x3c]
add esp, 8
cmp ecx, 0xf
jbe 0x1001009f
mov edx, dword [esp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10010095
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10010095
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1018b662
add esp, 8
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0xf
mov byte [esp + 0x20], 0
mov ecx, dword [0x102471e8]
mov eax, dword [0x1028140c]
cmp ecx, 3
ja case.0x100100c4.0
jmp dword [ecx*4 + 0x10010338]
push eax
call edi
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x100100f0
push eax
call edi
test ax, ax
setne al
jmp 0x100100f0
push eax
call edi
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x10010136
mov eax, dword [0x1024b350]
test eax, eax
jle 0x10010103
dec eax
mov dword [0x1024b350], eax
mov eax, dword [0x102812e8]
push str.gravity_print_next_c
push dword [0x102813dc]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x10240698]
cvtpd2ps xmm0, xmm0
movss dword [0x1024b34c], xmm0
call fcn.1000b720
add esp, 8
mov ecx, dword [0x10247200]
mov eax, dword [0x10281424]
cmp ecx, 3
ja case.0x10010146.0
jmp dword [ecx*4 + 0x10010348]
push eax
call edi
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x10010172
push eax
call edi
test ax, ax
setne al
jmp 0x10010172
push eax
call edi
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x100101bc
mov eax, dword [0x1024b350]
inc eax
cmp eax, dword [0x1024b55c]
jae 0x10010189
mov dword [0x1024b350], eax
mov eax, dword [0x102812e8]
push str.gravity_print_prev_c
push dword [0x102813dc]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x10240698]
cvtpd2ps xmm0, xmm0
movss dword [0x1024b34c], xmm0
call fcn.1000b720
add esp, 8
mov ecx, dword [0x102471ec]
mov eax, dword [0x10281448]
cmp ecx, 3
ja case.0x100101cc.0
jmp dword [ecx*4 + 0x10010358]
push eax
call edi
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x100101f8
push eax
call edi
test ax, ax
setne al
jmp 0x100101f8
push eax
call edi
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x10010287
mov edx, dword [0x1024b558]
sub esp, 0xc
add edx, dword [0x1024b350]
mov ecx, esp
mov esi, dword [0x1024b54c]
sub esp, 0xc
lea eax, [edx + 1]
mov dword [ecx + 4], 0
mov dword [ecx + 8], eax
mov eax, esp
mov dword [ecx], esi
mov dword [eax + 4], 0
mov dword [eax], esi
mov dword [eax + 8], edx
lea eax, [esp + 0x28]
push eax
call fcn.10012df0
mov eax, dword [0x1024b55c]
cmp dword [0x1024b350], eax
jb 0x10010254
dec eax
mov dword [0x1024b350], eax
mov eax, dword [0x102812e8]
push str.gravity_print_undid_c
push dword [0x102813dc]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x10240698]
cvtpd2ps xmm0, xmm0
movss dword [0x1024b34c], xmm0
call fcn.1000b720
add esp, 8
mov eax, dword [esp + 0x1a0]
mov eax, dword [eax + 4]
mov dword [esp + eax + method.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [esp + 0x1a0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [esp + ecx + 0x19c], eax
lea ecx, [esp + 0x1b8]
mov dword [esp + method.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
call fcn.10012fd0
lea ecx, [esp + 0x1b8]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [esp + 0x1c0]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [esp + 0x208]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x244
ret
mov ecx, 0x1024b54c
call fcn.10012d40
mov dword [0x1024b350], 0
mov dword [0x1024b34c], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x244
ret
call fcn.10012de0
nop
out dx, eax
add byte [eax], dl
mov ebp, 0xcb1000f3
add byte [eax], dl
salc
add byte [eax], dl
hlt