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

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r14
push r15
sub rsp, 0x40
mov ebx, dword [rsp + 0x98]
mov r14d, r9d
mov rsi, rdx
mov r15, rcx
test ebx, ebx
jne 0x1400dea73
lea eax, [rbx + 4]
add rsp, 0x40
pop r15
pop r14
pop rdi
pop rsi
pop rbx
ret
mov qword [rsp + 0x80], r12
mov qword [rsp + 0x88], r13
mov r13, qword [rsp + 0x90]
mov r12, qword [r13]
dec ebx
mov ecx, dword [r12 + 0x10]
test ecx, ecx
je 0x1400deac9
dec ecx
je 0x1400deaab
dec ecx
je 0x1400deaab
sub ecx, 2
je 0x1400deab4
dec ecx
je 0x1400deac9
lea r12, [0x1401035ac]
jmp 0x1400deacd
mov rcx, qword [r12]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001830
mov r12, rax
jmp 0x1400deacd
mov r12, qword [r12]
mov edi, 4
lea rdx, str.Read
mov rcx, r12
mov r8d, edi
mov qword [rsp + 0x78], rbp
call qword [sym.imp.MSVCR100.dll__wcsnicmp]
xor r9d, r9d
test eax, eax
jne 0x1400deb27
cmp word [r12 + 8], r9w
lea rcx, [r12 + 8]
jne 0x1400deb06
lea ebp, [rdi - 3]
jmp 0x1400dec91
lea rdx, [0x14011bbb0]
call qword [sym.imp.MSVCR100.dll__wcsicmp]
mov ebp, 5
mov ecx, 3
test eax, eax
cmove ebp, ecx
jmp 0x1400dec8e
lea rdx, str.Write
mov r8d, 5
mov rcx, r12
call qword [sym.imp.MSVCR100.dll__wcsnicmp]
test eax, eax
jne 0x1400deb76
cmp word [r12 + 0xa], ax
lea rcx, [r12 + 0xa]
jne 0x1400deb56
lea ebp, [rax + 2]
jmp 0x1400dec8e
lea rdx, [0x14011bbb0]
call qword [sym.imp.MSVCR100.dll__wcsicmp]
xor r9d, r9d
mov ecx, r9d
test eax, eax
setne cl
lea ebp, [rcx + 4]
jmp 0x1400dec91
lea rdx, str.RawRead
mov rcx, r12
call qword [sym.imp.MSVCR100.dll__wcsicmp]
test eax, eax
jne 0x1400deb92
lea ebp, [rax + 6]
jmp 0x1400dec8e
lea rdx, str.RawWrite
mov rcx, r12
call qword [sym.imp.MSVCR100.dll__wcsicmp]
test eax, eax
jne 0x1400debae
lea ebp, [rax + 6]
jmp 0x1400dec8e
lea rdx, [0x14011c210]
mov rcx, r12
call qword [sym.imp.MSVCR100.dll__wcsicmp]
test eax, eax
je 0x1400dec89
lea rdx, str.Length
mov rcx, r12
call qword [sym.imp.MSVCR100.dll__wcsicmp]
test eax, eax
jne 0x1400debe2
lea ebp, [rax + 9]
jmp 0x1400dec8e
lea rdx, str.AtEOF
mov rcx, r12
call qword [sym.imp.MSVCR100.dll__wcsicmp]
test eax, eax
jne 0x1400debfe
lea ebp, [rax + 0xa]
jmp 0x1400dec8e
lea rdx, str.__Handle
mov rcx, r12
call qword [sym.imp.MSVCR100.dll__wcsicmp]
test eax, eax
jne 0x1400dec17
lea ebp, [rax + 0xb]
jmp 0x1400dec8e
lea rdx, str.Encoding
mov rcx, r12
call qword [sym.imp.MSVCR100.dll__wcsicmp]
test eax, eax
jne 0x1400dec30
lea ebp, [rax + 0xc]
jmp 0x1400dec8e
lea rdx, str.Close
mov rcx, r12
call qword [sym.imp.MSVCR100.dll__wcsicmp]
test eax, eax
jne 0x1400dec49
lea ebp, [rax + 0xd]
jmp 0x1400dec8e
lea rdx, str.Position
mov rcx, r12
call qword [sym.imp.MSVCR100.dll__wcsicmp]
test eax, eax
je 0x1400dec89
lea rdx, str.Seek
mov rcx, r12
call qword [sym.imp.MSVCR100.dll__wcsicmp]
test eax, eax
je 0x1400dec89
lea rdx, str.Tell
mov rcx, r12
call qword [sym.imp.MSVCR100.dll__wcsicmp]
test eax, eax
jne 0x1400df607
mov ebp, 8
xor r9d, r9d
test r14b, 2
jne 0x1400decad
cmp ebp, 7
jl 0x1400df600
and r14d, 1
cmp ebx, r14d
jne 0x1400df600
lea eax, [rbp - 1]
mov dword [rsi + 0x10], 1
cmp eax, 0xc
ja case.0x1400ded4b.69
lea rcx, [0x140000000]
cdqe
mov eax, dword [rcx + rax*4 + 0xdf62c]
add rax, rcx
jmp rax
movzx eax, word [r12]
cmp ax, 0x52
je 0x1400deceb
cmp ax, 0x72
je 0x1400deceb
xor r15b, r15b
jmp 0x1400decee
mov r15b, 1
movzx eax, r15b
mov ebp, r9d
neg al
sbb rcx, rcx
lea r14, [r12 + rcx*2 + 0xa]
movzx ecx, word [r12 + rcx*2 + 0xa]
call fcn.140016bd0
cmp ax, 0x55
jne 0x1400ded19
add r14, 2
xor r12d, r12d
jmp 0x1400ded1f
mov r12d, 1
movzx ecx, word [r14]
call fcn.140016bd0
movzx edx, ax
add edx, 0xffffffbd
cmp edx, 0x10
ja case.0x1400ded4b.69
lea rcx, [0x140000000]
movsxd rax, edx
mov edx, dword [rcx + rax*4 + 0xdf660]
add rdx, rcx
jmp rdx
mov dx, getservbyname
mov rcx, r14
call qword [sym.imp.MSVCR100.dll_wcschr]
test rax, rax
mov eax, 8
cmovne edi, eax
jmp 0x1400ded8a
mov r14d, 2
mov edi, r14d
jmp 0x1400ded90
mov edi, 1
jmp 0x1400ded8a
mov edi, 8
jmp 0x1400ded8a
mov edi, 8
mov ebp, 1
mov r14d, 2
test r15b, r15b
je 0x1400dee54
mov rcx, qword [rsp + 0x70]
lea rdx, [rsp + 0x30]
mov r8d, edi
add rcx, 0x10
mov qword [rsp + 0x30], 0
call fcn.1400de380
test eax, eax
je case.0x1400ded4b.69
test ebp, ebp
je 0x1400dedfa
cmp edi, 4
jne 0x1400dede2
movd xmm0, dword [rsp + 0x30]
mov dword [rsi + 0x10], r14d
lea eax, [rdi - 3]
cvtps2pd xmm0, xmm0
movsd qword [rsi], xmm0
jmp 0x1400df609
movsd xmm0, qword [rsp + 0x30]
mov dword [rsi + 0x10], r14d
mov eax, 1
movsd qword [rsi], xmm0
jmp 0x1400df609
test r12d, r12d
je 0x1400dee42
dec edi
je 0x1400dee2f
dec edi
je 0x1400dee1c
cmp edi, 2
jne 0x1400dee42
movsxd rax, dword [rsp + 0x30]
mov qword [rsi], rax
lea eax, [rdi - 1]
jmp 0x1400df609
movsx rax, word [rsp + 0x30]
mov qword [rsi], rax
mov eax, 1
jmp 0x1400df609
movsx rax, byte [rsp + 0x30]
mov qword [rsi], rax
mov eax, 1
jmp 0x1400df609
mov rax, qword [rsp + 0x30]
mov qword [rsi], rax
mov eax, 1
jmp 0x1400df609
cmp ebx, 1
jne case.0x1400ded4b.69
mov r9, qword [r13 + 8]
test ebp, ebp
je 0x1400deee3
mov ecx, dword [r9 + 0x10]
dec ecx
je 0x1400deeb5
dec ecx
je 0x1400deeae
sub ecx, 2
je 0x1400deea2
dec ecx
je 0x1400dee84
dec ecx
jne 0x1400dee98
xorpd xmm0, xmm0
jmp 0x1400deebe
mov rax, qword [r9 + 8]
test rax, rax
je 0x1400dee98
pxor xmm0, xmm0
cvtsi2sd xmm0, qword [rax]
jmp 0x1400deebe
mov rcx, qword [r9]
call fcn.14002f9a0
jmp 0x1400deebe
mov rcx, qword [r9]
xor edx, edx
call fcn.14002fbb0
jmp 0x1400deebe
movsd xmm0, qword [r9]
jmp 0x1400deebe
pxor xmm0, xmm0
cvtsi2sd xmm0, qword [r9]
movsd qword [rsp + 0x30], xmm0
lea rbp, [0x1401035ac]
cmp edi, 4
jne 0x1400def6e
cvtsd2ss xmm0, xmm0
movss dword [rsp + 0x30], xmm0
jmp 0x1400def6e
cmp edi, 8
jne 0x1400def58
test r12d, r12d
jne 0x1400def58
mov ecx, dword [r9 + 0x10]
cmp ecx, 1
je 0x1400def58
cmp ecx, 2
je 0x1400def58
test ecx, ecx
je 0x1400def44
dec ecx
je 0x1400def10
dec ecx
je 0x1400def10
sub ecx, 2
je 0x1400def24
dec ecx
je 0x1400def44
lea rbp, [0x1401035ac]
mov rax, rbp
mov rcx, rax
call fcn.140061550
jmp 0x1400def69
mov rcx, qword [r9]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001830
lea rbp, [0x1401035ac]
mov rcx, rax
call fcn.140061550
jmp 0x1400def69
mov rax, qword [r9]
lea rbp, [0x1401035ac]
mov rcx, rax
call fcn.140061550
jmp 0x1400def69
xor edx, edx
mov rcx, r9
call fcn.14009e850
lea rbp, [0x1401035ac]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x70]
lea rdx, [rsp + 0x30]
mov r8d, edi
add rcx, 0x10
call fcn.1400de710
test eax, eax
jne 0x1400def9c
mov rcx, qword [0x14013b0f8]
test byte [rcx + 0x140], 1
jne 0x1400df553
mov eax, eax
mov qword [rsi], rax
mov eax, 1
jmp 0x1400df609
cmp ebx, 1
jg case.0x1400ded4b.69
test ebx, ebx
je 0x1400defc8
mov rcx, qword [r13 + 8]
xor edx, edx
call fcn.14009e850
mov rbx, rax
jmp 0x1400defdf
lea rcx, [r15 + 0x10]
call fcn.1400ddd20
lea rcx, [r15 + 0x10]
mov rbx, rax
call fcn.1400ddcd0
sub ebx, eax
cmp ebx, 0xffffffff
je case.0x1400ded4b.69
mov r8d, ebx
xor edx, edx
mov rcx, rsi
call fcn.14009ed70
test eax, eax
je case.0x1400ded4b.69
mov rdx, qword [rsi]
lea rcx, [r15 + 0x10]
xor r9d, r9d
mov r8d, ebx
call fcn.1400ddfc0
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 0x1400df609
test ebx, ebx
jne case.0x1400ded4b.69
mov ecx, 0x20002
call qword [sym.imp.MSVCR100.dll_malloc]
mov qword [rsi + 0x18], rax
test rax, rax
je case.0x1400ded4b.69
mov qword [rsi], rax
xor edi, edi
mov qword [rsi + 8], 0x10000
mov word [rax + 0x20000], di
mov rdx, qword [rsi]
lea rcx, [r15 + 0x10]
lea r9d, [rbx + 1]
mov r8d, 0xffff
call fcn.1400ddfc0
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 0x1400df609
cmp ebx, 1
jg case.0x1400ded4b.69
mov edi, r9d
mov r12d, r9d
test ebx, ebx
je 0x1400df105
mov rdx, qword [rsi + 8]
mov rcx, qword [r13 + 8]
call fcn.14009e8f0
mov rdx, qword [r13 + 8]
cmp dword [rdx + 0x10], 4
mov rbx, rax
jne 0x1400df0e1
mov rdx, qword [rdx]
cmp byte [rdx + 0x23], 0
jne 0x1400df0cb
mov rcx, qword [rdx + 0x10]
movzx ecx, byte [rcx + 0x21]
jmp 0x1400df0cf
movzx ecx, byte [rdx + 0x21]
test cl, 1
jne 0x1400df0e1
mov rcx, rdx
call fcn.14002cff0
mov r12, rax
jmp 0x1400df0f4
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
lea r12d, [rcx - 1]
lea rcx, [r15 + 0x10]
mov r8d, r12d
mov rdx, rbx
call fcn.1400de4d0
mov edi, eax
cmp ebp, 4
jne 0x1400df12e
test edi, edi
jne 0x1400df113
test r12d, r12d
jne 0x1400df137
lea rcx, [r15 + 0x10]
lea rdx, [0x1401235d4]
mov r8d, 1
inc r12d
call fcn.1400de4d0
add edi, eax
test edi, edi
jne 0x1400df14b
test r12d, r12d
je 0x1400df14b
mov rax, qword [0x14013b0f8]
test byte [rax + 0x140], 1
jne case.0x1400ded4b.69
mov eax, edi
mov qword [rsi], rax
mov eax, 1
jmp 0x1400df609
cmp ebx, 2
jne case.0x1400ded4b.69
movzx eax, word [r12 + 6]
cmp ax, 0x52
je 0x1400df179
cmp ax, 0x72
je 0x1400df179
xor bl, bl
jmp 0x1400df17b
mov bl, 1
mov rcx, qword [r13 + 0x10]
mov rdi, qword [r13 + 8]
xor edx, edx
call fcn.14009e850
cmp dword [rdi + 0x10], 4
mov rbp, rax
jne 0x1400df21c
mov rax, qword [rdi]
cmp byte [rax + 0x23], 0
jne 0x1400df1a6
mov rcx, qword [rax + 0x10]
jmp 0x1400df1a9
mov rcx, rax
cmp byte [rcx + 0x23], 2
jne 0x1400df1b7
mov ecx, dword [0x140143df8]
jmp 0x1400df1bb
mov rcx, qword [rcx + 0x18]
mov edx, ebp
cmp rdx, rcx
jbe 0x1400df20b
test bl, bl
je 0x1400df1e8
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.1400e6e20
test eax, eax
jne 0x1400df20b
mov rax, qword [0x14013b0f8]
test byte [rax + 0x140], 1
jne case.0x1400ded4b.69
xor eax, eax
mov qword [rsi], rax
mov eax, 1
jmp 0x1400df609
mov rcx, qword [rdi]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001830
jmp 0x1400df226
xor edx, edx
mov rcx, rdi
call fcn.14009e850
cmp rax, 0x10000
jae 0x1400df234
xor eax, eax
mov ecx, eax
jmp 0x1400df254
lea rcx, [r15 + 0x10]
mov r8d, ebp
mov rdx, rax
test bl, bl
je 0x1400df249
call fcn.1400de380
jmp 0x1400df24e
call fcn.1400de710
mov ecx, eax
test eax, eax
jne 0x1400df26c
test ebp, ebp
je 0x1400df26c
mov rax, qword [0x14013b0f8]
test byte [rax + 0x140], 1
jne case.0x1400ded4b.69
mov eax, ecx
mov qword [rsi], rax
mov eax, 1
jmp 0x1400df609
test ebx, ebx
jne 0x1400df293
lea rcx, [r15 + 0x10]
call fcn.1400ddcd0
mov qword [rsi], rax
lea eax, [rbx + 1]
jmp 0x1400df609
cmp ebx, 2
jg case.0x1400ded4b.69
mov rcx, qword [r13 + 8]
xor edx, edx
call fcn.14009e850
mov rdi, rax
cmp ebx, 2
jne 0x1400df2be
mov rcx, qword [r13 + 0x10]
xor edx, edx
call fcn.14009e850
xor ebx, ebx
jmp 0x1400df2cd
xor ebx, ebx
mov ecx, 2
test rdi, rdi
mov eax, ebx
cmovs eax, ecx
lea rcx, [r15 + 0x10]
mov r8d, eax
mov rdx, rdi
call fcn.1400ddc40
test al, al
jne 0x1400df301
mov rax, qword [0x14013b0f8]
test byte [rax + 0x140], 1
jne case.0x1400ded4b.69
mov qword [rsi], rbx
mov eax, 1
jmp 0x1400df609
mov qword [rsi], 1
mov eax, 1
jmp 0x1400df609
test ebx, ebx
jne 0x1400df32a
lea rcx, [r15 + 0x10]
call fcn.1400ddd20
mov qword [rsi], rax
lea eax, [rbx + 1]
jmp 0x1400df609
cmp ebx, 1
jne case.0x1400ded4b.69
mov rcx, qword [r13 + 8]
xor edx, edx
call fcn.14009e850
lea rcx, [r15 + 0x10]
mov rdx, rax
call fcn.1400ddd70
mov qword [rsi], rax
cmp rax, 0xffffffffffffffff
jne 0x1400df600
lea rbp, [0x1401035ac]
mov qword [rsi], rbp
jmp 0x1400df553
test ebx, ebx
jne 0x1400df3bd
mov rcx, qword [r15 + 0x40]
test rcx, rcx
je 0x1400df380
mov eax, dword [r15 + 0x1c]
add rax, qword [r15 + 0x48]
cmp rcx, rax
jb 0x1400df3a3
mov rax, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
call qword [rax + 0x30]
mov rbx, rax
test rax, rax
js 0x1400df3b5
mov rdx, qword [r15 + 0x10]
lea rcx, [r15 + 0x10]
call qword [rdx + reloc.WSOCK32.dll_getservbyport]
cmp rbx, rax
jge 0x1400df3b5
xor al, al
movzx eax, al
mov qword [rsi], rax
mov eax, 1
jmp 0x1400df609
mov al, 1
movzx eax, al
mov qword [rsi], rax
mov eax, 1
jmp 0x1400df609
test ebx, ebx
jne 0x1400df42b
mov rdx, qword [r15 + 0x40]
test rdx, rdx
je 0x1400df3f9
sub rdx, qword [r15 + 0x48]
mov eax, dword [r15 + 0x1c]
mov rdi, qword [r15 + 0x10]
lea r8d, [rbx + 1]
lea rcx, [r15 + 0x10]
sub rdx, rax
call qword [rdi + 0x28]
xor r9d, r9d
mov qword [r15 + 0x40], r9
mov dword [r15 + 0x1c], r9d
mov r8d, dword [r15 + 0x1c]
test r8d, r8d
je 0x1400df41f
cmp qword [r15 + 0x40], 0
jne 0x1400df41f
mov rax, qword [r15 + 0x10]
mov rdx, qword [r15 + 0x48]
lea rcx, [r15 + 0x10]
call qword [rax + 0x20]
xor r9d, r9d
mov dword [r15 + 0x1c], r9d
mov rax, qword [r15 + 0x50]
mov word [r15 + 0x3c], r9w
mov qword [rsi], rax
mov eax, 1
jmp 0x1400df609
test ebx, ebx
jle 0x1400df4ab
mov rcx, qword [r13 + 8]
call fcn.14009e540
test eax, eax
je 0x1400df453
mov rcx, qword [r13 + 8]
xor edx, edx
call fcn.14009e850
jmp 0x1400df497
mov rdi, qword [r13 + 8]
mov ecx, dword [rdi + 0x10]
test ecx, ecx
je 0x1400df48c
dec ecx
je 0x1400df46f
dec ecx
je 0x1400df46f
sub ecx, 2
je 0x1400df478
dec ecx
je 0x1400df48c
lea rbp, [0x1401035ac]
jmp 0x1400df48f
mov rcx, qword [rdi]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001830
mov rbp, rax
jmp 0x1400df48f
mov rbp, qword [rdi]
mov rcx, rbp
call fcn.140033720
cmp eax, 0xffffffff
je 0x1400df4ab
btr eax, 0x1f
lea rcx, [r15 + 0x10]
mov edx, eax
call fcn.1400051c0
mov ecx, dword [r15 + 0x24]
cmp ecx, 0x4b0
je 0x1400df50d
cmp ecx, 0xfde9
je 0x1400df4f4
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 qword [sym.imp.MSVCR100.dll__itow]
xor eax, eax
mov qword [rsi], rdi
mov dword [rsi + 0x10], eax
mov eax, 1
jmp 0x1400df609
xor eax, eax
lea rdi, str.UTF_8
mov dword [rsi + 0x10], eax
mov qword [rsi], rdi
mov eax, 1
jmp 0x1400df609
xor eax, eax
lea rdi, str.UTF_16
mov dword [rsi + 0x10], eax
mov qword [rsi], rdi
mov eax, 1
jmp 0x1400df609
test ebx, ebx
jne 0x1400df533
lea rcx, [r15 + 0x10]
call fcn.140005170
xor eax, eax
lea rbp, [0x1401035ac]
mov dword [rsi + 0x10], eax
mov qword [rsi], rbp
mov eax, 1
jmp 0x1400df609
lea rbp, [0x1401035ac]
mov rax, qword [0x14013b0f8]
xor r12d, r12d
mov dword [rsi + 0x10], r12d
test byte [rax + 0x140], 1
je 0x1400df600
mov rbx, qword [0x140143818]
lea ecx, [r12 + 0x20]
call qword [sym.imp.MSVCR100.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
mov rdi, rax
test rax, rax
je 0x1400df5e3
lea r8, str.FileObject
lea rdx, [0x14010771c]
mov r9, rbp
mov rcx, rbx
call fcn.14005e1b0
mov qword [rdi], rax
test rax, rax
je 0x1400df5da
mov rax, qword [0x14013b0f8]
mov dword [rdi + 0x10], 6
mov qword [rdi + 0x18], r12
test byte [rax + 0x140], 2
mov qword [rax + 0x148], rdi
jne 0x1400df600
mov rcx, rbx
call fcn.14005fa60
lea eax, [r12 + 1]
jmp 0x1400df609
mov rcx, rdi
call qword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void____ptr64_]
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.1400e9900
mov eax, 1
jmp 0x1400df609
mov eax, edi
mov rbp, qword [rsp + 0x78]
mov r12, qword [rsp + 0x80]
mov r13, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop rdi
pop rsi
pop rbx
ret