Function at 0x1000ff50
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x24c
push ebx
mov ebx, ecx
mov ecx, dword [0x1023d1cc]
push ebp
push esi
push edi
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x1023d20c]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
cmp dword [0x1023d288], 0
mov ebp, eax
je 0x100111e0
mov ecx, dword [0x1023d1cc]
mov edx, dword [ecx]
mov edx, dword [edx + 0x6c]
call edx
test al, al
je 0x100111e0
mov ecx, dword [0x1023d1cc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x100111e0
cmp byte [0x10273317], 0
je 0x100111e0
mov ecx, dword [0x1023d1c8]
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 [0x1022f9c8]
lahf
test ah, 0x44
jp 0x100111fe
mov edi, dword [0x1023d288]
test edi, edi
je 0x100111fe
mov eax, dword [0x1023d284]
test eax, eax
jne 0x1001003c
mov edx, 0xe80c2f78
mov ecx, 0x1021170d
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x10211635
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov dword [0x1023d284], eax
cmp dword [eax + edi], 0
jle 0x100111fe
mov eax, dword [0x1023d214]
movss xmm0, dword [eax]
comiss xmm0, dword [0x1023d328]
jbe 0x100111fe
push ecx
lea ecx, [esp + 0x1ac]
call fcn.10013270
push dword [0x10273320]
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
call edi
test ax, ax
je 0x10010206
mov eax, dword [0x1023d288]
mov dword [esp + 0x10], eax
mov eax, dword [0x1023d2c0]
test eax, eax
jne 0x100100c0
mov edx, 0xe80c2f78
mov ecx, 0x10211851
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x10211635
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov dword [0x1023d2c0], eax
mov ecx, dword [esp + 0x10]
test byte [ecx + eax], 1
je 0x10010206
movss xmm1, dword [ebx + 0x10]
movss xmm0, dword [ebx + 0xc]
mov eax, dword [0x1023d21c]
movss dword [esp + 0x10], xmm0
movss dword [esp + 0x14], xmm1
mov dword [esp + 0x18], 0
test eax, eax
jne 0x10010123
mov edx, 0xe80c2f78
mov ecx, 0x10211651
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x1021165d
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov dword [0x1023d21c], eax
movq xmm0, qword [esp + 0x10]
mov edx, dword [0x1023d538]
mov ecx, dword [esp + 0x18]
movq qword [esp + 0x70], xmm0
movq xmm0, qword [eax + ebp]
mov eax, dword [eax + ebp + 8]
mov dword [esp + 0x84], eax
mov eax, dword [0x1023d540]
inc eax
mov dword [esp + 0x78], ecx
movq qword [esp + 0x7c], xmm0
cmp edx, eax
ja 0x10010169
push ecx
call fcn.100156d0
mov edx, dword [0x1023d538]
lea ecx, [edx - 1]
mov edi, edx
and ecx, dword [0x1023d53c]
lea esi, [edx - 1]
mov dword [0x1023d53c], ecx
cmovne edi, ecx
mov ecx, dword [0x1023d534]
dec edi
and esi, edi
cmp dword [ecx + esi*4], 0
jne 0x100101ae
push 0x18
call fcn.101832c9
mov ecx, dword [0x1023d534]
add esp, 4
mov dword [ecx + esi*4], eax
mov edx, dword [0x1023d538]
mov ecx, dword [0x1023d534]
movups xmm0, xmmword [esp + 0x70]
lea eax, [edx - 1]
mov dword [0x1023d330], 0
and eax, edi
mov eax, dword [ecx + eax*4]
movups xmmword [eax], xmm0
movq xmm0, qword [esp + 0x80]
movq qword [eax + 0x10], xmm0
mov ecx, dword [0x1023d540]
mov dword [0x1023d53c], edi
lea eax, [ecx + 1]
mov dword [0x1023d540], eax
cmp eax, 0x63
jbe 0x100101ff
mov dword [0x1023d540], ecx
test ecx, ecx
jne 0x100101ff
mov dword [0x1023d53c], ecx
push str.datashell_print_saved_c
jmp 0x1001025b
push dword [0x10273320]
call edi
test ax, ax
je 0x10010289
mov eax, dword [0x1023d2c0]
mov edi, dword [0x1023d288]
test eax, eax
jne 0x10010250
mov edx, 0xe80c2f78
mov ecx, 0x10211851
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x10211635
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov dword [0x1023d2c0], eax
test byte [edi + eax], 1
jne 0x10010289
push str.datashell_print_save_c
mov eax, dword [0x1023d214]
push dword [0x1023d314]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x1022fa00]
cvtpd2ps xmm0, xmm0
movss dword [0x1023d328], xmm0
call fcn.1000c000
add esp, 8
mov eax, dword [0x1023d540]
test eax, eax
je 0x1001116e
mov edx, dword [0x102371e0]
mov ecx, dword [0x10273308]
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
cmp edx, 3
ja case.0x100102ad.0
jmp dword [edx*4 + 0x10011210]
push ecx
call edi
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x100102d9
push ecx
call edi
test ax, ax
setne al
jmp 0x100102d9
push ecx
call edi
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x10010f9b
mov eax, dword [0x1023d540]
mov ecx, dword [0x1023d330]
cmp eax, ecx
jbe 0x10011209
mov edx, dword [0x1023d538]
sub esp, 8
add ecx, dword [0x1023d53c]
dec edx
mov eax, dword [0x1023d534]
and edx, ecx
mov ebx, dword [eax + edx*4]
movss xmm0, dword [ebx + 0x14]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10211a3c
movsd qword [esp + 0x1c], xmm0
call fcn.1000c250
add esp, 0xc
lea ecx, [esp + 0x118]
mov esi, eax
push 0
push esi
call fcn.10014000
cmp dword [esp + 0x12c], 0xf
lea ecx, [esp + 0x118]
movsd xmm0, qword [esp + 0x10]
lea eax, [esi + 1]
cmova ecx, dword [esp + 0x118]
sub esp, 8
movsd qword [esp], xmm0
push 0x10211a3c
push eax
push ecx
call fcn.1000c210
movss xmm0, dword [ebx + 0x10]
add esp, 0xc
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10211a3c
movsd qword [esp + 0x1c], xmm0
call fcn.1000c250
add esp, 0xc
lea ecx, [esp + 0x100]
mov esi, eax
push 0
push esi
call fcn.10014000
cmp dword [esp + 0x114], 0xf
lea ecx, [esp + 0x100]
movsd xmm0, qword [esp + 0x10]
lea eax, [esi + 1]
cmova ecx, dword [esp + 0x100]
sub esp, 8
movsd qword [esp], xmm0
push 0x10211a3c
push eax
push ecx
call fcn.1000c210
movss xmm0, dword [ebx + 0xc]
add esp, 0xc
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10211a3c
movsd qword [esp + 0x1c], xmm0
call fcn.1000c250
add esp, 0xc
lea ecx, [esp + 0xe8]
mov esi, eax
push 0
push esi
call fcn.10014000
cmp dword [esp + 0xfc], 0xf
lea ecx, [esp + 0xe8]
movsd xmm0, qword [esp + 0x10]
lea eax, [esi + 1]
cmova ecx, dword [esp + 0xe8]
sub esp, 8
movsd qword [esp], xmm0
push 0x10211a3c
push eax
push ecx
call fcn.1000c210
add esp, 0x14
push 7
push str.setpos
push 0
lea ecx, [esp + 0xf4]
call fcn.10015c00
mov dword [esp + 0x50], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x40], xmm0
mov dword [esp + 0x54], 0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x40], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x50], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov edx, dword [esp + 0x54]
mov eax, edx
mov ecx, dword [esp + 0x50]
sub eax, ecx
cmp eax, 1
jb 0x100104c7
lea eax, [ecx + 1]
cmp edx, 0xf
mov dword [esp + 0x50], eax
lea eax, [esp + 0x40]
cmova eax, dword [esp + 0x40]
mov word [eax + ecx], 0x20
lea eax, [esp + 0x40]
jmp 0x100104dd
push 1
push 0x10211c7c
push dword [esp + 0x18]
lea ecx, [esp + 0x4c]
push 1
call fcn.10004b40
movups xmm0, xmmword [eax]
lea ecx, [esp + 0xa0]
movups xmmword [esp + 0x10], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x20], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [esp + 0x100]
push eax
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x18]
call fcn.10015880
mov edx, dword [esp + 0xb4]
mov eax, edx
mov ecx, dword [esp + 0xb0]
sub eax, ecx
cmp eax, 1
jb 0x10010560
lea eax, [ecx + 1]
cmp edx, 0xf
mov dword [esp + 0xb0], eax
lea eax, [esp + 0xa0]
cmova eax, dword [esp + 0xa0]
mov word [eax + ecx], 0x20
lea eax, [esp + 0xa0]
jmp 0x10010579
push 1
push 0x10211c7c
push dword [esp + 0x18]
lea ecx, [esp + 0xac]
push 1
call fcn.10004b40
movups xmm0, xmmword [eax]
lea ecx, [esp + 0x88]
movups xmmword [esp + 0x160], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x170], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [esp + 0x118]
push eax
lea eax, [esp + 0x164]
push eax
push dword [esp + 0x18]
call fcn.10015880
mov edx, dword [esp + 0x9c]
mov eax, edx
mov ecx, dword [esp + 0x98]
sub eax, ecx
cmp eax, 1
jb 0x10010605
lea eax, [ecx + 1]
cmp edx, 0xf
mov dword [esp + 0x98], eax
lea eax, [esp + 0x88]
cmova eax, dword [esp + 0x88]
mov word [eax + ecx], 0x3b
lea eax, [esp + 0x88]
jmp 0x1001061e
push 1
push 0x10211c80
push dword [esp + 0x18]
lea ecx, [esp + 0x94]
push 1
call fcn.10004b40
mov dword [esp + 0x38], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x28], xmm0
mov dword [esp + 0x3c], 0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x28], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x38], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov ecx, dword [esp + 0x9c]
cmp ecx, 0xf
jbe 0x10010696
mov edx, dword [esp + 0x88]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001068c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100108a9
push ecx
push edx
call fcn.10183618
add esp, 8
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0xf
mov byte [esp + 0x88], 0
cmp ecx, 0xf
jbe 0x100106f0
mov edx, dword [esp + 0x160]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100106e6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100108a9
push ecx
push edx
call fcn.10183618
add esp, 8
mov ecx, dword [esp + 0xb4]
cmp ecx, 0xf
jbe 0x1001072c
mov edx, dword [esp + 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10010722
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100108a9
push ecx
push edx
call fcn.10183618
add esp, 8
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0xf
mov byte [esp + 0xa0], 0
cmp ecx, 0xf
jbe 0x10010780
mov edx, dword [esp + 0x10]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10010776
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100108a9
push ecx
push edx
call fcn.10183618
add esp, 8
mov ecx, dword [esp + 0x54]
cmp ecx, 0xf
jbe 0x100107b6
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100107ac
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100108a9
push ecx
push edx
call fcn.10183618
add esp, 8
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0xf
mov byte [esp + 0x40], 0
cmp ecx, 0xf
jbe 0x10010807
mov edx, dword [esp + 0xe8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100107fd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100108a9
push ecx
push edx
call fcn.10183618
add esp, 8
mov ecx, dword [esp + 0x114]
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0xf
mov byte [esp + 0xe8], 0
cmp ecx, 0xf
jbe 0x1001085d
mov edx, dword [esp + 0x100]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10010853
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100108a9
push ecx
push edx
call fcn.10183618
add esp, 8
mov ecx, dword [esp + 0x12c]
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0xf
mov byte [esp + 0x100], 0
cmp ecx, 0xf
jbe 0x100108b9
mov edx, dword [esp + 0x118]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100108af
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100108af
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.10183618
add esp, 8
mov ecx, dword [0x1023d1cc]
lea edx, [esp + 0x28]
cmp dword [esp + 0x3c], 0xf
mov dword [esp + 0x128], 0
cmova edx, dword [esp + 0x28]
mov dword [esp + 0x12c], 0xf
mov byte [esp + 0x118], 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 0x10211a3c
movsd qword [esp + 0x1c], xmm0
call fcn.1000c250
add esp, 0xc
lea ecx, [esp + 0x70]
mov esi, eax
push 0
push esi
call fcn.10014000
cmp dword [esp + 0x84], 0xf
lea ecx, [esp + 0x70]
movsd xmm0, qword [esp + 0x10]
lea eax, [esi + 1]
cmova ecx, dword [esp + 0x70]
sub esp, 8
movsd qword [esp], xmm0
push 0x10211a3c
push eax
push ecx
call fcn.1000c210
movss xmm0, dword [ebx + 4]
add esp, 0xc
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10211a3c
movsd qword [esp + 0x1c], xmm0
call fcn.1000c250
add esp, 0xc
lea ecx, [esp + 0x148]
mov esi, eax
push 0
push esi
call fcn.10014000
cmp dword [esp + 0x15c], 0xf
lea ecx, [esp + 0x148]
movsd xmm0, qword [esp + 0x10]
lea eax, [esi + 1]
cmova ecx, dword [esp + 0x148]
sub esp, 8
movsd qword [esp], xmm0
push 0x10211a3c
push eax
push ecx
call fcn.1000c210
movss xmm0, dword [ebx]
add esp, 0xc
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x10211a3c
movsd qword [esp + 0x1c], xmm0
call fcn.1000c250
add esp, 0xc
lea ecx, [esp + 0x130]
mov esi, eax
push 0
push esi
call fcn.10014000
cmp dword [esp + 0x144], 0xf
lea ecx, [esp + 0x130]
movsd xmm0, qword [esp + 0x10]
lea eax, [esi + 1]
cmova ecx, dword [esp + 0x130]
sub esp, 8
movsd qword [esp], xmm0
push 0x10211a3c
push eax
push ecx
call fcn.1000c210
add esp, 0x14
lea ecx, [esp + 0x130]
push 7
push str.setang
push 0
call fcn.10015c00
mov dword [esp + 0x68], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x58], xmm0
mov dword [esp + 0x6c], 0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x58], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x68], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov edx, dword [esp + 0x6c]
mov eax, edx
mov ecx, dword [esp + 0x68]
sub eax, ecx
cmp eax, 1
jb 0x10010aaa
lea eax, [ecx + 1]
cmp edx, 0xf
mov dword [esp + 0x68], eax
lea eax, [esp + 0x58]
cmova eax, dword [esp + 0x58]
mov word [eax + ecx], 0x20
lea eax, [esp + 0x58]
jmp 0x10010ac0
push 1
push 0x10211c7c
push dword [esp + 0x18]
lea ecx, [esp + 0x64]
push 1
call fcn.10004b40
movups xmm0, xmmword [eax]
lea ecx, [esp + 0xd0]
movups xmmword [esp + 0x190], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x1a0], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [esp + 0x148]
push eax
lea eax, [esp + 0x194]
push eax
push dword [esp + 0x18]
call fcn.10015880
mov edx, dword [esp + 0xe4]
mov eax, edx
mov ecx, dword [esp + 0xe0]
sub eax, ecx
cmp eax, 1
jb 0x10010b4c
lea eax, [ecx + 1]
cmp edx, 0xf
mov dword [esp + 0xe0], eax
lea eax, [esp + 0xd0]
cmova eax, dword [esp + 0xd0]
mov word [eax + ecx], 0x20
lea eax, [esp + 0xd0]
jmp 0x10010b65
push 1
push 0x10211c7c
push dword [esp + 0x18]
lea ecx, [esp + 0xdc]
push 1
call fcn.10004b40
movups xmm0, xmmword [eax]
lea ecx, [esp + 0xb8]
movups xmmword [esp + 0x178], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x188], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x17c]
push eax
push dword [esp + 0x18]
call fcn.10015880
mov edx, dword [esp + 0xcc]
mov eax, edx
mov ecx, dword [esp + 0xc8]
sub eax, ecx
cmp eax, 1
jb 0x10010bee
lea eax, [ecx + 1]
cmp edx, 0xf
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xb8]
cmova eax, dword [esp + 0xb8]
mov word [eax + ecx], 0x3b
lea eax, [esp + 0xb8]
jmp 0x10010c07
push 1
push 0x10211c80
push dword [esp + 0x18]
lea ecx, [esp + 0xc4]
push 1
call fcn.10004b40
movups xmm0, xmmword [eax]
movq xmm1, qword [eax + 0x10]
movups xmmword [esp + 0x160], xmm0
movq qword [esp + 0x10], xmm1
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov ecx, dword [esp + 0x3c]
cmp ecx, 0xf
jbe 0x10010c72
mov edx, dword [esp + 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10010c5a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10010ecf
push ecx
push edx
call fcn.10183618
movups xmm0, xmmword [esp + 0x168]
add esp, 8
movq xmm1, qword [esp + 0x10]
mov ecx, dword [esp + 0xcc]
movq qword [esp + 0x38], xmm1
movups xmmword [esp + 0x28], xmm0
cmp ecx, 0xf
jbe 0x10010cb9
mov edx, dword [esp + 0xb8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10010caf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10010ecf
push ecx
push edx
call fcn.10183618
add esp, 8
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0xf
mov byte [esp + 0xb8], 0
cmp ecx, 0xf
jbe 0x10010d13
mov edx, dword [esp + 0x178]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10010d09
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10010ecf
push ecx
push edx
call fcn.10183618
add esp, 8
mov ecx, dword [esp + 0xe4]
cmp ecx, 0xf
jbe 0x10010d4f
mov edx, dword [esp + 0xd0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10010d45
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10010ecf
push ecx
push edx
call fcn.10183618
add esp, 8
mov ecx, dword [esp + 0x1a4]
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0xf
mov byte [esp + 0xd0], 0
cmp ecx, 0xf
jbe 0x10010da9
mov edx, dword [esp + 0x190]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10010d9f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10010ecf
push ecx
push edx
call fcn.10183618
add esp, 8
mov ecx, dword [esp + 0x6c]
cmp ecx, 0xf
jbe 0x10010ddf
mov edx, dword [esp + 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10010dd5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10010ecf
push ecx
push edx
call fcn.10183618
add esp, 8
mov ecx, dword [esp + 0x144]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0xf
mov byte [esp + 0x58], 0
cmp ecx, 0xf
jbe 0x10010e30
mov edx, dword [esp + 0x130]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10010e26
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10010ecf
push ecx
push edx
call fcn.10183618
add esp, 8
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0xf
mov byte [esp + 0x130], 0
cmp ecx, 0xf
jbe 0x10010e86
mov edx, dword [esp + 0x148]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10010e7c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10010ecf
push ecx
push edx
call fcn.10183618
add esp, 8
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x158], 0
mov dword [esp + 0x15c], 0xf
mov byte [esp + 0x148], 0
cmp ecx, 0xf
jbe 0x10010edf
mov edx, dword [esp + 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10010ed5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10010ed5
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.10183618
add esp, 8
mov ecx, dword [0x1023d1cc]
lea edx, [esp + 0x28]
cmp dword [esp + 0x3c], 0xf
mov dword [esp + 0x80], 0
cmova edx, dword [esp + 0x28]
mov dword [esp + 0x84], 0xf
mov byte [esp + 0x70], 0
mov eax, dword [ecx]
push 0
push edx
mov eax, dword [eax + 0x1c8]
call eax
mov eax, dword [0x1023d214]
push str.datashell_print_tp_c
push dword [0x1023d314]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x1022fa00]
cvtpd2ps xmm0, xmm0
movss dword [0x1023d328], xmm0
call fcn.1000c000
mov ecx, dword [esp + 0x44]
add esp, 8
cmp ecx, 0xf
jbe 0x10010f86
mov edx, dword [esp + 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10010f7c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10010f7c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.10183618
add esp, 8
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0xf
mov byte [esp + 0x28], 0
mov ecx, dword [0x102371dc]
mov eax, dword [0x102732fc]
cmp ecx, 3
ja case.0x10010fab.0
jmp dword [ecx*4 + 0x10011220]
push eax
call edi
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x10010fd7
push eax
call edi
test ax, ax
setne al
jmp 0x10010fd7
push eax
call edi
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x1001101d
mov eax, dword [0x1023d330]
test eax, eax
jle 0x10010fea
dec eax
mov dword [0x1023d330], eax
mov eax, dword [0x1023d214]
push str.datashell_print_next_c
push dword [0x1023d314]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x1022fa00]
cvtpd2ps xmm0, xmm0
movss dword [0x1023d328], xmm0
call fcn.1000c000
add esp, 8
mov ecx, dword [0x102371e8]
mov eax, dword [0x10273310]
cmp ecx, 3
ja case.0x1001102d.0
jmp dword [ecx*4 + 0x10011230]
push eax
call edi
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x10011059
push eax
call edi
test ax, ax
setne al
jmp 0x10011059
push eax
call edi
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x100110a3
mov eax, dword [0x1023d330]
inc eax
cmp eax, dword [0x1023d540]
jae 0x10011070
mov dword [0x1023d330], eax
mov eax, dword [0x1023d214]
push str.datashell_print_prev_c
push dword [0x1023d314]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x1022fa00]
cvtpd2ps xmm0, xmm0
movss dword [0x1023d328], xmm0
call fcn.1000c000
add esp, 8
mov ecx, dword [0x102371cc]
mov eax, dword [0x10273338]
cmp ecx, 3
ja case.0x100110b3.0
jmp dword [ecx*4 + 0x10011240]
push eax
call edi
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x100110df
push eax
call edi
test ax, ax
setne al
jmp 0x100110df
push eax
call edi
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x1001116e
mov edx, dword [0x1023d53c]
sub esp, 0xc
add edx, dword [0x1023d330]
mov ecx, esp
mov esi, dword [0x1023d530]
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.10014410
mov eax, dword [0x1023d540]
cmp dword [0x1023d330], eax
jb 0x1001113b
dec eax
mov dword [0x1023d330], eax
mov eax, dword [0x1023d214]
push str.datashell_print_undid_c
push dword [0x1023d314]
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x1022fa00]
cvtpd2ps xmm0, xmm0
movss dword [0x1023d328], xmm0
call fcn.1000c000
add esp, 8
mov eax, dword [esp + 0x1a8]
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 + 0x1a8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [esp + ecx + 0x1a4], eax
lea ecx, [esp + 0x1c0]
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.10014740
lea ecx, [esp + 0x1c0]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [esp + 0x1c8]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [esp + 0x210]
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, 0x24c
ret
mov ecx, 0x1023d530
call fcn.10014360
mov dword [0x1023d330], 0
mov dword [0x1023d328], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24c
ret
call fcn.10014400
nop
out 2, al
add dword [eax], edx
mov ah, 2
add dword [eax], edx
ret 0x102