Function at 0x1400d4060
Capabilities:
Clear file content

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov edi, dword [rsp + 0xb8]
mov ebp, r9d
mov r13, rcx
mov esi, 4
test edi, edi
je 0x1400d565b
mov r14, qword [rsp + 0xb0]
lea r12, [0x1400f97e4]
dec edi
mov rbx, qword [r14]
mov r8d, dword [rbx + 0x10]
test r8d, r8d
je 0x1400d40e7
sub r8d, 1
je 0x1400d40cd
sub r8d, 1
je 0x1400d40cd
sub r8d, 2
je 0x1400d40d2
cmp r8d, 1
je 0x1400d40e7
mov rbx, r12
jmp 0x1400d40ea
mov rcx, qword [rbx]
xor r8d, r8d
mov edx, 1
call fcn.1400017a0
mov rbx, rax
jmp 0x1400d40ea
mov rbx, qword [rbx]
mov r8, rsi
lea rdx, str.Read
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
xor r9d, r9d
mov edx, 2
mov r15d, 8
test eax, eax
jne 0x1400d4145
cmp word [rbx + 8], r9w
lea rcx, [rbx + 8]
jne 0x1400d4124
mov esi, 1
jmp 0x1400d42c6
lea rdx, str.Line
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
mov esi, 5
mov eax, 3
cmove esi, eax
jmp 0x1400d42be
mov r8d, 5
lea rdx, str.Write
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
test eax, eax
jne 0x1400d419a
cmp word [rbx + 0xa], ax
lea rcx, [rbx + 0xa]
jne 0x1400d4175
mov edx, 2
mov esi, edx
jmp 0x1400d42c3
lea rdx, str.Line
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
xor r9d, r9d
mov edx, 2
mov ecx, r9d
test eax, eax
setne cl
lea esi, [rcx + 4]
jmp 0x1400d42c6
lea rdx, str.RawRead
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400d41b8
mov esi, 6
jmp 0x1400d42be
lea rdx, str.RawWrite
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400d41d6
mov esi, 6
jmp 0x1400d42be
lea rdx, [0x140111a20]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x1400d42bb
lea rdx, str.Length
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400d420c
mov esi, 9
jmp 0x1400d42be
lea rdx, str.AtEOF
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400d422a
mov esi, 0xa
jmp 0x1400d42be
lea rdx, str.__Handle
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400d4245
mov esi, reloc.WSOCK32.dll_inet_ntoa
jmp 0x1400d42be
lea rdx, str.Encoding
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400d4260
mov esi, reloc.WSOCK32.dll_ioctlsocket
jmp 0x1400d42be
lea rdx, str.Close
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400d427b
mov esi, ntohs
jmp 0x1400d42be
lea rdx, str.Position
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x1400d42bb
lea rdx, str.Seek
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x1400d42bb
lea rdx, str.Tell
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400d565b
mov esi, r15d
mov edx, 2
xor r9d, r9d
test bpl, 2
jne 0x1400d42e0
cmp esi, 7
jb 0x1400d5654
and ebp, 1
cmp edi, ebp
jne 0x1400d5654
mov rbp, qword [rsp + 0x98]
lea eax, [rsi - 1]
mov dword [rbp + 0x10], 1
lea r15, [rbp + 0x10]
cmp eax, 0xc
ja case.0x1400d4312.7
cdqe
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0xd5678]
add rax, rcx
jmp rax
movzx eax, word [rbx]
mov r12d, 0xffdf
sub ax, 0x52
mov ebp, r9d
test r12w, ax
sete al
movzx r13d, al
xor r13, 1
mov byte [rsp + 0xb8], al
add r13, 4
lea r13, [rbx + r13*2]
movzx ebx, word [r13]
mov ecx, ebx
test ebx, 0xffffff80
jne 0x1400d435f
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
test eax, eax
je 0x1400d435f
and bx, r12w
cmp bx, 0x55
jne 0x1400d4369
add r13, 2
movzx esi, word [r13]
mov ecx, esi
test esi, 0xffffff80
jne 0x1400d438b
mov edx, 2
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
test eax, eax
je 0x1400d438b
and si, r12w
movzx eax, si
add eax, 0xffffffbd
cmp eax, 0x10
ja case.0x1400d43ad.69
lea rcx, [0x140000000]
cdqe
mov edx, dword [rcx + rax*4 + 0xd56ac]
add rdx, rcx
jmp rdx
mov edx, getservbyport
mov rcx, r13
call qword [sym.imp.VCRUNTIME140.dll_wcschr]
test rax, rax
mov esi, 8
mov eax, 4
cmove esi, eax
xor ebp, ebp
jmp 0x1400d43fb
mov r12d, 2
mov esi, r12d
jmp 0x1400d4401
mov esi, 1
jmp 0x1400d43fb
mov esi, 8
jmp 0x1400d43fb
mov esi, 8
jmp 0x1400d43f6
mov esi, 4
mov ebp, 1
mov r12d, 2
cmp byte [rsp + 0xb8], 0
je 0x1400d4502
mov rcx, qword [rsp + 0x90]
lea rdx, [rsp + 0x30]
add rcx, 0x10
mov qword [rsp + 0x30], 0
mov r8d, esi
call fcn.1400d38d0
test eax, eax
je case.0x1400d43ad.69
test ebp, ebp
je 0x1400d4483
cmp esi, 4
jne 0x1400d4464
movss xmm0, dword [rsp + 0x30]
mov eax, 1
mov rdx, qword [rsp + 0x98]
cvtps2pd xmm0, xmm0
mov dword [r15], r12d
movsd qword [rdx], xmm0
jmp 0x1400d565d
mov rdx, qword [rsp + 0x98]
mov eax, 1
movsd xmm0, qword [rsp + 0x30]
mov dword [r15], r12d
movsd qword [rdx], xmm0
jmp 0x1400d565d
cmp bx, 0x55
je 0x1400d44e8
sub esi, 1
je 0x1400d44cd
sub esi, 1
je 0x1400d44b2
cmp esi, 2
jne 0x1400d44e8
movsxd rax, dword [rsp + 0x30]
mov rdx, qword [rsp + 0x98]
mov qword [rdx], rax
mov eax, 1
jmp 0x1400d565d
movsx rax, word [rsp + 0x30]
mov rdx, qword [rsp + 0x98]
mov qword [rdx], rax
mov eax, 1
jmp 0x1400d565d
movsx rax, byte [rsp + 0x30]
mov rdx, qword [rsp + 0x98]
mov qword [rdx], rax
mov eax, 1
jmp 0x1400d565d
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x98]
mov qword [rdx], rax
mov eax, 1
jmp 0x1400d565d
cmp edi, 1
jne case.0x1400d43ad.69
mov rcx, qword [r14 + 8]
test ebp, ebp
je 0x1400d45ad
mov edx, dword [rcx + 0x10]
sub edx, edi
je 0x1400d4587
sub edx, edi
je 0x1400d4566
sub edx, 2
je 0x1400d4551
sub edx, edi
je 0x1400d4534
cmp edx, edi
jne 0x1400d4547
xorps xmm0, xmm0
jmp 0x1400d458f
mov rax, qword [rcx + 8]
test rax, rax
je 0x1400d4547
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rax]
jmp 0x1400d458f
mov rcx, qword [rcx]
call fcn.140033dc0
jmp 0x1400d458f
mov rcx, qword [rcx]
cmp byte [rcx + 0x23], 0
jne 0x1400d455e
mov rcx, qword [rcx + 0x10]
movzx eax, byte [rcx + 0x21]
test al, 0x20
je 0x1400d456c
movsd xmm0, qword [rcx]
jmp 0x1400d458f
test al, 0x10
jne 0x1400d4587
xor r8d, r8d
mov edx, 1
call fcn.1400017a0
mov rcx, rax
call fcn.140033dc0
jmp 0x1400d458f
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rcx]
movsd qword [rsp + 0x30], xmm0
cmp esi, 4
jne 0x1400d4687
cvtsd2ss xmm0, xmm0
movss dword [rsp + 0x30], xmm0
jmp 0x1400d4687
cmp esi, 8
jne 0x1400d4616
cmp bx, 0x55
jne 0x1400d4616
mov edx, dword [rcx + 0x10]
lea eax, [rdx - 1]
cmp eax, 1
jbe 0x1400d4616
test edx, edx
je 0x1400d4609
sub edx, 1
je 0x1400d45db
sub edx, 1
je 0x1400d45db
sub edx, 2
je 0x1400d45ef
cmp edx, 1
je 0x1400d4609
lea rax, [0x1400f97e4]
mov rcx, rax
call fcn.1400669e0
jmp 0x1400d4682
mov rcx, qword [rcx]
xor r8d, r8d
mov edx, 1
call fcn.1400017a0
mov rcx, rax
call fcn.1400669e0
jmp 0x1400d4682
mov rax, qword [rcx]
mov rcx, rax
call fcn.1400669e0
jmp 0x1400d4682
mov edx, dword [rcx + 0x10]
sub edx, 1
je 0x1400d467f
sub edx, 1
je 0x1400d4678
sub edx, 2
je 0x1400d464e
sub edx, 1
je 0x1400d4636
cmp edx, 1
jne 0x1400d4644
xor eax, eax
jmp 0x1400d4682
mov rax, qword [rcx + 8]
test rax, rax
je 0x1400d4644
mov rax, qword [rax]
jmp 0x1400d4682
mov rcx, qword [rcx]
call fcn.140005d80
jmp 0x1400d4682
mov rcx, qword [rcx]
cmp byte [rcx + 0x23], 0
jne 0x1400d465b
mov rcx, qword [rcx + 0x10]
test byte [rcx + 0x21], 0x10
jne 0x1400d467f
xor r8d, r8d
mov edx, 1
call fcn.1400017a0
mov rcx, rax
call fcn.140005d80
jmp 0x1400d4682
cvttsd2si rax, qword [rcx]
jmp 0x1400d4682
mov rax, qword [rcx]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x90]
lea rdx, [rsp + 0x30]
add rcx, 0x10
mov r8d, esi
call fcn.1400d3ce0
mov ecx, eax
test eax, eax
jne 0x1400d46ba
mov rax, qword [0x14012f240]
test byte [rax + 0x140], 1
jne case.0x1400d43ad.69
mov rdx, qword [rsp + 0x98]
mov eax, 1
mov qword [rdx], rcx
jmp 0x1400d565d
cmp edi, 1
jg case.0x1400d4312.7
test edi, edi
je 0x1400d476d
mov rbx, qword [r14 + 8]
mov ecx, dword [rbx + 0x10]
sub ecx, 1
je 0x1400d4768
sub ecx, 1
je 0x1400d4761
sub ecx, 2
je 0x1400d4729
sub ecx, 1
je 0x1400d4708
cmp ecx, 1
jne 0x1400d4719
mov rbx, r9
jmp 0x1400d47e1
mov rax, qword [rbx + 8]
test rax, rax
je 0x1400d4719
mov rbx, qword [rax]
jmp 0x1400d47e1
mov rcx, qword [rbx]
call fcn.140005d80
mov rbx, rax
jmp 0x1400d47e1
mov rcx, qword [rbx]
cmp byte [rcx + 0x23], 0
jne 0x1400d4736
mov rcx, qword [rcx + 0x10]
test byte [rcx + 0x21], 0x10
je 0x1400d4744
mov rbx, qword [rcx]
jmp 0x1400d47e1
xor r8d, r8d
mov edx, 1
call fcn.1400017a0
mov rcx, rax
call fcn.140005d80
mov rbx, rax
jmp 0x1400d47e1
cvttsd2si rbx, qword [rbx]
jmp 0x1400d47e1
mov rbx, qword [rbx]
jmp 0x1400d47e1
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + reloc.WSOCK32.dll_getservbyport]
cmp qword [r13 + 0x40], 0
mov rsi, rax
jne 0x1400d47a3
cmp dword [r13 + 0x1c], 0
je 0x1400d47a3
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + 0x30]
mov rdi, rax
mov eax, dword [r13 + 0x1c]
add rdi, rax
cmp rdi, rsi
jg 0x1400d47a6
mov rdi, rsi
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + 0x30]
mov rdx, rax
cmp rax, 0xffffffffffffffff
jne 0x1400d47bf
mov rbx, rax
jmp 0x1400d47dd
mov rcx, qword [r13 + 0x40]
test rcx, rcx
je 0x1400d47d5
sub rcx, qword [r13 + 0x48]
mov eax, dword [r13 + 0x1c]
sub rcx, rax
jmp 0x1400d47d9
mov ecx, dword [r13 + 0x1c]
lea rbx, [rdx + rcx]
sub edi, ebx
mov ebx, edi
mov ecx, 0xffffffff
cmp ebx, ecx
je case.0x1400d4312.7
mov esi, ebx
lea rdi, [rsi + rsi]
cmp rsi, 0xff
ja 0x1400d4803
mov rax, qword [rbp + 8]
jmp 0x1400d481e
lea rcx, [rdi + 2]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rbp + 0x18], rax
test rax, rax
je case.0x1400d4312.7
mov qword [rbp + 8], rsi
mov qword [rbp], rax
lea rcx, [r13 + 0x10]
mov r8d, ebx
xor ebp, ebp
mov rbx, qword [rsp + 0x98]
xor r9d, r9d
mov word [rdi + rax], bp
mov rdx, qword [rbx]
call fcn.1400d3550
mov ecx, eax
mov rax, qword [rbx]
mov dword [r15], ebp
mov word [rax + rcx*2], bp
mov eax, 1
mov qword [rbx + 8], rcx
jmp 0x1400d565d
test edi, edi
jne case.0x1400d4312.7
mov ecx, 0x20002
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rbp + 0x18], rax
test rax, rax
je case.0x1400d4312.7
mov qword [rbp + 8], 0x10000
add r13, 0x10
mov qword [rbp], rax
xor r12d, r12d
mov word [rax + 0x20000], r12w
mov r15, qword [rbp]
mov r8d, dword [r13 + 0xc]
mov dword [rsp + 0x38], 1
test r8d, r8d
je 0x1400d48c4
cmp qword [r13 + 0x30], r12
jne 0x1400d48c4
mov rax, qword [r13]
mov rcx, r13
mov rdx, qword [r13 + 0x38]
call qword [rax + 0x20]
mov dword [r13 + 0xc], r12d
mov edi, dword [r13 + 0x14]
mov esi, r12d
cmp edi, 0x4b0
mov word [r13 + 0x2c], r12w
mov ebx, r12d
mov dword [rsp + 0x3c], edi
sete sil
mov ebp, 0xfffd
inc esi
mov dword [rsp + 0x40], esi
mov ecx, esi
nop
mov edx, ecx
mov rcx, r13
call fcn.1400d3220
test al, al
jne 0x1400d4908
cmp dword [r13 + 0xc], r12d
je 0x1400d4b88
mov r14d, dword [r13 + 0xc]
mov ecx, esi
add r14, qword [r13 + 0x38]
mov rsi, qword [r13 + 0x30]
mov dword [rsp + 0x30], ecx
cmp edi, 0x4b0
jne 0x1400d4939
movzx eax, r14b
sub al, sil
test al, 1
je 0x1400d4939
dec r14
cmp r14, rsi
je 0x1400d4b77
cmp rsi, r14
jae 0x1400d4b1b
cmp ebx, 0xffff
jae 0x1400d4b59
cmp edi, 0x4b0
jne 0x1400d49a4
movzx ecx, word [rsi]
mov ebp, 2
cmp cx, 0xd
jne 0x1400d4997
lea rax, [rsi + 4]
cmp rax, r14
ja 0x1400d498d
cmp word [rsi + 2], 0xa
jne 0x1400d4997
test byte [r13 + 8], 4
jne 0x1400d4b01
mov eax, ebx
mov word [r15 + rax*2], ntohs
jmp 0x1400d4aff
cmp dword [r13 + 0x10], r12d
jne 0x1400d4b26
mov word [rsp + 0xb8], cx
jmp 0x1400d4a85
movsx edx, byte [rsi]
mov ebp, 1
cmp dl, 0x80
jae 0x1400d49e0
cmp dl, 0xd
jne 0x1400d49d0
lea rax, [rsi + 1]
cmp rax, r14
jae 0x1400d49c6
cmp byte [rax], 0xa
jne 0x1400d49d0
jmp 0x1400d4974
cmp dword [r13 + 0x10], r12d
jne 0x1400d4b2d
movzx ecx, dx
mov word [rsp + 0xb8], dx
jmp 0x1400d4a85
cmp edi, 0xfde9
jne 0x1400d4a31
movzx eax, dl
and al, 0xe0
cmp al, 0xc0
jne 0x1400d49fa
mov ecx, 2
mov ebp, ecx
jmp 0x1400d4a43
movzx eax, dl
and al, 0xf0
cmp al, 0xe0
jne 0x1400d4a0f
mov ebp, 3
mov ecx, 2
jmp 0x1400d4a43
and dl, 0xf8
cmp dl, 0xf0
jne 0x1400d4a23
mov ebp, 4
mov ecx, 2
jmp 0x1400d4a43
mov eax, ebx
mov word [r15 + rax*2], 0xfffd
jmp 0x1400d4aff
mov rcx, r13
call fcn.1400d3330
test al, al
mov ecx, 2
cmovne ebp, ecx
mov eax, ebp
add rax, rsi
cmp rax, r14
ja 0x1400d4b34
mov dword [rsp + 0x28], ecx
lea rax, [rsp + 0xb8]
mov ecx, edi
mov qword [rsp + 0x20], rax
mov r9d, ebp
mov r8, rsi
mov edx, 8
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rcx, eax
cmp ecx, 1
jne 0x1400d4ac2
movzx ecx, word [rsp + 0xb8]
cmp cx, 0xd
jne 0x1400d4aa3
test byte [r13 + 8], 8
je 0x1400d4ab9
mov edx, 0xa
mov ecx, edx
mov word [rsp + 0xb8], dx
jmp 0x1400d4aae
cmp cx, 0xa
jne 0x1400d4ab9
mov edx, 0xa
sub dword [rsp + 0x38], 1
je 0x1400d4b99
mov eax, ebx
mov word [r15 + rax*2], cx
jmp 0x1400d4aff
mov eax, ebx
lea r9, [r15 + rax*2]
test ecx, ecx
je 0x1400d4af9
lea edi, [rcx + rbx]
cmp edi, 0xffff
ja 0x1400d4bba
mov r8, rcx
lea rdx, [rsp + 0xb8]
add r8, r8
mov rcx, r9
call sub.VCRUNTIME140.dll_memcpy
mov ebx, edi
mov edi, dword [rsp + 0x3c]
jmp 0x1400d4b01
mov word [r9], 0xfffd
inc ebx
mov eax, ebp
add rsi, rax
cmp rsi, r14
jb 0x1400d4942
mov ecx, dword [rsp + 0x30]
mov ebp, 0xfffd
cmp rsi, r14
jne 0x1400d4b62
mov dword [r13 + 0xc], r12d
mov rsi, r12
jmp 0x1400d4b62
mov ecx, 4
jmp 0x1400d4b13
mov ecx, 2
jmp 0x1400d4b13
cmp dword [r13 + 0x10], r12d
jne 0x1400d4b55
mov ecx, dword [rsp + 0x30]
mov ebp, 0xfffd
mov eax, ebx
mov rsi, r12
mov dword [r13 + 0xc], r12d
inc ebx
mov word [r15 + rax*2], bp
jmp 0x1400d4b18
mov ecx, ebp
jmp 0x1400d4b13
mov ecx, dword [rsp + 0x30]
mov ebp, 0xfffd
mov qword [r13 + 0x30], rsi
cmp ebx, 0xffff
jae 0x1400d4bc2
mov esi, dword [rsp + 0x40]
jmp 0x1400d48f0
mov eax, ebx
inc ebx
mov qword [r13 + 0x30], r12
mov dword [r13 + 0xc], r12d
mov word [r15 + rax*2], bp
cmp ebx, 0xffff
jae 0x1400d4bc2
mov eax, ebx
mov word [r15 + rax*2], r12w
jmp 0x1400d4bc2
mov eax, ebx
inc ebx
mov word [r15 + rax*2], dx
mov eax, ebp
add rax, rsi
mov qword [r13 + 0x30], rax
cmp ebx, 0xffff
jae 0x1400d4bc2
mov word [r15 + rbx*2], r12w
jmp 0x1400d4bc2
mov qword [r13 + 0x30], rsi
mov word [r9], r12w
mov rdx, qword [rsp + 0x98]
mov ecx, ebx
mov rax, qword [rdx]
mov dword [rdx + 0x10], r12d
mov word [rax + rcx*2], r12w
mov eax, 1
mov qword [rdx + 8], rcx
jmp 0x1400d565d
cmp edi, 1
jg case.0x1400d4312.7
mov r15, qword [rsp + 0x98]
mov ebp, r9d
mov ebx, r9d
test edi, edi
je 0x1400d4ca0
mov rdx, qword [r15 + 8]
mov rcx, qword [r14 + 8]
call fcn.140098ab0
mov rbx, qword [r14 + 8]
mov rdi, rax
cmp dword [rbx + 0x10], 4
jne 0x1400d4c74
mov rbx, qword [rbx]
movzx edx, byte [rbx + 0x23]
test dl, dl
jne 0x1400d4c34
mov rax, qword [rbx + 0x10]
movzx ecx, byte [rax + 0x21]
jmp 0x1400d4c38
movzx ecx, byte [rbx + 0x21]
test cl, 1
jne 0x1400d4c74
test dl, dl
jne 0x1400d4c45
mov rbx, qword [rbx + 0x10]
cmp byte [rbx + 0x23], 1
jne 0x1400d4c65
test byte [rbx + 0x21], 8
je 0x1400d4c59
mov rcx, rbx
call fcn.140001640
add rbx, 0x10
mov rbx, qword [rbx]
shr rbx, 1
jmp 0x1400d4c8a
lea rbx, [0x140138668]
mov rbx, qword [rbx]
shr rbx, 1
jmp 0x1400d4c8a
mov rbx, 0xffffffffffffffff
nop dword [rax + rax]
inc rbx
cmp word [rdi + rbx*2], 0
jne 0x1400d4c80
lea r14, [r13 + 0x10]
mov r8d, ebx
mov rcx, r14
mov rdx, rdi
call fcn.1400d3a70
mov ebp, eax
jmp 0x1400d4ca4
lea r14, [r13 + 0x10]
cmp esi, 4
jne 0x1400d4cca
test ebp, ebp
jne 0x1400d4cb1
test ebx, ebx
jne 0x1400d4cd2
mov r8d, 1
lea rdx, [0x140119bd4]
mov rcx, r14
inc ebx
call fcn.1400d3a70
add ebp, eax
test ebp, ebp
jne 0x1400d4ce6
test ebx, ebx
je 0x1400d4ce6
mov rax, qword [0x14012f240]
test byte [rax + 0x140], 1
jne case.0x1400d4312.7
mov eax, ebp
mov qword [r15], rax
mov eax, 1
jmp 0x1400d565d
cmp edi, 2
jne case.0x1400d4312.7
movzx eax, word [rbx + 6]
mov r12d, 0xffdf
mov rdi, qword [r14 + 0x10]
sub ax, 0x52
mov rbx, qword [r14 + 8]
test r12w, ax
sete sil
mov ecx, dword [rdi + 0x10]
sub ecx, 1
je 0x1400d4d91
sub ecx, 1
je 0x1400d4d8a
sub ecx, 2
je 0x1400d4d58
sub ecx, 1
je 0x1400d4d3d
cmp ecx, 1
jne 0x1400d4d4b
mov rdi, r9
jmp 0x1400d4d94
mov rax, qword [rdi + 8]
test rax, rax
je 0x1400d4d4b
mov rdi, qword [rax]
jmp 0x1400d4d94
mov rcx, qword [rdi]
call fcn.140005d80
mov rdi, rax
jmp 0x1400d4d94
mov rcx, qword [rdi]
cmp byte [rcx + 0x23], 0
jne 0x1400d4d65
mov rcx, qword [rcx + 0x10]
test byte [rcx + 0x21], 0x10
je 0x1400d4d70
mov rdi, qword [rcx]
jmp 0x1400d4d94
xor r8d, r8d
mov edx, 1
call fcn.1400017a0
mov rcx, rax
call fcn.140005d80
mov rdi, rax
jmp 0x1400d4d94
cvttsd2si rdi, qword [rdi]
jmp 0x1400d4d94
mov rdi, qword [rdi]
mov ecx, dword [rbx + 0x10]
cmp ecx, 4
jne 0x1400d4ec2
mov rcx, qword [rbx]
cmp byte [rcx + 0x23], 0
jne 0x1400d4daf
mov rax, qword [rcx + 0x10]
jmp 0x1400d4db2
mov rax, rcx
cmp byte [rax + 0x23], 2
mov edx, dword [0x140136d10]
je 0x1400d4dc2
mov rdx, qword [rax + 0x18]
mov eax, edi
cmp rax, rdx
jbe 0x1400d4e18
test sil, sil
je 0x1400d4ded
mov r8d, eax
mov byte [rsp + 0x20], 0
shr r8, 1
and eax, 1
add r8, rax
xor r9d, r9d
xor edx, edx
call fcn.1400dc860
test eax, eax
jne 0x1400d4e18
mov rax, qword [0x14012f240]
xor ebp, ebp
test byte [rax + 0x140], 1
jne 0x1400d560a
mov rdx, qword [rsp + 0x98]
mov eax, 1
mov qword [rdx], rbp
jmp 0x1400d565d
mov rbx, qword [rbx]
cmp byte [rbx + 0x23], 0
jne 0x1400d4e25
mov rbx, qword [rbx + 0x10]
test byte [rbx + 0x21], 8
je 0x1400d4e33
mov rcx, rbx
call fcn.140001640
movzx eax, byte [rbx + 0x23]
cmp al, 1
jne 0x1400d4e52
test byte [rbx + 0x21], 4
je 0x1400d4e49
mov rdx, rbx
call fcn.140065660
mov rdx, qword [rbx + 8]
jmp 0x1400d4f38
cmp al, 2
jne 0x1400d4eb9
mov rdx, qword [0x140136d00]
test rdx, rdx
jne 0x1400d4f38
mov ecx, ntohs
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
jne 0x1400d4e99
mov ecx, reloc.WSOCK32.dll_ntohs
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
lea rcx, [0x1400f97d8]
lea rdx, [0x1400f97e4]
cmovne rdx, rcx
jmp 0x1400d4f38
xor edx, edx
call fcn.1400073b0
mov ecx, 0xffffffff
lea rdx, [0x1400f97e4]
cmp rax, rcx
cmovne rdx, qword [0x140136cf8]
jmp 0x1400d4f38
lea rdx, [0x140132e14]
jmp 0x1400d4f38
sub ecx, 1
je 0x1400d4f35
sub ecx, 1
je 0x1400d4f2e
sub ecx, 2
je 0x1400d4efc
sub ecx, 1
je 0x1400d4ee1
cmp ecx, 1
jne 0x1400d4eef
xor ebp, ebp
mov edx, ebp
jmp 0x1400d4f3a
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x1400d4eef
mov rdx, qword [rdx]
jmp 0x1400d4f38
mov rcx, qword [rbx]
call fcn.140005d80
mov rdx, rax
jmp 0x1400d4f38
mov rcx, qword [rbx]
cmp byte [rcx + 0x23], 0
jne 0x1400d4f09
mov rcx, qword [rcx + 0x10]
test byte [rcx + 0x21], 0x10
je 0x1400d4f14
mov rdx, qword [rcx]
jmp 0x1400d4f38
xor r8d, r8d
mov edx, 1
call fcn.1400017a0
mov rcx, rax
call fcn.140005d80
mov rdx, rax
jmp 0x1400d4f38
cvttsd2si rdx, qword [rbx]
jmp 0x1400d4f38
mov rdx, qword [rbx]
xor ebp, ebp
cmp rdx, 0x10000
jae 0x1400d4f47
mov ecx, ebp
jmp 0x1400d4f65
lea rcx, [r13 + 0x10]
mov r8d, edi
test sil, sil
je 0x1400d4f5a
call fcn.1400d38d0
jmp 0x1400d4f5f
call fcn.1400d3ce0
mov ecx, eax
test eax, eax
jne 0x1400d4f7d
test edi, edi
je 0x1400d4f7d
mov rax, qword [0x14012f240]
test byte [rax + 0x140], 1
jne 0x1400d560a
mov rdx, qword [rsp + 0x98]
mov eax, ecx
mov qword [rdx], rax
mov eax, 1
jmp 0x1400d565d
test edi, edi
jne 0x1400d4ff9
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + 0x30]
mov rdx, rax
cmp rax, 0xffffffffffffffff
jne 0x1400d4fbd
mov rbx, rax
mov qword [rbp], rax
mov eax, 1
jmp 0x1400d565d
mov rcx, qword [r13 + 0x40]
test rcx, rcx
je 0x1400d4fe3
mov eax, dword [r13 + 0x1c]
sub rcx, qword [r13 + 0x48]
sub rcx, rax
mov eax, 1
lea rbx, [rcx + rdx]
mov qword [rbp], rbx
jmp 0x1400d565d
mov ecx, dword [r13 + 0x1c]
mov eax, 1
lea rbx, [rcx + rdx]
mov qword [rbp], rbx
jmp 0x1400d565d
cmp edi, 2
jg case.0x1400d4312.7
mov rdx, qword [r14 + 8]
mov ecx, dword [rdx + 0x10]
sub ecx, 1
je 0x1400d507b
sub ecx, 1
je 0x1400d5074
sub ecx, 2
je 0x1400d5042
sub ecx, 1
je 0x1400d5027
cmp ecx, 1
jne 0x1400d5035
mov rsi, r9
jmp 0x1400d507e
mov rsi, qword [rdx + 8]
test rsi, rsi
je 0x1400d5035
mov rsi, qword [rsi]
jmp 0x1400d507e
mov rcx, qword [rdx]
call fcn.140005d80
mov rsi, rax
jmp 0x1400d507e
mov rcx, qword [rdx]
cmp byte [rcx + 0x23], 0
jne 0x1400d504f
mov rcx, qword [rcx + 0x10]
test byte [rcx + 0x21], 0x10
je 0x1400d505a
mov rsi, qword [rcx]
jmp 0x1400d507e
xor r8d, r8d
mov edx, 1
call fcn.1400017a0
mov rcx, rax
call fcn.140005d80
mov rsi, rax
jmp 0x1400d507e
cvttsd2si rsi, qword [rdx]
jmp 0x1400d507e
mov rsi, qword [rdx]
cmp edi, 2
jne 0x1400d5102
mov rdi, qword [r14 + 0x10]
mov ecx, dword [rdi + 0x10]
sub ecx, 1
je 0x1400d50fd
sub ecx, 1
je 0x1400d50f6
sub ecx, 2
je 0x1400d50c4
sub ecx, 1
je 0x1400d50a9
cmp ecx, 1
jne 0x1400d50b7
xor ebp, ebp
mov edi, ebp
jmp 0x1400d5111
mov rax, qword [rdi + 8]
test rax, rax
je 0x1400d50b7
mov rdi, qword [rax]
jmp 0x1400d5111
mov rcx, qword [rdi]
call fcn.140005d80
mov rdi, rax
jmp 0x1400d5111
mov rcx, qword [rdi]
cmp byte [rcx + 0x23], 0
jne 0x1400d50d1
mov rcx, qword [rcx + 0x10]
test byte [rcx + 0x21], 0x10
je 0x1400d50dc
mov rdi, qword [rcx]
jmp 0x1400d5111
xor r8d, r8d
mov edx, 1
call fcn.1400017a0
mov rcx, rax
call fcn.140005d80
mov rdi, rax
jmp 0x1400d5111
cvttsd2si rdi, qword [rdi]
jmp 0x1400d5111
mov rdi, qword [rdi]
jmp 0x1400d5111
xor ebp, ebp
mov edx, 2
test rsi, rsi
mov edi, ebp
cmovs edi, edx
mov rdx, qword [r13 + 0x40]
test rdx, rdx
je 0x1400d5143
mov eax, dword [r13 + 0x1c]
lea rcx, [r13 + 0x10]
mov r9, qword [r13 + 0x10]
sub rdx, rax
sub rdx, qword [r13 + 0x48]
mov r8d, 1
call qword [r9 + 0x28]
xor eax, eax
mov qword [r13 + 0x40], rax
mov dword [r13 + 0x1c], eax
jmp 0x1400d5145
xor eax, eax
mov r8d, dword [r13 + 0x1c]
test r8d, r8d
je 0x1400d5163
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
mov rdx, qword [r13 + 0x48]
call qword [rax + 0x20]
xor eax, eax
mov dword [r13 + 0x1c], eax
mov word [r13 + 0x3c], ax
lea rcx, [r13 + 0x10]
mov rax, qword [r13 + 0x10]
mov r8d, edi
mov rdx, rsi
call qword [rax + 0x28]
test al, al
jne 0x1400d51a8
mov rax, qword [0x14012f240]
xor ebp, ebp
test byte [rax + 0x140], 1
jne 0x1400d561c
mov rdx, qword [rsp + 0x98]
mov eax, 1
mov qword [rdx], rbp
jmp 0x1400d565d
mov rdx, qword [rsp + 0x98]
mov ebp, 1
mov eax, ebp
mov qword [rdx], rbp
jmp 0x1400d565d
test edi, edi
jne 0x1400d520a
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + reloc.WSOCK32.dll_getservbyport]
cmp qword [r13 + 0x40], 0
mov rdi, rax
jne 0x1400d51f9
cmp dword [r13 + 0x1c], 0
je 0x1400d51f9
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + 0x30]
mov rcx, rax
mov eax, dword [r13 + 0x1c]
add rcx, rax
cmp rcx, rdi
jg 0x1400d51fc
mov rcx, rdi
mov qword [rbp], rcx
mov eax, 1
jmp 0x1400d565d
cmp edi, 1
jne case.0x1400d4312.7
mov rdi, qword [r14 + 8]
mov ecx, dword [rdi + 0x10]
sub ecx, 1
je 0x1400d528c
sub ecx, 1
je 0x1400d5285
sub ecx, 2
je 0x1400d5253
sub ecx, 1
je 0x1400d5238
cmp ecx, 1
jne 0x1400d5246
mov rdi, r9
jmp 0x1400d528f
mov rax, qword [rdi + 8]
test rax, rax
je 0x1400d5246
mov rdi, qword [rax]
jmp 0x1400d528f
mov rcx, qword [rdi]
call fcn.140005d80
mov rdi, rax
jmp 0x1400d528f
mov rcx, qword [rdi]
cmp byte [rcx + 0x23], 0
jne 0x1400d5260
mov rcx, qword [rcx + 0x10]
test byte [rcx + 0x21], 0x10
je 0x1400d526b
mov rdi, qword [rcx]
jmp 0x1400d528f
xor r8d, r8d
mov edx, 1
call fcn.1400017a0
mov rcx, rax
call fcn.140005d80
mov rdi, rax
jmp 0x1400d528f
cvttsd2si rdi, qword [rdi]
jmp 0x1400d528f
mov rdi, qword [rdi]
mov rdx, qword [r13 + 0x40]
test rdx, rdx
je 0x1400d52c1
mov eax, dword [r13 + 0x1c]
lea rcx, [r13 + 0x10]
mov r9, qword [r13 + 0x10]
sub rdx, rax
sub rdx, qword [r13 + 0x48]
mov r8d, 1
call qword [r9 + 0x28]
xor eax, eax
mov qword [r13 + 0x40], rax
mov dword [r13 + 0x1c], eax
jmp 0x1400d52c3
xor eax, eax
mov r8d, dword [r13 + 0x1c]
test r8d, r8d
je 0x1400d52e1
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
mov rdx, qword [r13 + 0x48]
call qword [rax + 0x20]
xor eax, eax
mov dword [r13 + 0x1c], eax
mov word [r13 + 0x3c], ax
lea rcx, [r13 + 0x10]
mov rax, qword [r13 + 0x10]
call qword [rax + 0x30]
xor r8d, r8d
lea rcx, [r13 + 0x10]
mov rsi, rax
mov rdx, rdi
mov rax, qword [r13 + 0x10]
call qword [rax + 0x28]
test al, al
je 0x1400d5348
mov rcx, qword [r13 + 0x50]
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
je 0x1400d5348
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
cmp rdi, rsi
cmovl rsi, rdi
xor r8d, r8d
mov rdx, rsi
call qword [rax + 0x28]
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + reloc.WSOCK32.dll_getservbyport]
mov qword [rbp], rax
cmp rax, 0xffffffffffffffff
jne 0x1400d5654
mov qword [rbp], r12
jmp case.0x1400d4312.7
test edi, edi
jne 0x1400d5654
mov rcx, qword [r13 + 0x40]
test rcx, rcx
je 0x1400d536f
mov eax, dword [r13 + 0x1c]
add rax, qword [r13 + 0x48]
cmp rcx, rax
jb 0x1400d5392
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + 0x30]
mov rdi, rax
test rax, rax
js 0x1400d53a9
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + reloc.WSOCK32.dll_getservbyport]
cmp rdi, rax
jge 0x1400d53a9
mov rdx, qword [rsp + 0x98]
xor ebp, ebp
mov eax, 1
mov qword [rdx], rbp
jmp 0x1400d565d
mov rdx, qword [rsp + 0x98]
mov ebp, 1
mov eax, ebp
mov qword [rdx], rbp
jmp 0x1400d565d
test edi, edi
jne 0x1400d5654
mov rdx, qword [r13 + 0x40]
test rdx, rdx
je 0x1400d53f9
mov eax, dword [r13 + 0x1c]
lea rcx, [r13 + 0x10]
mov r9, qword [r13 + 0x10]
sub rdx, rax
sub rdx, qword [r13 + 0x48]
mov r8d, 1
call qword [r9 + 0x28]
xor r9d, r9d
mov qword [r13 + 0x40], r9
mov dword [r13 + 0x1c], r9d
mov r8d, dword [r13 + 0x1c]
test r8d, r8d
je 0x1400d5418
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
mov rdx, qword [r13 + 0x48]
call qword [rax + 0x20]
xor r9d, r9d
mov dword [r13 + 0x1c], r9d
mov rax, qword [r13 + 0x50]
mov word [r13 + 0x3c], r9w
mov qword [rbp], rax
mov eax, 1
jmp 0x1400d565d
test edi, edi
jle 0x1400d5527
mov rcx, qword [r14 + 8]
call fcn.1400986f0
mov rcx, qword [r14 + 8]
mov edx, dword [rcx + 0x10]
test eax, eax
je 0x1400d54b8
sub edx, 1
je 0x1400d5495
sub edx, 1
je 0x1400d54b1
sub edx, 2
je 0x1400d5482
sub edx, 1
je 0x1400d546a
cmp edx, 1
jne 0x1400d5478
xor ebp, ebp
mov eax, ebp
jmp 0x1400d54dd
mov rax, qword [rcx + 8]
test rax, rax
je 0x1400d5478
mov rax, qword [rax]
jmp 0x1400d54db
mov rcx, qword [rcx]
call fcn.140005d80
jmp 0x1400d54db
mov rcx, qword [rcx]
cmp byte [rcx + 0x23], 0
jne 0x1400d548f
mov rcx, qword [rcx + 0x10]
test byte [rcx + 0x21], 0x10
je 0x1400d549a
mov rax, qword [rcx]
jmp 0x1400d54db
xor r8d, r8d
mov edx, 1
call fcn.1400017a0
mov rcx, rax
call fcn.140005d80
jmp 0x1400d54db
cvttsd2si rax, qword [rcx]
jmp 0x1400d54db
test edx, edx
je 0x1400d54d0
sub edx, 1
je 0x1400d54d3
sub edx, 1
je 0x1400d54d3
sub edx, 2
je 0x1400d5512
cmp edx, 1
jne 0x1400d54d3
mov r12, qword [rcx]
mov rcx, r12
call fcn.140037b40
xor ebp, ebp
mov ecx, 0xffffffff
cmp eax, ecx
je 0x1400d5529
and eax, 0x7fffffff
cmove eax, dword [0x140136ec8]
cmp dword [r13 + 0x24], eax
je 0x1400d5529
lea rdx, [r13 + 0x28]
mov dword [r13 + 0x24], eax
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_GetCPInfo]
test eax, eax
jne 0x1400d5529
mov byte [r13 + 0x2e], al
jmp 0x1400d5529
mov rcx, qword [rcx]
xor r8d, r8d
mov edx, 1
call fcn.1400017a0
mov r12, rax
jmp 0x1400d54d3
xor ebp, ebp
mov ecx, dword [r13 + 0x24]
cmp ecx, 0x4b0
je 0x1400d5596
cmp ecx, 0xfde9
je 0x1400d5577
mov rdx, qword [rsp + 0x98]
mov r8d, 0xa
mov rbx, qword [rdx + 8]
lea rdx, [rbx + 4]
mov dword [rbx], 0x500043
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__itow]
mov rax, qword [rsp + 0x98]
mov dword [rax + 0x10], ebp
mov qword [rax], rbx
mov eax, 1
jmp 0x1400d565d
mov rax, qword [rsp + 0x98]
lea rbx, str.UTF_8
mov dword [rax + 0x10], ebp
mov qword [rax], rbx
mov eax, 1
jmp 0x1400d565d
mov rax, qword [rsp + 0x98]
lea rbx, str.UTF_16
mov dword [rax + 0x10], ebp
mov qword [rax], rbx
mov eax, 1
jmp 0x1400d565d
test edi, edi
jne 0x1400d55f3
mov r8d, dword [r13 + 0x1c]
test r8d, r8d
je 0x1400d55e3
cmp qword [r13 + 0x40], 0
jne 0x1400d55e3
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
mov rdx, qword [r13 + 0x48]
call qword [rax + 0x20]
xor r9d, r9d
lea r15, [rbp + 0x10]
mov dword [r13 + 0x1c], r9d
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
mov word [r13 + 0x3c], r9w
call qword [rax + reloc.WSOCK32.dll_recv]
mov rdx, qword [rsp + 0x98]
xor ebp, ebp
mov dword [r15], ebp
mov eax, 1
mov qword [rdx], r12
jmp 0x1400d565d
lea r12, [0x1400f97e4]
jmp 0x1400d561c
lea r12, [0x1400f97e4]
xor ebp, ebp
mov rdx, qword [rsp + 0x98]
mov rax, qword [0x14012f240]
mov dword [rdx + 0x10], ebp
test byte [rax + 0x140], 1
je 0x1400d5654
mov rcx, qword [0x140136730]
lea r8, str.FileObject
mov r9, r12
lea rdx, [0x14011026c]
call fcn.140063d20
mov eax, 1
jmp 0x1400d565d
mov eax, esi
mov rbx, qword [rsp + 0xa0]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret