Function at 0x1000cf20
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x244
push ebx
mov ebx, ecx
mov ecx, dword [0x101c176c]
push ebp
push esi
push edi
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x101f75d0]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
cmp dword [0x101f764c], 0
mov ebp, eax
je 0x1000e0e7
mov ecx, dword [0x101c176c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x6c]
call edx
test al, al
je 0x1000e0e7
mov ecx, dword [0x101c176c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x1000e0e7
cmp byte [0x101be1d4], 0
je 0x1000e0e7
mov ecx, dword [0x101c1768]
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 [0x101b8358]
lahf
test ah, 0x44
jp 0x1000e105
mov edi, dword [0x101f764c]
test edi, edi
je 0x1000e105
mov eax, dword [0x101f7648]
test eax, eax
jne 0x1000d00c
mov edx, 0xe80c2f78
mov ecx, 0x1014c9ed
call fcn.10003ad0
mov edx, 0xc10bf213
mov ecx, 0x1014c915
mov esi, eax
call fcn.10003ad0
mov edx, esi
mov ecx, eax
call fcn.100abe50
mov dword [0x101f7648], eax
cmp dword [eax + edi], 0
jle 0x1000e105
mov eax, dword [0x101f75d8]
movss xmm0, dword [eax]
comiss xmm0, dword [0x101c178c]
jbe 0x1000e105
push ecx
lea ecx, [esp + 0x1a4]
call fcn.100100a0
push dword [0x101f771c]
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
call edi
test ax, ax
je 0x1000d1bf
mov eax, dword [0x101f764c]
mov dword [esp + 0x10], eax
mov eax, dword [0x101f7680]
test eax, eax
jne 0x1000d090
mov edx, 0xe80c2f78
mov ecx, 0x101985a5
call fcn.10003ad0
mov edx, 0xc10bf213
mov ecx, 0x1014c915
mov esi, eax
call fcn.10003ad0
mov edx, esi
mov ecx, eax
call fcn.100abe50
mov dword [0x101f7680], eax
mov ecx, dword [esp + 0x10]
test byte [ecx + eax], 1
je 0x1000d1bf
movss xmm1, dword [ebx + 0x10]
movss xmm0, dword [ebx + 0xc]
mov eax, dword [0x101f75e0]
movss dword [esp + 0x10], xmm0
movss dword [esp + 0x14], xmm1
mov dword [esp + 0x18], 0
test eax, eax
jne 0x1000d0f3
mov edx, 0xe80c2f78
mov ecx, 0x1014c931
call fcn.10003ad0
mov edx, 0xc10bf213
mov ecx, 0x1014c93d
mov esi, eax
call fcn.10003ad0
mov edx, esi
mov ecx, eax
call fcn.100abe50
mov dword [0x101f75e0], eax
movq xmm0, qword [esp + 0x10]
mov esi, dword [0x101c1984]
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 [0x101c198c]
inc eax
mov dword [esp + 0x70], ecx
movq qword [esp + 0x74], xmm0
cmp esi, eax
ja 0x1000d136
push ecx
call fcn.100117b0
mov esi, dword [0x101c1984]
lea edi, [esi - 1]
mov eax, edi
and eax, dword [0x101c1988]
mov dword [0x101c1988], eax
cmovne esi, eax
mov eax, dword [0x101c1980]
dec esi
and edi, esi
cmp dword [eax + edi*4], 0
jne 0x1000d16f
push 0x18
call fcn.1010fa03
mov ecx, dword [0x101c1980]
add esp, 4
mov dword [ecx + edi*4], eax
mov eax, dword [0x101c1980]
mov eax, dword [eax + edi*4]
movups xmm0, xmmword [esp + 0x68]
mov dword [0x101c1790], 0
movups xmmword [eax], xmm0
movq xmm0, qword [esp + 0x78]
movq qword [eax + 0x10], xmm0
mov ecx, dword [0x101c198c]
mov dword [0x101c1988], esi
lea eax, [ecx + 1]
mov dword [0x101c198c], eax
cmp eax, 0x63
jbe 0x1000d1b8
mov dword [0x101c198c], ecx
test ecx, ecx
jne 0x1000d1b8
mov dword [0x101c1988], ecx
push str.OlegWare_print_saved_c
jmp 0x1000d214
push dword [0x101f771c]
call edi
test ax, ax
je 0x1000d242
mov eax, dword [0x101f7680]
mov edi, dword [0x101f764c]
test eax, eax
jne 0x1000d209
mov edx, 0xe80c2f78
mov ecx, 0x101985a5
call fcn.10003ad0
mov edx, 0xc10bf213
mov ecx, 0x1014c915
mov esi, eax
call fcn.10003ad0
mov edx, esi
mov ecx, eax
call fcn.100abe50
mov dword [0x101f7680], eax
test byte [edi + eax], 1
jne 0x1000d242
push str.OlegWare_print_save_c
mov eax, dword [0x101f75d8]
push dword [0x101f76c4]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x101b8380]
cvtpd2ps xmm0, xmm0
movss dword [0x101c178c], xmm0
call fcn.1000a290
add esp, 8
cmp dword [0x101c198c], 0
je 0x1000e075
push dword [0x101f7708]
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x1000df32
mov ecx, dword [0x101c1790]
cmp dword [0x101c198c], ecx
jbe 0x1000e110
mov esi, dword [0x101c1988]
mov edx, dword [0x101c197c]
add esi, ecx
test edx, edx
je 0x1000d291
mov eax, dword [edx]
jmp 0x1000d293
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 0x10198978
movsd qword [esp + 0x1c], xmm0
call fcn.1000b410
add esp, 0xc
lea ecx, [esp + 0x110]
mov esi, eax
push 0
push esi
call fcn.10010950
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 0x10198978
push eax
push ecx
call fcn.1000b3d0
movss xmm0, dword [ebx + 0x10]
add esp, 0xc
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10198978
movsd qword [esp + 0x1c], xmm0
call fcn.1000b410
add esp, 0xc
lea ecx, [esp + 0xf8]
mov esi, eax
push 0
push esi
call fcn.10010950
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 0x10198978
push eax
push ecx
call fcn.1000b3d0
movss xmm0, dword [ebx + 0xc]
add esp, 0xc
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10198978
movsd qword [esp + 0x1c], xmm0
call fcn.1000b410
add esp, 0xc
lea ecx, [esp + 0xe0]
mov esi, eax
push 0
push esi
call fcn.10010950
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 0x10198978
push eax
push ecx
call fcn.1000b3d0
add esp, 0x14
push 7
push str.setpos
push 0
lea ecx, [esp + 0xec]
call fcn.10011bc0
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 0x1000d45b
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 0x1000d471
push 1
push 0x10198a84
push dword [esp + 0x18]
lea ecx, [esp + 0x44]
push 1
call fcn.10003860
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.100119d0
mov edx, dword [esp + 0xac]
mov eax, edx
mov ecx, dword [esp + 0xa8]
sub eax, ecx
cmp eax, 1
jb 0x1000d4fd
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 0x1000d516
push 1
push 0x10198a84
push dword [esp + 0x18]
lea ecx, [esp + 0xa4]
push 1
call fcn.10003860
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.100119d0
mov edx, dword [esp + 0x94]
mov eax, edx
mov ecx, dword [esp + 0x90]
sub eax, ecx
cmp eax, 1
jb 0x1000d5a2
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 0x1000d5bb
push 1
push 0x10198a80
push dword [esp + 0x18]
lea ecx, [esp + 0x8c]
push 1
call fcn.10003860
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 0x1000d633
mov edx, dword [esp + 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d629
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000d84c
push ecx
push edx
call fcn.1010fd52
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 0x1000d68d
mov edx, dword [esp + 0x170]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d683
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000d84c
push ecx
push edx
call fcn.1010fd52
add esp, 8
mov ecx, dword [esp + 0xac]
cmp ecx, 0xf
jbe 0x1000d6c9
mov edx, dword [esp + 0x98]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d6bf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000d84c
push ecx
push edx
call fcn.1010fd52
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 0x1000d723
mov edx, dword [esp + 0x158]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d719
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000d84c
push ecx
push edx
call fcn.1010fd52
add esp, 8
mov ecx, dword [esp + 0x4c]
cmp ecx, 0xf
jbe 0x1000d759
mov edx, dword [esp + 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d74f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000d84c
push ecx
push edx
call fcn.1010fd52
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 0x1000d7aa
mov edx, dword [esp + 0xe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d7a0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000d84c
push ecx
push edx
call fcn.1010fd52
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 0x1000d800
mov edx, dword [esp + 0xf8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d7f6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000d84c
push ecx
push edx
call fcn.1010fd52
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 0x1000d85c
mov edx, dword [esp + 0x110]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d852
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1000d852
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1010fd52
add esp, 8
mov ecx, dword [0x101c176c]
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 0x10198978
movsd qword [esp + 0x1c], xmm0
call fcn.1000b410
add esp, 0xc
lea ecx, [esp + 0x68]
mov esi, eax
push 0
push esi
call fcn.10010950
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 0x10198978
push eax
push ecx
call fcn.1000b3d0
movss xmm0, dword [ebx + 4]
add esp, 0xc
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10198978
movsd qword [esp + 0x1c], xmm0
call fcn.1000b410
add esp, 0xc
lea ecx, [esp + 0x140]
mov esi, eax
push 0
push esi
call fcn.10010950
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 0x10198978
push eax
push ecx
call fcn.1000b3d0
movss xmm0, dword [ebx]
add esp, 0xc
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10198978
movsd qword [esp + 0x1c], xmm0
call fcn.1000b410
add esp, 0xc
lea ecx, [esp + 0x128]
mov esi, eax
push 0
push esi
call fcn.10010950
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 0x10198978
push eax
push ecx
call fcn.1000b3d0
add esp, 0x14
lea ecx, [esp + 0x128]
push 7
push str.setang
push 0
call fcn.10011bc0
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 0x1000da4a
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 0x1000da60
push 1
push 0x10198a84
push dword [esp + 0x18]
lea ecx, [esp + 0x5c]
push 1
call fcn.10003860
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.100119d0
mov edx, dword [esp + 0xdc]
mov eax, edx
mov ecx, dword [esp + 0xd8]
sub eax, ecx
cmp eax, 1
jb 0x1000daec
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 0x1000db05
push 1
push 0x10198a84
push dword [esp + 0x18]
lea ecx, [esp + 0xd4]
push 1
call fcn.10003860
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.100119d0
mov edx, dword [esp + 0xc4]
mov eax, edx
mov ecx, dword [esp + 0xc0]
sub eax, ecx
cmp eax, 1
jb 0x1000db8e
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 0x1000dba7
push 1
push 0x10198a80
push dword [esp + 0x18]
lea ecx, [esp + 0xbc]
push 1
call fcn.10003860
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 0x1000dc12
mov edx, dword [esp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000dbfa
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000de6c
push ecx
push edx
call fcn.1010fd52
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 0x1000dc59
mov edx, dword [esp + 0xb0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000dc4f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000de6c
push ecx
push edx
call fcn.1010fd52
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 0x1000dcb3
mov edx, dword [esp + 0x158]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000dca9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000de6c
push ecx
push edx
call fcn.1010fd52
add esp, 8
mov ecx, dword [esp + 0xdc]
cmp ecx, 0xf
jbe 0x1000dcef
mov edx, dword [esp + 0xc8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000dce5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000de6c
push ecx
push edx
call fcn.1010fd52
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 0x1000dd49
mov edx, dword [esp + 0x188]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000dd3f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000de6c
push ecx
push edx
call fcn.1010fd52
add esp, 8
mov ecx, dword [esp + 0x64]
cmp ecx, 0xf
jbe 0x1000dd7f
mov edx, dword [esp + 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000dd75
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000de6c
push ecx
push edx
call fcn.1010fd52
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 0x1000ddd0
mov edx, dword [esp + 0x128]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000ddc6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000de6c
push ecx
push edx
call fcn.1010fd52
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 0x1000de26
mov edx, dword [esp + 0x140]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000de1c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000de6c
push ecx
push edx
call fcn.1010fd52
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 0x1000de7c
mov edx, dword [esp + 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000de72
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1000de72
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1010fd52
add esp, 8
mov ecx, dword [0x101c176c]
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 [0x101f75d8]
push str.OlegWare_print_tp_c
push dword [0x101f76c4]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x101b8380]
cvtpd2ps xmm0, xmm0
movss dword [0x101c178c], xmm0
call fcn.1000a290
mov ecx, dword [esp + 0x3c]
add esp, 8
cmp ecx, 0xf
jbe 0x1000df1d
mov edx, dword [esp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000df13
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1000df13
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1010fd52
add esp, 8
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0xf
mov byte [esp + 0x20], 0
push dword [0x101f76f8]
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x1000df84
mov eax, dword [0x101c1790]
test eax, eax
jle 0x1000df51
dec eax
mov dword [0x101c1790], eax
mov eax, dword [0x101f75d8]
push str.OlegWare_print_next_c
push dword [0x101f76c4]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x101b8380]
cvtpd2ps xmm0, xmm0
movss dword [0x101c178c], xmm0
call fcn.1000a290
add esp, 8
push dword [0x101f7704]
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x1000dfda
mov eax, dword [0x101c1790]
inc eax
cmp eax, dword [0x101c198c]
jae 0x1000dfa7
mov dword [0x101c1790], eax
mov eax, dword [0x101f75d8]
push str.OlegWare_print_prev_c
push dword [0x101f76c4]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x101b8380]
cvtpd2ps xmm0, xmm0
movss dword [0x101c178c], xmm0
call fcn.1000a290
add esp, 8
push dword [0x101f7738]
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x1000e075
mov edx, dword [0x101c1988]
sub esp, 0xc
add edx, dword [0x101c1790]
mov ecx, esp
mov esi, dword [0x101c197c]
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.10010c20
mov eax, dword [0x101c198c]
cmp dword [0x101c1790], eax
jb 0x1000e042
dec eax
mov dword [0x101c1790], eax
mov eax, dword [0x101f75d8]
push str.OlegWare_print_undid_c
push dword [0x101f76c4]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x101b8380]
cvtpd2ps xmm0, xmm0
movss dword [0x101c178c], xmm0
call fcn.1000a290
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.10010e00
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, 0x101c197c
call fcn.10010b70
mov dword [0x101c1790], 0
mov dword [0x101c178c], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x244
ret
call fcn.10010c10
int3