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

Disassembly:
mov dword [rsp + 0x20], r9d
push rbx
push rsi
push rdi
push r13
sub rsp, 0x48
mov edi, dword [rsp + 0x98]
mov rsi, rdx
mov r13, rcx
test edi, edi
jne 0x14008a07c
lea eax, [rdi + 4]
add rsp, 0x48
pop r13
pop rdi
pop rsi
pop rbx
ret
mov qword [rsp + 0x78], r12
dec edi
mov r12, qword [rsp + 0x90]
mov qword [rsp + 0x80], r14
mov qword [rsp + 0x40], r15
mov r15, qword [r12]
mov ecx, dword [r15 + 0x10]
test ecx, ecx
je 0x14008a0d5
sub ecx, 1
je 0x14008a0b8
sub ecx, 1
je 0x14008a0b8
sub ecx, 2
je 0x14008a0c1
cmp ecx, 1
je 0x14008a0d5
lea r15, [0x1400cef3c]
jmp 0x14008a0d8
mov rcx, qword [r15]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001450
mov r15, rax
jmp 0x14008a0d8
mov r15, qword [r15]
mov ebx, 4
mov qword [rsp + 0x70], rbp
mov r8d, ebx
lea rdx, str.Read
mov rcx, r15
call fcn.1400aba40
xor r14d, r14d
lea edx, [rbx + 6]
lea r8d, [rbx + 4]
test eax, eax
jne 0x14008a139
cmp word [r15 + 8], r14w
lea rcx, [r15 + 8]
jne 0x14008a115
lea ebp, [rbx - 3]
jmp 0x14008a2c1
lea rdx, str.Line
call fcn.1400ab8c0
mov ecx, 3
test eax, eax
mov ebp, 5
cmove ebp, ecx
lea r8d, [rcx + 5]
jmp 0x14008a2bc
mov r8d, 5
lea rdx, str.Write
mov rcx, r15
call fcn.1400aba40
test eax, eax
jne 0x14008a18b
cmp word [r15 + 0xa], r14w
lea rcx, [r15 + 0xa]
jne 0x14008a169
lea ebp, [rax + 2]
lea r8d, [rax + 8]
jmp 0x14008a2bc
lea rdx, str.Line
call fcn.1400ab8c0
mov ecx, r14d
test eax, eax
mov r8d, 8
setne cl
lea ebp, [rcx + 4]
jmp 0x14008a2bc
lea rdx, str.RawRead
mov rcx, r15
call fcn.1400ab8c0
test eax, eax
jne 0x14008a1aa
lea ebp, [rax + 6]
lea r8d, [rax + 8]
jmp 0x14008a2bc
lea rdx, str.RawWrite
mov rcx, r15
call fcn.1400ab8c0
test eax, eax
jne 0x14008a1c9
lea ebp, [rax + 6]
lea r8d, [rax + 8]
jmp 0x14008a2bc
lea rdx, [0x1400e9008]
mov rcx, r15
call fcn.1400ab8c0
test eax, eax
je 0x14008a2b3
lea rdx, str.Length
mov rcx, r15
call fcn.1400ab8c0
test eax, eax
jne 0x14008a1ff
lea ebp, [rax + 9]
lea r8d, [rax + 8]
jmp 0x14008a2bc
lea rdx, str.AtEOF
mov rcx, r15
call fcn.1400ab8c0
test eax, eax
jne 0x14008a222
mov edx, 0xa
lea r8d, [rax + 8]
mov ebp, edx
jmp 0x14008a2c1
lea rdx, str.__Handle
mov rcx, r15
call fcn.1400ab8c0
test eax, eax
jne 0x14008a23e
lea ebp, [rax + 0xb]
lea r8d, [rax + 8]
jmp 0x14008a2bc
lea rdx, str.Encoding
mov rcx, r15
call fcn.1400ab8c0
test eax, eax
jne 0x14008a25a
lea ebp, [rax + 0xc]
lea r8d, [rax + 8]
jmp 0x14008a2bc
lea rdx, str.Close
mov rcx, r15
call fcn.1400ab8c0
test eax, eax
jne 0x14008a276
lea ebp, [rax + 0xd]
lea r8d, [rax + 8]
jmp 0x14008a2bc
lea rdx, str.Position
mov rcx, r15
call fcn.1400ab8c0
test eax, eax
je 0x14008a2b3
lea rdx, str.Seek
mov rcx, r15
call fcn.1400ab8c0
test eax, eax
je 0x14008a2b3
lea rdx, str.Tell
mov rcx, r15
call fcn.1400ab8c0
test eax, eax
jne 0x14008ab15
mov r8d, 8
mov ebp, r8d
mov edx, 0xa
mov eax, dword [rsp + 0x88]
test al, 2
jne 0x14008a2e0
cmp ebp, 7
jb 0x14008ab0e
and eax, 1
cmp edi, eax
jne 0x14008ab0e
lea eax, [rbp - 1]
mov dword [rsi + 0x10], 1
cmp eax, 0xc
ja case.0x14008a384.69
cdqe
lea rcx, sym.MZ____D3_.0Rb__hqjOe_e5e_JE_S3G_n____Y1_H
mov eax, dword [rcx + rax*4 + 0x8ab38]
add rax, rcx
jmp rax
movzx eax, word [r15]
mov ecx, 0xffdf
sub ax, 0x52
mov ebp, r14d
test cx, ax
sete al
test al, al
mov byte [rsp + 0x98], al
cmovne rdx, r8
add rdx, r15
mov qword [rsp + 0x38], rdx
movzx ecx, word [rdx]
call fcn.14000ae80
cmp ax, 0x55
mov rax, qword [rsp + 0x38]
jne 0x14008a354
add rax, 2
mov r15d, r14d
mov qword [rsp + 0x38], rax
jmp 0x14008a35a
mov r15d, 1
movzx ecx, word [rax]
call fcn.14000ae80
movzx eax, ax
add eax, 0xffffffbd
cmp eax, 0x10
ja case.0x14008a384.69
lea rcx, sym.MZ____D3_.0Rb__hqjOe_e5e_JE_S3G_n____Y1_H
cdqe
mov edx, dword [rcx + rax*4 + 0x8ab6c]
add rdx, rcx
jmp rdx
mov rcx, qword [rsp + 0x38]
mov dx, gethostname
call fcn.1400a9e38
test rax, rax
mov eax, 8
cmovne ebx, eax
jmp 0x14008a3c0
mov ebx, 2
jmp 0x14008a3c0
mov ebx, 1
jmp 0x14008a3c0
mov ebx, 8
jmp 0x14008a3c0
mov ebx, 8
mov ebp, 1
cmp byte [rsp + 0x98], r14b
je 0x14008a48a
lea rcx, [r13 + 0x10]
mov qword [rsp + 0x30], r14
mov r8d, ebx
lea rdx, [rsp + 0x30]
call fcn.1400898a0
test eax, eax
je case.0x14008a384.69
test ebp, ebp
je 0x14008a42e
cmp ebx, 4
jne 0x14008a412
movss xmm0, dword [rsp + 0x30]
mov eax, 2
cvtps2pd xmm0, xmm0
mov dword [rsi + 0x10], eax
lea eax, [rbx - 3]
movsd qword [rsi], xmm0
jmp 0x14008ab17
movsd xmm0, qword [rsp + 0x30]
mov eax, 2
mov dword [rsi + 0x10], eax
mov eax, 1
movsd qword [rsi], xmm0
jmp 0x14008ab17
test r15d, r15d
je 0x14008a478
sub ebx, 1
je 0x14008a465
sub ebx, 1
je 0x14008a452
cmp ebx, 2
jne 0x14008a478
movsxd rax, dword [rsp + 0x30]
mov qword [rsi], rax
lea eax, [rbx - 1]
jmp 0x14008ab17
movsx rax, word [rsp + 0x30]
mov qword [rsi], rax
mov eax, 1
jmp 0x14008ab17
movsx rax, byte [rsp + 0x30]
mov qword [rsi], rax
mov eax, 1
jmp 0x14008ab17
mov rax, qword [rsp + 0x30]
mov qword [rsi], rax
mov eax, 1
jmp 0x14008ab17
cmp edi, 1
jne case.0x14008a384.69
mov r9, qword [r12 + 8]
test ebp, ebp
je 0x14008a4ce
xor r8d, r8d
mov edx, edi
mov rcx, r9
call fcn.14005f2a0
movsd qword [rsp + 0x30], xmm0
lea rdi, [0x1400cef3c]
cmp ebx, 4
jne 0x14008a55a
cvtsd2ss xmm0, xmm0
movss dword [rsp + 0x30], xmm0
jmp 0x14008a55a
cmp ebx, 8
jne 0x14008a544
test r15d, r15d
jne 0x14008a544
mov ecx, dword [r9 + 0x10]
lea eax, [rcx - 1]
cmp eax, 1
jbe 0x14008a544
test ecx, ecx
je 0x14008a530
sub ecx, 1
je 0x14008a4fc
sub ecx, 1
je 0x14008a4fc
sub ecx, 2
je 0x14008a510
cmp ecx, 1
je 0x14008a530
lea rdi, [0x1400cef3c]
mov rax, rdi
mov rcx, rax
call fcn.14003b410
jmp 0x14008a555
mov rcx, qword [r9]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001450
mov rcx, rax
lea rdi, [0x1400cef3c]
call fcn.14003b410
jmp 0x14008a555
mov rax, qword [r9]
lea rdi, [0x1400cef3c]
mov rcx, rax
call fcn.14003b410
jmp 0x14008a555
xor edx, edx
mov rcx, r9
call fcn.14005f200
lea rdi, [0x1400cef3c]
mov qword [rsp + 0x30], rax
lea rcx, [r13 + 0x10]
mov r8d, ebx
lea rdx, [rsp + 0x30]
call fcn.140089c60
test eax, eax
jne 0x14008a583
mov rcx, qword [0x140100a58]
test byte [rcx + 0x140], 1
jne 0x14008aadd
mov eax, eax
mov qword [rsi], rax
mov eax, 1
jmp 0x14008ab17
cmp edi, 1
jg case.0x14008a384.69
test edi, edi
je 0x14008a5b0
mov rcx, qword [r12 + 8]
xor edx, edx
call fcn.14005f200
mov rbx, rax
jmp 0x14008a5c9
lea rcx, [r13 + 0x10]
call fcn.1400891d0
lea rcx, [r13 + 0x10]
mov rdi, rax
call fcn.140089220
sub eax, edi
mov ebx, eax
cmp ebx, 0xffffffff
je case.0x14008a384.69
mov r8d, ebx
xor edx, edx
mov rcx, rsi
call fcn.14005f810
test eax, eax
je case.0x14008a384.69
xor r9d, r9d
mov r8d, ebx
jmp 0x14008a62b
test edi, edi
jne case.0x14008a384.69
mov ecx, 0x20002
call fcn.1400aba38
mov qword [rsi + 0x18], rax
test rax, rax
je case.0x14008a384.69
mov qword [rsi], rax
lea r9d, [rdi + 1]
mov qword [rsi + 8], 0x10000
mov r8d, 0xffff
mov word [rax + 0x20000], r14w
mov rdx, qword [rsi]
lea rcx, [r13 + 0x10]
call fcn.1400894f0
mov ecx, eax
mov rax, qword [rsi]
mov dword [rsi + 0x10], r14d
mov word [rax + rcx*2], r14w
mov eax, 1
mov qword [rsi + 8], rcx
jmp 0x14008ab17
cmp edi, 1
jg case.0x14008a384.69
mov r15d, r14d
mov ebx, r14d
test edi, edi
je 0x14008a6cd
mov rdx, qword [rsi + 8]
mov rcx, qword [r12 + 8]
call fcn.14005f360
mov rdi, rax
mov rax, qword [r12 + 8]
cmp dword [rax + 0x10], 4
jne 0x14008a6aa
mov rax, qword [rax]
cmp byte [rax + 0x23], bl
jne 0x14008a694
mov rcx, qword [rax + 0x10]
movzx edx, byte [rcx + 0x21]
jmp 0x14008a698
movzx edx, byte [rax + 0x21]
test dl, 1
jne 0x14008a6aa
mov rcx, rax
call fcn.140017e10
mov rbx, rax
jmp 0x14008a6bb
or rax, 0xffffffffffffffff
nop
inc rax
cmp word [rdi + rax*2], bx
jne 0x14008a6b0
mov ebx, eax
lea rcx, [r13 + 0x10]
mov r8d, ebx
mov rdx, rdi
call fcn.1400899f0
mov r15d, eax
cmp ebp, 4
jne 0x14008a6f6
test r15d, r15d
jne 0x14008a6db
test ebx, ebx
jne 0x14008a6ff
lea rcx, [r13 + 0x10]
mov r8d, 1
lea rdx, [0x1400ea824]
inc ebx
call fcn.1400899f0
add r15d, eax
test r15d, r15d
jne 0x14008a713
test ebx, ebx
je 0x14008a713
mov rax, qword [0x140100a58]
test byte [rax + 0x140], 1
jne case.0x14008a384.69
mov eax, r15d
mov qword [rsi], rax
mov eax, 1
jmp 0x14008ab17
cmp edi, 2
jne case.0x14008a384.69
movzx eax, word [r15 + 6]
mov ecx, 0xffdf
mov rdi, qword [r12 + 8]
sub ax, 0x52
test cx, ax
mov rcx, qword [r12 + 0x10]
sete bpl
xor edx, edx
call fcn.14005f200
cmp dword [rdi + 0x10], 4
mov rbx, rax
jne 0x14008a7e0
mov rcx, qword [rdi]
cmp byte [rcx + 0x23], r14b
jne 0x14008a76e
mov rdx, qword [rcx + 0x10]
jmp 0x14008a771
mov rdx, rcx
cmp byte [rdx + 0x23], 2
jne 0x14008a77f
mov edx, dword [0x140107f28]
jmp 0x14008a783
mov rdx, qword [rdx + 0x18]
mov eax, ebx
cmp rax, rdx
jbe 0x14008a7cf
test bpl, bpl
je 0x14008a7ae
mov r8d, eax
mov byte [rsp + 0x20], r14b
shr r8, 1
and eax, 1
add r8, rax
xor r9d, r9d
xor edx, edx
call fcn.14008f120
test eax, eax
jne 0x14008a7cf
mov rax, qword [0x140100a58]
test byte [rax + 0x140], 1
jne case.0x14008a384.69
mov qword [rsi], r14
mov eax, 1
jmp 0x14008ab17
mov rcx, qword [rdi]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001450
jmp 0x14008a7ea
xor edx, edx
mov rcx, rdi
call fcn.14005f200
cmp rax, 0x10000
jae 0x14008a7f7
mov ecx, r14d
jmp 0x14008a818
lea rcx, [r13 + 0x10]
mov r8d, ebx
mov rdx, rax
test bpl, bpl
je 0x14008a80d
call fcn.1400898a0
jmp 0x14008a812
call fcn.140089c60
mov ecx, eax
test eax, eax
jne 0x14008a830
test ebx, ebx
je 0x14008a830
mov rax, qword [0x140100a58]
test byte [rax + 0x140], 1
jne case.0x14008a384.69
mov eax, ecx
mov qword [rsi], rax
mov eax, 1
jmp 0x14008ab17
test edi, edi
jne 0x14008a857
lea rcx, [r13 + 0x10]
call fcn.1400891d0
mov qword [rsi], rax
lea eax, [rdi + 1]
jmp 0x14008ab17
cmp edi, 2
jg case.0x14008a384.69
mov rcx, qword [r12 + 8]
xor edx, edx
call fcn.14005f200
mov rbx, rax
cmp edi, 2
jne 0x14008a882
mov rcx, qword [r12 + 0x10]
xor edx, edx
call fcn.14005f200
jmp 0x14008a890
test rbx, rbx
mov eax, r14d
mov ecx, 2
cmovs eax, ecx
lea rcx, [r13 + 0x10]
mov r8d, eax
mov rdx, rbx
call fcn.140089140
test al, al
jne 0x14008a8c4
mov rax, qword [0x140100a58]
test byte [rax + 0x140], 1
jne case.0x14008a384.69
mov qword [rsi], r14
mov eax, 1
jmp 0x14008ab17
mov qword [rsi], 1
mov eax, 1
jmp 0x14008ab17
test edi, edi
jne 0x14008a8ed
lea rcx, [r13 + 0x10]
call fcn.140089220
mov qword [rsi], rax
lea eax, [rdi + 1]
jmp 0x14008ab17
cmp edi, 1
jne case.0x14008a384.69
mov rcx, qword [r12 + 8]
xor edx, edx
call fcn.14005f200
mov rdx, rax
lea rcx, [r13 + 0x10]
call fcn.140089270
mov qword [rsi], rax
cmp rax, 0xffffffffffffffff
jne 0x14008ab0e
lea rdi, [0x1400cef3c]
mov qword [rsi], rdi
jmp 0x14008aadd
test edi, edi
jne 0x14008a970
mov rcx, qword [r13 + 0x40]
test rcx, rcx
je 0x14008a944
mov eax, dword [r13 + 0x1c]
add rax, qword [r13 + 0x48]
cmp rcx, rax
jb 0x14008a96d
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + 0x30]
mov rdi, rax
test rax, rax
js 0x14008a967
mov rdx, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rdx + gethostname]
cmp rdi, rax
jl 0x14008a96d
mov r14d, 1
mov qword [rsi], r14
mov eax, 1
jmp 0x14008ab17
test edi, edi
jne 0x14008a9d8
mov rdx, qword [r13 + 0x40]
test rdx, rdx
je 0x14008a9aa
sub rdx, qword [r13 + 0x48]
lea r8d, [rdi + 1]
mov eax, dword [r13 + 0x1c]
lea rcx, [r13 + 0x10]
mov r9, qword [r13 + 0x10]
sub rdx, rax
call qword [r9 + 0x28]
mov qword [r13 + 0x40], r14
mov dword [r13 + 0x1c], r14d
mov r8d, dword [r13 + 0x1c]
test r8d, r8d
je 0x14008a9cc
cmp qword [r13 + 0x40], r14
jne 0x14008a9cc
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
mov rdx, qword [r13 + 0x48]
call qword [rax + 0x20]
mov dword [r13 + 0x1c], r14d
mov rax, qword [r13 + 0x50]
mov word [r13 + 0x3c], r14w
mov qword [rsi], rax
mov eax, 1
jmp 0x14008ab17
test edi, edi
jle 0x14008aa5f
mov rcx, qword [r12 + 8]
call fcn.14005ef40
test eax, eax
je 0x14008aa02
mov rcx, qword [r12 + 8]
xor edx, edx
call fcn.14005f200
jmp 0x14008aa4b
mov r9, qword [r12 + 8]
mov ecx, dword [r9 + 0x10]
test ecx, ecx
je 0x14008aa40
sub ecx, 1
je 0x14008aa23
sub ecx, 1
je 0x14008aa23
sub ecx, 2
je 0x14008aa2c
cmp ecx, 1
je 0x14008aa40
lea rdi, [0x1400cef3c]
jmp 0x14008aa43
mov rcx, qword [r9]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.140001450
mov rdi, rax
jmp 0x14008aa43
mov rdi, qword [r9]
mov rcx, rdi
call fcn.140019790
cmp eax, 0xffffffff
je 0x14008aa5f
btr eax, 0x1f
lea rcx, [r13 + 0x10]
mov edx, eax
call fcn.1400199f0
mov ecx, dword [r13 + 0x24]
cmp ecx, 0x4b0
je 0x14008aaaf
cmp ecx, 0xfde9
je 0x14008aa9a
mov rbx, qword [rsi + 8]
mov r8d, 0xa
lea rdx, [rbx + 4]
mov dword [rbx], 0x500043
call fcn.1400ab7b8
mov eax, 1
mov dword [rsi + 0x10], r14d
mov qword [rsi], rbx
jmp 0x14008ab17
lea rbx, str.UTF_8
mov dword [rsi + 0x10], r14d
mov qword [rsi], rbx
mov eax, 1
jmp 0x14008ab17
lea rbx, str.UTF_16
mov dword [rsi + 0x10], r14d
mov qword [rsi], rbx
mov eax, 1
jmp 0x14008ab17
test edi, edi
jne 0x14008ab0e
lea rcx, [r13 + 0x10]
call fcn.1400199a0
lea eax, [rdi + 1]
jmp 0x14008ab17
lea rdi, [0x1400cef3c]
mov rax, qword [0x140100a58]
mov dword [rsi + 0x10], r14d
test byte [rax + 0x140], 1
je 0x14008ab0e
mov rcx, qword [0x140107950]
lea r8, str.FileObject
mov r9, rdi
lea rdx, [0x1400e25dc]
call fcn.140038dd0
mov eax, 1
jmp 0x14008ab17
mov eax, ebx
mov rbp, qword [rsp + 0x70]
mov r12, qword [rsp + 0x78]
mov r14, qword [rsp + 0x80]
mov r15, qword [rsp + 0x40]
add rsp, 0x48
pop r13
pop rdi
pop rsi
pop rbx
ret