Function at 0x1400aa940
Capabilities:
Clear file content
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x10], rdx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov edi, dword [rsp + 0xa8]
mov ebp, r9d
mov r15, rcx
mov esi, 4
test edi, edi
je 0x1400abee4
mov r14, qword [rsp + 0xa0]
lea r12, [0x1400fb87c]
dec edi
mov rbx, qword [r14]
mov r8d, dword [rbx + 0x10]
test r8d, r8d
je 0x1400aa9c9
sub r8d, 1
je 0x1400aa9b0
sub r8d, 1
je 0x1400aa9b0
sub r8d, 2
je 0x1400aa9b5
cmp r8d, 1
je 0x1400aa9c9
mov rbx, r12
jmp 0x1400aa9cc
mov rcx, qword [rbx]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rbx, rax
jmp 0x1400aa9cc
mov rbx, qword [rbx]
mov r8, rsi
lea rdx, str.Read
mov rcx, rbx
call fcn.1400d2a10
xor r13d, r13d
mov edx, 2
test eax, eax
jne 0x1400aaa1d
cmp word [rbx + 8], r13w
lea rcx, [rbx + 8]
jne 0x1400aa9fd
lea esi, [rdx - 1]
jmp 0x1400aab96
lea rdx, str.Line
call fcn.1400d0944
test eax, eax
mov esi, 5
mov eax, 3
cmove esi, eax
jmp 0x1400aab91
mov r8d, 5
lea rdx, str.Write
mov rcx, rbx
call fcn.1400d2a10
test eax, eax
jne 0x1400aaa69
cmp word [rbx + 0xa], r13w
lea rcx, [rbx + 0xa]
jne 0x1400aaa4d
mov edx, 2
mov esi, edx
jmp 0x1400aab96
lea rdx, str.Line
call fcn.1400d0944
mov ecx, r13d
test eax, eax
setne cl
lea esi, [rcx + 4]
jmp 0x1400aab91
lea rdx, str.RawRead
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x1400aaa84
lea esi, [rax + 6]
jmp 0x1400aab91
lea rdx, str.RawWrite
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x1400aaa9f
lea esi, [rax + 6]
jmp 0x1400aab91
lea rdx, [0x140111ae0]
mov rcx, rbx
call fcn.1400d0944
test eax, eax
je 0x1400aab8c
lea rdx, str.Length
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x1400aaad1
lea esi, [rax + 9]
jmp 0x1400aab91
lea rdx, str.AtEOF
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x1400aaaec
lea esi, [rax + 0xa]
jmp 0x1400aab91
lea rdx, str.__Handle
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x1400aab07
lea esi, [rax + 0xb]
jmp 0x1400aab91
lea rdx, str.Handle
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x1400aab1f
lea esi, [rax + 0xb]
jmp 0x1400aab91
lea rdx, str.Encoding
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x1400aab37
lea esi, [rax + 0xc]
jmp 0x1400aab91
lea rdx, str.Close
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x1400aab4f
lea esi, [rax + 0xd]
jmp 0x1400aab91
lea rdx, str.Position
mov rcx, rbx
call fcn.1400d0944
test eax, eax
je 0x1400aab8c
lea rdx, str.Seek
mov rcx, rbx
call fcn.1400d0944
test eax, eax
je 0x1400aab8c
lea rdx, str.Tell
mov rcx, rbx
call fcn.1400d0944
test eax, eax
jne 0x1400abee4
mov esi, 8
mov edx, 2
test bpl, 2
jne 0x1400aabb0
cmp esi, 7
jb 0x1400abedd
and ebp, 1
cmp edi, ebp
jne 0x1400abedd
mov rbp, qword [rsp + 0x88]
lea eax, [rsi - 1]
mov dword [rbp + 0x10], 1
cmp eax, 0xc
ja case.0x1400aabde.7
cdqe
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0xabf04]
add rax, rcx
jmp rax
movzx eax, word [rbx]
mov ecx, 0xffdf
sub ax, 0x52
test cx, ax
sete r13b
xor ebp, ebp
movzx r12d, r13b
xor r12, 1
add r12, 4
lea r12, [rbx + r12*2]
movzx ebx, word [r12]
test ebx, 0xffffff80
jne 0x1400aac20
mov ecx, ebx
call fcn.1400d7464
test eax, eax
je 0x1400aac20
and ebx, 0xffffffdf
cmp bx, 0x55
jne 0x1400aac2a
add r12, 2
movzx esi, word [r12]
test esi, 0xffffff80
jne 0x1400aac4a
mov edx, 2
mov ecx, esi
call fcn.1400d7464
test eax, eax
je 0x1400aac4a
and esi, 0xffffffdf
add esi, 0xffffffbd
cmp esi, 0x10
ja case.0x1400aac6a.69
lea rcx, [0x140000000]
movsxd rax, esi
mov edx, dword [rcx + rax*4 + 0xabf38]
add rdx, rcx
jmp rdx
mov edx, getservbyport
mov rcx, r12
call fcn.1400cbb24
test rax, rax
mov esi, 8
mov eax, 4
cmove esi, eax
jmp 0x1400aacb5
mov r12d, 2
mov esi, r12d
jmp 0x1400aacbb
mov esi, 1
jmp 0x1400aacb5
mov esi, 8
jmp 0x1400aacb5
mov esi, 8
jmp 0x1400aacb0
mov esi, 4
mov ebp, 1
mov r12d, 2
test r13b, r13b
je 0x1400aadac
xor r13d, r13d
lea rcx, [r15 + 0x10]
mov r8d, esi
mov qword [rsp + 0x30], r13
lea rdx, [rsp + 0x30]
call fcn.1400aa210
test eax, eax
je 0x1400abe9d
test ebp, ebp
je 0x1400aad2f
cmp esi, 4
jne 0x1400aad0f
mov rax, qword [rsp + 0x88]
movss xmm0, dword [rsp + 0x30]
cvtps2pd xmm0, xmm0
mov dword [rax + 0x10], r12d
movsd qword [rax], xmm0
lea eax, [rsi - 3]
jmp 0x1400abee6
mov rax, qword [rsp + 0x88]
movsd xmm0, qword [rsp + 0x30]
movsd qword [rax], xmm0
mov dword [rax + 0x10], r12d
mov eax, 1
jmp 0x1400abee6
cmp bx, 0x55
je 0x1400aad92
sub esi, 1
je 0x1400aad77
sub esi, 1
je 0x1400aad5c
cmp esi, 2
jne 0x1400aad92
movsxd rax, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x88]
mov qword [rcx], rax
lea eax, [rsi - 1]
jmp 0x1400abee6
movsx rax, word [rsp + 0x30]
mov rcx, qword [rsp + 0x88]
mov qword [rcx], rax
mov eax, 1
jmp 0x1400abee6
movsx rax, byte [rsp + 0x30]
mov rcx, qword [rsp + 0x88]
mov qword [rcx], rax
mov eax, 1
jmp 0x1400abee6
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x88]
mov qword [rcx], rax
mov eax, 1
jmp 0x1400abee6
cmp edi, 1
jne case.0x1400aac6a.69
mov rcx, qword [r14 + 8]
test ebp, ebp
je 0x1400aae56
mov edx, dword [rcx + 0x10]
sub edx, edi
je 0x1400aae30
sub edx, edi
je 0x1400aae10
sub edx, 2
je 0x1400aadfb
sub edx, edi
je 0x1400aadde
cmp edx, edi
jne 0x1400aadf1
xorps xmm0, xmm0
jmp 0x1400aae38
mov rax, qword [rcx + 8]
test rax, rax
je 0x1400aadf1
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rax]
jmp 0x1400aae38
mov rcx, qword [rcx]
call fcn.140023cb0
jmp 0x1400aae38
mov rcx, qword [rcx]
cmp byte [rcx + 0x23], 0
jne 0x1400aae08
mov rcx, qword [rcx + 0x10]
movzx eax, byte [rcx + 0x21]
test al, 0x20
je 0x1400aae16
movsd xmm0, qword [rcx]
jmp 0x1400aae38
test al, 0x10
jne 0x1400aae30
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rcx, rax
call fcn.140023cb0
jmp 0x1400aae38
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rcx]
movsd qword [rsp + 0x30], xmm0
cmp esi, 4
jne 0x1400aaf2e
cvtsd2ss xmm0, xmm0
movss dword [rsp + 0x30], xmm0
jmp 0x1400aaf2e
cmp esi, 8
jne 0x1400aaebe
cmp bx, 0x55
jne 0x1400aaebe
mov edx, dword [rcx + 0x10]
lea eax, [rdx - 1]
cmp eax, 1
jbe 0x1400aaebe
test edx, edx
je 0x1400aaeb1
sub edx, 1
je 0x1400aae84
sub edx, 1
je 0x1400aae84
sub edx, 2
je 0x1400aae98
cmp edx, 1
je 0x1400aaeb1
lea rax, [0x1400fb87c]
mov rcx, rax
call fcn.140053260
jmp 0x1400aaf29
mov rcx, qword [rcx]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rcx, rax
call fcn.140053260
jmp 0x1400aaf29
mov rax, qword [rcx]
mov rcx, rax
call fcn.140053260
jmp 0x1400aaf29
mov edx, dword [rcx + 0x10]
sub edx, 1
je 0x1400aaf26
sub edx, 1
je 0x1400aaf1f
sub edx, 2
je 0x1400aaef6
sub edx, 1
je 0x1400aaede
cmp edx, 1
jne 0x1400aaeec
xor eax, eax
jmp 0x1400aaf29
mov rax, qword [rcx + 8]
test rax, rax
je 0x1400aaeec
mov rax, qword [rax]
jmp 0x1400aaf29
mov rcx, qword [rcx]
call fcn.140005af0
jmp 0x1400aaf29
mov rcx, qword [rcx]
cmp byte [rcx + 0x23], 0
jne 0x1400aaf03
mov rcx, qword [rcx + 0x10]
test byte [rcx + 0x21], 0x10
jne 0x1400aaf26
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rcx, rax
call fcn.140005af0
jmp 0x1400aaf29
cvttsd2si rax, qword [rcx]
jmp 0x1400aaf29
mov rax, qword [rcx]
mov qword [rsp + 0x30], rax
lea rcx, [r15 + 0x10]
call fcn.1400a9b50
test al, al
jne 0x1400aaf43
xor r13d, r13d
mov esi, r13d
jmp 0x1400aafa3
mov ecx, dword [r15 + 0x1c]
mov eax, 0x2000
sub eax, ecx
cmp esi, eax
jae 0x1400aaf69
add rcx, qword [r15 + 0x48]
lea rdx, [rsp + 0x30]
mov r8d, esi
call fcn.1400cfd20
add dword [r15 + 0x1c], esi
jmp 0x1400aaf9c
test ecx, ecx
je 0x1400aaf87
mov rax, qword [r15 + 0x10]
mov r8d, ecx
mov rdx, qword [r15 + 0x48]
lea rcx, [r15 + 0x10]
call qword [rax + 0x20]
mov dword [r15 + 0x1c], 0
mov rax, qword [r15 + 0x10]
lea rdx, [rsp + 0x30]
mov r8d, esi
lea rcx, [r15 + 0x10]
call qword [rax + 0x20]
mov esi, eax
test esi, esi
jne 0x1400aafb7
xor r13d, r13d
mov rax, qword [0x14012fc08]
test byte [rax + 0x140], 1
jne 0x1400abe9d
mov rcx, qword [rsp + 0x88]
mov eax, esi
mov qword [rcx], rax
mov eax, 1
jmp 0x1400abee6
cmp edi, 1
jg case.0x1400aabde.7
test edi, edi
je 0x1400ab068
mov rbx, qword [r14 + 8]
mov ecx, dword [rbx + 0x10]
sub ecx, 1
je 0x1400ab063
sub ecx, 1
je 0x1400ab05c
sub ecx, 2
je 0x1400ab028
sub ecx, 1
je 0x1400ab007
cmp ecx, 1
jne 0x1400ab018
mov rbx, r13
jmp 0x1400ab0da
mov rax, qword [rbx + 8]
test rax, rax
je 0x1400ab018
mov rbx, qword [rax]
jmp 0x1400ab0da
mov rcx, qword [rbx]
call fcn.140005af0
mov rbx, rax
jmp 0x1400ab0da
mov rcx, qword [rbx]
cmp byte [rcx + 0x23], r13b
jne 0x1400ab035
mov rcx, qword [rcx + 0x10]
test byte [rcx + 0x21], 0x10
je 0x1400ab043
mov rbx, qword [rcx]
jmp 0x1400ab0da
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rcx, rax
call fcn.140005af0
mov rbx, rax
jmp 0x1400ab0da
cvttsd2si rbx, qword [rbx]
jmp 0x1400ab0da
mov rbx, qword [rbx]
jmp 0x1400ab0da
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
call qword [rax + 0x30]
mov rdx, rax
cmp rax, 0xffffffffffffffff
jne 0x1400ab081
mov rbx, rax
jmp 0x1400ab09f
mov rcx, qword [r15 + 0x40]
test rcx, rcx
je 0x1400ab097
sub rcx, qword [r15 + 0x48]
mov eax, dword [r15 + 0x1c]
sub rcx, rax
jmp 0x1400ab09b
mov ecx, dword [r15 + 0x1c]
lea rbx, [rdx + rcx]
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
call qword [rax + reloc.WSOCK32.dll_getservbyport]
mov rsi, rax
cmp qword [r15 + 0x40], r13
jne 0x1400ab0d3
cmp dword [r15 + 0x1c], r13d
je 0x1400ab0d3
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
call qword [rax + 0x30]
mov rcx, rax
mov eax, dword [r15 + 0x1c]
add rcx, rax
cmp rcx, rsi
jg 0x1400ab0d6
mov rcx, rsi
sub ecx, ebx
mov ebx, ecx
mov ecx, 0xffffffff
cmp ebx, ecx
je case.0x1400aabde.7
mov esi, ebx
lea rdi, [rsi + rsi]
cmp rsi, 0xff
ja 0x1400ab0fc
mov rax, qword [rbp + 8]
jmp 0x1400ab116
lea rcx, [rdi + 2]
call fcn.1400d29a0
mov qword [rbp + 0x18], rax
test rax, rax
je case.0x1400aabde.7
mov qword [rbp + 8], rsi
mov qword [rbp], rax
lea rcx, [r15 + 0x10]
mov word [rax + rdi], r13w
xor r9d, r9d
mov rdx, qword [rbp]
mov r8d, ebx
call fcn.1400a9e50
mov ecx, eax
mov rax, qword [rbp]
mov dword [rbp + 0x10], r13d
mov word [rax + rcx*2], r13w
mov eax, 1
mov qword [rbp + 8], rcx
jmp 0x1400abee6
test edi, edi
jne case.0x1400aabde.7
mov ecx, 0x20002
call fcn.1400d29a0
mov qword [rbp + 0x18], rax
test rax, rax
je case.0x1400aabde.7
mov qword [rbp + 8], 0x10000
add r15, 0x10
mov qword [rbp], rax
mov word [rax + 0x20000], r13w
mov r12, qword [rbp]
mov r8d, dword [r15 + 0xc]
mov dword [rsp + 0x38], 1
test r8d, r8d
je 0x1400ab1b2
cmp qword [r15 + 0x30], r13
jne 0x1400ab1b2
mov rax, qword [r15]
mov rcx, r15
mov rdx, qword [r15 + 0x38]
call qword [rax + 0x20]
mov dword [r15 + 0xc], r13d
mov edi, dword [r15 + 0x14]
mov r14d, r13d
cmp edi, 0x4b0
mov word [r15 + 0x2c], r13w
mov ebx, r13d
mov dword [rsp + 0x3c], edi
sete r14b
inc r14d
mov dword [rsp + 0x40], r14d
mov ebp, r14d
mov rsi, qword [r15 + 0x30]
mov r9d, 0xfffd
test rsi, rsi
je 0x1400ab215
mov edx, dword [r15 + 0xc]
mov rcx, qword [r15 + 0x38]
mov r8d, edx
mov eax, ebp
sub r8, rax
add r8, rcx
cmp rsi, r8
jbe 0x1400ab240
sub edx, esi
lea eax, [rdx + rcx]
mov rdx, rsi
mov r8d, eax
mov dword [r15 + 0xc], eax
call fcn.1400cfd20
mov rcx, r15
call fcn.1400a9bc0
mov eax, dword [r15 + 0xc]
mov edx, eax
mov rsi, qword [r15 + 0x38]
mov qword [r15 + 0x30], rsi
mov rcx, rsi
cmp eax, ebp
jae 0x1400ab23a
test eax, eax
je 0x1400ab4af
mov r9d, 0xfffd
mov ebp, r14d
mov dword [rsp + 0x30], r14d
mov r14d, edx
add r14, rcx
cmp edi, 0x4b0
jne 0x1400ab26d
movzx eax, r14b
sub al, sil
test al, 1
je 0x1400ab26d
dec r14
cmp r14, rsi
je 0x1400ab49e
cmp rsi, r14
jae 0x1400ab479
nop word [rax + rax]
cmp ebx, 0xffff
jae 0x1400ab484
cmp edi, 0x4b0
jne 0x1400ab2e2
movzx ecx, word [rsi]
mov ebp, 2
cmp cx, 0xd
jne 0x1400ab2d5
lea rax, [rsi + 4]
cmp rax, r14
ja 0x1400ab2cb
cmp word [rsi + 2], 0xa
jne 0x1400ab2d5
test byte [r15 + 8], 4
jne 0x1400ab439
mov eax, ebx
mov word [r12 + rax*2], ntohs
jmp 0x1400ab437
cmp dword [r15 + 0x10], r13d
jne 0x1400ab44e
mov word [rsp + 0xa8], cx
jmp 0x1400ab3bd
movsx edx, byte [rsi]
mov ebp, 1
cmp dl, 0x80
jae 0x1400ab31e
cmp dl, 0xd
jne 0x1400ab30e
lea rax, [rsi + 1]
cmp rax, r14
jae 0x1400ab304
cmp byte [rax], 0xa
jne 0x1400ab30e
jmp 0x1400ab2b2
cmp dword [r15 + 0x10], r13d
jne 0x1400ab455
movzx ecx, dx
mov word [rsp + 0xa8], dx
jmp 0x1400ab3bd
cmp edi, 0xfde9
jne 0x1400ab369
movzx eax, dl
and al, 0xe0
cmp al, 0xc0
jne 0x1400ab338
mov ecx, 2
mov ebp, ecx
jmp 0x1400ab37b
movzx eax, dl
and al, 0xf0
cmp al, 0xe0
jne 0x1400ab34b
mov ebp, 3
lea ecx, [rbp - 1]
jmp 0x1400ab37b
and dl, 0xf8
cmp dl, 0xf0
jne 0x1400ab35d
mov ebp, 4
lea ecx, [rbp - 2]
jmp 0x1400ab37b
mov eax, ebx
mov word [r12 + rax*2], r9w
jmp 0x1400ab437
mov rcx, r15
call fcn.1400a9c30
test al, al
mov ecx, 2
cmovne ebp, ecx
mov eax, ebp
add rax, rsi
cmp rax, r14
ja 0x1400ab45c
mov dword [rsp + 0x28], ecx
lea rax, [rsp + 0xa8]
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 0x1400ab3fa
movzx ecx, word [rsp + 0xa8]
cmp cx, 0xd
jne 0x1400ab3db
test byte [r15 + 8], 8
je 0x1400ab3f1
mov edx, 0xa
mov ecx, edx
mov word [rsp + 0xa8], dx
jmp 0x1400ab3e6
cmp cx, 0xa
jne 0x1400ab3f1
mov edx, 0xa
sub dword [rsp + 0x38], 1
je 0x1400ab4c0
mov eax, ebx
mov word [r12 + rax*2], cx
jmp 0x1400ab437
mov eax, ebx
lea r9, [r12 + rax*2]
test ecx, ecx
je 0x1400ab431
lea edi, [rcx + rbx]
cmp edi, 0xffff
ja 0x1400ab4e1
mov r8, rcx
lea rdx, [rsp + 0xa8]
add r8, r8
mov rcx, r9
call fcn.1400cfd20
mov ebx, edi
mov edi, dword [rsp + 0x3c]
jmp 0x1400ab439
mov word [r9], 0xfffd
inc ebx
mov eax, ebp
add rsi, rax
cmp rsi, r14
jae 0x1400ab472
mov r9d, 0xfffd
jmp 0x1400ab280
mov ebp, 4
jmp 0x1400ab476
mov ebp, 2
jmp 0x1400ab476
cmp dword [r15 + 0x10], r13d
jne 0x1400ab476
mov eax, ebx
mov rsi, r13
mov dword [r15 + 0xc], r13d
inc ebx
mov word [r12 + rax*2], r9w
mov ebp, dword [rsp + 0x30]
cmp rsi, r14
jne 0x1400ab488
mov dword [r15 + 0xc], r13d
mov rsi, r13
jmp 0x1400ab488
mov ebp, dword [rsp + 0x30]
mov qword [r15 + 0x30], rsi
cmp ebx, 0xffff
jae 0x1400ab4e9
mov r14d, dword [rsp + 0x40]
jmp 0x1400ab1da
mov eax, ebx
inc ebx
mov qword [r15 + 0x30], r13
mov dword [r15 + 0xc], r13d
mov word [r12 + rax*2], r9w
cmp ebx, 0xffff
jae 0x1400ab4e9
mov eax, ebx
mov word [r12 + rax*2], r13w
jmp 0x1400ab4e9
mov eax, ebx
inc ebx
mov word [r12 + rax*2], dx
mov eax, ebp
add rax, rsi
mov qword [r15 + 0x30], rax
cmp ebx, 0xffff
jae 0x1400ab4e9
mov word [r12 + rbx*2], r13w
jmp 0x1400ab4e9
mov qword [r15 + 0x30], rsi
mov word [r9], r13w
mov rdx, qword [rsp + 0x88]
mov ecx, ebx
mov rax, qword [rdx]
mov dword [rdx + 0x10], r13d
mov word [rax + rcx*2], r13w
mov eax, 1
mov qword [rdx + 8], rcx
jmp 0x1400abee6
cmp edi, 1
jg case.0x1400aabde.7
mov ebp, r13d
mov ebx, r13d
test edi, edi
je 0x1400ab5c2
mov rax, qword [rsp + 0x88]
mov rcx, qword [r14 + 8]
mov rdx, qword [rax + 8]
call fcn.14007ce20
mov rbx, qword [r14 + 8]
mov rdi, rax
cmp dword [rbx + 0x10], 4
jne 0x1400ab59b
mov rbx, qword [rbx]
movzx edx, byte [rbx + 0x23]
test dl, dl
jne 0x1400ab55b
mov rax, qword [rbx + 0x10]
movzx ecx, byte [rax + 0x21]
jmp 0x1400ab55f
movzx ecx, byte [rbx + 0x21]
test cl, 1
jne 0x1400ab59b
test dl, dl
jne 0x1400ab56c
mov rbx, qword [rbx + 0x10]
cmp byte [rbx + 0x23], 1
jne 0x1400ab58c
test byte [rbx + 0x21], 8
je 0x1400ab580
mov rcx, rbx
call fcn.140001550
add rbx, 0x10
mov rbx, qword [rbx]
shr rbx, 1
jmp 0x1400ab5ac
lea rbx, [0x140137fd0]
mov rbx, qword [rbx]
shr rbx, 1
jmp 0x1400ab5ac
mov rbx, 0xffffffffffffffff
inc rbx
cmp word [rdi + rbx*2], r13w
jne 0x1400ab5a2
add r15, 0x10
mov r8d, ebx
mov rcx, r15
mov rdx, rdi
call fcn.1400aa3a0
mov ebp, eax
jmp 0x1400ab5c6
add r15, 0x10
cmp esi, 4
jne 0x1400ab5ec
test ebp, ebp
jne 0x1400ab5d3
test ebx, ebx
jne 0x1400ab5f4
mov r8d, 1
lea rdx, [0x140119774]
mov rcx, r15
inc ebx
call fcn.1400aa3a0
add ebp, eax
test ebp, ebp
jne 0x1400ab608
test ebx, ebx
je 0x1400ab608
mov rax, qword [0x14012fc08]
test byte [rax + 0x140], 1
jne 0x1400abea4
mov rcx, qword [rsp + 0x88]
mov eax, ebp
mov qword [rcx], rax
mov eax, 1
jmp 0x1400abee6
cmp edi, 2
jne case.0x1400aabde.7
movzx eax, word [rbx + 6]
mov ecx, 0xffdf
mov rdi, qword [r14 + 0x10]
sub ax, 0x52
mov rbx, qword [r14 + 8]
test cx, ax
sete sil
mov ecx, dword [rdi + 0x10]
sub ecx, 1
je 0x1400ab6b8
sub ecx, 1
je 0x1400ab6b1
sub ecx, 2
je 0x1400ab680
sub ecx, 1
je 0x1400ab665
cmp ecx, 1
jne 0x1400ab673
mov rdi, r13
jmp 0x1400ab6bb
mov rax, qword [rdi + 8]
test rax, rax
je 0x1400ab673
mov rdi, qword [rax]
jmp 0x1400ab6bb
mov rcx, qword [rdi]
call fcn.140005af0
mov rdi, rax
jmp 0x1400ab6bb
mov rcx, qword [rdi]
cmp byte [rcx + 0x23], r13b
jne 0x1400ab68d
mov rcx, qword [rcx + 0x10]
test byte [rcx + 0x21], 0x10
je 0x1400ab698
mov rdi, qword [rcx]
jmp 0x1400ab6bb
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rcx, rax
call fcn.140005af0
mov rdi, rax
jmp 0x1400ab6bb
cvttsd2si rdi, qword [rdi]
jmp 0x1400ab6bb
mov rdi, qword [rdi]
mov ecx, dword [rbx + 0x10]
cmp ecx, 4
jne 0x1400ab7d7
mov rcx, qword [rbx]
cmp byte [rcx + 0x23], r13b
jne 0x1400ab6d6
mov rax, qword [rcx + 0x10]
jmp 0x1400ab6d9
mov rax, rcx
cmp byte [rax + 0x23], 2
mov edx, dword [0x1401372d0]
je 0x1400ab6e9
mov rdx, qword [rax + 0x18]
mov eax, edi
cmp rax, rdx
jbe 0x1400ab736
test sil, sil
je 0x1400ab714
mov r8d, eax
mov byte [rsp + 0x20], r13b
shr r8, 1
and eax, 1
add r8, rax
xor r9d, r9d
xor edx, edx
call fcn.1400b0830
test eax, eax
jne 0x1400ab736
mov rax, qword [0x14012fc08]
test byte [rax + 0x140], 1
jne case.0x1400aabde.7
mov qword [rbp], r13
mov eax, 1
jmp 0x1400abee6
mov rbx, qword [rbx]
cmp byte [rbx + 0x23], r13b
jne 0x1400ab743
mov rbx, qword [rbx + 0x10]
test byte [rbx + 0x21], 8
je 0x1400ab751
mov rcx, rbx
call fcn.140001550
movzx eax, byte [rbx + 0x23]
cmp al, 1
jne 0x1400ab770
test byte [rbx + 0x21], 4
je 0x1400ab767
mov rdx, rbx
call fcn.1400520f0
mov rdx, qword [rbx + 8]
jmp 0x1400ab846
cmp al, 2
jne 0x1400ab7ce
mov rdx, qword [0x1401372c0]
test rdx, rdx
jne 0x1400ab846
lea ecx, [rdx + 0xd]
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
jne 0x1400ab7af
lea ecx, [rax + 0xf]
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
lea rcx, [0x1400fb870]
mov rdx, r12
test eax, eax
cmovne rdx, rcx
jmp 0x1400ab846
xor edx, edx
call fcn.140006cb0
mov ecx, 0xffffffff
mov rdx, r12
cmp rax, rcx
cmovne rdx, qword [0x1401372b8]
jmp 0x1400ab846
lea rdx, [0x1401344d4]
jmp 0x1400ab846
sub ecx, 1
je 0x1400ab843
sub ecx, 1
je 0x1400ab83c
sub ecx, 2
je 0x1400ab80b
sub ecx, 1
je 0x1400ab7fd
cmp ecx, 1
je 0x1400ab84f
mov rcx, qword [rbx]
call fcn.140005af0
mov rdx, rax
jmp 0x1400ab846
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x1400ab7f0
mov rdx, qword [rdx]
jmp 0x1400ab846
mov rcx, qword [rbx]
cmp byte [rcx + 0x23], r13b
jne 0x1400ab818
mov rcx, qword [rcx + 0x10]
test byte [rcx + 0x21], 0x10
je 0x1400ab823
mov rdx, qword [rcx]
jmp 0x1400ab846
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rcx, rax
call fcn.140005af0
mov rdx, rax
jmp 0x1400ab846
cvttsd2si rdx, qword [rbx]
jmp 0x1400ab846
mov rdx, qword [rbx]
cmp rdx, 0x10000
jae 0x1400ab854
mov ecx, r13d
jmp 0x1400ab872
lea rcx, [r15 + 0x10]
mov r8d, edi
test sil, sil
je 0x1400ab867
call fcn.1400aa210
jmp 0x1400ab86c
call fcn.1400aa5e0
mov ecx, eax
test eax, eax
jne 0x1400ab88a
test edi, edi
je 0x1400ab88a
mov rax, qword [0x14012fc08]
test byte [rax + 0x140], 1
jne case.0x1400aabde.7
mov eax, ecx
mov qword [rbp], rax
mov eax, 1
jmp 0x1400abee6
test edi, edi
jne 0x1400ab8fd
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
call qword [rax + 0x30]
mov rdx, rax
cmp rax, 0xffffffffffffffff
jne 0x1400ab8c1
mov rbx, rax
mov qword [rbp], rax
lea eax, [rdi + 1]
jmp 0x1400abee6
mov rcx, qword [r15 + 0x40]
test rcx, rcx
je 0x1400ab8e7
mov eax, dword [r15 + 0x1c]
sub rcx, qword [r15 + 0x48]
sub rcx, rax
mov eax, 1
lea rbx, [rcx + rdx]
mov qword [rbp], rbx
jmp 0x1400abee6
mov ecx, dword [r15 + 0x1c]
mov eax, 1
lea rbx, [rcx + rdx]
mov qword [rbp], rbx
jmp 0x1400abee6
cmp edi, 2
jg case.0x1400aabde.7
mov rdx, qword [r14 + 8]
mov ecx, dword [rdx + 0x10]
sub ecx, 1
je 0x1400ab97e
sub ecx, 1
je 0x1400ab977
sub ecx, 2
je 0x1400ab946
sub ecx, 1
je 0x1400ab92b
cmp ecx, 1
jne 0x1400ab939
mov rsi, r13
jmp 0x1400ab981
mov rsi, qword [rdx + 8]
test rsi, rsi
je 0x1400ab939
mov rsi, qword [rsi]
jmp 0x1400ab981
mov rcx, qword [rdx]
call fcn.140005af0
mov rsi, rax
jmp 0x1400ab981
mov rcx, qword [rdx]
cmp byte [rcx + 0x23], r13b
jne 0x1400ab953
mov rcx, qword [rcx + 0x10]
test byte [rcx + 0x21], 0x10
je 0x1400ab95e
mov rsi, qword [rcx]
jmp 0x1400ab981
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rcx, rax
call fcn.140005af0
mov rsi, rax
jmp 0x1400ab981
cvttsd2si rsi, qword [rdx]
jmp 0x1400ab981
mov rsi, qword [rdx]
cmp edi, 2
jne 0x1400aba07
mov rdi, qword [r14 + 0x10]
mov ecx, dword [rdi + 0x10]
sub ecx, 1
je 0x1400aba02
sub ecx, 1
je 0x1400ab9fb
sub ecx, 2
je 0x1400ab9ca
sub ecx, 1
je 0x1400ab9af
cmp ecx, 1
jne 0x1400ab9bd
mov rdi, r13
jmp 0x1400aba15
mov rax, qword [rdi + 8]
test rax, rax
je 0x1400ab9bd
mov rdi, qword [rax]
jmp 0x1400aba15
mov rcx, qword [rdi]
call fcn.140005af0
mov rdi, rax
jmp 0x1400aba15
mov rcx, qword [rdi]
cmp byte [rcx + 0x23], r13b
jne 0x1400ab9d7
mov rcx, qword [rcx + 0x10]
test byte [rcx + 0x21], 0x10
je 0x1400ab9e2
mov rdi, qword [rcx]
jmp 0x1400aba15
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rcx, rax
call fcn.140005af0
mov rdi, rax
jmp 0x1400aba15
cvttsd2si rdi, qword [rdi]
jmp 0x1400aba15
mov rdi, qword [rdi]
jmp 0x1400aba15
test rsi, rsi
mov edi, r13d
mov ecx, 2
cmovs edi, ecx
mov rdx, qword [r15 + 0x40]
test rdx, rdx
je 0x1400aba43
mov eax, dword [r15 + 0x1c]
lea rcx, [r15 + 0x10]
mov r9, qword [r15 + 0x10]
sub rdx, rax
sub rdx, qword [r15 + 0x48]
mov r8d, 1
call qword [r9 + 0x28]
mov qword [r15 + 0x40], r13
mov dword [r15 + 0x1c], r13d
mov r8d, dword [r15 + 0x1c]
test r8d, r8d
je 0x1400aba5f
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
mov rdx, qword [r15 + 0x48]
call qword [rax + 0x20]
mov dword [r15 + 0x1c], r13d
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
mov r8d, edi
mov word [r15 + 0x3c], r13w
mov rdx, rsi
call qword [rax + 0x28]
test al, al
jne 0x1400aba9b
mov rax, qword [0x14012fc08]
test byte [rax + 0x140], 1
jne case.0x1400aabde.7
mov qword [rbp], r13
mov eax, 1
jmp 0x1400abee6
mov r13d, 1
mov qword [rbp], r13
mov eax, r13d
jmp 0x1400abee6
test edi, edi
jne 0x1400abaf6
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
call qword [rax + reloc.WSOCK32.dll_getservbyport]
mov rdi, rax
cmp qword [r15 + 0x40], r13
jne 0x1400abae5
cmp dword [r15 + 0x1c], r13d
je 0x1400abae5
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
call qword [rax + 0x30]
mov rcx, rax
mov eax, dword [r15 + 0x1c]
add rcx, rax
cmp rcx, rdi
jg 0x1400abae8
mov rcx, rdi
mov qword [rbp], rcx
mov eax, 1
jmp 0x1400abee6
cmp edi, 1
jne case.0x1400aabde.7
mov rdi, qword [r14 + 8]
mov ecx, dword [rdi + 0x10]
sub ecx, 1
je 0x1400abb77
sub ecx, 1
je 0x1400abb70
sub ecx, 2
je 0x1400abb3f
sub ecx, 1
je 0x1400abb24
cmp ecx, 1
jne 0x1400abb32
mov rdi, r13
jmp 0x1400abb7a
mov rax, qword [rdi + 8]
test rax, rax
je 0x1400abb32
mov rdi, qword [rax]
jmp 0x1400abb7a
mov rcx, qword [rdi]
call fcn.140005af0
mov rdi, rax
jmp 0x1400abb7a
mov rcx, qword [rdi]
cmp byte [rcx + 0x23], r13b
jne 0x1400abb4c
mov rcx, qword [rcx + 0x10]
test byte [rcx + 0x21], 0x10
je 0x1400abb57
mov rdi, qword [rcx]
jmp 0x1400abb7a
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rcx, rax
call fcn.140005af0
mov rdi, rax
jmp 0x1400abb7a
cvttsd2si rdi, qword [rdi]
jmp 0x1400abb7a
mov rdi, qword [rdi]
mov rdx, qword [r15 + 0x40]
test rdx, rdx
je 0x1400abba8
mov eax, dword [r15 + 0x1c]
lea rcx, [r15 + 0x10]
mov r9, qword [r15 + 0x10]
sub rdx, rax
sub rdx, qword [r15 + 0x48]
mov r8d, 1
call qword [r9 + 0x28]
mov qword [r15 + 0x40], r13
mov dword [r15 + 0x1c], r13d
mov r8d, dword [r15 + 0x1c]
test r8d, r8d
je 0x1400abbc4
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
mov rdx, qword [r15 + 0x48]
call qword [rax + 0x20]
mov dword [r15 + 0x1c], r13d
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
mov word [r15 + 0x3c], r13w
call qword [rax + 0x30]
xor r8d, r8d
lea rcx, [r15 + 0x10]
mov rsi, rax
mov rdx, rdi
mov rax, qword [r15 + 0x10]
call qword [rax + 0x28]
test al, al
je 0x1400abc2b
mov rcx, qword [r15 + 0x50]
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
je 0x1400abc2b
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
cmp rdi, rsi
cmovl rsi, rdi
xor r8d, r8d
mov rdx, rsi
call qword [rax + 0x28]
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
call qword [rax + reloc.WSOCK32.dll_getservbyport]
mov qword [rbp], rax
cmp rax, 0xffffffffffffffff
jne 0x1400abedd
mov qword [rbp], r12
jmp case.0x1400aabde.7
test edi, edi
jne 0x1400abedd
mov rcx, qword [r15 + 0x40]
test rcx, rcx
je 0x1400abc52
mov eax, dword [r15 + 0x1c]
add rax, qword [r15 + 0x48]
cmp rcx, rax
jb 0x1400abc7b
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
call qword [rax + 0x30]
mov rdi, rax
test rax, rax
js 0x1400abc75
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
call qword [rax + reloc.WSOCK32.dll_getservbyport]
cmp rdi, rax
jl 0x1400abc7b
mov r13d, 1
mov qword [rbp], r13
mov eax, 1
jmp 0x1400abee6
test edi, edi
jne 0x1400abedd
mov rdx, qword [r15 + 0x40]
test rdx, rdx
je 0x1400abcbd
mov eax, dword [r15 + 0x1c]
lea r8d, [rdi + 1]
mov r9, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
sub rdx, rax
sub rdx, qword [r15 + 0x48]
call qword [r9 + 0x28]
mov qword [r15 + 0x40], r13
mov dword [r15 + 0x1c], r13d
mov r8d, dword [r15 + 0x1c]
test r8d, r8d
je 0x1400abcd9
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
mov rdx, qword [r15 + 0x48]
call qword [rax + 0x20]
mov dword [r15 + 0x1c], r13d
mov rax, qword [r15 + 0x50]
mov word [r15 + 0x3c], r13w
mov qword [rbp], rax
mov eax, 1
jmp 0x1400abee6
test edi, edi
jle 0x1400abdd1
mov rcx, qword [r14 + 8]
call fcn.14007cac0
mov rcx, qword [r14 + 8]
mov edx, dword [rcx + 0x10]
test eax, eax
je 0x1400abd77
sub edx, 1
je 0x1400abd55
sub edx, 1
je 0x1400abd70
sub edx, 2
je 0x1400abd42
sub edx, 1
je 0x1400abd2a
cmp edx, 1
jne 0x1400abd38
mov rax, r13
jmp 0x1400abd9e
mov rax, qword [rcx + 8]
test rax, rax
je 0x1400abd38
mov rax, qword [rax]
jmp 0x1400abd9e
mov rcx, qword [rcx]
call fcn.140005af0
jmp 0x1400abd9e
mov rcx, qword [rcx]
cmp byte [rcx + 0x23], r13b
jne 0x1400abd4f
mov rcx, qword [rcx + 0x10]
test byte [rcx + 0x21], 0x10
je 0x1400abd5a
mov rax, qword [rcx]
jmp 0x1400abd9e
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rcx, rax
call fcn.140005af0
jmp 0x1400abd9e
cvttsd2si rax, qword [rcx]
jmp 0x1400abd9e
test edx, edx
je 0x1400abd93
sub edx, 1
je 0x1400abd96
sub edx, 1
je 0x1400abd96
sub edx, 2
je 0x1400abe10
cmp edx, 1
jne 0x1400abd96
mov r12, qword [rcx]
mov rcx, r12
call fcn.140027730
mov ecx, 0xffffffff
cmp eax, ecx
je 0x1400abdd1
and eax, 0x7fffffff
cmove eax, dword [0x140137468]
cmp dword [r15 + 0x24], eax
je 0x1400abdd1
lea rdx, [r15 + 0x28]
mov dword [r15 + 0x24], eax
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_GetCPInfo]
test eax, eax
jne 0x1400abdd1
mov byte [r15 + 0x2e], r13b
mov ecx, dword [r15 + 0x24]
cmp ecx, 0x4b0
je 0x1400abe40
cmp ecx, 0xfde9
je 0x1400abe27
mov rbx, qword [rbp + 8]
mov r8d, 0xa
lea rdx, [rbx + 4]
mov dword [rbx], 0x500043
call fcn.1400d07a8
mov eax, 1
mov dword [rbp + 0x10], r13d
mov qword [rbp], rbx
jmp 0x1400abee6
mov rcx, qword [rcx]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov r12, rax
jmp 0x1400abd96
lea rbx, str.UTF_8
mov dword [rbp + 0x10], r13d
mov qword [rbp], rbx
mov eax, 1
jmp 0x1400abee6
lea rbx, str.UTF_16
mov dword [rbp + 0x10], r13d
mov qword [rbp], rbx
mov eax, 1
jmp 0x1400abee6
test edi, edi
jne 0x1400abedd
mov r8d, dword [r15 + 0x1c]
test r8d, r8d
je 0x1400abe83
cmp qword [r15 + 0x40], r13
jne 0x1400abe83
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
mov rdx, qword [r15 + 0x48]
call qword [rax + 0x20]
mov dword [r15 + 0x1c], r13d
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
mov word [r15 + 0x3c], r13w
call qword [rax + reloc.WSOCK32.dll_recv]
mov eax, 1
jmp 0x1400abee6
xor r13d, r13d
lea r12, [0x1400fb87c]
mov rbp, qword [rsp + 0x88]
mov rax, qword [0x14012fc08]
mov dword [rbp + 0x10], r13d
test byte [rax + 0x140], 1
je 0x1400abedd
mov rcx, qword [0x140136ce0]
lea r8, str.FileObject
mov r9, r12
lea rdx, [0x14011037c]
call fcn.140050b90
mov eax, 1
jmp 0x1400abee6
mov eax, esi
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret