Function at 0x140011c00
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 - 0x4000]
mov eax, 0x4100
call fcn.140044eb0
sub rsp, rax
mov rax, qword [0x140088008]
xor rax, rsp
mov qword [rbp + 0x3ff0], rax
mov r13, rcx
mov qword [rbp - 0x40], rdx
xor ecx, ecx
lea r12, [rbp - 0x10]
mov edi, ecx
mov dword [rsp + 0x34], ecx
or edx, 0xffffffff
mov qword [rsp + 0x40], r12
movzx eax, byte [r13 + 0x11c]
mov rsi, r9
mov ebx, dword [r13 + 0x118]
movzx r14d, byte [r13 + 0x11d]
movzx r15d, byte [r13 + 0x11e]
mov dword [r9], ecx
mov rcx, qword [0x140096730]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x38], ebx
mov byte [rsp + 0x31], r14b
mov byte [rsp + 0x30], r15b
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x1400132ab
xor edx, edx
mov r11d, 0x2000
mov dword [rsp + 0x54], edx
mov eax, edx
mov qword [rsp + 0x60], rdx
mov rcx, qword [rbp - 0x40]
add rax, rax
cmp dword [reloc.WS2_32.dll_accept], 0
movups xmm0, xmmword [rcx + rax*8]
movups xmmword [rsp + 0x68], xmm0
mov eax, dword [rsp + 0x68]
jne 0x140011e19
test eax, eax
je 0x140011e19
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 0x14001326e
lea r12d, [rax*2 + 2]
mov r14d, 0x2000
xor eax, eax
mov dword [rsp + 0x3c], r12d
cmp r12d, r14d
seta al
mov dword [rsp + 0x34], eax
jbe 0x140011d35
mov ecx, r12d
call qword [fcn.14002e1e4]
mov qword [rsp + 0x40], rax
jmp 0x140011d3a
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 0x14001323b
mov r12, qword [rsp + 0x40]
xor r15d, r15d
mov r14d, r15d
mov r11d, 0x2000
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], r15d
jne 0x140011db4
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x4c]
mov eax, r14d
mov r8d, ebx
mov qword [rsp + 0x20], r15
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x140011dae
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
add r14d, ebx
cmp r14d, edi
jb 0x140011d71
movzx r15d, byte [rsp + 0x30]
cmp dword [rsp + 0x3c], r11d
jbe 0x140011e06
call fcn.14002dfd0
mov rcx, r12
mov ebx, dword [rax]
call qword [fcn.14002dff0]
call fcn.14002dfd0
movzx r14d, byte [rsp + 0x31]
xor edx, edx
mov dword [rsp + 0x34], edx
mov r11d, 0x2000
mov edi, edx
mov dword [rax], ebx
lea rax, [rbp - 0x10]
mov ebx, dword [rsp + 0x38]
mov qword [rsp + 0x40], rax
jmp 0x1400120ce
mov ebx, dword [rsp + 0x38]
xor edx, edx
movzx r14d, byte [rsp + 0x31]
mov edi, edx
jmp 0x1400120ce
mov dword [rsp + 0x3c], edx
mov ecx, edx
test eax, eax
je 0x1400120ce
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 0x140011e87
not al
movzx eax, al
bsr r8d, eax
je 0x140011ec5
cmp r8d, 7
jne 0x140011e5f
movzx r9d, dl
jmp 0x140011ecb
cmp r8d, 5
ja 0x140011ec5
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 0x140011ea1
and al, 0xc0
cmp al, 0x80
jne 0x140011eba
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 0x1400120b2
jmp 0x140011ed0
dec ecx
mov byte [rsp + 0x48], 0
mov dword [rsp + 0x3c], ecx
mov r9d, 0xfffd
mov dword [rsp + 0x38], r9d
test r15b, r15b
jne 0x140011f0a
cmp r9d, 0x1b
je 0x140011efd
cmp r9d, 0x9b
jne 0x140012371
mov r15b, 4
mov byte [r13 + 0x11f], 0
mov byte [rsp + 0x30], r15b
jmp 0x1400120b2
mov r15b, 2
mov byte [rsp + 0x30], r15b
jmp 0x1400120b2
cmp r15b, 2
jne 0x140012613
lea eax, [r9 - 0x1b]
cmp eax, 0x48
ja case.0x140011f3a.28
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x132dc]
mov ecx, dword [rdx + rax*4 + 0x132c0]
add rcx, rdx
jmp rcx
mov r15b, 4
mov byte [r13 + 0x11f], 0
jmp 0x1400120a9
mov r15b, 8
jmp 0x1400120a9
xor r15d, r15d
mov r14d, r15d
nop word [rax + rax]
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], r15d
jne 0x140011fa3
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x48]
mov eax, r14d
mov r8d, ebx
mov qword [rsp + 0x20], r15
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x140011f9d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
add r14d, ebx
cmp r14d, edi
jb 0x140011f60
cmp dword [rsp + 0x34], r15d
je 0x140011fd7
call fcn.14002dfd0
mov rcx, r12
mov ebx, dword [rax]
call qword [fcn.14002dff0]
call fcn.14002dfd0
lea r12, [rbp - 0x10]
mov dword [rsp + 0x34], r15d
mov qword [rsp + 0x40], r12
mov dword [rax], ebx
mov edi, r15d
movzx r14d, word [reloc.WS2_32.dll_getsockopt]
mov dword [rsp + 0x4c], r15d
cmp dword [rsi], r15d
jne 0x1400120a3
mov rcx, qword [r13 + 0x110]
movzx edx, r14w
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
test eax, eax
je 0x14001209b
mov rcx, qword [r13 + 0x110]
mov ebx, r15d
mov edx, ebx
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
test eax, eax
je 0x14001209b
nop
mov rcx, qword [r13 + 0x110]
lea rdx, [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x14001209b
movsx eax, word [rbp - 0x30]
mov edx, 0x20
movsx r8d, word [rbp - 0x2e]
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 0x140012090
mov r8d, dword [rsp + 0x50]
lea rax, [rsp + 0x50]
mov rcx, qword [r13 + 0x110]
mov r9d, ebx
movzx edx, r14w
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
test eax, eax
jne 0x1400121b7
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
je 0x140012020
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
movzx r14d, byte [rsp + 0x31]
mov byte [rsp + 0x30], r15b
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 0x140011e30
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
jb 0x140011cb0
xor r15d, r15d
mov eax, 0x2000
mov r14d, r15d
nop
mov ebx, edi
sub ebx, r14d
cmp ebx, eax
cmova ebx, eax
cmp dword [rsi], r15d
jne 0x140012141
mov rcx, qword [r13 + 0x110]
lea r9, [rsp + 0x58]
mov eax, r14d
mov r8d, ebx
mov qword [rsp + 0x20], r15
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x14001213c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov eax, 0x2000
add r14d, ebx
cmp r14d, edi
jb 0x140012100
cmp dword [rsp + 0x34], r15d
movzx r15d, byte [rsp + 0x30]
je 0x14001216d
call fcn.14002dfd0
mov rcx, r12
mov ebx, dword [rax]
call qword [fcn.14002dff0]
call fcn.14002dfd0
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], r15b
mov rcx, qword [0x140096730]
call qword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
test eax, eax
je 0x1400132b1
jmp 0x14001327b
movsx eax, word [rbp - 0x30]
mov ecx, r15d
movsx edx, word [rbp - 0x20]
mov dword [0x140088d14], eax
movsx eax, word [rbp - 0x24]
sub edx, eax
mov dword [0x140088d2c], r15d
movsx eax, word [rbp - 0x2a]
inc edx
sub eax, edx
mov dword [0x140088d28], edx
inc eax
test eax, eax
jle 0x1400121f1
mov dword [0x140088d2c], eax
mov ecx, eax
movsx r8d, word [rbp - 0x2e]
lea eax, [rdx + rcx]
cmp eax, r8d
jle 0x140012209
mov ecx, r8d
sub ecx, edx
mov dword [0x140088d2c], ecx
test ecx, ecx
jns 0x1400120a3
mov dword [0x140088d2c], r15d
jmp 0x1400120a3
xor r15d, r15d
mov r14d, r15d
nop dword [rax]
nop word [rax + rax]
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], r15d
jne 0x140012273
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x44]
mov eax, r14d
mov r8d, ebx
mov qword [rsp + 0x20], r15
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x14001226d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
add r14d, ebx
cmp r14d, edi
jb 0x140012230
cmp dword [rsp + 0x34], r15d
je 0x1400122a7
call fcn.14002dfd0
mov rcx, r12
mov ebx, dword [rax]
call qword [fcn.14002dff0]
call fcn.14002dfd0
lea r12, [rbp - 0x10]
mov dword [rsp + 0x34], r15d
mov qword [rsp + 0x40], r12
mov dword [rax], ebx
mov r8, rsi
mov dl, 1
mov rcx, r13
mov edi, r15d
call fcn.140011970
jmp 0x1400120a3
xor r15d, r15d
mov r14d, r15d
nop dword [rax]
nop word [rax + rax]
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], r15d
jne 0x140012313
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x38]
mov eax, r14d
mov r8d, ebx
mov qword [rsp + 0x20], r15
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x14001230d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
add r14d, ebx
cmp r14d, edi
jb 0x1400122d0
cmp dword [rsp + 0x34], r15d
je 0x140012347
call fcn.14002dfd0
mov rcx, r12
mov ebx, dword [rax]
call qword [fcn.14002dff0]
call fcn.14002dfd0
lea r12, [rbp - 0x10]
mov dword [rsp + 0x34], r15d
mov qword [rsp + 0x40], r12
mov dword [rax], ebx
mov r8, rsi
mov dl, 1
mov rcx, r13
mov edi, r15d
call fcn.140011aa0
jmp 0x1400120a3
xor r15b, r15b
lea eax, [r9 - 0x40]
mov byte [rsp + 0x30], r15b
cmp eax, 0x1f
jbe case.0x140011f3a.27
cmp r9d, 0xffff
jbe 0x140012385
mov eax, 0xfffd
mov dword [rsp + 0x38], eax
jmp 0x1400123a6
cmp r9d, 0xa
je 0x140012517
cmp r9d, 0xd
je 0x140012463
cmp r9d, 0xffff
ja case.0x140011f3a.27
mov eax, edi
mov rcx, r11
sub rcx, rax
cmp rcx, 1
jae 0x140012445
xor r15d, r15d
mov r14d, r15d
nop
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], r15d
jne 0x140012404
mov rcx, qword [r13 + 0x110]
lea r9, [rsp + 0x78]
mov eax, r14d
mov r8d, ebx
mov qword [rsp + 0x20], r15
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400123fe
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
add r14d, ebx
cmp r14d, edi
jb 0x1400123c0
cmp dword [rsp + 0x34], r15d
movzx r15d, byte [rsp + 0x30]
je 0x140012441
call fcn.14002dfd0
mov rcx, r12
mov ebx, dword [rax]
call qword [fcn.14002dff0]
call fcn.14002dfd0
lea r12, [rbp - 0x10]
mov qword [rsp + 0x40], r12
mov dword [rax], ebx
xor eax, eax
mov dword [rsp + 0x34], eax
jmp 0x140012443
xor eax, eax
mov edi, eax
mov ebx, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x3c]
mov eax, edi
inc edi
xor r14b, r14b
mov byte [rsp + 0x31], r14b
mov word [rbp + rax*2 - 0x10], bx
jmp 0x1400120b6
cmp r14b, 0xa
je 0x140012605
mov eax, edi
mov rcx, r11
sub rcx, rax
cmp rcx, 1
jae 0x1400125fb
xor r15d, r15d
mov r14d, r15d
nop word [rax + rax]
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], r15d
jne 0x1400124d3
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x80]
mov eax, r14d
mov r8d, ebx
mov qword [rsp + 0x20], r15
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400124cd
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
add r14d, ebx
cmp r14d, edi
jb 0x140012490
cmp dword [rsp + 0x34], r15d
movzx r15d, byte [rsp + 0x30]
je 0x1400125f2
call fcn.14002dfd0
mov rcx, r12
mov ebx, dword [rax]
call qword [fcn.14002dff0]
call fcn.14002dfd0
lea r12, [rbp - 0x10]
mov qword [rsp + 0x40], r12
mov dword [rax], ebx
xor eax, eax
mov dword [rsp + 0x34], eax
jmp 0x1400125f4
cmp r14b, 0xd
je 0x14001246d
mov eax, edi
mov rcx, r11
sub rcx, rax
cmp rcx, 2
jae 0x1400125ca
xor r15d, r15d
mov r14d, r15d
nop dword [rax]
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], r15d
jne 0x140012584
mov rcx, qword [r13 + 0x110]
lea r9, [rsp + 0x7c]
mov eax, r14d
mov r8d, ebx
mov qword [rsp + 0x20], r15
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x14001257e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
add r14d, ebx
cmp r14d, edi
jb 0x140012540
cmp dword [rsp + 0x34], r15d
movzx r15d, byte [rsp + 0x30]
je 0x1400125c1
call fcn.14002dfd0
mov rcx, r12
mov ebx, dword [rax]
call qword [fcn.14002dff0]
call fcn.14002dfd0
lea r12, [rbp - 0x10]
mov qword [rsp + 0x40], r12
mov dword [rax], ebx
xor eax, eax
mov dword [rsp + 0x34], eax
jmp 0x1400125c3
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 r14d, r9b
mov word [rbp + rax*2 - 0x10], cx
mov ecx, 0xa
mov word [rbp + rdi*2 - 0x10], cx
inc edi
jmp case.0x140011f3a.27
xor eax, eax
mov r9d, dword [rsp + 0x38]
mov edi, eax
mov eax, edi
inc edi
mov word [rbp + rax*2 - 0x10], r9w
movzx r14d, r9b
mov byte [rsp + 0x31], r9b
jmp case.0x140011f3a.27
test r15b, 4
je 0x14001318f
test r15b, 0x10
jne 0x140013171
lea eax, [r9 - 0x30]
cmp eax, 9
ja 0x1400126d0
movzx eax, byte [r13 + 0x11f]
mov ebx, dword [rsp + 0x38]
test r15b, 0x20
jne 0x140012683
cmp al, 4
jb 0x140012658
or r15b, 0x10
mov byte [rsp + 0x30], r15b
jmp 0x1400120b6
or r15b, 0x20
inc al
mov byte [rsp + 0x30], r15b
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 0x1400120b6
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 0x1400126b6
mov ecx, dword [rsp + 0x3c]
or r15b, 0x10
mov byte [rsp + 0x30], r15b
jmp 0x1400120b6
sub cx, 0x30
add cx, r9w
mov word [rdx + r13 + 0x11e], cx
mov ecx, dword [rsp + 0x3c]
jmp 0x1400120b6
cmp r9d, 0x3b
jne 0x140012724
test r15b, 0x20
je 0x1400126ea
and r15b, 0xdf
mov byte [rsp + 0x30], r15b
jmp 0x1400120b2
movzx eax, byte [r13 + 0x11f]
mov ebx, dword [rsp + 0x38]
cmp al, 4
jb 0x140012708
or r15b, 0x10
mov byte [rsp + 0x30], r15b
jmp 0x1400120b6
inc al
movzx eax, al
xor edx, edx
mov byte [r13 + 0x11f], al
mov word [r13 + rax*2 + 0x11e], dx
jmp 0x1400120b8
cmp r9d, 0x3f
jne 0x14001274c
test r15b, 0x20
jne 0x14001273e
cmp byte [r13 + 0x11f], 0
je 0x1400120b2
or r15b, 0x10
mov byte [rsp + 0x30], r15b
jmp 0x1400120b2
lea eax, [r9 - 0x40]
cmp eax, 0x3e
ja 0x14001273e
movzx edx, byte [r13 + 0x11f]
test dl, dl
jne 0x140012767
cmp r9d, 0x5b
je 0x14001273e
lea eax, [r9 - 0x41]
cmp eax, 0x34
ja case.0x14001278f.73
lea r8, [0x140000000]
movzx eax, byte [r8 + rax + 0x13368]
mov ecx, dword [r8 + rax*4 + 0x13328]
add rcx, r8
jmp rcx
xor ecx, ecx
mov r14d, ecx
nop word [rax + rax]
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], 0
jne 0x1400127e5
mov eax, r14d
lea r9, [rbp - 0x7c]
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 0x1400127dd
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
xor ecx, ecx
add r14d, ebx
cmp r14d, edi
jb 0x1400127a0
cmp dword [rsp + 0x34], 0
je 0x140012805
mov rcx, r12
call fcn.14000cbc0
lea r12, [rbp - 0x10]
mov qword [rsp + 0x40], r12
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x140012820
movzx r9d, word [r13 + 0x120]
jmp 0x140012826
mov r9d, 1
neg r9d
mov r8b, 1
xor edx, edx
mov qword [rsp + 0x28], rsi
mov byte [rsp + 0x20], 1
mov rcx, r13
call fcn.1400112c0
movzx r14d, byte [rsp + 0x31]
mov ebx, dword [rsp + 0x38]
xor edx, edx
mov ecx, dword [rsp + 0x3c]
xor r15b, r15b
mov byte [rsp + 0x30], r15b
jmp 0x1400120b8
xor r15d, r15d
mov r14d, r15d
nop dword [rax]
nop word [rax + rax]
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], r15d
jne 0x1400128b3
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x78]
mov eax, r14d
mov r8d, ebx
mov qword [rsp + 0x20], r15
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400128ad
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
add r14d, ebx
cmp r14d, edi
jb 0x140012870
cmp dword [rsp + 0x34], r15d
je 0x1400128d3
mov rcx, r12
call fcn.14000cbc0
lea r12, [rbp - 0x10]
mov qword [rsp + 0x40], r12
mov edi, r15d
mov dword [rsp + 0x34], r15d
cmp byte [r13 + 0x11f], r15b
je 0x1400128f1
movzx r9d, word [r13 + 0x120]
jmp 0x140012829
mov r9d, 1
jmp 0x140012829
xor r15d, r15d
mov r14d, r15d
nop dword [rax]
nop word [rax + rax]
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], r15d
jne 0x140012953
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x74]
mov eax, r14d
mov r8d, ebx
mov qword [rsp + 0x20], r15
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x14001294d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
add r14d, ebx
cmp r14d, edi
jb 0x140012910
cmp dword [rsp + 0x34], r15d
je 0x140012973
mov rcx, r12
call fcn.14000cbc0
lea r12, [rbp - 0x10]
mov qword [rsp + 0x40], r12
mov edi, r15d
mov dword [rsp + 0x34], r15d
cmp byte [r13 + 0x11f], r15b
je 0x140012997
movzx edx, word [r13 + 0x120]
xor r9d, r9d
mov r8b, 1
jmp 0x14001282e
mov edx, 1
xor r9d, r9d
movzx r8d, dl
jmp 0x14001282e
xor r15d, r15d
mov r14d, r15d
nop
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], r15d
jne 0x1400129f3
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x70]
mov eax, r14d
mov r8d, ebx
mov qword [rsp + 0x20], r15
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400129ed
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
add r14d, ebx
cmp r14d, edi
jb 0x1400129b0
cmp dword [rsp + 0x34], r15d
je 0x140012a13
mov rcx, r12
call fcn.14000cbc0
lea r12, [rbp - 0x10]
mov qword [rsp + 0x40], r12
mov edi, r15d
mov dword [rsp + 0x34], r15d
cmp byte [r13 + 0x11f], r15b
je 0x140012a39
movzx edx, word [r13 + 0x120]
mov r8b, 1
neg edx
xor r9d, r9d
jmp 0x14001282e
mov edx, 1
mov r8b, 1
neg edx
xor r9d, r9d
jmp 0x14001282e
xor r15d, r15d
mov r14d, r15d
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], r15d
jne 0x140012a94
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x6c]
mov eax, r14d
mov r8d, ebx
mov qword [rsp + 0x20], r15
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x140012a8e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
add r14d, ebx
cmp r14d, edi
jb 0x140012a51
cmp dword [rsp + 0x34], r15d
je 0x140012ab4
mov rcx, r12
call fcn.14000cbc0
lea r12, [rbp - 0x10]
mov qword [rsp + 0x40], r12
mov edi, r15d
mov dword [rsp + 0x34], r15d
cmp byte [r13 + 0x11f], r15b
je 0x140012ad5
movzx r9d, word [r13 + 0x120]
xor r8d, r8d
jmp 0x14001282c
mov r9d, 1
xor r8d, r8d
jmp 0x14001282c
xor r15d, r15d
mov r14d, r15d
nop dword [rax]
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], r15d
jne 0x140012b33
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x68]
mov eax, r14d
mov r8d, ebx
mov qword [rsp + 0x20], r15
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x140012b2d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
add r14d, ebx
cmp r14d, edi
jb 0x140012af0
cmp dword [rsp + 0x34], r15d
je 0x140012b53
mov rcx, r12
call fcn.14000cbc0
lea r12, [rbp - 0x10]
mov qword [rsp + 0x40], r12
mov edi, r15d
mov dword [rsp + 0x34], r15d
cmp byte [r13 + 0x11f], r15b
je 0x140012b77
movzx r9d, word [r13 + 0x120]
neg r9d
xor r8d, r8d
jmp 0x14001282c
mov r9d, 1
neg r9d
xor r8d, r8d
jmp 0x14001282c
xor ecx, ecx
mov r14d, ecx
nop dword [rax]
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], 0
jne 0x140012bd5
mov eax, r14d
lea r9, [rbp - 0x64]
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 0x140012bcd
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
xor ecx, ecx
add r14d, ebx
cmp r14d, edi
jb 0x140012b90
cmp dword [rsp + 0x34], 0
je 0x140012bf5
mov rcx, r12
call fcn.14000cbc0
lea r12, [rbp - 0x10]
mov qword [rsp + 0x40], r12
xor ebx, ebx
cmp byte [r13 + 0x11f], 1
mov edi, ebx
mov dword [rsp + 0x34], ebx
jb 0x140012c24
movzx eax, word [r13 + 0x120]
test ax, ax
je 0x140012c24
movzx edx, ax
xor r9d, r9d
dec edx
xor r8d, r8d
jmp 0x14001282e
xor r9d, r9d
mov edx, ebx
xor r8d, r8d
jmp 0x14001282e
xor ecx, ecx
mov r14d, ecx
nop word [rax + rax]
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], 0
jne 0x140012c85
mov eax, r14d
lea r9, [rbp - 0x60]
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 0x140012c7d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
xor ecx, ecx
add r14d, ebx
cmp r14d, edi
jb 0x140012c40
cmp dword [rsp + 0x34], 0
je 0x140012ca5
mov rcx, r12
call fcn.14000cbc0
lea r12, [rbp - 0x10]
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 0x140012cd0
movzx eax, word [r13 + 0x120]
test ax, ax
je 0x140012cd0
movzx r9d, ax
dec r9d
jmp 0x140012cd3
mov r9d, ebx
cmp cl, 2
jb 0x140012cfb
movzx eax, word [r13 + 0x122]
test ax, ax
je 0x140012cfb
movzx edx, ax
dec edx
mov qword [rsp + 0x28], rsi
xor r8d, r8d
mov byte [rsp + 0x20], bl
jmp 0x140012838
mov qword [rsp + 0x28], rsi
mov edx, ebx
mov byte [rsp + 0x20], bl
xor r8d, r8d
jmp 0x140012838
xor ecx, ecx
mov r14d, ecx
nop dword [rax]
nop word [rax + rax]
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], 0
jne 0x140012d65
mov eax, r14d
lea r9, [rbp - 0x5c]
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 0x140012d5d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
xor ecx, ecx
add r14d, ebx
cmp r14d, edi
jb 0x140012d20
cmp dword [rsp + 0x34], 0
je 0x140012d85
mov rcx, r12
call fcn.14000cbc0
lea r12, [rbp - 0x10]
mov qword [rsp + 0x40], r12
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x140012dba
movzx edx, word [r13 + 0x120]
cmp edx, 2
ja 0x140012840
mov r9, rsi
mov r8b, 1
mov rcx, r13
call fcn.140011440
jmp 0x140012840
mov edx, ebx
mov r9, rsi
mov r8b, 1
mov rcx, r13
call fcn.140011440
jmp 0x140012840
xor ecx, ecx
mov r14d, ecx
nop dword [rax]
nop dword [rax + rax]
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], 0
jne 0x140012e25
mov eax, r14d
lea r9, [rbp - 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 0x140012e1d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
xor ecx, ecx
add r14d, ebx
cmp r14d, edi
jb 0x140012de0
cmp dword [rsp + 0x34], 0
je 0x140012e45
mov rcx, r12
call fcn.14000cbc0
lea r12, [rbp - 0x10]
mov qword [rsp + 0x40], r12
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x140012e7a
movzx edx, word [r13 + 0x120]
cmp edx, 2
ja 0x140012840
mov r9, rsi
xor r8d, r8d
mov rcx, r13
call fcn.140011440
jmp 0x140012840
mov edx, ebx
mov r9, rsi
xor r8d, r8d
mov rcx, r13
call fcn.140011440
jmp 0x140012840
xor r15d, r15d
mov r14d, r15d
nop word [rax + rax]
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], r15d
jne 0x140012ee3
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x54]
mov eax, r14d
mov r8d, ebx
mov qword [rsp + 0x20], r15
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x140012edd
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
add r14d, ebx
cmp r14d, edi
jb 0x140012ea0
cmp dword [rsp + 0x34], r15d
je 0x140012f03
mov rcx, r12
call fcn.14000cbc0
lea r12, [rbp - 0x10]
mov qword [rsp + 0x40], r12
mov rdx, rsi
mov rcx, r13
mov edi, r15d
call fcn.140011600
mov dword [rsp + 0x34], r15d
jmp 0x140012840
xor r15d, r15d
mov r14d, r15d
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], r15d
jne 0x140012f64
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x50]
mov eax, r14d
mov r8d, ebx
mov qword [rsp + 0x20], r15
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x140012f5e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
add r14d, ebx
cmp r14d, edi
jb 0x140012f21
cmp dword [rsp + 0x34], r15d
je 0x140012f84
mov rcx, r12
call fcn.14000cbc0
lea r12, [rbp - 0x10]
mov qword [rsp + 0x40], r12
mov r8, rsi
xor edx, edx
mov rcx, r13
mov edi, r15d
call fcn.140011970
mov dword [rsp + 0x34], r15d
jmp 0x140012840
xor r15d, r15d
mov r14d, r15d
nop dword [rax]
nop dword [rax + rax]
mov ebx, edi
sub ebx, r14d
cmp ebx, r11d
cmova ebx, r11d
cmp dword [rsi], r15d
jne 0x140012ff4
mov rcx, qword [r13 + 0x110]
lea r9, [rsp + 0x58]
mov eax, r14d
mov r8d, ebx
mov qword [rsp + 0x20], r15
lea rdx, [r12 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x140012fee
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov r11d, 0x2000
add r14d, ebx
cmp r14d, edi
jb 0x140012fb0
cmp dword [rsp + 0x34], r15d
je 0x140013014
mov rcx, r12
call fcn.14000cbc0
lea r12, [rbp - 0x10]
mov qword [rsp + 0x40], r12
mov edi, r15d
mov dword [rsp + 0x34], r15d
cmp dword [rsi], r15d
jne 0x140012840
test dword [r13 + 0x58], 0x4000000
je 0x140012840
movsx r9d, word [r13 + 0x12a]
xor r8d, r8d
movsx edx, word [r13 + 0x128]
mov qword [rsp + 0x28], rsi
mov byte [rsp + 0x20], dil
jmp 0x140012838
cmp dl, 1
jne case.0x14001278f.73
cmp word [r13 + 0x120], 0x19
jne case.0x14001278f.73
xor r15d, r15d
mov r14d, r15d
nop dword [rax]
nop word [rax + rax]
mov eax, r14d
mov ebx, edi
sub ebx, r14d
mov r9, rsi
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r12 + rax*2]
mov r8d, ebx
call fcn.140011270
add r14d, ebx
mov r11d, 0x2000
cmp r14d, edi
jb 0x140013080
cmp dword [rsp + 0x34], r15d
je 0x1400130c7
mov rcx, r12
call fcn.14000cbc0
lea r12, [rbp - 0x10]
mov qword [rsp + 0x40], r12
xor edx, edx
mov r8, rsi
mov rcx, r13
mov edi, r15d
call fcn.140011b80
movzx r14d, byte [rsp + 0x31]
xor edx, edx
mov ebx, dword [rsp + 0x38]
xor r15b, r15b
mov ecx, dword [rsp + 0x3c]
mov byte [rsp + 0x30], r15b
mov dword [rsp + 0x34], edx
jmp 0x1400120b8
cmp dl, 1
jne case.0x14001278f.73
cmp word [r13 + 0x120], 0x19
jne case.0x14001278f.73
xor r15d, r15d
mov r14d, r15d
nop word [rax + rax]
mov eax, r14d
mov ebx, edi
sub ebx, r14d
mov r9, rsi
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r12 + rax*2]
mov r8d, ebx
call fcn.140011270
add r14d, ebx
mov r11d, 0x2000
cmp r14d, edi
jb 0x140013120
cmp dword [rsp + 0x34], r15d
je 0x140013167
mov rcx, r12
call fcn.14000cbc0
lea r12, [rbp - 0x10]
mov qword [rsp + 0x40], r12
mov edx, 1
jmp 0x1400130c9
mov ebx, dword [rsp + 0x38]
lea eax, [r9 - 0x40]
cmp eax, 0x3e
ja 0x1400120b6
xor r15b, r15b
mov byte [rsp + 0x30], r15b
jmp 0x1400120b6
test r15b, 8
je 0x1400132b7
test r15b, 0x40
je 0x1400131e2
test r15b, r15b
js 0x1400131d4
cmp r9d, 0x22
jne 0x1400131b8
and r15b, 0xbf
mov byte [rsp + 0x30], r15b
jmp 0x1400120b2
mov ebx, dword [rsp + 0x38]
cmp r9d, 0x5c
jne 0x1400120b6
or r15b, 0x80
mov byte [rsp + 0x30], r15b
jmp 0x1400120b6
and r15b, 0x7f
mov byte [rsp + 0x30], r15b
jmp 0x1400120b2
cmp r9d, 7
je 0x14001322e
cmp r9d, 0x5c
jne 0x140013202
test r15b, 2
jne 0x14001322e
and r15b, 0xfd
mov byte [rsp + 0x30], r15b
jmp 0x1400120b2
cmp r9d, 0x1b
jne 0x140013216
or r15b, 2
mov byte [rsp + 0x30], r15b
jmp 0x1400120b2
cmp r9d, 0x22
jne 0x1400131f4
and r15b, 0x3d
or r15b, 0x40
mov byte [rsp + 0x30], r15b
jmp 0x1400120b2
xor r15b, r15b
mov byte [rsp + 0x30], r15b
jmp 0x1400120b2
cmp r12d, r14d
jbe 0x140013269
call fcn.14002dfd0
mov r12, qword [rsp + 0x40]
mov rcx, r12
mov ebx, dword [rax]
call qword [fcn.14002dff0]
call fcn.14002dfd0
mov dword [rax], ebx
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
jmp 0x1400120f3
mov r12, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
jmp 0x1400120f3
mov eax, dword [rsi]
neg eax
sbb eax, eax
mov rcx, qword [rbp + 0x3ff0]
xor rcx, rsp
call fcn.140028de0
mov rbx, qword [rsp + 0x4150]
add rsp, 0x4100
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140033840
int3
call fcn.140033840
int3
call fcn.140033840
int3