Function at 0x1400e98e0
Capabilities:
Manipulate console buffer

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3fd0]
mov eax, 0x40d0
call fcn.140129ee0
sub rsp, rax
mov rax, qword [0x1401ce1d0]
xor rax, rsp
mov qword [rbp + 0x3fc0], rax
mov r13, rcx
mov qword [rbp - 0x68], rdx
xor ecx, ecx
lea r12, [rbp - 0x40]
mov edi, ecx
mov dword [rsp + 0x34], ecx
mov edx, 0xffffffff
mov qword [rsp + 0x40], r12
movzx eax, byte [r13 + 0x11c]
mov r15, r9
mov ebx, dword [r13 + 0x118]
movzx esi, byte [r13 + 0x11d]
movzx r14d, byte [r13 + 0x11e]
mov dword [r9], ecx
mov rcx, qword [0x1401ddad0]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x38], ebx
mov byte [rsp + 0x31], sil
mov byte [rsp + 0x30], r14b
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x1400ead90
xor edx, edx
mov r11d, 0x2000
mov dword [rsp + 0x54], edx
mov eax, edx
mov qword [rsp + 0x60], rdx
mov rcx, qword [rbp - 0x68]
add rax, rax
cmp dword [0x1401d0690], 0
movups xmm0, xmmword [rcx + rax*8]
movups xmmword [rsp + 0x68], xmm0
mov eax, dword [rsp + 0x68]
jne 0x1400e9b14
test eax, eax
je 0x1400e9b14
mov rbx, qword [rsp + 0x70]
mov r9d, eax
mov dword [rsp + 0x28], edx
mov r8, rbx
mov qword [rsp + 0x20], rdx
mov ecx, 0xfde9
xor edx, edx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, eax
test eax, eax
je 0x1400eaca0
lea r12d, [rax*2 + 2]
xor edx, edx
mov eax, edx
mov dword [rsp + 0x3c], r12d
mov esi, 0x2000
cmp r12d, esi
seta al
mov dword [rsp + 0x34], eax
jbe 0x1400e9a27
mov ecx, r12d
test r12d, r12d
je 0x1400e9a1d
call qword [fcn.14014f7c8]
mov qword [rsp + 0x40], rax
jmp 0x1400e9a2c
mov rax, rdx
mov qword [rsp + 0x40], rdx
jmp 0x1400e9a2c
mov rax, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x68]
mov r8, rbx
mov dword [rsp + 0x28], edi
xor edx, edx
mov ecx, 0xfde9
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x1400eac78
mov r12, qword [rsp + 0x40]
xor r14d, r14d
mov esi, r14d
mov r11d, 0x2000
nop dword [rax]
nop word [rax + rax]
mov ebx, edi
sub ebx, esi
cmp ebx, r11d
cmova ebx, r11d
cmp dword [r15], r14d
jne 0x1400e9ab3
mov rcx, qword [r13 + 0x110]
lea r9, [rsp + 0x78]
mov eax, esi
mov r8d, ebx
mov qword [rsp + 0x20], r14
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400e9aad
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r15], eax
mov r11d, 0x2000
add esi, ebx
cmp esi, edi
jb 0x1400e9a70
movzx r14d, byte [rsp + 0x30]
cmp dword [rsp + 0x3c], r11d
jbe 0x1400e9b02
call fcn.14014f0c0
mov rcx, r12
mov ebx, dword [rax]
call qword [fcn.14014f0f4]
call fcn.14014f0c0
movzx esi, byte [rsp + 0x31]
xor edx, edx
mov dword [rsp + 0x34], edx
mov r11d, 0x2000
mov edi, edx
mov dword [rax], ebx
lea rax, [rbp - 0x40]
mov ebx, dword [rsp + 0x38]
mov qword [rsp + 0x40], rax
jmp 0x1400e9dc9
mov ebx, dword [rsp + 0x38]
xor edx, edx
movzx esi, byte [rsp + 0x31]
mov edi, edx
jmp 0x1400e9dc9
mov dword [rsp + 0x3c], edx
mov ecx, edx
test eax, eax
je 0x1400e9dc9
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [rsp + 0x70]
mov r10d, dword [rsp + 0x48]
mov eax, ecx
movzx edx, byte [rax + rdx]
movzx eax, dl
test r10b, r10b
jne 0x1400e9b87
not al
movzx eax, al
bsr r8d, eax
je 0x1400e9bc5
cmp r8d, 7
jne 0x1400e9b5f
movzx r9d, dl
jmp 0x1400e9bcb
cmp r8d, 5
ja 0x1400e9bc5
mov ecx, 8
movzx eax, dl
sub ecx, r8d
mov r9d, 0xff
sar r9d, cl
mov r10d, 6
and r9d, eax
sub r10b, r8b
jmp 0x1400e9ba1
and al, 0xc0
cmp al, 0x80
jne 0x1400e9bba
movzx r9d, dl
mov eax, ebx
and r9d, 0x3f
shl eax, 6
add r10b, 0xff
or r9d, eax
mov ecx, dword [rsp + 0x3c]
mov dword [rsp + 0x38], r9d
mov dword [rsp + 0x48], r10d
test r10b, r10b
jne 0x1400e9dad
jmp 0x1400e9bd0
dec ecx
mov byte [rsp + 0x48], 0
mov dword [rsp + 0x3c], ecx
mov r9d, 0xfffd
mov dword [rsp + 0x38], r9d
test r14b, r14b
jne 0x1400e9c0a
cmp r9d, 0x1b
je 0x1400e9bfd
cmp r9d, 0x9b
jne 0x1400e9f8e
mov r14b, 4
mov byte [r13 + 0x11f], 0
mov byte [rsp + 0x30], r14b
jmp 0x1400e9dad
mov r14b, 2
mov byte [rsp + 0x30], r14b
jmp 0x1400e9dad
cmp r14b, 2
jne 0x1400ea21f
lea eax, [r9 - 0x1b]
cmp eax, 0x48
ja case.0x1400e9c3a.28
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0xeadb4]
mov ecx, dword [rdx + rax*4 + 0xead98]
add rcx, rdx
jmp rcx
mov r14b, 4
mov byte [r13 + 0x11f], 0
jmp 0x1400e9da4
mov r14b, 8
jmp 0x1400e9da4
xor r14d, r14d
mov esi, r14d
nop word [rax + rax]
mov ebx, edi
sub ebx, esi
cmp ebx, r11d
cmova ebx, r11d
cmp dword [r15], r14d
jne 0x1400e9ca3
mov rcx, qword [r13 + 0x110]
lea r9, [rsp + 0x7c]
mov eax, esi
mov r8d, ebx
mov qword [rsp + 0x20], r14
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400e9c9d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r15], eax
mov r11d, 0x2000
add esi, ebx
cmp esi, edi
jb 0x1400e9c60
cmp dword [rsp + 0x34], r14d
je 0x1400e9cd5
call fcn.14014f0c0
mov rcx, r12
mov ebx, dword [rax]
call qword [fcn.14014f0f4]
call fcn.14014f0c0
lea r12, [rbp - 0x40]
mov dword [rsp + 0x34], r14d
mov qword [rsp + 0x40], r12
mov dword [rax], ebx
mov edi, r14d
movzx esi, word [reloc.WS2_32.dll_getsockopt]
mov dword [rsp + 0x4c], r14d
cmp dword [r15], r14d
jne 0x1400e9d9f
mov rcx, qword [r13 + 0x110]
movzx edx, si
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
test eax, eax
je 0x1400e9d96
mov rcx, qword [r13 + 0x110]
mov ebx, r14d
mov edx, ebx
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
test eax, eax
je 0x1400e9d96
nop dword [rax + rax]
mov rcx, qword [r13 + 0x110]
lea rdx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x1400e9d96
movsx eax, word [rbp - 0x60]
mov edx, 0x20
movsx r8d, word [rbp - 0x5e]
mov r9d, ebx
mov rcx, qword [r13 + 0x110]
imul r8d, eax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
test eax, eax
je 0x1400e9d8b
mov r8d, dword [rsp + 0x50]
lea rax, [rsp + 0x50]
mov rcx, qword [r13 + 0x110]
mov r9d, ebx
movzx edx, si
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
test eax, eax
jne 0x1400e9df3
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
je 0x1400e9d20
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r15], eax
movzx esi, byte [rsp + 0x31]
mov byte [rsp + 0x30], r14b
mov ecx, dword [rsp + 0x3c]
mov ebx, dword [rsp + 0x38]
xor edx, edx
inc ecx
mov r11d, 0x2000
mov dword [rsp + 0x3c], ecx
cmp ecx, dword [rsp + 0x68]
jb 0x1400e9b30
mov ecx, dword [rsp + 0x54]
mov rax, qword [rsp + 0x60]
inc ecx
mov r12, qword [rsp + 0x40]
inc rax
mov dword [rsp + 0x54], ecx
mov qword [rsp + 0x60], rax
cmp ecx, 1
jae 0x1400eaca9
jmp 0x1400e9992
movsx eax, word [rbp - 0x60]
mov ecx, r14d
movsx edx, word [rbp - 0x50]
mov dword [0x1401d06a4], eax
movsx eax, word [rbp - 0x54]
sub edx, eax
mov dword [0x1401d0694], r14d
movsx eax, word [rbp - 0x5a]
inc edx
sub eax, edx
mov dword [0x1401d0698], edx
inc eax
test eax, eax
jle 0x1400e9e2d
mov dword [0x1401d0694], eax
mov ecx, eax
movsx r8d, word [rbp - 0x5e]
lea eax, [rdx + rcx]
cmp eax, r8d
jle 0x1400e9e45
mov ecx, r8d
sub ecx, edx
mov dword [0x1401d0694], ecx
test ecx, ecx
jns 0x1400e9d9f
mov dword [0x1401d0694], r14d
jmp 0x1400e9d9f
xor r14d, r14d
mov esi, r14d
nop
mov ebx, edi
sub ebx, esi
cmp ebx, r11d
cmova ebx, r11d
cmp dword [r15], r14d
jne 0x1400e9ea2
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x80]
mov eax, esi
mov r8d, ebx
mov qword [rsp + 0x20], r14
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400e9e9c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r15], eax
mov r11d, 0x2000
add esi, ebx
cmp esi, edi
jb 0x1400e9e60
cmp dword [rsp + 0x34], r14d
je 0x1400e9ed4
call fcn.14014f0c0
mov rcx, r12
mov ebx, dword [rax]
call qword [fcn.14014f0f4]
call fcn.14014f0c0
lea r12, [rbp - 0x40]
mov dword [rsp + 0x34], r14d
mov qword [rsp + 0x40], r12
mov dword [rax], ebx
mov r8, r15
mov dl, 1
mov rcx, r13
mov edi, r14d
call fcn.1400e9650
jmp 0x1400e9d9f
xor r14d, r14d
mov esi, r14d
nop
mov ebx, edi
sub ebx, esi
cmp ebx, r11d
cmova ebx, r11d
cmp dword [r15], r14d
jne 0x1400e9f32
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x7c]
mov eax, esi
mov r8d, ebx
mov qword [rsp + 0x20], r14
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400e9f2c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r15], eax
mov r11d, 0x2000
add esi, ebx
cmp esi, edi
jb 0x1400e9ef0
cmp dword [rsp + 0x34], r14d
je 0x1400e9f64
call fcn.14014f0c0
mov rcx, r12
mov ebx, dword [rax]
call qword [fcn.14014f0f4]
call fcn.14014f0c0
lea r12, [rbp - 0x40]
mov dword [rsp + 0x34], r14d
mov qword [rsp + 0x40], r12
mov dword [rax], ebx
mov r8, r15
mov dl, 1
mov rcx, r13
mov edi, r14d
call fcn.1400e9780
jmp 0x1400e9d9f
xor r14b, r14b
lea eax, [r9 - 0x40]
mov byte [rsp + 0x30], r14b
cmp eax, 0x1f
jbe case.0x1400e9c3a.27
cmp r9d, 0xffff
jbe 0x1400e9fa2
mov eax, 0xfffd
mov dword [rsp + 0x38], eax
jmp 0x1400e9fc3
cmp r9d, 0xa
je 0x1400ea125
cmp r9d, 0xd
je 0x1400ea07f
cmp r9d, 0xffff
ja case.0x1400e9c3a.27
mov eax, edi
mov rcx, r11
sub rcx, rax
cmp rcx, 1
jae 0x1400ea061
xor r14d, r14d
mov esi, r14d
nop dword [rax + rax]
mov ebx, edi
sub ebx, esi
cmp ebx, r11d
cmova ebx, r11d
cmp dword [r15], r14d
jne 0x1400ea022
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x78]
mov eax, esi
mov r8d, ebx
mov qword [rsp + 0x20], r14
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400ea01c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r15], eax
mov r11d, 0x2000
add esi, ebx
cmp esi, edi
jb 0x1400e9fe0
cmp dword [rsp + 0x34], r14d
movzx r14d, byte [rsp + 0x30]
je 0x1400ea05d
call fcn.14014f0c0
mov rcx, r12
mov ebx, dword [rax]
call qword [fcn.14014f0f4]
call fcn.14014f0c0
lea r12, [rbp - 0x40]
mov qword [rsp + 0x40], r12
mov dword [rax], ebx
xor eax, eax
mov dword [rsp + 0x34], eax
jmp 0x1400ea05f
xor eax, eax
mov edi, eax
mov ebx, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x3c]
mov eax, edi
inc edi
xor sil, sil
mov byte [rsp + 0x31], sil
mov word [rbp + rax*2 - 0x40], bx
jmp 0x1400e9db1
cmp sil, 0xa
je 0x1400ea211
mov eax, edi
mov rcx, r11
sub rcx, rax
cmp rcx, 1
jae 0x1400ea207
xor r14d, r14d
mov esi, r14d
mov ebx, edi
sub ebx, esi
cmp ebx, r11d
cmova ebx, r11d
cmp dword [r15], r14d
jne 0x1400ea0e3
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x70]
mov eax, esi
mov r8d, ebx
mov qword [rsp + 0x20], r14
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400ea0dd
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r15], eax
mov r11d, 0x2000
add esi, ebx
cmp esi, edi
jb 0x1400ea0a1
cmp dword [rsp + 0x34], r14d
movzx r14d, byte [rsp + 0x30]
je 0x1400ea1fe
call fcn.14014f0c0
mov rcx, r12
mov ebx, dword [rax]
call qword [fcn.14014f0f4]
call fcn.14014f0c0
lea r12, [rbp - 0x40]
mov qword [rsp + 0x40], r12
mov dword [rax], ebx
xor eax, eax
mov dword [rsp + 0x34], eax
jmp 0x1400ea200
cmp sil, 0xd
je 0x1400ea089
mov eax, edi
mov rcx, r11
sub rcx, rax
cmp rcx, 2
jae 0x1400ea1d6
xor r14d, r14d
mov esi, r14d
nop word [rax + rax]
mov ebx, edi
sub ebx, esi
cmp ebx, r11d
cmova ebx, r11d
cmp dword [r15], r14d
jne 0x1400ea192
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x74]
mov eax, esi
mov r8d, ebx
mov qword [rsp + 0x20], r14
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400ea18c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r15], eax
mov r11d, 0x2000
add esi, ebx
cmp esi, edi
jb 0x1400ea150
cmp dword [rsp + 0x34], r14d
movzx r14d, byte [rsp + 0x30]
je 0x1400ea1cd
call fcn.14014f0c0
mov rcx, r12
mov ebx, dword [rax]
call qword [fcn.14014f0f4]
call fcn.14014f0c0
lea r12, [rbp - 0x40]
mov qword [rsp + 0x40], r12
mov dword [rax], ebx
xor eax, eax
mov dword [rsp + 0x34], eax
jmp 0x1400ea1cf
xor eax, eax
mov r9d, dword [rsp + 0x38]
mov edi, eax
mov eax, edi
mov ecx, reloc.WS2_32.dll_listen
inc edi
mov byte [rsp + 0x31], r9b
movzx esi, r9b
mov word [rbp + rax*2 - 0x40], cx
mov ecx, 0xa
mov word [rbp + rdi*2 - 0x40], cx
inc edi
jmp case.0x1400e9c3a.27
xor eax, eax
mov r9d, dword [rsp + 0x38]
mov edi, eax
mov eax, edi
inc edi
mov word [rbp + rax*2 - 0x40], r9w
movzx esi, r9b
mov byte [rsp + 0x31], r9b
jmp case.0x1400e9c3a.27
test r14b, 4
je 0x1400eabcc
test r14b, 0x10
jne 0x1400eabae
lea eax, [r9 - 0x30]
cmp eax, 9
ja 0x1400ea2dc
movzx eax, byte [r13 + 0x11f]
mov ebx, dword [rsp + 0x38]
test r14b, 0x20
jne 0x1400ea28f
cmp al, 4
jb 0x1400ea264
or r14b, 0x10
mov byte [rsp + 0x30], r14b
jmp 0x1400e9db1
or r14b, 0x20
inc al
mov byte [rsp + 0x30], r14b
movzx ecx, al
lea eax, [r9 - 0x30]
mov byte [r13 + 0x11f], cl
mov word [r13 + rcx*2 + 0x11e], ax
mov ecx, dword [rsp + 0x3c]
jmp 0x1400e9db1
movzx eax, al
lea rdx, [rax*2]
movzx eax, word [rdx + r13 + 0x11e]
lea ecx, [rax + rax*4]
add ecx, ecx
cmp ecx, 0xffff
jbe 0x1400ea2c2
mov ecx, dword [rsp + 0x3c]
or r14b, 0x10
mov byte [rsp + 0x30], r14b
jmp 0x1400e9db1
sub cx, 0x30
add cx, r9w
mov word [rdx + r13 + 0x11e], cx
mov ecx, dword [rsp + 0x3c]
jmp 0x1400e9db1
cmp r9d, 0x3b
jne 0x1400ea330
test r14b, 0x20
je 0x1400ea2f6
and r14b, 0xdf
mov byte [rsp + 0x30], r14b
jmp 0x1400e9dad
movzx eax, byte [r13 + 0x11f]
mov ebx, dword [rsp + 0x38]
cmp al, 4
jb 0x1400ea314
or r14b, 0x10
mov byte [rsp + 0x30], r14b
jmp 0x1400e9db1
inc al
movzx eax, al
xor edx, edx
mov byte [r13 + 0x11f], al
mov word [r13 + rax*2 + 0x11e], dx
jmp 0x1400e9db3
cmp r9d, 0x3f
jne 0x1400ea358
test r14b, 0x20
jne 0x1400ea34a
cmp byte [r13 + 0x11f], 0
je 0x1400e9dad
or r14b, 0x10
mov byte [rsp + 0x30], r14b
jmp 0x1400e9dad
lea eax, [r9 - 0x40]
cmp eax, 0x3e
ja 0x1400ea34a
movzx edx, byte [r13 + 0x11f]
test dl, dl
jne 0x1400ea373
cmp r9d, 0x5b
je 0x1400ea34a
lea eax, [r9 - 0x41]
cmp eax, 0x34
ja case.0x1400ea39b.73
lea r8, [0x140000000]
movzx eax, byte [r8 + rax + 0xeae40]
mov ecx, dword [r8 + rax*4 + 0xeae00]
add rcx, r8
jmp rcx
xor eax, eax
mov esi, eax
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r15
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r12 + rax*2]
mov r8d, ebx
call fcn.1400e8e50
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400ea3a1
cmp dword [rsp + 0x34], 0
je 0x1400ea3e4
mov rcx, r12
call fcn.1400e6820
lea r12, [rbp - 0x40]
mov qword [rsp + 0x40], r12
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x1400ea3ff
movzx r9d, word [r13 + 0x120]
jmp 0x1400ea405
mov r9d, 1
neg r9d
mov r8b, 1
xor edx, edx
mov qword [rsp + 0x28], r15
mov byte [rsp + 0x20], 1
mov rcx, r13
call fcn.1400e8ea0
movzx esi, byte [rsp + 0x31]
mov ebx, dword [rsp + 0x38]
xor edx, edx
mov ecx, dword [rsp + 0x3c]
xor r14b, r14b
mov byte [rsp + 0x30], r14b
jmp 0x1400e9db3
xor eax, eax
mov esi, eax
nop
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r15
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r12 + rax*2]
mov r8d, ebx
call fcn.1400e8e50
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400ea440
cmp dword [rsp + 0x34], 0
je 0x1400ea483
mov rcx, r12
call fcn.1400e6820
lea r12, [rbp - 0x40]
mov qword [rsp + 0x40], r12
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x1400ea4a1
movzx r9d, word [r13 + 0x120]
jmp 0x1400ea408
mov r9d, 1
jmp 0x1400ea408
xor eax, eax
mov esi, eax
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r15
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r12 + rax*2]
mov r8d, ebx
call fcn.1400e8e50
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400ea4b0
cmp dword [rsp + 0x34], 0
je 0x1400ea4f3
mov rcx, r12
call fcn.1400e6820
lea r12, [rbp - 0x40]
mov qword [rsp + 0x40], r12
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x1400ea517
movzx edx, word [r13 + 0x120]
xor r9d, r9d
mov r8b, 1
jmp 0x1400ea40d
mov edx, 1
xor r9d, r9d
movzx r8d, dl
jmp 0x1400ea40d
xor eax, eax
mov esi, eax
nop dword [rax]
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r15
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r12 + rax*2]
mov r8d, ebx
call fcn.1400e8e50
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400ea530
cmp dword [rsp + 0x34], 0
je 0x1400ea573
mov rcx, r12
call fcn.1400e6820
lea r12, [rbp - 0x40]
mov qword [rsp + 0x40], r12
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x1400ea599
movzx edx, word [r13 + 0x120]
mov r8b, 1
neg edx
xor r9d, r9d
jmp 0x1400ea40d
mov edx, 1
mov r8b, 1
neg edx
xor r9d, r9d
jmp 0x1400ea40d
xor eax, eax
mov esi, eax
nop
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r15
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r12 + rax*2]
mov r8d, ebx
call fcn.1400e8e50
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400ea5b0
cmp dword [rsp + 0x34], 0
je 0x1400ea5f3
mov rcx, r12
call fcn.1400e6820
lea r12, [rbp - 0x40]
mov qword [rsp + 0x40], r12
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x1400ea614
movzx r9d, word [r13 + 0x120]
xor r8d, r8d
jmp 0x1400ea40b
mov r9d, 1
xor r8d, r8d
jmp 0x1400ea40b
xor eax, eax
mov esi, eax
nop word [rax + rax]
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r15
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r12 + rax*2]
mov r8d, ebx
call fcn.1400e8e50
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400ea630
cmp dword [rsp + 0x34], 0
je 0x1400ea673
mov rcx, r12
call fcn.1400e6820
lea r12, [rbp - 0x40]
mov qword [rsp + 0x40], r12
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x1400ea697
movzx r9d, word [r13 + 0x120]
neg r9d
xor r8d, r8d
jmp 0x1400ea40b
mov r9d, 1
neg r9d
xor r8d, r8d
jmp 0x1400ea40b
xor eax, eax
mov esi, eax
nop dword [rax]
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r15
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r12 + rax*2]
mov r8d, ebx
call fcn.1400e8e50
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400ea6b0
cmp dword [rsp + 0x34], 0
je 0x1400ea6f3
mov rcx, r12
call fcn.1400e6820
lea r12, [rbp - 0x40]
mov qword [rsp + 0x40], r12
xor ebx, ebx
cmp byte [r13 + 0x11f], 1
mov edi, ebx
mov dword [rsp + 0x34], ebx
jb 0x1400ea722
movzx eax, word [r13 + 0x120]
test ax, ax
je 0x1400ea722
movzx edx, ax
xor r9d, r9d
dec edx
xor r8d, r8d
jmp 0x1400ea40d
xor r9d, r9d
mov edx, ebx
xor r8d, r8d
jmp 0x1400ea40d
xor ecx, ecx
mov esi, ecx
nop dword [rax]
nop word [rax + rax]
mov ebx, edi
sub ebx, esi
cmp ebx, r11d
cmova ebx, r11d
cmp dword [r15], 0
jne 0x1400ea786
mov eax, esi
lea r9, [rsp + 0x58]
mov qword [rsp + 0x20], rcx
mov r8d, ebx
mov rcx, qword [r13 + 0x110]
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400ea77e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r15], eax
mov r11d, 0x2000
xor ecx, ecx
add esi, ebx
cmp esi, edi
jb 0x1400ea740
cmp dword [rsp + 0x34], 0
je 0x1400ea7a4
mov rcx, r12
call fcn.1400e6820
lea r12, [rbp - 0x40]
mov qword [rsp + 0x40], r12
movzx ecx, byte [r13 + 0x11f]
xor ebx, ebx
mov dword [rsp + 0x34], ebx
mov edi, ebx
cmp cl, 1
jb 0x1400ea7cf
movzx eax, word [r13 + 0x120]
test ax, ax
je 0x1400ea7cf
movzx r9d, ax
dec r9d
jmp 0x1400ea7d2
mov r9d, ebx
cmp cl, 2
jb 0x1400ea7fa
movzx eax, word [r13 + 0x122]
test ax, ax
je 0x1400ea7fa
movzx edx, ax
dec edx
mov qword [rsp + 0x28], r15
xor r8d, r8d
mov byte [rsp + 0x20], bl
jmp 0x1400ea417
mov qword [rsp + 0x28], r15
mov edx, ebx
mov byte [rsp + 0x20], bl
xor r8d, r8d
jmp 0x1400ea417
xor eax, eax
mov esi, eax
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r15
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r12 + rax*2]
mov r8d, ebx
call fcn.1400e8e50
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400ea811
cmp dword [rsp + 0x34], 0
je 0x1400ea854
mov rcx, r12
call fcn.1400e6820
lea r12, [rbp - 0x40]
mov qword [rsp + 0x40], r12
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x1400ea889
movzx edx, word [r13 + 0x120]
cmp edx, 2
ja 0x1400ea41f
mov r9, r15
mov r8b, 1
mov rcx, r13
call fcn.1400e9020
jmp 0x1400ea41f
mov edx, ebx
mov r9, r15
mov r8b, 1
mov rcx, r13
call fcn.1400e9020
jmp 0x1400ea41f
xor eax, eax
mov esi, eax
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r15
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r12 + rax*2]
mov r8d, ebx
call fcn.1400e8e50
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400ea8a2
cmp dword [rsp + 0x34], 0
je 0x1400ea8e5
mov rcx, r12
call fcn.1400e6820
lea r12, [rbp - 0x40]
mov qword [rsp + 0x40], r12
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x1400ea91a
movzx edx, word [r13 + 0x120]
cmp edx, 2
ja 0x1400ea41f
mov r9, r15
xor r8d, r8d
mov rcx, r13
call fcn.1400e9020
jmp 0x1400ea41f
mov edx, ebx
mov r9, r15
xor r8d, r8d
mov rcx, r13
call fcn.1400e9020
jmp 0x1400ea41f
xor eax, eax
mov esi, eax
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r15
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r12 + rax*2]
mov r8d, ebx
call fcn.1400e8e50
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400ea933
cmp dword [rsp + 0x34], 0
je 0x1400ea976
mov rcx, r12
call fcn.1400e6820
lea r12, [rbp - 0x40]
mov qword [rsp + 0x40], r12
xor ebx, ebx
mov rdx, r15
mov rcx, r13
mov edi, ebx
call fcn.1400e92e0
mov dword [rsp + 0x34], ebx
jmp 0x1400ea41f
xor r14d, r14d
mov esi, r14d
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r15
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r12 + rax*2]
mov r8d, ebx
call fcn.1400e8e50
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400ea994
cmp dword [rsp + 0x34], r14d
je 0x1400ea9d7
mov rcx, r12
call fcn.1400e6820
lea r12, [rbp - 0x40]
mov qword [rsp + 0x40], r12
mov r8, r15
xor edx, edx
mov rcx, r13
mov edi, r14d
call fcn.1400e9650
movzx esi, byte [rsp + 0x31]
xor edx, edx
mov ebx, dword [rsp + 0x38]
xor r14b, r14b
mov ecx, dword [rsp + 0x3c]
mov byte [rsp + 0x30], r14b
mov dword [rsp + 0x34], edx
jmp 0x1400e9db3
xor eax, eax
mov esi, eax
nop dword [rax + rax]
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r15
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r12 + rax*2]
mov r8d, ebx
call fcn.1400e8e50
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400eaa10
cmp dword [rsp + 0x34], 0
je 0x1400eaa53
mov rcx, r12
call fcn.1400e6820
lea r12, [rbp - 0x40]
mov qword [rsp + 0x40], r12
xor edx, edx
mov edi, edx
mov dword [rsp + 0x34], edx
cmp dword [r15], edx
jne 0x1400eaa91
test dword [r13 + 0x58], 0x4000000
je 0x1400eaa91
movsx r9d, word [r13 + 0x12a]
xor r8d, r8d
movsx edx, word [r13 + 0x128]
mov rcx, r13
mov qword [rsp + 0x28], r15
mov byte [rsp + 0x20], dil
call fcn.1400e8ea0
xor edx, edx
movzx esi, byte [rsp + 0x31]
xor r14b, r14b
mov ebx, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x3c]
mov byte [rsp + 0x30], r14b
jmp 0x1400e9db3
cmp dl, 1
jne case.0x1400ea39b.73
cmp word [r13 + 0x120], 0x19
jne case.0x1400ea39b.73
xor r14d, r14d
mov esi, r14d
nop dword [rax]
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r15
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r12 + rax*2]
mov r8d, ebx
call fcn.1400e8e50
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400eaad0
cmp dword [rsp + 0x34], r14d
je 0x1400eab13
mov rcx, r12
call fcn.1400e6820
lea r12, [rbp - 0x40]
mov qword [rsp + 0x40], r12
xor edx, edx
mov r8, r15
mov rcx, r13
mov edi, r14d
call fcn.1400e9860
movzx esi, byte [rsp + 0x31]
xor edx, edx
mov ebx, dword [rsp + 0x38]
xor r14b, r14b
mov ecx, dword [rsp + 0x3c]
mov byte [rsp + 0x30], r14b
mov dword [rsp + 0x34], edx
jmp 0x1400e9db3
cmp dl, 1
jne case.0x1400ea39b.73
cmp word [r13 + 0x120], 0x19
jne case.0x1400ea39b.73
xor r14d, r14d
mov esi, r14d
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r15
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r12 + rax*2]
mov r8d, ebx
call fcn.1400e8e50
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400eab61
cmp dword [rsp + 0x34], r14d
je 0x1400eaba4
mov rcx, r12
call fcn.1400e6820
lea r12, [rbp - 0x40]
mov qword [rsp + 0x40], r12
mov edx, 1
jmp 0x1400eab15
mov ebx, dword [rsp + 0x38]
lea eax, [r9 - 0x40]
cmp eax, 0x3e
ja 0x1400e9db1
xor r14b, r14b
mov byte [rsp + 0x30], r14b
jmp 0x1400e9db1
test r14b, 8
je 0x1400ead90
test r14b, 0x40
je 0x1400eac1f
test r14b, r14b
js 0x1400eac11
cmp r9d, 0x22
jne 0x1400eabf5
and r14b, 0xbf
mov byte [rsp + 0x30], r14b
jmp 0x1400e9dad
mov ebx, dword [rsp + 0x38]
cmp r9d, 0x5c
jne 0x1400e9db1
or r14b, 0x80
mov byte [rsp + 0x30], r14b
jmp 0x1400e9db1
and r14b, 0x7f
mov byte [rsp + 0x30], r14b
jmp 0x1400e9dad
cmp r9d, 7
je 0x1400eac6b
cmp r9d, 0x5c
jne 0x1400eac3f
test r14b, 2
jne 0x1400eac6b
and r14b, 0xfd
mov byte [rsp + 0x30], r14b
jmp 0x1400e9dad
cmp r9d, 0x1b
jne 0x1400eac53
or r14b, 2
mov byte [rsp + 0x30], r14b
jmp 0x1400e9dad
cmp r9d, 0x22
jne 0x1400eac31
and r14b, 0x3d
or r14b, 0x40
mov byte [rsp + 0x30], r14b
jmp 0x1400e9dad
xor r14b, r14b
mov byte [rsp + 0x30], r14b
jmp 0x1400e9dad
cmp r12d, esi
jbe 0x1400eac9b
call fcn.14014f0c0
mov r12, qword [rsp + 0x40]
mov rcx, r12
mov ebx, dword [rax]
call qword [fcn.14014f0f4]
call fcn.14014f0c0
mov dword [rax], ebx
jmp 0x1400eaca0
mov r12, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r15], eax
xor r14d, r14d
mov eax, 0x2000
mov esi, r14d
mov ebx, edi
sub ebx, esi
cmp ebx, eax
cmova ebx, eax
cmp dword [r15], r14d
jne 0x1400eacf4
mov rcx, qword [r13 + 0x110]
lea r9, [rsp + 0x58]
mov eax, esi
mov r8d, ebx
mov qword [rsp + 0x20], r14
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400eacef
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r15], eax
mov eax, 0x2000
add esi, ebx
cmp esi, edi
jb 0x1400eacb4
cmp dword [rsp + 0x34], r14d
movzx r14d, byte [rsp + 0x30]
je 0x1400ead1e
call fcn.14014f0c0
mov rcx, r12
mov ebx, dword [rax]
call qword [fcn.14014f0f4]
call fcn.14014f0c0
mov dword [rax], ebx
mov eax, dword [rsp + 0x48]
xor r8d, r8d
mov byte [r13 + 0x11c], al
mov eax, dword [rsp + 0x38]
mov dword [r13 + 0x118], eax
movzx eax, byte [rsp + 0x31]
lea edx, [r8 + 1]
mov byte [r13 + 0x11d], al
mov byte [r13 + 0x11e], r14b
mov rcx, qword [0x1401ddad0]
call qword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
test eax, eax
je 0x1400ead90
mov eax, dword [r15]
neg eax
sbb eax, eax
mov rcx, qword [rbp + 0x3fc0]
xor rcx, rsp
call fcn.140128f50
mov rbx, qword [rsp + 0x4120]
add rsp, 0x40d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1401513ec
int3