Function at 0x1400b7840
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r13
push r15
sub rsp, 0x40
mov ebx, dword [rsp + 0x98]
mov r15d, r9d
mov rsi, rdx
mov r13, rcx
test ebx, ebx
jne 0x1400b7873
lea eax, [rbx + 4]
add rsp, 0x40
pop r15
pop r13
pop rdi
pop rsi
pop rbx
ret
mov qword [rsp + 0x80], r12
mov qword [rsp + 0x88], r14
mov r14, qword [rsp + 0x90]
mov r12, qword [r14]
dec ebx
mov ecx, dword [r12 + 0x10]
test ecx, ecx
je 0x1400b78c8
dec ecx
je 0x1400b78aa
dec ecx
je 0x1400b78aa
sub ecx, 2
je 0x1400b78b3
dec ecx
je 0x1400b78c8
lea r12, [0x1400f1514]
jmp 0x1400b78cc
mov rcx, qword [r12]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001820
mov r12, rax
jmp 0x1400b78cc
mov r12, qword [r12]
mov edi, 4
lea rdx, str.Read
mov rcx, r12
mov r8d, edi
mov qword [rsp + 0x78], rbp
call fcn.1400d7260
xor r9d, r9d
test eax, eax
jne 0x1400b7924
cmp word [r12 + 8], r9w
lea rcx, [r12 + 8]
jne 0x1400b7904
lea ebp, [rdi - 3]
jmp 0x1400b7a9c
lea rdx, str.Line
call fcn.1400d6a8c
mov ebp, 5
mov ecx, 3
test eax, eax
cmove ebp, ecx
jmp 0x1400b7a99
lea rdx, str.Write
mov r8d, 5
mov rcx, r12
call fcn.1400d7260
test eax, eax
jne 0x1400b7971
cmp word [r12 + 0xa], ax
lea rcx, [r12 + 0xa]
jne 0x1400b7952
lea ebp, [rax + 2]
jmp 0x1400b7a99
lea rdx, str.Line
call fcn.1400d6a8c
xor r9d, r9d
mov ecx, r9d
test eax, eax
setne cl
lea ebp, [rcx + 4]
jmp 0x1400b7a9c
lea rdx, str.RawRead
mov rcx, r12
call fcn.1400d6a8c
test eax, eax
jne 0x1400b798c
lea ebp, [rax + 6]
jmp 0x1400b7a99
lea rdx, str.RawWrite
mov rcx, r12
call fcn.1400d6a8c
test eax, eax
jne 0x1400b79a7
lea ebp, [rax + 6]
jmp 0x1400b7a99
lea rdx, [0x1400f7d28]
mov rcx, r12
call fcn.1400d6a8c
test eax, eax
je 0x1400b7a94
lea rdx, str.Length
mov rcx, r12
call fcn.1400d6a8c
test eax, eax
jne 0x1400b79d9
lea ebp, [rax + 9]
jmp 0x1400b7a99
lea rdx, str.AtEOF
mov rcx, r12
call fcn.1400d6a8c
test eax, eax
jne 0x1400b79f4
lea ebp, [rax + 0xa]
jmp 0x1400b7a99
lea rdx, str.__Handle
mov rcx, r12
call fcn.1400d6a8c
test eax, eax
jne 0x1400b7a0f
lea ebp, [rax + 0xb]
jmp 0x1400b7a99
lea rdx, str.Handle
mov rcx, r12
call fcn.1400d6a8c
test eax, eax
jne 0x1400b7a27
lea ebp, [rax + 0xb]
jmp 0x1400b7a99
lea rdx, str.Encoding
mov rcx, r12
call fcn.1400d6a8c
test eax, eax
jne 0x1400b7a3f
lea ebp, [rax + 0xc]
jmp 0x1400b7a99
lea rdx, str.Close
mov rcx, r12
call fcn.1400d6a8c
test eax, eax
jne 0x1400b7a57
lea ebp, [rax + 0xd]
jmp 0x1400b7a99
lea rdx, str.Position
mov rcx, r12
call fcn.1400d6a8c
test eax, eax
je 0x1400b7a94
lea rdx, str.Seek
mov rcx, r12
call fcn.1400d6a8c
test eax, eax
je 0x1400b7a94
lea rdx, str.Tell
mov rcx, r12
call fcn.1400d6a8c
test eax, eax
jne 0x1400b83a7
mov ebp, 8
xor r9d, r9d
test r15b, 2
jne 0x1400b7ab8
cmp ebp, 7
jl 0x1400b83a0
and r15d, 1
cmp ebx, r15d
jne 0x1400b83a0
lea eax, [rbp - 1]
mov dword [rsi + 0x10], 1
cmp eax, 0xc
ja case.0x1400b7b57.69
lea rcx, [0x140000000]
cdqe
mov eax, dword [rcx + rax*4 + 0xb83cc]
add rax, rcx
jmp rax
movzx eax, word [r12]
cmp ax, 0x52
je 0x1400b7af6
cmp ax, 0x72
je 0x1400b7af6
xor r15b, r15b
jmp 0x1400b7af9
mov r15b, 1
movzx eax, r15b
mov ebp, r9d
neg al
sbb rcx, rcx
lea r13, [r12 + rcx*2 + 0xa]
movzx ecx, word [r12 + rcx*2 + 0xa]
call fcn.140014b90
cmp ax, 0x55
jne 0x1400b7b24
add r13, 2
xor r12d, r12d
jmp 0x1400b7b2a
mov r12d, 1
movzx ecx, word [r13]
call fcn.140014b90
movzx edx, ax
add edx, 0xffffffbd
cmp edx, 0x10
ja case.0x1400b7b57.69
lea rcx, [0x140000000]
movsxd rax, edx
mov edx, dword [rcx + rax*4 + 0xb8400]
add rdx, rcx
jmp rdx
mov dx, getservbyport
mov rcx, r13
call fcn.1400d7d74
test rax, rax
mov eax, 8
cmovne edi, eax
jmp 0x1400b7b95
mov r13d, 2
mov edi, r13d
jmp 0x1400b7b9b
mov edi, 1
jmp 0x1400b7b95
mov edi, 8
jmp 0x1400b7b95
mov edi, 8
mov ebp, 1
mov r13d, 2
test r15b, r15b
je 0x1400b7c5f
mov rcx, qword [rsp + 0x70]
lea rdx, [rsp + 0x30]
mov r8d, edi
add rcx, 0x10
mov qword [rsp + 0x30], 0
call fcn.1400b70f0
test eax, eax
je case.0x1400b7b57.69
test ebp, ebp
je 0x1400b7c05
cmp edi, 4
jne 0x1400b7bed
movd xmm0, dword [rsp + 0x30]
mov dword [rsi + 0x10], r13d
lea eax, [rdi - 3]
cvtps2pd xmm0, xmm0
movsd qword [rsi], xmm0
jmp 0x1400b83a9
movsd xmm0, qword [rsp + 0x30]
mov dword [rsi + 0x10], r13d
mov eax, 1
movsd qword [rsi], xmm0
jmp 0x1400b83a9
test r12d, r12d
je 0x1400b7c4d
dec edi
je 0x1400b7c3a
dec edi
je 0x1400b7c27
cmp edi, 2
jne 0x1400b7c4d
movsxd rax, dword [rsp + 0x30]
mov qword [rsi], rax
lea eax, [rdi - 1]
jmp 0x1400b83a9
movsx rax, word [rsp + 0x30]
mov qword [rsi], rax
mov eax, 1
jmp 0x1400b83a9
movsx rax, byte [rsp + 0x30]
mov qword [rsi], rax
mov eax, 1
jmp 0x1400b83a9
mov rax, qword [rsp + 0x30]
mov qword [rsi], rax
mov eax, 1
jmp 0x1400b83a9
cmp ebx, 1
jne case.0x1400b7b57.69
mov r9, qword [r14 + 8]
test ebp, ebp
je 0x1400b7ca2
xor r8d, r8d
mov edx, ebx
mov rcx, r9
call fcn.1400859c0
lea rbp, [0x1400f1514]
movsd qword [rsp + 0x30], xmm0
cmp edi, 4
jne 0x1400b7d2d
cvtsd2ss xmm0, xmm0
movss dword [rsp + 0x30], xmm0
jmp 0x1400b7d2d
cmp edi, 8
jne 0x1400b7d17
test r12d, r12d
jne 0x1400b7d17
mov ecx, dword [r9 + 0x10]
cmp ecx, 1
je 0x1400b7d17
cmp ecx, 2
je 0x1400b7d17
test ecx, ecx
je 0x1400b7d03
dec ecx
je 0x1400b7ccf
dec ecx
je 0x1400b7ccf
sub ecx, 2
je 0x1400b7ce3
dec ecx
je 0x1400b7d03
lea rbp, [0x1400f1514]
mov rax, rbp
mov rcx, rax
call fcn.140050440
jmp 0x1400b7d28
mov rcx, qword [r9]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001820
lea rbp, [0x1400f1514]
mov rcx, rax
call fcn.140050440
jmp 0x1400b7d28
mov rax, qword [r9]
lea rbp, [0x1400f1514]
mov rcx, rax
call fcn.140050440
jmp 0x1400b7d28
xor edx, edx
mov rcx, r9
call fcn.140085920
lea rbp, [0x1400f1514]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x70]
lea rdx, [rsp + 0x30]
mov r8d, edi
add rcx, 0x10
call fcn.1400b7480
test eax, eax
jne 0x1400b7d5b
mov rcx, qword [0x1401255c8]
test byte [rcx + 0x140], 1
jne 0x1400b8302
mov eax, eax
mov qword [rsi], rax
mov eax, 1
jmp 0x1400b83a9
cmp ebx, 1
jg case.0x1400b7b57.69
test ebx, ebx
je 0x1400b7d87
mov rcx, qword [r14 + 8]
xor edx, edx
call fcn.140085920
mov rbx, rax
jmp 0x1400b7d9e
lea rcx, [r13 + 0x10]
call fcn.1400b6a30
lea rcx, [r13 + 0x10]
mov rbx, rax
call fcn.1400b69e0
sub ebx, eax
cmp ebx, 0xffffffff
je case.0x1400b7b57.69
mov r8d, ebx
xor edx, edx
mov rcx, rsi
call fcn.140085f00
test eax, eax
je case.0x1400b7b57.69
mov rdx, qword [rsi]
lea rcx, [r13 + 0x10]
xor r9d, r9d
mov r8d, ebx
call fcn.1400b6cd0
xor edx, edx
mov ecx, eax
mov rax, qword [rsi]
mov dword [rsi + 0x10], edx
mov word [rax + rcx*2], dx
mov qword [rsi + 8], rcx
lea eax, [rdx + 1]
jmp 0x1400b83a9
test ebx, ebx
jne case.0x1400b7b57.69
mov ecx, 0x20002
call fcn.1400d6f18
mov qword [rsi + 0x18], rax
test rax, rax
je case.0x1400b7b57.69
mov qword [rsi], rax
xor edi, edi
mov qword [rsi + 8], 0x10000
mov word [rax + 0x20000], di
mov rdx, qword [rsi]
lea rcx, [r13 + 0x10]
lea r9d, [rbx + 1]
mov r8d, 0xffff
call fcn.1400b6cd0
mov dword [rsi + 0x10], edi
mov ecx, eax
mov rax, qword [rsi]
mov word [rax + rcx*2], di
mov qword [rsi + 8], rcx
lea eax, [rbx + 1]
jmp 0x1400b83a9
cmp ebx, 1
jg case.0x1400b7b57.69
mov r12d, r9d
mov edi, r9d
test ebx, ebx
je 0x1400b7ec3
mov rdx, qword [rsi + 8]
mov rcx, qword [r14 + 8]
call fcn.140085a80
mov rdx, qword [r14 + 8]
cmp dword [rdx + 0x10], 4
mov rbx, rax
jne 0x1400b7e9f
mov rdx, qword [rdx]
cmp byte [rdx + 0x23], 0
jne 0x1400b7e89
mov rcx, qword [rdx + 0x10]
movzx ecx, byte [rcx + 0x21]
jmp 0x1400b7e8d
movzx ecx, byte [rdx + 0x21]
test cl, 1
jne 0x1400b7e9f
mov rcx, rdx
call fcn.140024830
mov rdi, rax
jmp 0x1400b7eb1
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
lea edi, [rcx - 1]
lea rcx, [r13 + 0x10]
mov r8d, edi
mov rdx, rbx
call fcn.1400b7240
mov r12d, eax
cmp ebp, 4
jne 0x1400b7eec
test r12d, r12d
jne 0x1400b7ed1
test edi, edi
jne 0x1400b7ef5
lea rcx, [r13 + 0x10]
lea rdx, [0x1400fef04]
mov r8d, 1
inc edi
call fcn.1400b7240
add r12d, eax
test r12d, r12d
jne 0x1400b7f09
test edi, edi
je 0x1400b7f09
mov rax, qword [0x1401255c8]
test byte [rax + 0x140], 1
jne case.0x1400b7b57.69
mov eax, r12d
mov qword [rsi], rax
mov eax, 1
jmp 0x1400b83a9
cmp ebx, 2
jne case.0x1400b7b57.69
movzx eax, word [r12 + 6]
cmp ax, 0x52
je 0x1400b7f38
cmp ax, 0x72
je 0x1400b7f38
xor bl, bl
jmp 0x1400b7f3a
mov bl, 1
mov rcx, qword [r14 + 0x10]
mov rdi, qword [r14 + 8]
xor edx, edx
call fcn.140085920
cmp dword [rdi + 0x10], 4
mov rbp, rax
jne 0x1400b7fdb
mov rax, qword [rdi]
cmp byte [rax + 0x23], 0
jne 0x1400b7f65
mov rcx, qword [rax + 0x10]
jmp 0x1400b7f68
mov rcx, rax
cmp byte [rcx + 0x23], 2
jne 0x1400b7f76
mov ecx, dword [0x14012d250]
jmp 0x1400b7f7a
mov rcx, qword [rcx + 0x18]
mov edx, ebp
cmp rdx, rcx
jbe 0x1400b7fca
test bl, bl
je 0x1400b7fa7
mov r8d, edx
and edx, 1
xor r9d, r9d
shr r8, 1
mov rcx, rax
mov byte [rsp + 0x20], 0
add r8, rdx
xor edx, edx
call fcn.1400bd650
test eax, eax
jne 0x1400b7fca
mov rax, qword [0x1401255c8]
test byte [rax + 0x140], 1
jne case.0x1400b7b57.69
xor eax, eax
mov qword [rsi], rax
mov eax, 1
jmp 0x1400b83a9
mov rcx, qword [rdi]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001820
jmp 0x1400b7fe5
xor edx, edx
mov rcx, rdi
call fcn.140085920
cmp rax, 0x10000
jae 0x1400b7ff3
xor eax, eax
mov ecx, eax
jmp 0x1400b8013
lea rcx, [r13 + 0x10]
mov r8d, ebp
mov rdx, rax
test bl, bl
je 0x1400b8008
call fcn.1400b70f0
jmp 0x1400b800d
call fcn.1400b7480
mov ecx, eax
test eax, eax
jne 0x1400b802b
test ebp, ebp
je 0x1400b802b
mov rax, qword [0x1401255c8]
test byte [rax + 0x140], 1
jne case.0x1400b7b57.69
mov eax, ecx
mov qword [rsi], rax
mov eax, 1
jmp 0x1400b83a9
test ebx, ebx
jne 0x1400b8052
lea rcx, [r13 + 0x10]
call fcn.1400b69e0
mov qword [rsi], rax
lea eax, [rbx + 1]
jmp 0x1400b83a9
cmp ebx, 2
jg case.0x1400b7b57.69
mov rcx, qword [r14 + 8]
xor edx, edx
call fcn.140085920
mov rdi, rax
cmp ebx, 2
jne 0x1400b807d
mov rcx, qword [r14 + 0x10]
xor edx, edx
call fcn.140085920
xor ebx, ebx
jmp 0x1400b808c
xor ebx, ebx
mov ecx, 2
test rdi, rdi
mov eax, ebx
cmovs eax, ecx
lea rcx, [r13 + 0x10]
mov r8d, eax
mov rdx, rdi
call fcn.1400b6950
test al, al
jne 0x1400b80c0
mov rax, qword [0x1401255c8]
test byte [rax + 0x140], 1
jne case.0x1400b7b57.69
mov qword [rsi], rbx
mov eax, 1
jmp 0x1400b83a9
mov qword [rsi], 1
mov eax, 1
jmp 0x1400b83a9
test ebx, ebx
jne 0x1400b80e9
lea rcx, [r13 + 0x10]
call fcn.1400b6a30
mov qword [rsi], rax
lea eax, [rbx + 1]
jmp 0x1400b83a9
cmp ebx, 1
jne case.0x1400b7b57.69
mov rcx, qword [r14 + 8]
xor edx, edx
call fcn.140085920
lea rcx, [r13 + 0x10]
mov rdx, rax
call fcn.1400b6a80
mov qword [rsi], rax
cmp rax, 0xffffffffffffffff
jne 0x1400b83a0
lea rbp, [0x1400f1514]
mov qword [rsi], rbp
jmp 0x1400b8302
test ebx, ebx
jne 0x1400b817c
mov rcx, qword [r13 + 0x40]
test rcx, rcx
je 0x1400b813f
mov eax, dword [r13 + 0x1c]
add rax, qword [r13 + 0x48]
cmp rcx, rax
jb 0x1400b8162
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + 0x30]
mov rbx, rax
test rax, rax
js 0x1400b8174
mov rdx, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rdx + reloc.WSOCK32.dll_getservbyport]
cmp rbx, rax
jge 0x1400b8174
xor al, al
movzx eax, al
mov qword [rsi], rax
mov eax, 1
jmp 0x1400b83a9
mov al, 1
movzx eax, al
mov qword [rsi], rax
mov eax, 1
jmp 0x1400b83a9
test ebx, ebx
jne 0x1400b81ea
mov rdx, qword [r13 + 0x40]
test rdx, rdx
je 0x1400b81b8
sub rdx, qword [r13 + 0x48]
mov eax, dword [r13 + 0x1c]
mov rdi, qword [r13 + 0x10]
lea r8d, [rbx + 1]
lea rcx, [r13 + 0x10]
sub rdx, rax
call qword [rdi + 0x28]
xor r9d, r9d
mov qword [r13 + 0x40], r9
mov dword [r13 + 0x1c], r9d
mov r8d, dword [r13 + 0x1c]
test r8d, r8d
je 0x1400b81de
cmp qword [r13 + 0x40], 0
jne 0x1400b81de
mov rax, qword [r13 + 0x10]
mov rdx, qword [r13 + 0x48]
lea rcx, [r13 + 0x10]
call qword [rax + 0x20]
xor r9d, r9d
mov dword [r13 + 0x1c], r9d
mov rax, qword [r13 + 0x50]
mov word [r13 + 0x3c], r9w
mov qword [rsi], rax
mov eax, 1
jmp 0x1400b83a9
test ebx, ebx
jle 0x1400b826a
mov rcx, qword [r14 + 8]
call fcn.140085630
test eax, eax
je 0x1400b8212
mov rcx, qword [r14 + 8]
xor edx, edx
call fcn.140085920
jmp 0x1400b8256
mov rdi, qword [r14 + 8]
mov ecx, dword [rdi + 0x10]
test ecx, ecx
je 0x1400b824b
dec ecx
je 0x1400b822e
dec ecx
je 0x1400b822e
sub ecx, 2
je 0x1400b8237
dec ecx
je 0x1400b824b
lea rbp, [0x1400f1514]
jmp 0x1400b824e
mov rcx, qword [rdi]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001820
mov rbp, rax
jmp 0x1400b824e
mov rbp, qword [rdi]
mov rcx, rbp
call fcn.140028110
cmp eax, 0xffffffff
je 0x1400b826a
btr eax, 0x1f
lea rcx, [r13 + 0x10]
mov edx, eax
call fcn.140005850
mov ecx, dword [r13 + 0x24]
cmp ecx, 0x4b0
je 0x1400b82cb
cmp ecx, 0xfde9
je 0x1400b82b2
mov rdi, qword [rsi + 8]
mov eax, 0x43
mov word [rdi], ax
mov eax, 0x50
lea rdx, [rdi + 4]
lea r8d, [rax - 0x46]
mov word [rdi + 2], ax
call fcn.1400d67e0
xor eax, eax
mov qword [rsi], rdi
mov dword [rsi + 0x10], eax
mov eax, 1
jmp 0x1400b83a9
xor eax, eax
lea rdi, str.UTF_8
mov dword [rsi + 0x10], eax
mov qword [rsi], rdi
mov eax, 1
jmp 0x1400b83a9
xor eax, eax
lea rdi, str.UTF_16
mov dword [rsi + 0x10], eax
mov qword [rsi], rdi
mov eax, 1
jmp 0x1400b83a9
test ebx, ebx
jne 0x1400b82f1
lea rcx, [r13 + 0x10]
call fcn.140028330
mov eax, 1
jmp 0x1400b83a9
lea rbp, [0x1400f1514]
mov rax, qword [0x1401255c8]
xor r12d, r12d
mov dword [rsi + 0x10], r12d
test byte [rax + 0x140], 1
je 0x1400b83a0
mov rbx, qword [0x14012cc60]
lea ecx, [r12 + 0x20]
call fcn.1400d7728
mov rdi, rax
test rax, rax
je 0x1400b8383
lea r8, str.FileObject
lea rdx, [0x1400f565c]
mov r9, rbp
mov rcx, rbx
call fcn.14004cc90
mov qword [rdi], rax
test rax, rax
je 0x1400b837b
mov rdx, qword [0x1401255c8]
mov r8, rdi
mov rcx, rbx
mov dword [rdi + 0x10], 6
mov qword [rdi + 0x18], r12
call fcn.14004cec0
lea eax, [r12 + 1]
jmp 0x1400b83a9
mov rcx, rdi
call fcn.1400d6fd0
xorpd xmm3, xmm3
lea rcx, str.Out_of_memory.__The_current_thread_will_exit.
xor r8d, r8d
mov edx, 0x10000
mov qword [rsp + 0x20], r12
call fcn.1400c0060
mov eax, 1
jmp 0x1400b83a9
mov eax, edi
mov rbp, qword [rsp + 0x78]
mov r12, qword [rsp + 0x80]
mov r14, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r13
pop rdi
pop rsi
pop rbx
ret