Function at 0x1000cd10
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x244
push ebx
mov ebx, ecx
mov ecx, dword [0x101bf77c]
push ebp
push esi
push edi
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x101f55e0]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
cmp dword [0x101f565c], 0
mov ebp, eax
je 0x1000ded7
mov ecx, dword [0x101bf77c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x6c]
call edx
test al, al
je 0x1000ded7
mov ecx, dword [0x101bf77c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x1000ded7
cmp byte [0x101bc1d4], 0
je 0x1000ded7
mov ecx, dword [0x101bf778]
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 [0x101b63d0]
lahf
test ah, 0x44
jp 0x1000def5
mov edi, dword [0x101f565c]
test edi, edi
je 0x1000def5
mov eax, dword [0x101f5658]
test eax, eax
jne 0x1000cdfc
mov edx, 0xe80c2f78
mov ecx, 0x1014a9e5
call fcn.10003700
mov edx, 0xc10bf213
mov ecx, 0x1014a90d
mov esi, eax
call fcn.10003700
mov edx, esi
mov ecx, eax
call fcn.100aa660
mov dword [0x101f5658], eax
cmp dword [eax + edi], 0
jle 0x1000def5
mov eax, dword [0x101f55e8]
movss xmm0, dword [eax]
comiss xmm0, dword [0x101bf79c]
jbe 0x1000def5
push ecx
lea ecx, [esp + 0x1a4]
call fcn.1000fe90
push dword [0x101f572c]
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
call edi
test ax, ax
je 0x1000cfaf
mov eax, dword [0x101f565c]
mov dword [esp + 0x10], eax
mov eax, dword [0x101f5690]
test eax, eax
jne 0x1000ce80
mov edx, 0xe80c2f78
mov ecx, 0x1019659d
call fcn.10003700
mov edx, 0xc10bf213
mov ecx, 0x1014a90d
mov esi, eax
call fcn.10003700
mov edx, esi
mov ecx, eax
call fcn.100aa660
mov dword [0x101f5690], eax
mov ecx, dword [esp + 0x10]
test byte [ecx + eax], 1
je 0x1000cfaf
movss xmm1, dword [ebx + 0x10]
movss xmm0, dword [ebx + 0xc]
mov eax, dword [0x101f55f0]
movss dword [esp + 0x10], xmm0
movss dword [esp + 0x14], xmm1
mov dword [esp + 0x18], 0
test eax, eax
jne 0x1000cee3
mov edx, 0xe80c2f78
mov ecx, 0x1014a929
call fcn.10003700
mov edx, 0xc10bf213
mov ecx, 0x1014a935
mov esi, eax
call fcn.10003700
mov edx, esi
mov ecx, eax
call fcn.100aa660
mov dword [0x101f55f0], eax
movq xmm0, qword [esp + 0x10]
mov esi, dword [0x101bf994]
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 [0x101bf99c]
inc eax
mov dword [esp + 0x70], ecx
movq qword [esp + 0x74], xmm0
cmp esi, eax
ja 0x1000cf26
push ecx
call fcn.100116f0
mov esi, dword [0x101bf994]
lea edi, [esi - 1]
mov eax, edi
and eax, dword [0x101bf998]
mov dword [0x101bf998], eax
cmovne esi, eax
mov eax, dword [0x101bf990]
dec esi
and edi, esi
cmp dword [eax + edi*4], 0
jne 0x1000cf5f
push 0x18
call fcn.1010e213
mov ecx, dword [0x101bf990]
add esp, 4
mov dword [ecx + edi*4], eax
mov eax, dword [0x101bf990]
mov eax, dword [eax + edi*4]
movups xmm0, xmmword [esp + 0x68]
mov dword [0x101bf7a0], 0
movups xmmword [eax], xmm0
movq xmm0, qword [esp + 0x78]
movq qword [eax + 0x10], xmm0
mov ecx, dword [0x101bf99c]
mov dword [0x101bf998], esi
lea eax, [ecx + 1]
mov dword [0x101bf99c], eax
cmp eax, 0x63
jbe 0x1000cfa8
mov dword [0x101bf99c], ecx
test ecx, ecx
jne 0x1000cfa8
mov dword [0x101bf998], ecx
push str.solutional_print_saved_c
jmp 0x1000d004
push dword [0x101f572c]
call edi
test ax, ax
je 0x1000d032
mov eax, dword [0x101f5690]
mov edi, dword [0x101f565c]
test eax, eax
jne 0x1000cff9
mov edx, 0xe80c2f78
mov ecx, 0x1019659d
call fcn.10003700
mov edx, 0xc10bf213
mov ecx, 0x1014a90d
mov esi, eax
call fcn.10003700
mov edx, esi
mov ecx, eax
call fcn.100aa660
mov dword [0x101f5690], eax
test byte [edi + eax], 1
jne 0x1000d032
push str.solutional_print_save_c
mov eax, dword [0x101f55e8]
push dword [0x101f56d4]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x101b63f8]
cvtpd2ps xmm0, xmm0
movss dword [0x101bf79c], xmm0
call fcn.10009ec0
add esp, 8
cmp dword [0x101bf99c], 0
je 0x1000de65
push dword [0x101f5710]
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x1000dd22
mov ecx, dword [0x101bf7a0]
cmp dword [0x101bf99c], ecx
jbe 0x1000df00
mov esi, dword [0x101bf998]
mov edx, dword [0x101bf98c]
add esi, ecx
test edx, edx
je 0x1000d081
mov eax, dword [edx]
jmp 0x1000d083
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 0x10196978
movsd qword [esp + 0x1c], xmm0
call fcn.1000b040
add esp, 0xc
lea ecx, [esp + 0x110]
mov esi, eax
push 0
push esi
call fcn.10010740
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 0x10196978
push eax
push ecx
call fcn.1000b000
movss xmm0, dword [ebx + 0x10]
add esp, 0xc
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10196978
movsd qword [esp + 0x1c], xmm0
call fcn.1000b040
add esp, 0xc
lea ecx, [esp + 0xf8]
mov esi, eax
push 0
push esi
call fcn.10010740
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 0x10196978
push eax
push ecx
call fcn.1000b000
movss xmm0, dword [ebx + 0xc]
add esp, 0xc
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10196978
movsd qword [esp + 0x1c], xmm0
call fcn.1000b040
add esp, 0xc
lea ecx, [esp + 0xe0]
mov esi, eax
push 0
push esi
call fcn.10010740
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 0x10196978
push eax
push ecx
call fcn.1000b000
add esp, 0x14
push 7
push str.setpos
push 0
lea ecx, [esp + 0xec]
call fcn.10011b00
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 0x1000d24b
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 0x1000d261
push 1
push 0x10196a8c
push dword [esp + 0x18]
lea ecx, [esp + 0x44]
push 1
call fcn.10003490
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.10011910
mov edx, dword [esp + 0xac]
mov eax, edx
mov ecx, dword [esp + 0xa8]
sub eax, ecx
cmp eax, 1
jb 0x1000d2ed
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 0x1000d306
push 1
push 0x10196a8c
push dword [esp + 0x18]
lea ecx, [esp + 0xa4]
push 1
call fcn.10003490
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.10011910
mov edx, dword [esp + 0x94]
mov eax, edx
mov ecx, dword [esp + 0x90]
sub eax, ecx
cmp eax, 1
jb 0x1000d392
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 0x1000d3ab
push 1
push 0x10196a88
push dword [esp + 0x18]
lea ecx, [esp + 0x8c]
push 1
call fcn.10003490
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 0x1000d423
mov edx, dword [esp + 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d419
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000d63c
push ecx
push edx
call fcn.1010e562
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 0x1000d47d
mov edx, dword [esp + 0x170]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d473
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000d63c
push ecx
push edx
call fcn.1010e562
add esp, 8
mov ecx, dword [esp + 0xac]
cmp ecx, 0xf
jbe 0x1000d4b9
mov edx, dword [esp + 0x98]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d4af
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000d63c
push ecx
push edx
call fcn.1010e562
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 0x1000d513
mov edx, dword [esp + 0x158]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d509
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000d63c
push ecx
push edx
call fcn.1010e562
add esp, 8
mov ecx, dword [esp + 0x4c]
cmp ecx, 0xf
jbe 0x1000d549
mov edx, dword [esp + 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d53f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000d63c
push ecx
push edx
call fcn.1010e562
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 0x1000d59a
mov edx, dword [esp + 0xe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d590
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000d63c
push ecx
push edx
call fcn.1010e562
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 0x1000d5f0
mov edx, dword [esp + 0xf8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d5e6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000d63c
push ecx
push edx
call fcn.1010e562
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 0x1000d64c
mov edx, dword [esp + 0x110]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d642
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1000d642
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1010e562
add esp, 8
mov ecx, dword [0x101bf77c]
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 0x10196978
movsd qword [esp + 0x1c], xmm0
call fcn.1000b040
add esp, 0xc
lea ecx, [esp + 0x68]
mov esi, eax
push 0
push esi
call fcn.10010740
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 0x10196978
push eax
push ecx
call fcn.1000b000
movss xmm0, dword [ebx + 4]
add esp, 0xc
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10196978
movsd qword [esp + 0x1c], xmm0
call fcn.1000b040
add esp, 0xc
lea ecx, [esp + 0x140]
mov esi, eax
push 0
push esi
call fcn.10010740
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 0x10196978
push eax
push ecx
call fcn.1000b000
movss xmm0, dword [ebx]
add esp, 0xc
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10196978
movsd qword [esp + 0x1c], xmm0
call fcn.1000b040
add esp, 0xc
lea ecx, [esp + 0x128]
mov esi, eax
push 0
push esi
call fcn.10010740
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 0x10196978
push eax
push ecx
call fcn.1000b000
add esp, 0x14
lea ecx, [esp + 0x128]
push 7
push str.setang
push 0
call fcn.10011b00
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 0x1000d83a
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 0x1000d850
push 1
push 0x10196a8c
push dword [esp + 0x18]
lea ecx, [esp + 0x5c]
push 1
call fcn.10003490
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.10011910
mov edx, dword [esp + 0xdc]
mov eax, edx
mov ecx, dword [esp + 0xd8]
sub eax, ecx
cmp eax, 1
jb 0x1000d8dc
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 0x1000d8f5
push 1
push 0x10196a8c
push dword [esp + 0x18]
lea ecx, [esp + 0xd4]
push 1
call fcn.10003490
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.10011910
mov edx, dword [esp + 0xc4]
mov eax, edx
mov ecx, dword [esp + 0xc0]
sub eax, ecx
cmp eax, 1
jb 0x1000d97e
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 0x1000d997
push 1
push 0x10196a88
push dword [esp + 0x18]
lea ecx, [esp + 0xbc]
push 1
call fcn.10003490
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 0x1000da02
mov edx, dword [esp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d9ea
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000dc5c
push ecx
push edx
call fcn.1010e562
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 0x1000da49
mov edx, dword [esp + 0xb0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000da3f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000dc5c
push ecx
push edx
call fcn.1010e562
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 0x1000daa3
mov edx, dword [esp + 0x158]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000da99
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000dc5c
push ecx
push edx
call fcn.1010e562
add esp, 8
mov ecx, dword [esp + 0xdc]
cmp ecx, 0xf
jbe 0x1000dadf
mov edx, dword [esp + 0xc8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000dad5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000dc5c
push ecx
push edx
call fcn.1010e562
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 0x1000db39
mov edx, dword [esp + 0x188]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000db2f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000dc5c
push ecx
push edx
call fcn.1010e562
add esp, 8
mov ecx, dword [esp + 0x64]
cmp ecx, 0xf
jbe 0x1000db6f
mov edx, dword [esp + 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000db65
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000dc5c
push ecx
push edx
call fcn.1010e562
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 0x1000dbc0
mov edx, dword [esp + 0x128]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000dbb6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000dc5c
push ecx
push edx
call fcn.1010e562
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 0x1000dc16
mov edx, dword [esp + 0x140]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000dc0c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000dc5c
push ecx
push edx
call fcn.1010e562
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 0x1000dc6c
mov edx, dword [esp + 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000dc62
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1000dc62
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1010e562
add esp, 8
mov ecx, dword [0x101bf77c]
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 [0x101f55e8]
push str.solutional_print_tp_c
push dword [0x101f56d4]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x101b63f8]
cvtpd2ps xmm0, xmm0
movss dword [0x101bf79c], xmm0
call fcn.10009ec0
mov ecx, dword [esp + 0x3c]
add esp, 8
cmp ecx, 0xf
jbe 0x1000dd0d
mov edx, dword [esp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000dd03
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1000dd03
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1010e562
add esp, 8
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0xf
mov byte [esp + 0x20], 0
push dword [0x101f5704]
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x1000dd74
mov eax, dword [0x101bf7a0]
test eax, eax
jle 0x1000dd41
dec eax
mov dword [0x101bf7a0], eax
mov eax, dword [0x101f55e8]
push str.solutional_print_next_c
push dword [0x101f56d4]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x101b63f8]
cvtpd2ps xmm0, xmm0
movss dword [0x101bf79c], xmm0
call fcn.10009ec0
add esp, 8
push dword [0x101f571c]
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x1000ddca
mov eax, dword [0x101bf7a0]
inc eax
cmp eax, dword [0x101bf99c]
jae 0x1000dd97
mov dword [0x101bf7a0], eax
mov eax, dword [0x101f55e8]
push str.solutional_print_prev_c
push dword [0x101f56d4]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x101b63f8]
cvtpd2ps xmm0, xmm0
movss dword [0x101bf79c], xmm0
call fcn.10009ec0
add esp, 8
push dword [0x101f573c]
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x1000de65
mov edx, dword [0x101bf998]
sub esp, 0xc
add edx, dword [0x101bf7a0]
mov ecx, esp
mov esi, dword [0x101bf98c]
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.10010a10
mov eax, dword [0x101bf99c]
cmp dword [0x101bf7a0], eax
jb 0x1000de32
dec eax
mov dword [0x101bf7a0], eax
mov eax, dword [0x101f55e8]
push str.solutional_print_undid_c
push dword [0x101f56d4]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x101b63f8]
cvtpd2ps xmm0, xmm0
movss dword [0x101bf79c], xmm0
call fcn.10009ec0
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.10010bf0
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, 0x101bf98c
call fcn.10010960
mov dword [0x101bf7a0], 0
mov dword [0x101bf79c], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x244
ret
call fcn.10010a00
int3