Function at 0x1400a87c0
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.1401ff2b0
sub rsp, rax
mov rax, qword [0x1403df5c8]
xor rax, rsp
mov qword [rbp + 0x3fc0], rax
mov r13, rcx
mov qword [rbp - 0x68], rdx
xor ecx, ecx
mov dword [rsp + 0x4c], r8d
mov edi, ecx
mov dword [rsp + 0x34], ecx
lea r15, [rbp - 0x40]
mov edx, 0xffffffff
movzx eax, byte [r13 + 0x11c]
mov r12, r9
mov ebx, dword [r13 + 0x118]
movzx esi, byte [r13 + 0x11d]
movzx r14d, byte [r13 + 0x11e]
mov dword [r9], ecx
mov rcx, qword [0x140428838]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x38], ebx
mov byte [rsp + 0x31], sil
mov byte [rsp + 0x30], r14b
mov qword [rsp + 0x40], r15
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x1400a9cbf
xor r8d, r8d
mov r11d, 0x2000
mov dword [rsp + 0x58], r8d
cmp dword [rsp + 0x4c], edi
jbe 0x1400a9bd5
mov edx, dword [rsp + 0x4c]
mov eax, r8d
mov qword [rsp + 0x60], rax
nop dword [rax + rax]
mov rcx, qword [rbp - 0x68]
add rax, rax
cmp dword [0x1403e0af4], 0
movups xmm0, xmmword [rcx + rax*8]
movups xmmword [rsp + 0x68], xmm0
mov eax, dword [rsp + 0x68]
jne 0x1400a8a1b
test eax, eax
je 0x1400a8a1b
mov rbx, qword [rsp + 0x70]
mov r9d, eax
mov dword [rsp + 0x28], r8d
xor edx, edx
mov qword [rsp + 0x20], r8
mov ecx, 0xfde9
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, eax
test eax, eax
je 0x1400a9bcb
lea r15d, [rax*2 + 2]
xor edx, edx
mov eax, edx
mov dword [rsp + 0x3c], r15d
mov esi, 0x2000
cmp r15d, esi
seta al
mov dword [rsp + 0x34], eax
jbe 0x1400a8926
mov ecx, r15d
test r15d, r15d
je 0x1400a891c
call qword [fcn.140220234]
mov qword [rsp + 0x40], rax
jmp 0x1400a892b
mov rax, rdx
mov qword [rsp + 0x40], rdx
jmp 0x1400a892b
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 0x1400a9ba3
mov r15, 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 [r12], r14d
jne 0x1400a89b5
mov rcx, qword [r13 + 0x110]
lea r9, [rsp + 0x78]
mov eax, esi
mov r8d, ebx
mov qword [rsp + 0x20], r14
lea rdx, [r15 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400a89af
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r12], eax
mov r11d, 0x2000
add esi, ebx
cmp esi, edi
jb 0x1400a8970
movzx r14d, byte [rsp + 0x30]
cmp dword [rsp + 0x3c], r11d
jbe 0x1400a8a07
call fcn.140227d1c
mov rcx, r15
mov ebx, dword [rax]
call qword [fcn.14021ff40]
call fcn.140227d1c
movzx esi, byte [rsp + 0x31]
xor r8d, r8d
mov dword [rsp + 0x34], r8d
mov r11d, 0x2000
mov edi, r8d
mov dword [rax], ebx
lea rax, [rbp - 0x40]
mov ebx, dword [rsp + 0x38]
mov qword [rsp + 0x40], rax
jmp 0x1400a9b7a
mov ebx, dword [rsp + 0x38]
xor r8d, r8d
movzx esi, byte [rsp + 0x31]
mov edi, r8d
jmp 0x1400a9b7a
mov ecx, r8d
mov dword [rsp + 0x3c], ecx
test eax, eax
je 0x1400a9b7e
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 0x1400a8a8a
not al
movzx eax, al
bsr r8d, eax
je 0x1400a8ac8
cmp r8d, 7
jne 0x1400a8a5f
movzx r9d, dl
jmp 0x1400a8ace
cmp r8d, 5
ja 0x1400a8ac8
mov ecx, 8
movzx eax, dl
sub ecx, r8d
mov r9d, 0xff
sar r9d, cl
mov r10d, 6
and r9d, eax
sub r10b, r8b
xor r8d, r8d
jmp 0x1400a8aa4
and al, 0xc0
cmp al, 0x80
jne 0x1400a8abd
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 0x1400a9b60
jmp 0x1400a8ad3
dec ecx
mov byte [rsp + 0x48], 0
mov dword [rsp + 0x3c], ecx
mov r9d, 0xfffd
mov dword [rsp + 0x38], r9d
test r14b, r14b
jne 0x1400a8b03
cmp r9d, 0x1b
je 0x1400a8afb
cmp r9d, 0x9b
jne 0x1400a8e6e
mov r14b, 4
mov byte [r13 + 0x11f], 0
jmp 0x1400a9b58
mov r14b, 2
jmp 0x1400a9b58
cmp r14b, 2
jne 0x1400a9119
lea eax, [r9 - 0x1b]
cmp eax, 0x48
ja case.0x1400a8b33.28
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0xa9ce4]
mov ecx, dword [rdx + rax*4 + 0xa9cc8]
add rcx, rdx
jmp rcx
mov r14b, 4
mov byte [r13 + 0x11f], 0
mov byte [rsp + 0x30], r14b
mov ecx, dword [rsp + 0x3c]
jmp 0x1400a9b5d
mov ecx, dword [rsp + 0x3c]
mov r14b, 8
jmp 0x1400a9b58
xor r14d, r14d
mov esi, r14d
mov ebx, edi
sub ebx, esi
cmp ebx, r11d
cmova ebx, r11d
cmp dword [r12], r14d
jne 0x1400a8ba5
mov rcx, qword [r13 + 0x110]
lea r9, [rsp + 0x7c]
mov eax, esi
mov r8d, ebx
mov qword [rsp + 0x20], r14
lea rdx, [r15 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400a8b9f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r12], eax
mov r11d, 0x2000
add esi, ebx
cmp esi, edi
jb 0x1400a8b60
cmp dword [rsp + 0x34], r14d
je 0x1400a8bd7
call fcn.140227d1c
mov rcx, r15
mov ebx, dword [rax]
call qword [fcn.14021ff40]
call fcn.140227d1c
lea r15, [rbp - 0x40]
mov dword [rsp + 0x34], r14d
mov qword [rsp + 0x40], r15
mov dword [rax], ebx
mov edi, r14d
movzx esi, word [reloc.WS2_32.dll_getsockopt]
mov dword [rsp + 0x50], r14d
cmp dword [r12], r14d
jne 0x1400a8ca0
mov rcx, qword [r13 + 0x110]
movzx edx, si
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
test eax, eax
je 0x1400a8c96
mov rcx, qword [r13 + 0x110]
mov ebx, r14d
mov edx, ebx
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
test eax, eax
je 0x1400a8c96
nop
mov rcx, qword [r13 + 0x110]
lea rdx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x1400a8c96
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 + 0x54]
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
test eax, eax
je 0x1400a8c8b
mov r8d, dword [rsp + 0x54]
lea rax, [rsp + 0x54]
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 0x1400a8cae
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
je 0x1400a8c20
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r12], eax
movzx esi, byte [rsp + 0x31]
mov ecx, dword [rsp + 0x3c]
jmp 0x1400a9b58
movsx eax, word [rbp - 0x60]
mov ecx, r14d
movsx edx, word [rbp - 0x50]
mov dword [0x1403e0c5c], eax
movsx eax, word [rbp - 0x54]
sub edx, eax
mov dword [0x1403e0b6c], r14d
movsx eax, word [rbp - 0x5a]
inc edx
sub eax, edx
mov dword [0x1403e0b94], edx
inc eax
test eax, eax
jle 0x1400a8ce8
mov dword [0x1403e0b6c], eax
mov ecx, eax
movsx r8d, word [rbp - 0x5e]
lea eax, [rdx + rcx]
cmp eax, r8d
jle 0x1400a8d00
mov ecx, r8d
sub ecx, edx
mov dword [0x1403e0b6c], ecx
test ecx, ecx
jns 0x1400a8ca0
movzx esi, byte [rsp + 0x31]
mov ecx, dword [rsp + 0x3c]
mov dword [0x1403e0b6c], r14d
jmp 0x1400a9b58
xor r14d, r14d
mov esi, r14d
nop
mov ebx, edi
sub ebx, esi
cmp ebx, r11d
cmova ebx, r11d
cmp dword [r12], r14d
jne 0x1400a8d64
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x80]
mov eax, esi
mov r8d, ebx
mov qword [rsp + 0x20], r14
lea rdx, [r15 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400a8d5e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r12], eax
mov r11d, 0x2000
add esi, ebx
cmp esi, edi
jb 0x1400a8d20
cmp dword [rsp + 0x34], r14d
je 0x1400a8d96
call fcn.140227d1c
mov rcx, r15
mov ebx, dword [rax]
call qword [fcn.14021ff40]
call fcn.140227d1c
lea r15, [rbp - 0x40]
mov dword [rsp + 0x34], r14d
mov qword [rsp + 0x40], r15
mov dword [rax], ebx
mov r8, r12
mov dl, 1
mov rcx, r13
mov edi, r14d
call fcn.1400a8530
mov ecx, dword [rsp + 0x3c]
movzx esi, byte [rsp + 0x31]
jmp 0x1400a9b58
xor r14d, r14d
mov esi, r14d
nop word [rax + rax]
mov ebx, edi
sub ebx, esi
cmp ebx, r11d
cmova ebx, r11d
cmp dword [r12], r14d
jne 0x1400a8e04
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x7c]
mov eax, esi
mov r8d, ebx
mov qword [rsp + 0x20], r14
lea rdx, [r15 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400a8dfe
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r12], eax
mov r11d, 0x2000
add esi, ebx
cmp esi, edi
jb 0x1400a8dc0
cmp dword [rsp + 0x34], r14d
je 0x1400a8e36
call fcn.140227d1c
mov rcx, r15
mov ebx, dword [rax]
call qword [fcn.14021ff40]
call fcn.140227d1c
lea r15, [rbp - 0x40]
mov dword [rsp + 0x34], r14d
mov qword [rsp + 0x40], r15
mov dword [rax], ebx
mov r8, r12
mov dl, 1
mov rcx, r13
mov edi, r14d
call fcn.1400a8660
mov ecx, dword [rsp + 0x3c]
movzx esi, byte [rsp + 0x31]
jmp 0x1400a9b58
xor r14b, r14b
lea eax, [r9 - 0x40]
mov byte [rsp + 0x30], r14b
cmp eax, 0x1f
ja 0x1400a8e6e
mov ecx, dword [rsp + 0x3c]
jmp 0x1400a9b5d
cmp r9d, 0xffff
jbe 0x1400a8e82
mov eax, 0xfffd
mov dword [rsp + 0x38], eax
jmp 0x1400a8ea3
cmp r9d, 0xa
je 0x1400a9016
cmp r9d, 0xd
je 0x1400a8f64
cmp r9d, 0xffff
ja case.0x1400a8b33.27
mov eax, edi
mov rcx, r11
sub rcx, rax
cmp rcx, 1
jae 0x1400a8f43
xor r14d, r14d
mov esi, r14d
nop dword [rax + rax]
mov ebx, edi
sub ebx, esi
cmp ebx, r11d
cmova ebx, r11d
cmp dword [r12], r14d
jne 0x1400a8f04
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x78]
mov eax, esi
mov r8d, ebx
mov qword [rsp + 0x20], r14
lea rdx, [r15 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400a8efe
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r12], eax
mov r11d, 0x2000
add esi, ebx
cmp esi, edi
jb 0x1400a8ec0
cmp dword [rsp + 0x34], r14d
movzx r14d, byte [rsp + 0x30]
je 0x1400a8f3f
call fcn.140227d1c
mov rcx, r15
mov ebx, dword [rax]
call qword [fcn.14021ff40]
call fcn.140227d1c
lea r15, [rbp - 0x40]
mov qword [rsp + 0x40], r15
mov dword [rax], ebx
xor eax, eax
mov dword [rsp + 0x34], eax
jmp 0x1400a8f41
xor eax, eax
mov edi, eax
mov ebx, dword [rsp + 0x38]
xor sil, sil
mov ecx, dword [rsp + 0x3c]
mov eax, edi
inc edi
mov byte [rsp + 0x31], sil
xor r8d, r8d
mov word [rbp + rax*2 - 0x40], bx
jmp 0x1400a9b64
cmp sil, 0xa
je 0x1400a9107
mov eax, edi
mov rcx, r11
sub rcx, rax
cmp rcx, 1
jae 0x1400a90fd
xor r14d, r14d
mov esi, r14d
nop word [rax + rax]
mov ebx, edi
sub ebx, esi
cmp ebx, r11d
cmova ebx, r11d
cmp dword [r12], r14d
jne 0x1400a8fd4
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x70]
mov eax, esi
mov r8d, ebx
mov qword [rsp + 0x20], r14
lea rdx, [r15 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400a8fce
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r12], eax
mov r11d, 0x2000
add esi, ebx
cmp esi, edi
jb 0x1400a8f90
cmp dword [rsp + 0x34], r14d
movzx r14d, byte [rsp + 0x30]
je 0x1400a90f4
call fcn.140227d1c
mov rcx, r15
mov ebx, dword [rax]
call qword [fcn.14021ff40]
call fcn.140227d1c
lea r15, [rbp - 0x40]
mov qword [rsp + 0x40], r15
mov dword [rax], ebx
xor eax, eax
mov dword [rsp + 0x34], eax
jmp 0x1400a90f6
cmp sil, 0xd
je 0x1400a8f6e
mov eax, edi
mov rcx, r11
sub rcx, rax
cmp rcx, 2
jae 0x1400a90c8
xor r14d, r14d
mov esi, r14d
nop dword [rax + rax]
mov ebx, edi
sub ebx, esi
cmp ebx, r11d
cmova ebx, r11d
cmp dword [r12], r14d
jne 0x1400a9084
mov rcx, qword [r13 + 0x110]
lea r9, [rbp - 0x74]
mov eax, esi
mov r8d, ebx
mov qword [rsp + 0x20], r14
lea rdx, [r15 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400a907e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r12], eax
mov r11d, 0x2000
add esi, ebx
cmp esi, edi
jb 0x1400a9040
cmp dword [rsp + 0x34], r14d
movzx r14d, byte [rsp + 0x30]
je 0x1400a90bf
call fcn.140227d1c
mov rcx, r15
mov ebx, dword [rax]
call qword [fcn.14021ff40]
call fcn.140227d1c
lea r15, [rbp - 0x40]
mov qword [rsp + 0x40], r15
mov dword [rax], ebx
xor eax, eax
mov dword [rsp + 0x34], eax
jmp 0x1400a90c1
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
mov ecx, dword [rsp + 0x3c]
jmp 0x1400a9b5d
xor eax, eax
mov r9d, dword [rsp + 0x38]
mov edi, eax
mov eax, edi
inc edi
mov word [rbp + rax*2 - 0x40], r9w
mov ecx, dword [rsp + 0x3c]
movzx esi, r9b
mov byte [rsp + 0x31], r9b
jmp 0x1400a9b5d
test r14b, 4
je 0x1400a9ade
test r14b, 0x10
jne 0x1400a9abd
lea eax, [r9 - 0x30]
cmp eax, 9
ja 0x1400a91e2
movzx eax, byte [r13 + 0x11f]
mov ebx, dword [rsp + 0x38]
test r14b, 0x20
jne 0x1400a918f
cmp al, 4
jb 0x1400a9161
or r14b, 0x10
mov byte [rsp + 0x30], r14b
xor r8d, r8d
jmp 0x1400a9b64
inc al
or r14b, 0x20
movzx ecx, al
xor r8d, r8d
mov byte [r13 + 0x11f], cl
lea eax, [r9 - 0x30]
mov byte [rsp + 0x30], r14b
mov word [r13 + rcx*2 + 0x11e], ax
mov ecx, dword [rsp + 0x3c]
jmp 0x1400a9b64
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 0x1400a91c5
mov ecx, dword [rsp + 0x3c]
or r14b, 0x10
mov byte [rsp + 0x30], r14b
xor r8d, r8d
jmp 0x1400a9b64
sub cx, 0x30
add cx, r9w
mov word [rdx + r13 + 0x11e], cx
xor r8d, r8d
mov ecx, dword [rsp + 0x3c]
jmp 0x1400a9b64
cmp r9d, 0x3b
jne 0x1400a9235
test r14b, 0x20
je 0x1400a91f7
and r14b, 0xdf
jmp 0x1400a9b58
movzx eax, byte [r13 + 0x11f]
mov ebx, dword [rsp + 0x38]
cmp al, 4
jb 0x1400a9218
or r14b, 0x10
mov byte [rsp + 0x30], r14b
xor r8d, r8d
jmp 0x1400a9b64
inc al
movzx eax, al
xor r8d, r8d
mov byte [r13 + 0x11f], al
mov word [r13 + rax*2 + 0x11e], r8w
jmp 0x1400a9b64
cmp r9d, 0x3f
jne 0x1400a9258
test r14b, 0x20
jne 0x1400a924f
cmp byte [r13 + 0x11f], 0
je 0x1400a9b5d
or r14b, 0x10
jmp 0x1400a9b58
lea eax, [r9 - 0x40]
cmp eax, 0x3e
ja 0x1400a924f
movzx edx, byte [r13 + 0x11f]
test dl, dl
jne 0x1400a9273
cmp r9d, 0x5b
je 0x1400a924f
lea eax, [r9 - 0x41]
cmp eax, 0x34
ja case.0x1400a929b.73
lea r8, [0x140000000]
movzx eax, byte [r8 + rax + 0xa9d70]
mov ecx, dword [r8 + rax*4 + 0xa9d30]
add rcx, r8
jmp rcx
xor eax, eax
mov esi, eax
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r12
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r15 + rax*2]
mov r8d, ebx
call fcn.1400a7d30
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400a92a1
cmp dword [rsp + 0x34], 0
je 0x1400a92e4
mov rcx, r15
call fcn.1400aa4a0
lea r15, [rbp - 0x40]
mov qword [rsp + 0x40], r15
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x1400a92ff
movzx r9d, word [r13 + 0x120]
jmp 0x1400a9305
mov r9d, 1
neg r9d
mov r8b, 1
xor edx, edx
mov qword [rsp + 0x28], r12
mov byte [rsp + 0x20], 1
mov rcx, r13
call fcn.1400a7d80
movzx esi, byte [rsp + 0x31]
mov ecx, dword [rsp + 0x3c]
xor r8d, r8d
xor r14b, r14b
mov byte [rsp + 0x30], r14b
jmp 0x1400a9b60
xor eax, eax
mov esi, eax
nop dword [rax]
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r12
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r15 + rax*2]
mov r8d, ebx
call fcn.1400a7d30
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400a9340
cmp dword [rsp + 0x34], 0
je 0x1400a9383
mov rcx, r15
call fcn.1400aa4a0
lea r15, [rbp - 0x40]
mov qword [rsp + 0x40], r15
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x1400a93a1
movzx r9d, word [r13 + 0x120]
jmp 0x1400a9308
mov r9d, 1
jmp 0x1400a9308
xor eax, eax
mov esi, eax
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r12
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r15 + rax*2]
mov r8d, ebx
call fcn.1400a7d30
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400a93b0
cmp dword [rsp + 0x34], 0
je 0x1400a93f3
mov rcx, r15
call fcn.1400aa4a0
lea r15, [rbp - 0x40]
mov qword [rsp + 0x40], r15
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x1400a9417
movzx edx, word [r13 + 0x120]
xor r9d, r9d
mov r8b, 1
jmp 0x1400a930d
mov edx, 1
xor r9d, r9d
movzx r8d, dl
jmp 0x1400a930d
xor eax, eax
mov esi, eax
nop dword [rax]
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r12
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r15 + rax*2]
mov r8d, ebx
call fcn.1400a7d30
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400a9430
cmp dword [rsp + 0x34], 0
je 0x1400a9473
mov rcx, r15
call fcn.1400aa4a0
lea r15, [rbp - 0x40]
mov qword [rsp + 0x40], r15
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x1400a9499
movzx edx, word [r13 + 0x120]
mov r8b, 1
neg edx
xor r9d, r9d
jmp 0x1400a930d
mov edx, 1
mov r8b, 1
neg edx
xor r9d, r9d
jmp 0x1400a930d
xor eax, eax
mov esi, eax
nop
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r12
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r15 + rax*2]
mov r8d, ebx
call fcn.1400a7d30
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400a94b0
cmp dword [rsp + 0x34], 0
je 0x1400a94f3
mov rcx, r15
call fcn.1400aa4a0
lea r15, [rbp - 0x40]
mov qword [rsp + 0x40], r15
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x1400a9514
movzx r9d, word [r13 + 0x120]
xor r8d, r8d
jmp 0x1400a930b
mov r9d, 1
xor r8d, r8d
jmp 0x1400a930b
xor eax, eax
mov esi, eax
nop word [rax + rax]
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r12
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r15 + rax*2]
mov r8d, ebx
call fcn.1400a7d30
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400a9530
cmp dword [rsp + 0x34], 0
je 0x1400a9573
mov rcx, r15
call fcn.1400aa4a0
lea r15, [rbp - 0x40]
mov qword [rsp + 0x40], r15
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x1400a9597
movzx r9d, word [r13 + 0x120]
neg r9d
xor r8d, r8d
jmp 0x1400a930b
mov r9d, 1
neg r9d
xor r8d, r8d
jmp 0x1400a930b
xor eax, eax
mov esi, eax
nop dword [rax]
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r12
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r15 + rax*2]
mov r8d, ebx
call fcn.1400a7d30
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400a95b0
cmp dword [rsp + 0x34], 0
je 0x1400a95f3
mov rcx, r15
call fcn.1400aa4a0
lea r15, [rbp - 0x40]
mov qword [rsp + 0x40], r15
xor ebx, ebx
cmp byte [r13 + 0x11f], 1
mov edi, ebx
mov dword [rsp + 0x34], ebx
jb 0x1400a9622
movzx eax, word [r13 + 0x120]
test ax, ax
je 0x1400a9622
movzx edx, ax
xor r9d, r9d
dec edx
xor r8d, r8d
jmp 0x1400a930d
xor r9d, r9d
mov edx, ebx
xor r8d, r8d
jmp 0x1400a930d
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 [r12], 0
jne 0x1400a9688
mov eax, esi
lea r9, [rsp + 0x5c]
mov qword [rsp + 0x20], rcx
mov r8d, ebx
mov rcx, qword [r13 + 0x110]
lea rdx, [r15 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400a9680
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r12], eax
mov r11d, 0x2000
xor ecx, ecx
add esi, ebx
cmp esi, edi
jb 0x1400a9640
cmp dword [rsp + 0x34], 0
je 0x1400a96a6
mov rcx, r15
call fcn.1400aa4a0
lea r15, [rbp - 0x40]
mov qword [rsp + 0x40], r15
movzx ecx, byte [r13 + 0x11f]
xor ebx, ebx
mov dword [rsp + 0x34], ebx
mov edi, ebx
cmp cl, 1
jb 0x1400a96d1
movzx eax, word [r13 + 0x120]
test ax, ax
je 0x1400a96d1
movzx r9d, ax
dec r9d
jmp 0x1400a96d4
mov r9d, ebx
cmp cl, 2
jb 0x1400a96fc
movzx eax, word [r13 + 0x122]
test ax, ax
je 0x1400a96fc
movzx edx, ax
dec edx
mov qword [rsp + 0x28], r12
xor r8d, r8d
mov byte [rsp + 0x20], bl
jmp 0x1400a9317
mov qword [rsp + 0x28], r12
mov edx, ebx
mov byte [rsp + 0x20], bl
xor r8d, r8d
jmp 0x1400a9317
xor eax, eax
mov esi, eax
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r12
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r15 + rax*2]
mov r8d, ebx
call fcn.1400a7d30
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400a9713
cmp dword [rsp + 0x34], 0
je 0x1400a9756
mov rcx, r15
call fcn.1400aa4a0
lea r15, [rbp - 0x40]
mov qword [rsp + 0x40], r15
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x1400a978b
movzx edx, word [r13 + 0x120]
cmp edx, 2
ja 0x1400a931f
mov r9, r12
mov r8b, 1
mov rcx, r13
call fcn.1400a7f00
jmp 0x1400a931f
mov edx, ebx
mov r9, r12
mov r8b, 1
mov rcx, r13
call fcn.1400a7f00
jmp 0x1400a931f
xor eax, eax
mov esi, eax
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r12
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r15 + rax*2]
mov r8d, ebx
call fcn.1400a7d30
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400a97a4
cmp dword [rsp + 0x34], 0
je 0x1400a97e7
mov rcx, r15
call fcn.1400aa4a0
lea r15, [rbp - 0x40]
mov qword [rsp + 0x40], r15
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], ebx
cmp byte [r13 + 0x11f], bl
je 0x1400a981c
movzx edx, word [r13 + 0x120]
cmp edx, 2
ja 0x1400a931f
mov r9, r12
xor r8d, r8d
mov rcx, r13
call fcn.1400a7f00
jmp 0x1400a931f
mov edx, ebx
mov r9, r12
xor r8d, r8d
mov rcx, r13
call fcn.1400a7f00
jmp 0x1400a931f
xor eax, eax
mov esi, eax
nop word [rax + rax]
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r12
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r15 + rax*2]
mov r8d, ebx
call fcn.1400a7d30
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400a9840
cmp dword [rsp + 0x34], 0
je 0x1400a9883
mov rcx, r15
call fcn.1400aa4a0
lea r15, [rbp - 0x40]
mov qword [rsp + 0x40], r15
xor ebx, ebx
mov rdx, r12
mov rcx, r13
mov edi, ebx
call fcn.1400a81c0
mov dword [rsp + 0x34], ebx
jmp 0x1400a931f
xor r14d, r14d
mov esi, r14d
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r12
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r15 + rax*2]
mov r8d, ebx
call fcn.1400a7d30
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400a98a1
cmp dword [rsp + 0x34], r14d
je 0x1400a98e4
mov rcx, r15
call fcn.1400aa4a0
lea r15, [rbp - 0x40]
mov qword [rsp + 0x40], r15
mov r8, r12
xor edx, edx
mov rcx, r13
mov edi, r14d
call fcn.1400a8530
movzx esi, byte [rsp + 0x31]
xor r8d, r8d
mov ecx, dword [rsp + 0x3c]
xor r14b, r14b
mov byte [rsp + 0x30], r14b
mov dword [rsp + 0x34], r8d
jmp 0x1400a9b60
xor eax, eax
mov esi, eax
nop word [rax + rax]
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r12
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r15 + rax*2]
mov r8d, ebx
call fcn.1400a7d30
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400a9920
cmp dword [rsp + 0x34], 0
je 0x1400a9963
mov rcx, r15
call fcn.1400aa4a0
lea r15, [rbp - 0x40]
mov qword [rsp + 0x40], r15
xor r8d, r8d
mov edi, r8d
mov dword [rsp + 0x34], r8d
cmp dword [r12], r8d
jne 0x1400a99a3
test dword [r13 + 0x58], 0x4000000
je 0x1400a99a3
movsx r9d, word [r13 + 0x12a]
mov rcx, r13
movsx edx, word [r13 + 0x128]
mov qword [rsp + 0x28], r12
mov byte [rsp + 0x20], dil
call fcn.1400a7d80
xor r8d, r8d
movzx esi, byte [rsp + 0x31]
xor r14b, r14b
mov ecx, dword [rsp + 0x3c]
mov byte [rsp + 0x30], r14b
jmp 0x1400a9b60
cmp dl, 1
jne case.0x1400a929b.73
cmp word [r13 + 0x120], 0x19
jne case.0x1400a929b.73
xor r14d, r14d
mov esi, r14d
nop word [rax + rax]
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r12
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r15 + rax*2]
mov r8d, ebx
call fcn.1400a7d30
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400a99e0
cmp dword [rsp + 0x34], r14d
je 0x1400a9a23
mov rcx, r15
call fcn.1400aa4a0
lea r15, [rbp - 0x40]
mov qword [rsp + 0x40], r15
xor edx, edx
mov r8, r12
mov rcx, r13
mov edi, r14d
call fcn.1400a8740
movzx esi, byte [rsp + 0x31]
xor r8d, r8d
mov ecx, dword [rsp + 0x3c]
xor r14b, r14b
mov byte [rsp + 0x30], r14b
mov dword [rsp + 0x34], r8d
jmp 0x1400a9b60
cmp dl, 1
jne case.0x1400a929b.73
cmp word [r13 + 0x120], 0x19
jne case.0x1400a929b.73
xor r14d, r14d
mov esi, r14d
nop
mov eax, esi
mov ebx, edi
sub ebx, esi
mov r9, r12
cmp ebx, r11d
mov rcx, r13
cmova ebx, r11d
lea rdx, [r15 + rax*2]
mov r8d, ebx
call fcn.1400a7d30
add esi, ebx
mov r11d, 0x2000
cmp esi, edi
jb 0x1400a9a70
cmp dword [rsp + 0x34], r14d
je 0x1400a9ab3
mov rcx, r15
call fcn.1400aa4a0
lea r15, [rbp - 0x40]
mov qword [rsp + 0x40], r15
mov edx, 1
jmp 0x1400a9a25
mov ebx, dword [rsp + 0x38]
lea eax, [r9 - 0x40]
cmp eax, 0x3e
ja 0x1400a9159
xor r14b, r14b
mov byte [rsp + 0x30], r14b
xor r8d, r8d
jmp 0x1400a9b64
test r14b, 8
je 0x1400a9cbf
test r14b, 0x40
je 0x1400a9b21
test r14b, r14b
js 0x1400a9b1b
cmp r9d, 0x22
jne 0x1400a9aff
and r14b, 0xbf
jmp 0x1400a9b58
mov ebx, dword [rsp + 0x38]
cmp r9d, 0x5c
jne 0x1400a9159
or r14b, 0x80
mov byte [rsp + 0x30], r14b
xor r8d, r8d
jmp 0x1400a9b64
and r14b, 0x7f
jmp 0x1400a9b58
cmp r9d, 7
je 0x1400a9b55
cmp r9d, 0x5c
jne 0x1400a9b39
test r14b, 2
jne 0x1400a9b55
and r14b, 0xfd
jmp 0x1400a9b58
cmp r9d, 0x1b
jne 0x1400a9b45
or r14b, 2
jmp 0x1400a9b58
cmp r9d, 0x22
jne 0x1400a9b33
and r14b, 0x3d
or r14b, 0x40
jmp 0x1400a9b58
xor r14b, r14b
mov byte [rsp + 0x30], r14b
xor r8d, r8d
mov ebx, dword [rsp + 0x38]
inc ecx
mov r11d, 0x2000
mov dword [rsp + 0x3c], ecx
cmp ecx, dword [rsp + 0x68]
jb 0x1400a8a30
mov edx, dword [rsp + 0x4c]
mov ecx, dword [rsp + 0x58]
mov rax, qword [rsp + 0x60]
inc ecx
mov r15, qword [rsp + 0x40]
inc rax
mov dword [rsp + 0x58], ecx
mov qword [rsp + 0x60], rax
cmp ecx, edx
jae 0x1400a9bd5
jmp 0x1400a8890
cmp r15d, esi
jbe 0x1400a9bc6
call fcn.140227d1c
mov r15, qword [rsp + 0x40]
mov rcx, r15
mov ebx, dword [rax]
call qword [fcn.14021ff40]
call fcn.140227d1c
mov dword [rax], ebx
jmp 0x1400a9bcb
mov r15, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r12], eax
xor r14d, r14d
mov eax, 0x2000
mov esi, r14d
mov ebx, edi
sub ebx, esi
cmp ebx, eax
cmova ebx, eax
cmp dword [r12], r14d
jne 0x1400a9c22
mov rcx, qword [r13 + 0x110]
lea r9, [rsp + 0x5c]
mov eax, esi
mov r8d, ebx
mov qword [rsp + 0x20], r14
lea rdx, [r15 + rax*2]
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x1400a9c1d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r12], eax
mov eax, 0x2000
add esi, ebx
cmp esi, edi
jb 0x1400a9be0
cmp dword [rsp + 0x34], r14d
movzx r14d, byte [rsp + 0x30]
je 0x1400a9c4c
call fcn.140227d1c
mov rcx, r15
mov ebx, dword [rax]
call qword [fcn.14021ff40]
call fcn.140227d1c
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 [0x140428838]
call qword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
test eax, eax
je 0x1400a9cbf
mov eax, dword [r12]
neg eax
sbb eax, eax
mov rcx, qword [rbp + 0x3fc0]
xor rcx, rsp
call fcn.1401fe5e0
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.14022fe9c
int3