Function at 0x1400d88a0
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x198]
sub rsp, 0x298
mov rax, qword [0x1403f80a0]
xor rax, rsp
mov qword [rbp + 0x180], rax
movsxd rsi, edx
mov r14, rcx
xor r13d, r13d
mov dword [rsp + 0x30], r13d
lea rcx, [rbp - 0x40]
call fcn.140144d20
lea rdx, [rbp - 0x40]
lea rcx, [rbp + 0xd0]
call fcn.140144d10
lea r9, [rbp + 0xd0]
lea r8, str._x__X
lea edx, [r13 + 0x40]
lea rcx, [rbp + 0x100]
call fcn.1401449c4
add rax, rax
cmp rax, 0x80
jae 0x1400d8fa8
mov word [rbp + rax + 0x100], r13w
lea r15, [rbp + 0x1f8]
mov qword [rbp - 0x80], r13
mov qword [rbp - 0x70], r13
mov qword [rbp - 0x68], 7
mov word [rbp - 0x80], r13w
call fcn.1400d8370
mov rbx, rax
mov rcx, qword [rax]
or rcx, 2
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r13
mov r9, qword [rbp + 0x1f0]
xor r8d, r8d
xor edx, edx
call fcn.140142b50
mov ecx, 0xffffffff
test eax, eax
cmovs eax, ecx
movsxd rcx, eax
inc rcx
mov r8, qword [rbp - 0x70]
cmp rcx, r8
ja 0x1400d89ab
lea rax, [rbp - 0x80]
cmp qword [rbp - 0x68], 8
cmovae rax, qword [rbp - 0x80]
mov qword [rbp - 0x70], rcx
mov word [rax + rcx*2], r13w
jmp 0x1400d8a04
mov rdx, rcx
sub rdx, r8
mov rdi, qword [rbp - 0x68]
mov rax, rdi
sub rax, r8
cmp rdx, rax
ja 0x1400d89ef
mov qword [rbp - 0x70], rcx
lea r9, [rbp - 0x80]
cmp rdi, 8
cmovae r9, qword [rbp - 0x80]
lea rdi, [r9 + r8*2]
test rdx, rdx
je 0x1400d89e4
movzx eax, r13w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [rdx + r8]
mov word [r9 + rax*2], r13w
jmp 0x1400d8a04
mov word [rsp + 0x20], r13w
mov r9, rdx
xor r8d, r8d
lea rcx, [rbp - 0x80]
call fcn.1400d2350
lea rdx, [rbp - 0x80]
cmp qword [rbp - 0x68], 8
cmovae rdx, qword [rbp - 0x80]
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r13
mov r9, qword [rbp + 0x1f0]
mov r8, qword [rbp - 0x70]
mov rcx, qword [rbx]
call fcn.140142b58
xor edx, edx
mov r8d, 0xf8
lea rcx, [rbp - 0x30]
call fcn.140133080
lea rcx, [rbp - 0x30]
call fcn.1400d25f0
nop
mov r12, rsi
cmp byte [r14 + rsi*4 + 0x17c], 0
je 0x1400d8ac8
lea rdx, [0x1403bf770]
lea rcx, [rbp - 0x20]
call fcn.1400d6fb0
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, eax
mov rcx, rdi
call fcn.1400d6e20
mov rcx, rax
lea rdx, [0x1403bf708]
call fcn.1400d6fb0
mov rcx, rax
lea rdx, [rbp + 0x100]
call fcn.1400d6fb0
mov rcx, rax
lea rdx, [0x1403bf708]
call fcn.1400d6fb0
movzx edx, byte [r14 + rsi*4 + 0x17c]
mov rcx, rax
call fcn.1400d3550
mov rcx, rax
lea rdx, [0x1403bf700]
call fcn.1400d6fb0
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x20]
call fcn.1400d8340
nop
mov qword [rsp + 0x58], r13
movdqa xmm0, xmmword [0x1403c3e30]
movdqu xmmword [rsp + 0x68], xmm0
mov word [rsp + 0x58], r13w
mov dword [rsp + 0x30], 2
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], rax
mov rcx, qword [rbp + 0x58]
mov eax, ecx
and al, 0x22
cmp al, 2
je 0x1400d8b34
mov rax, qword [rbp + 0x28]
mov r8, qword [rax]
test r8, r8
je 0x1400d8b34
mov rax, qword [rbp + 8]
mov rdx, qword [rax]
cmp r8, qword [rbp + 0x50]
cmovb r8, qword [rbp + 0x50]
sub r8, rdx
sar r8, 1
jmp 0x1400d8b69
test cl, 4
jne 0x1400d8b61
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
test rcx, rcx
je 0x1400d8b61
mov rax, qword [rbp]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x38]
movsxd r8, dword [rax]
add r8, r8
sub r8, rdx
add r8, rcx
sar r8, 1
jmp 0x1400d8b69
mov r8, qword [rbp - 0x58]
mov rdx, qword [rbp - 0x60]
test rdx, rdx
je 0x1400d8b79
lea rcx, [rsp + 0x58]
call fcn.1400d8740
nop
mov esi, 1
lea rcx, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea rcx, [rsp + 0x58]
call fcn.1400d9090
lea rdi, [r14 + 0x10]
mov qword [rsp + 0x78], rdi
mov rcx, rdi
call fcn.14012da90
test eax, eax
jne 0x1400d8fae
mov rbx, qword [r14 + 0x60]
mov r15, qword [r14 + 0x68]
cmp rbx, r15
je 0x1400d8cae
nop dword [rax]
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x50], 7
mov word [rsp + 0x38], r13w
or esi, 8
mov dword [rsp + 0x30], esi
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], rax
mov rcx, qword [rbp + 0x58]
mov eax, ecx
and al, 0x22
cmp al, 2
je 0x1400d8c2d
mov rax, qword [rbp + 0x28]
mov r8, qword [rax]
test r8, r8
je 0x1400d8c2d
mov rax, qword [rbp + 8]
mov rdx, qword [rax]
cmp r8, qword [rbp + 0x50]
cmovb r8, qword [rbp + 0x50]
sub r8, rdx
sar r8, 1
jmp 0x1400d8c62
test cl, 4
jne 0x1400d8c5a
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
test rcx, rcx
je 0x1400d8c5a
mov rax, qword [rbp]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x38]
movsxd r8, dword [rax]
add r8, r8
sub r8, rdx
add r8, rcx
sar r8, 1
jmp 0x1400d8c62
mov r8, qword [rbp - 0x58]
mov rdx, qword [rbp - 0x60]
test rdx, rdx
je 0x1400d8c71
lea rcx, [rsp + 0x38]
call fcn.1400d8740
and esi, 0xfffffff7
or esi, 4
mov rcx, qword [rbx + 0x38]
test rcx, rcx
je 0x1400d8fa2
mov rax, qword [rcx]
lea rdx, [rsp + 0x38]
mov rax, qword [rax + 0x10]
call qword [0x1403129f0]
nop
lea rcx, [rsp + 0x38]
call fcn.1400d9090
add rbx, 0x40
cmp rbx, r15
jne 0x1400d8bd0
mov rcx, qword [r14]
test rcx, rcx
je 0x1400d8dd0
lea rdx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x1400d8f63
movzx edx, word [r14 + r12*4 + 0x17a]
mov rcx, qword [r14]
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
test eax, eax
je 0x1400d8f63
mov qword [rsp + 0x38], r13
movdqa xmm0, xmmword [0x1403c3e30]
movdqu xmmword [rsp + 0x48], xmm0
mov word [rsp + 0x38], r13w
or esi, 0x20
mov dword [rsp + 0x30], esi
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov rcx, qword [rbp + 0x58]
mov eax, ecx
and al, 0x22
cmp al, 2
je 0x1400d8d3e
mov rax, qword [rbp + 0x28]
mov r8, qword [rax]
test r8, r8
je 0x1400d8d3e
mov rax, qword [rbp + 8]
mov rdx, qword [rax]
cmp r8, qword [rbp + 0x50]
cmovb r8, qword [rbp + 0x50]
sub r8, rdx
sar r8, 1
jmp 0x1400d8d75
test cl, 4
jne 0x1400d8d6b
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
test rcx, rcx
je 0x1400d8d6b
mov rax, qword [rbp]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x38]
movsxd r8, dword [rax]
add r8, r8
sub r8, rdx
add r8, rcx
sar r8, 1
jmp 0x1400d8d75
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
test rdx, rdx
je 0x1400d8d84
lea rcx, [rsp + 0x38]
call fcn.1400d8740
and esi, 0xffffffdf
or esi, 0x10
lea rdx, [rsp + 0x38]
cmp qword [rsp + 0x50], 8
cmovae rdx, qword [rsp + 0x38]
lea rcx, [0x1403bf7f0]
call fcn.1400d8380
mov ebx, eax
lea rcx, [rsp + 0x38]
call fcn.1400d9090
test ebx, ebx
js 0x1400d8f63
movzx edx, word [rbp - 0x58]
mov rcx, qword [r14]
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
test eax, eax
je 0x1400d8f63
cmp qword [r14 + 8], 0xffffffffffffffff
je 0x1400d8f63
mov qword [rbp - 0x60], r13
movdqa xmm0, xmmword [0x1403c3e30]
movdqu xmmword [rbp - 0x50], xmm0
mov word [rbp - 0x60], r13w
bts esi, 7
mov dword [rsp + 0x30], esi
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov rcx, qword [rbp + 0x58]
mov eax, ecx
and al, 0x22
mov r9, qword [rbp + 0x50]
mov rbx, qword [rbp + 0x38]
mov r10, qword [rbp + 0x20]
mov r12, qword [rbp + 8]
mov r15, qword [rbp]
mov r11, qword [rbp + 0x28]
cmp al, 2
je 0x1400d8e40
mov r8, qword [r11]
test r8, r8
je 0x1400d8e40
mov rdx, qword [r12]
cmp r8, r9
cmovb r8, r9
sub r8, rdx
sar r8, 1
jmp 0x1400d8e6b
test cl, 4
jne 0x1400d8e61
mov rax, qword [r10]
test rax, rax
je 0x1400d8e61
mov rdx, qword [r15]
movsxd r8, dword [rbx]
add r8, r8
sub r8, rdx
add r8, rax
sar r8, 1
jmp 0x1400d8e6b
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
test rdx, rdx
je 0x1400d8e95
lea rcx, [rbp - 0x60]
call fcn.1400d8740
mov rcx, qword [rbp + 0x58]
mov r9, qword [rbp + 0x50]
mov rbx, qword [rbp + 0x38]
mov r11, qword [rbp + 0x28]
mov r10, qword [rbp + 0x20]
mov r12, qword [rbp + 8]
mov r15, qword [rbp]
btr esi, 7
or esi, 0x40
mov eax, dword [rbp - 0x50]
lea r13d, [rax*2 - 2]
xor eax, eax
mov qword [rsp + 0x38], rax
movdqa xmm0, xmmword [0x1403c3e30]
movdqu xmmword [rsp + 0x48], xmm0
mov word [rsp + 0x38], ax
bts esi, 9
mov dword [rsp + 0x30], esi
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov eax, ecx
and al, 0x22
cmp al, 2
je 0x1400d8ef4
mov r8, qword [r11]
test r8, r8
je 0x1400d8ef4
mov rdx, qword [r12]
cmp r8, r9
cmovb r8, r9
sub r8, rdx
sar r8, 1
jmp 0x1400d8f1f
test cl, 4
jne 0x1400d8f15
mov rax, qword [r10]
test rax, rax
je 0x1400d8f15
mov rdx, qword [r15]
movsxd r8, dword [rbx]
add r8, r8
sub r8, rdx
add r8, rax
sar r8, 1
jmp 0x1400d8f1f
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
test rdx, rdx
je 0x1400d8f2f
lea rcx, [rsp + 0x38]
call fcn.1400d8740
nop
lea rdx, [rsp + 0x38]
cmp qword [rsp + 0x50], 8
cmovae rdx, qword [rsp + 0x38]
mov r9b, 1
mov r8, r13
mov rcx, r14
call fcn.1400d83d0
lea rcx, [rsp + 0x38]
call fcn.1400d9090
nop
lea rcx, [rbp - 0x60]
call fcn.1400d9090
nop
mov rcx, rdi
call fcn.14012daa0
nop
lea rcx, [rbp - 0x30]
call fcn.1400d3450
nop
lea rcx, [rbp - 0x80]
call fcn.1400d9090
mov rcx, qword [rbp + 0x180]
xor rcx, rsp
call fcn.1401304f0
add rsp, 0x298
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.14012dcf0
nop
call fcn.1401306a0
nop
mov ecx, eax
call fcn.14012de70
int3