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

Disassembly:
jmp 0x14016e1f0
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 [0x140447638]
xor rax, rbp
mov qword [rbp + 0xf18], rax
lea rcx, reloc.WS2_32.dll_accept
call fcn.14013aa58
movzx eax, byte [0x1403b6b7a]
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 dword [rbp + 0x888], 0
cmp qword [rbp + 0xf48], 0
je 0x14016e295
mov rax, qword [rbp + 0xf48]
movsx eax, byte [rax]
test eax, eax
jne 0x14016e29c
xor eax, eax
jmp 0x14016f267
mov r9, qword [rbp + 0xf50]
mov r8, qword [rbp + 0xf48]
mov edx, 0x806
lea rcx, [rbp + 0x70]
call fcn.140134f0e
mov dword [rbp + 0x888], eax
cmp dword [rbp + 0x888], 0
jl 0x14016e2e3
cmp dword [rbp + 0x888], 0x806
jge 0x14016e2e3
lea rax, [rbp + 0x70]
mov qword [rbp + 0x880], rax
jmp 0x14016e374
mov eax, dword [0x140447390]
add eax, 0xf
lea r8, str.VFPRINTF
mov edx, eax
lea rcx, str.C:Users_rafae_repos_rathena_srccommon_showmsg.cpp
call fcn.140138168
mov qword [rbp + 0x878], rax
mov eax, dword [0x140447390]
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:Users_rafae_repos_rathena_srccommon_showmsg.cpp
call fcn.140135fc6
mov dword [rbp + 0x888], eax
mov rcx, qword [rbp + 0x878]
call fcn.14013446e
mov qword [rbp + 0x880], rax
mov eax, dword [rbp + 0x888]
inc eax
mov edx, eax
lea rcx, str.showmsg:_dynamic_buffer_used__increase_the_static_buffer_size_to__d_or_more._n
call fcn.14013549f
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_GetFileType]
cmp eax, 2
je 0x14016e3be
cmp dword [0x140458bb0], 0
je 0x14016e3be
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 0x14016f267
mov rax, qword [rbp + 0x880]
mov qword [rbp + 0x28], rax
mov edx, 0x1b
mov rcx, qword [rbp + 0x28]
call fcn.14013667e
mov qword [rbp + 0x48], rax
cmp qword [rbp + 0x48], 0
je 0x14016f1d6
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 0x14016e448
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 0x14016e4ba
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 0x14016e4aa
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 0x14016f1d1
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.140138aeb
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.140137655
test eax, eax
je 0x14016e545
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 0x14016e4f5
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x3b
jne 0x14016e5d0
movzx eax, byte [rbp + 0x8d4]
cmp rax, 0x10
jae 0x14016e56f
movzx eax, byte [rbp + 0x8d4]
inc al
mov byte [rbp + 0x8d4], al
jmp 0x14016e5bb
lea rax, [rbp + 0x8a9]
mov r8d, reloc.WS2_32.dll_ntohs
mov rdx, rax
lea rcx, [rbp + 0x8a8]
call fcn.14013b287
mov eax, 1
imul rax, rax, 0xf
mov qword [rbp + 0xf08], rax
cmp qword [rbp + 0xf08], 0x10
jae 0x14016e5a7
jmp 0x14016e5ac
call fcn.140138785
mov rax, qword [rbp + 0xf08]
mov byte [rbp + rax + 0x8a8], 0
mov rax, qword [rbp + 0x48]
inc rax
mov qword [rbp + 0x48], rax
jmp 0x14016e4f5
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x6d
jne 0x14016e920
mov byte [rbp + 0x924], 0
jmp 0x14016e5f8
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 0x14016e907
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
and eax, 0xf0
test eax, eax
jne 0x14016e6c4
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
jne 0x14016e64b
mov eax, 7
mov word [rbp + 0x900], ax
jmp 0x14016e6bf
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
cmp eax, 1
jne 0x14016e672
movzx eax, word [rbp + 0x900]
or eax, 8
mov word [rbp + 0x900], ax
jmp 0x14016e6bf
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
cmp eax, 5
jne 0x14016e69a
movzx eax, word [rbp + 0x900]
bts eax, 7
mov word [rbp + 0x900], ax
jmp 0x14016e6bf
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
cmp eax, 7
jne 0x14016e6bf
movzx eax, word [rbp + 0x900]
xor eax, 0x77
mov word [rbp + 0x900], ax
jmp 0x14016e902
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
and eax, 0xf0
cmp eax, 0x20
jne 0x14016e756
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
cmp eax, 1
jne 0x14016e704
movzx eax, word [rbp + 0x900]
and eax, 0xfffffff7
mov word [rbp + 0x900], ax
jmp 0x14016e751
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
cmp eax, 5
jne 0x14016e72c
movzx eax, word [rbp + 0x900]
btr eax, 7
mov word [rbp + 0x900], ax
jmp 0x14016e751
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
cmp eax, 7
jne 0x14016e751
movzx eax, word [rbp + 0x900]
xor eax, 0x77
mov word [rbp + 0x900], ax
jmp 0x14016e902
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
and eax, 0xf0
cmp eax, 0x30
jne 0x14016e82e
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 0x14016e7a8
movzx eax, word [rbp + 0x900]
or eax, 8
mov word [rbp + 0x900], ax
movzx eax, byte [rbp + 0x944]
cmp eax, 7
jle 0x14016e7bb
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 0x14016e7eb
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 0x14016e80a
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 0x14016e829
movzx eax, word [rbp + 0x900]
or eax, 1
mov word [rbp + 0x900], ax
jmp 0x14016e902
movzx eax, byte [rbp + 0x924]
movzx eax, byte [rbp + rax + 0x8a8]
and eax, 0xf0
cmp eax, 0x40
jne 0x14016e902
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 0x14016e881
movzx eax, word [rbp + 0x900]
bts eax, 7
mov word [rbp + 0x900], ax
movzx eax, byte [rbp + 0x964]
cmp eax, 7
jle 0x14016e894
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 0x14016e8c4
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 0x14016e8e3
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 0x14016e902
movzx eax, word [rbp + 0x900]
or eax, 0x10
mov word [rbp + 0x900], ax
jmp 0x14016e5e9
movzx edx, word [rbp + 0x900]
mov rcx, qword [rbp + 0xf40]
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
jmp 0x14016f1bf
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x4a
jne 0x14016ea6a
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 0x14016e9a1
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 0x14016ea0e
movzx eax, byte [rbp + 0x984]
cmp eax, 2
jne 0x14016e9d9
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 0x14016ea0e
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 0x14016f1bf
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x4b
jne 0x14016eb7f
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 0x14016eade
movsx eax, word [rbp + 0x8fc]
inc eax
mov word [rbp + 0xa44], ax
jmp 0x14016eb1d
movzx eax, byte [rbp + 0xa04]
cmp eax, 2
jne 0x14016eafa
movzx eax, word [rbp + 0x8f8]
mov word [rbp + 0xa44], ax
jmp 0x14016eb1d
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 0x14016f1bf
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x48
je 0x14016eb9b
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x66
jne 0x14016eccb
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
je 0x14016ebe1
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 0x14016ebeb
mov dword [rbp + 0xf14], 0
movzx eax, word [rbp + 0xf14]
mov word [rbp + 0x8fc], ax
movzx eax, byte [rbp + 0x8d4]
test eax, eax
je 0x14016ec57
movzx eax, byte [rbp + 0x8d4]
dec eax
cdqe
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
je 0x14016ec57
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 0x14016ec61
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 0x14016ec91
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 0x14016ecb3
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 0x14016f1bf
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x73
jne 0x14016ecdc
jmp 0x14016f1bf
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x75
jne 0x14016eced
jmp 0x14016f1bf
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x41
jne 0x14016ed8b
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
je 0x14016ed41
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 0x14016ed4b
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 0x14016ed73
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 0x14016f1bf
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x42
jne 0x14016ee37
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
je 0x14016eddf
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 0x14016ede9
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 0x14016ee1f
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 0x14016f1bf
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x43
jne 0x14016eee3
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
je 0x14016ee8b
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 0x14016ee95
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 0x14016eecb
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 0x14016f1bf
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x44
jne 0x14016ef81
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
je 0x14016ef37
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 0x14016ef41
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 0x14016ef69
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 0x14016f1bf
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x45
jne 0x14016f036
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
je 0x14016efd5
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 0x14016efdf
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 0x14016f01e
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 0x14016f1bf
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x46
jne 0x14016f0dd
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
je 0x14016f08a
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 0x14016f094
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 0x14016f0c5
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 0x14016f1bf
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x47
jne 0x14016f182
movzx eax, byte [rbp + 0x8d4]
movzx eax, byte [rbp + rax + 0x8a8]
test eax, eax
je 0x14016f133
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 0x14016f13d
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 0x14016f16d
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 0x14016f1bf
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x4c
je 0x14016f1b2
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x4d
je 0x14016f1b2
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x40
je 0x14016f1b2
mov rax, qword [rbp + 0x48]
movsx eax, byte [rax]
cmp eax, 0x50
jne 0x14016f1b4
jmp 0x14016f1bf
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 0x14016f1d1
jmp 0x14016e3c9
mov rax, qword [rbp + 0x28]
movsx eax, byte [rax]
test eax, eax
je 0x14016f239
mov rcx, qword [rbp + 0x28]
call fcn.1401366c4
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 0x14016f239
mov rcx, qword [rbp + 0x28]
call fcn.1401366c4
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 0x14016f25a
mov rcx, qword [rbp + 0x878]
call fcn.140138d02
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.1401394d7
mov rax, rdi
mov rcx, qword [rbp + 0xf18]
xor rcx, rbp
call fcn.140136af2
lea rsp, [rbp + 0xf28]
pop rdi
pop rbp
ret