Function at 0x14013a0a5
Capabilities:
Manipulate console buffer
Parse credit card information
Write file on windows

Disassembly:
jmp 0x14017b520
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0xf58
lea rbp, [rsp + 0x30]
lea rdi, [rsp + 0x30]
mov ecx, 0x2aa
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0xf78]
mov rax, qword [0x140450380]
xor rax, rbp
mov qword [rbp + 0xf18], rax
lea rcx, reloc.WS2_32.dll_accept
call fcn.14013ce09
movzx eax, byte [0x1403c01ca]
mov byte [rbp + 0x70], al
lea rax, [rbp + 0x71]
mov rdi, rax
xor eax, eax
mov ecx, 0x805
rep stosb byte [rdi], al
mov qword [rbp + 0x878], 0
mov qword [rbp + 0x880], 0
mov qword [rbp + 0x888], 0
cmp qword [rbp + 0xf48], 0
je 0x14017b5c6
mov rax, qword [rbp + 0xf48]
movsx eax, byte [rax]
test eax, eax
jne 0x14017b5cd
xor eax, eax
jmp 0x14017c5a1
mov r9, qword [rbp + 0xf50]
mov r8, qword [rbp + 0xf48]
mov edx, 0x806
lea rcx, [rbp + 0x70]
call fcn.140136fe0
cdqe
mov qword [rbp + 0x888], rax
cmp qword [rbp + 0x888], 0
jb 0x14017b619
cmp qword [rbp + 0x888], 0x806
jae 0x14017b619
lea rax, [rbp + 0x70]
mov qword [rbp + 0x880], rax
jmp 0x14017b6ae
mov eax, dword [0x1404500d8]
add eax, 0xf
lea r8, str.VFPRINTF
mov edx, eax
lea rcx, str.C:UsershagonDesktop_rAthena20240420_rAthena_srccommon_showmsg.cpp
call fcn.14013a42e
mov qword [rbp + 0x878], rax
mov eax, dword [0x1404500d8]
add eax, 0xf
mov rcx, qword [rbp + 0xf50]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rbp + 0xf48]
mov qword [rsp + 0x20], rcx
mov r9, qword [rbp + 0x878]
lea r8, str.VFPRINTF
mov edx, eax
lea rcx, str.C:UsershagonDesktop_rAthena20240420_rAthena_srccommon_showmsg.cpp
call fcn.14013a361
mov qword [rbp + 0x888], rax
mov rcx, qword [rbp + 0x878]
call fcn.1401364d2
mov qword [rbp + 0x880], rax
mov rax, qword [rbp + 0x888]
inc rax
mov rdx, rax
lea rcx, str.showmsg:_dynamic_buffer_used__increase_the_static_buffer_size_to__d_or_more._n
call fcn.140137585
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_GetFileType]
cmp eax, 2
je 0x14017b6f8
cmp dword [0x140463250], 0
je 0x14017b6f8
mov qword [rsp + 0x20], 0
lea r9, [rbp + 4]
mov r8d, dword [rbp + 0x888]
mov rdx, qword [rbp + 0x880]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_WriteFile]
xor eax, eax
jmp 0x14017c5a1
mov rax, qword [rbp + 0x880]
mov qword [rbp + 0x28], rax
mov edx, 0x1b
mov rcx, qword [rbp + 0x28]
call fcn.140138845
mov qword [rbp + 0x48], rax
cmp qword [rbp + 0x48], 0
je 0x14017c510
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x48]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x20], 0
lea r9, [rbp + 4]
mov r8d, eax
mov rdx, qword [rbp + 0x28]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_WriteConsoleA]
test eax, eax
jne 0x14017b782
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x48]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x20], 0
lea r9, [rbp + 4]
mov r8d, eax
mov rdx, qword [rbp + 0x28]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rbp + 0x48]
movsx eax, byte [rcx + rax]
cmp eax, 0x5b
je 0x14017b7f4
mov qword [rsp + 0x20], 0
lea r9, [rbp + 4]
mov r8d, 1
mov rdx, qword [rbp + 0x48]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_WriteConsoleA]
test eax, eax
jne 0x14017b7e4
mov qword [rsp + 0x20], 0
lea r9, [rbp + 4]
mov r8d, 1
mov rdx, qword [rbp + 0x48]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rax, qword [rbp + 0x48]
inc rax
mov qword [rbp + 0x28], rax
jmp 0x14017c50b
mov byte [rbp + 0x8d4], 0
lea rdx, [rbp + 0x8f8]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
mov r8d, reloc.WS2_32.dll_recv
xor edx, edx
lea rcx, [rbp + 0x8a8]
call fcn.14013adde
mov rax, qword [rbp + 0x48]
add rax, 2
mov qword [rbp + 0x48], rax
mov rax, qword [rbp + 0x48]
movzx eax, byte [rax]
mov ecx, eax
call fcn.1401398ad
test eax, eax
je 0x14017b87f
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
shl eax, 4
mov rcx, qword [rbp + 0x48]
movsx ecx, byte [rcx]
sub ecx, 0x30
or eax, ecx
movzx ecx, byte [rbp + 0x8d4]
mov byte [rbp + rcx + 0x8a8], al
mov rax, qword [rbp + 0x48]
inc rax
mov qword [rbp + 0x48], rax
jmp 0x14017b82f
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x3b
jne 0x14017b90a
movzx eax, byte [rbp + 0x8d4]
cmp rax, 0x10
jae 0x14017b8a9
movzx eax, byte [rbp + 0x8d4]
inc al
mov byte [rbp + 0x8d4], al
jmp 0x14017b8f5
lea rax, [rbp + 0x8a9]
mov r8d, reloc.WS2_32.dll_ntohs
mov rdx, rax
lea rcx, [rbp + 0x8a8]
call fcn.14013d688
mov eax, 1
imul rax, rax, 0xf
mov qword [rbp + 0xf08], rax
cmp qword [rbp + 0xf08], 0x10
jae 0x14017b8e1
jmp 0x14017b8e6
call fcn.14013aa64
mov rax, qword [rbp + 0xf08]
mov byte [rbp + rax + 0x8a8], 0
mov rax, qword [rbp + 0x48]
inc rax
mov qword [rbp + 0x48], rax
jmp 0x14017b82f
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x6d
jne 0x14017bc5a
mov byte [rbp + 0x924], 0
jmp 0x14017b932
movzx eax, byte [rbp + 0x924]
inc al
mov byte [rbp + 0x924], al
movzx eax, byte [rbp + 0x924]
movzx ecx, byte [rbp + 0x8d4]
cmp eax, ecx
jg 0x14017bc41
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
and eax, 0xf0
test eax, eax
jne 0x14017b9fe
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
jne 0x14017b985
mov eax, 7
mov word [rbp + 0x900], ax
jmp 0x14017b9f9
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
cmp eax, 1
jne 0x14017b9ac
movzx eax, word [rbp + 0x900]
or eax, 8
mov word [rbp + 0x900], ax
jmp 0x14017b9f9
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
cmp eax, 5
jne 0x14017b9d4
movzx eax, word [rbp + 0x900]
bts eax, 7
mov word [rbp + 0x900], ax
jmp 0x14017b9f9
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
cmp eax, 7
jne 0x14017b9f9
movzx eax, word [rbp + 0x900]
xor eax, 0x77
mov word [rbp + 0x900], ax
jmp 0x14017bc3c
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
and eax, 0xf0
cmp eax, 0x20
jne 0x14017ba90
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
cmp eax, 1
jne 0x14017ba3e
movzx eax, word [rbp + 0x900]
and eax, 0xfffffff7
mov word [rbp + 0x900], ax
jmp 0x14017ba8b
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
cmp eax, 5
jne 0x14017ba66
movzx eax, word [rbp + 0x900]
btr eax, 7
mov word [rbp + 0x900], ax
jmp 0x14017ba8b
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
cmp eax, 7
jne 0x14017ba8b
movzx eax, word [rbp + 0x900]
xor eax, 0x77
mov word [rbp + 0x900], ax
jmp 0x14017bc3c
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
and eax, 0xf0
cmp eax, 0x30
jne 0x14017bb68
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
and eax, 0xf
mov byte [rbp + 0x944], al
movzx eax, byte [rbp + 0x944]
cmp eax, 9
jne 0x14017bae2
movzx eax, word [rbp + 0x900]
or eax, 8
mov word [rbp + 0x900], ax
movzx eax, byte [rbp + 0x944]
cmp eax, 7
jle 0x14017baf5
mov byte [rbp + 0x944], 7
movzx eax, word [rbp + 0x900]
and eax, 0xfffffff8
mov word [rbp + 0x900], ax
movzx eax, byte [rbp + 0x944]
and eax, 1
test eax, eax
jle 0x14017bb25
movzx eax, word [rbp + 0x900]
or eax, 4
mov word [rbp + 0x900], ax
movzx eax, byte [rbp + 0x944]
and eax, 2
test eax, eax
jle 0x14017bb44
movzx eax, word [rbp + 0x900]
or eax, 2
mov word [rbp + 0x900], ax
movzx eax, byte [rbp + 0x944]
and eax, 4
test eax, eax
jle 0x14017bb63
movzx eax, word [rbp + 0x900]
or eax, 1
mov word [rbp + 0x900], ax
jmp 0x14017bc3c
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
and eax, 0xf0
cmp eax, 0x40
jne 0x14017bc3c
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
and eax, 0xf
mov byte [rbp + 0x964], al
movzx eax, byte [rbp + 0x964]
cmp eax, 9
jne 0x14017bbbb
movzx eax, word [rbp + 0x900]
bts eax, 7
mov word [rbp + 0x900], ax
movzx eax, byte [rbp + 0x964]
cmp eax, 7
jle 0x14017bbce
mov byte [rbp + 0x964], 7
movzx eax, word [rbp + 0x900]
and eax, 0xffffff8f
mov word [rbp + 0x900], ax
movzx eax, byte [rbp + 0x964]
and eax, 1
test eax, eax
jle 0x14017bbfe
movzx eax, word [rbp + 0x900]
or eax, 0x40
mov word [rbp + 0x900], ax
movzx eax, byte [rbp + 0x964]
and eax, 2
test eax, eax
jle 0x14017bc1d
movzx eax, word [rbp + 0x900]
or eax, 0x20
mov word [rbp + 0x900], ax
movzx eax, byte [rbp + 0x964]
and eax, 4
test eax, eax
jle 0x14017bc3c
movzx eax, word [rbp + 0x900]
or eax, 0x10
mov word [rbp + 0x900], ax
jmp 0x14017b923
movzx edx, word [rbp + 0x900]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
jmp 0x14017c4f9
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x4a
jne 0x14017bda4
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
sar eax, 4
imul eax, eax, 0xa
movzx ecx, byte [rbp + 0x8d4]
movzx ecx, byte [rbp + rcx + 0x8a8]
and ecx, 0xf
add eax, ecx
mov byte [rbp + 0x984], al
xor eax, eax
mov word [rbp + 0x9e4], ax
xor eax, eax
mov word [rbp + 0x9e6], ax
movzx eax, byte [rbp + 0x984]
cmp eax, 1
jne 0x14017bcdb
movsx eax, word [rbp + 0x8f8]
movsx ecx, word [rbp + 0x8fe]
imul eax, ecx
movsx ecx, word [rbp + 0x8fc]
lea eax, [rax + rcx + 1]
mov dword [rbp + 0x9a4], eax
jmp 0x14017bd48
movzx eax, byte [rbp + 0x984]
cmp eax, 2
jne 0x14017bd13
movsx eax, word [rbp + 0x8f8]
movsx ecx, word [rbp + 0x8fa]
imul eax, ecx
mov dword [rbp + 0x9a4], eax
mov edx, dword [rbp + 0x9e4]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp 0x14017bd48
mov eax, dword [rbp + 0x8fc]
mov dword [rbp + 0x9e4], eax
movsx eax, word [rbp + 0x8f8]
movsx ecx, word [rbp + 0x8fa]
movsx edx, word [rbp + 0x8fe]
sub ecx, edx
imul eax, ecx
movsx ecx, word [rbp + 0x8fc]
sub eax, ecx
mov dword [rbp + 0x9a4], eax
lea rax, [rbp + 0x9c4]
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp + 0x9e4]
mov r8d, dword [rbp + 0x9a4]
movzx edx, word [rbp + 0x900]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
lea rax, [rbp + 0x9c4]
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp + 0x9e4]
mov r8d, dword [rbp + 0x9a4]
mov dl, 0x20
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterA]
jmp 0x14017c4f9
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x4b
jne 0x14017beb9
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
sar eax, 4
imul eax, eax, 0xa
movzx ecx, byte [rbp + 0x8d4]
movzx ecx, byte [rbp + rcx + 0x8a8]
and ecx, 0xf
add eax, ecx
mov byte [rbp + 0xa04], al
xor eax, eax
mov word [rbp + 0xa24], ax
movzx eax, word [rbp + 0x8fe]
mov word [rbp + 0xa26], ax
movzx eax, byte [rbp + 0xa04]
cmp eax, 1
jne 0x14017be18
movsx eax, word [rbp + 0x8fc]
inc eax
mov word [rbp + 0xa44], ax
jmp 0x14017be57
movzx eax, byte [rbp + 0xa04]
cmp eax, 2
jne 0x14017be34
movzx eax, word [rbp + 0x8f8]
mov word [rbp + 0xa44], ax
jmp 0x14017be57
mov eax, dword [rbp + 0x8fc]
mov dword [rbp + 0xa24], eax
movsx eax, word [rbp + 0x8f8]
movsx ecx, word [rbp + 0x8fc]
sub eax, ecx
mov word [rbp + 0xa44], ax
movsx eax, word [rbp + 0xa44]
lea rcx, [rbp + 0xa64]
mov qword [rsp + 0x20], rcx
mov r9d, dword [rbp + 0xa24]
mov r8d, eax
movzx edx, word [rbp + 0x900]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
movsx eax, word [rbp + 0xa44]
lea rcx, [rbp + 0xa64]
mov qword [rsp + 0x20], rcx
mov r9d, dword [rbp + 0xa24]
mov r8d, eax
mov dl, 0x20
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterA]
jmp 0x14017c4f9
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x48
je 0x14017bed5
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x66
jne 0x14017c005
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
je 0x14017bf1b
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
sar eax, 4
imul eax, eax, 0xa
movzx ecx, byte [rbp + 0x8d4]
movzx ecx, byte [rbp + rcx + 0x8a8]
and ecx, 0xf
lea eax, [rax + rcx - 1]
mov dword [rbp + 0xf14], eax
jmp 0x14017bf25
mov dword [rbp + 0xf14], 0
movzx eax, word [rbp + 0xf14]
mov word [rbp + 0x8fc], ax
movzx eax, byte [rbp + 0x8d4]
test eax, eax
je 0x14017bf91
movzx eax, byte [rbp + 0x8d4]
dec eax
cdqe
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
je 0x14017bf91
movzx eax, byte [rbp + 0x8d4]
dec eax
cdqe
movzx eax, byte [rbp + rax + 0x8a8]
sar eax, 4
imul eax, eax, 0xa
movzx ecx, byte [rbp + 0x8d4]
dec ecx
movsxd rcx, ecx
movzx ecx, byte [rbp + rcx + 0x8a8]
and ecx, 0xf
lea eax, [rax + rcx - 1]
mov dword [rbp + 0xf14], eax
jmp 0x14017bf9b
mov dword [rbp + 0xf14], 0
movzx eax, word [rbp + 0xf14]
mov word [rbp + 0x8fe], ax
movsx eax, word [rbp + 0x8fc]
movsx ecx, word [rbp + 0x8f8]
cmp eax, ecx
jl 0x14017bfcb
movsx eax, word [rbp + 0x8f8]
dec eax
mov word [rbp + 0x8fe], ax
movsx eax, word [rbp + 0x8fe]
movsx ecx, word [rbp + 0x8fa]
cmp eax, ecx
jl 0x14017bfed
movsx eax, word [rbp + 0x8fa]
dec eax
mov word [rbp + 0x8fe], ax
mov edx, dword [rbp + 0x8fc]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp 0x14017c4f9
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x73
jne 0x14017c016
jmp 0x14017c4f9
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x75
jne 0x14017c027
jmp 0x14017c4f9
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x41
jne 0x14017c0c5
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
je 0x14017c07b
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
sar eax, 4
imul eax, eax, 0xa
movzx ecx, byte [rbp + 0x8d4]
movzx ecx, byte [rbp + rcx + 0x8a8]
and ecx, 0xf
add eax, ecx
mov dword [rbp + 0xf14], eax
jmp 0x14017c085
mov dword [rbp + 0xf14], 1
movsx eax, word [rbp + 0x8fe]
sub eax, dword [rbp + 0xf14]
mov word [rbp + 0x8fe], ax
movsx eax, word [rbp + 0x8fe]
test eax, eax
jge 0x14017c0ad
xor eax, eax
mov word [rbp + 0x8fe], ax
mov edx, dword [rbp + 0x8fc]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp 0x14017c4f9
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x42
jne 0x14017c171
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
je 0x14017c119
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
sar eax, 4
imul eax, eax, 0xa
movzx ecx, byte [rbp + 0x8d4]
movzx ecx, byte [rbp + rcx + 0x8a8]
and ecx, 0xf
add eax, ecx
mov dword [rbp + 0xf14], eax
jmp 0x14017c123
mov dword [rbp + 0xf14], 1
movsx eax, word [rbp + 0x8fe]
add eax, dword [rbp + 0xf14]
mov word [rbp + 0x8fe], ax
movsx eax, word [rbp + 0x8fe]
movsx ecx, word [rbp + 0x8fa]
cmp eax, ecx
jl 0x14017c159
movsx eax, word [rbp + 0x8fa]
dec eax
mov word [rbp + 0x8fe], ax
mov edx, dword [rbp + 0x8fc]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp 0x14017c4f9
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x43
jne 0x14017c21d
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
je 0x14017c1c5
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
sar eax, 4
imul eax, eax, 0xa
movzx ecx, byte [rbp + 0x8d4]
movzx ecx, byte [rbp + rcx + 0x8a8]
and ecx, 0xf
add eax, ecx
mov dword [rbp + 0xf14], eax
jmp 0x14017c1cf
mov dword [rbp + 0xf14], 1
movsx eax, word [rbp + 0x8fc]
add eax, dword [rbp + 0xf14]
mov word [rbp + 0x8fc], ax
movsx eax, word [rbp + 0x8fc]
movsx ecx, word [rbp + 0x8f8]
cmp eax, ecx
jl 0x14017c205
movsx eax, word [rbp + 0x8f8]
dec eax
mov word [rbp + 0x8fc], ax
mov edx, dword [rbp + 0x8fc]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp 0x14017c4f9
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x44
jne 0x14017c2bb
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
je 0x14017c271
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
sar eax, 4
imul eax, eax, 0xa
movzx ecx, byte [rbp + 0x8d4]
movzx ecx, byte [rbp + rcx + 0x8a8]
and ecx, 0xf
add eax, ecx
mov dword [rbp + 0xf14], eax
jmp 0x14017c27b
mov dword [rbp + 0xf14], 1
movsx eax, word [rbp + 0x8fc]
sub eax, dword [rbp + 0xf14]
mov word [rbp + 0x8fc], ax
movsx eax, word [rbp + 0x8fc]
test eax, eax
jge 0x14017c2a3
xor eax, eax
mov word [rbp + 0x8fc], ax
mov edx, dword [rbp + 0x8fc]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp 0x14017c4f9
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x45
jne 0x14017c370
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
je 0x14017c30f
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
sar eax, 4
imul eax, eax, 0xa
movzx ecx, byte [rbp + 0x8d4]
movzx ecx, byte [rbp + rcx + 0x8a8]
and ecx, 0xf
add eax, ecx
mov dword [rbp + 0xf14], eax
jmp 0x14017c319
mov dword [rbp + 0xf14], 1
movsx eax, word [rbp + 0x8fe]
add eax, dword [rbp + 0xf14]
mov word [rbp + 0x8fe], ax
xor eax, eax
mov word [rbp + 0x8fc], ax
movsx eax, word [rbp + 0x8fe]
movsx ecx, word [rbp + 0x8fa]
cmp eax, ecx
jl 0x14017c358
movsx eax, word [rbp + 0x8fa]
dec eax
mov word [rbp + 0x8fe], ax
mov edx, dword [rbp + 0x8fc]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp 0x14017c4f9
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x46
jne 0x14017c417
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
je 0x14017c3c4
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
sar eax, 4
imul eax, eax, 0xa
movzx ecx, byte [rbp + 0x8d4]
movzx ecx, byte [rbp + rcx + 0x8a8]
and ecx, 0xf
add eax, ecx
mov dword [rbp + 0xf14], eax
jmp 0x14017c3ce
mov dword [rbp + 0xf14], 1
movsx eax, word [rbp + 0x8fe]
sub eax, dword [rbp + 0xf14]
mov word [rbp + 0x8fe], ax
xor eax, eax
mov word [rbp + 0x8fc], ax
movsx eax, word [rbp + 0x8fe]
test eax, eax
jge 0x14017c3ff
xor eax, eax
mov word [rbp + 0x8fe], ax
mov edx, dword [rbp + 0x8fc]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp 0x14017c4f9
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x47
jne 0x14017c4bc
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
je 0x14017c46d
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
sar eax, 4
imul eax, eax, 0xa
movzx ecx, byte [rbp + 0x8d4]
movzx ecx, byte [rbp + rcx + 0x8a8]
and ecx, 0xf
lea eax, [rax + rcx - 1]
mov dword [rbp + 0xf14], eax
jmp 0x14017c477
mov dword [rbp + 0xf14], 0
movzx eax, word [rbp + 0xf14]
mov word [rbp + 0x8fc], ax
movsx eax, word [rbp + 0x8fc]
movsx ecx, word [rbp + 0x8f8]
cmp eax, ecx
jl 0x14017c4a7
movsx eax, word [rbp + 0x8f8]
dec eax
mov word [rbp + 0x8fc], ax
mov edx, dword [rbp + 0x8fc]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp 0x14017c4f9
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x4c
je 0x14017c4ec
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x4d
je 0x14017c4ec
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x40
je 0x14017c4ec
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x50
jne 0x14017c4ee
jmp 0x14017c4f9
mov rax, qword [rbp + 0x48]
dec rax
mov qword [rbp + 0x48], rax
mov rax, qword [rbp + 0x48]
inc rax
mov qword [rbp + 0x28], rax
jmp 0x14017c50b
jmp 0x14017b703
mov rax, qword [rbp + 0x28]
movsx eax, byte [rax]
test eax, eax
je 0x14017c573
mov rcx, qword [rbp + 0x28]
call fcn.140138890
mov qword [rsp + 0x20], 0
lea r9, [rbp + 4]
mov r8d, eax
mov rdx, qword [rbp + 0x28]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_WriteConsoleA]
test eax, eax
jne 0x14017c573
mov rcx, qword [rbp + 0x28]
call fcn.140138890
mov qword [rsp + 0x20], 0
lea r9, [rbp + 4]
mov r8d, eax
mov rdx, qword [rbp + 0x28]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp qword [rbp + 0x878], 0
je 0x14017c594
mov rcx, qword [rbp + 0x878]
call fcn.14013b00e
mov qword [rbp + 0x878], 0
mov qword [rbp + 0x880], 0
xor eax, eax
mov rdi, rax
lea rcx, [rbp - 0x30]
lea rdx, reloc.WS2_32.dll_htonl
call fcn.14013b80b
mov rax, rdi
mov rcx, qword [rbp + 0xf18]
xor rcx, rbp
call fcn.140138cb9
lea rsp, [rbp + 0xf28]
pop rdi
pop rbp
ret