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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov dword [rsp + 0x20], r9d
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov edi, dword [rsp + 0x98]
mov rsi, rdx
mov r13, rcx
mov ebx, 4
test edi, edi
je 0x1400ac02d
mov r12, qword [rsp + 0x90]
dec edi
mov r15, qword [r12]
mov edx, dword [r15 + 0x10]
test edx, edx
je 0x1400ab502
sub edx, 1
je 0x1400ab4e5
sub edx, 1
je 0x1400ab4e5
sub edx, 2
je 0x1400ab4ee
cmp edx, 1
je 0x1400ab502
lea r15, [0x1400cc644]
jmp 0x1400ab505
mov rcx, qword [r15]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov r15, rax
jmp 0x1400ab505
mov r15, qword [r15]
mov r8, rbx
lea rdx, str.Read
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
xor ebp, ebp
test eax, eax
jne 0x1400ab555
cmp word [r15 + 8], bp
lea rcx, [r15 + 8]
jne 0x1400ab532
lea r14d, [rbp + 1]
jmp 0x1400ab6c0
lea rdx, str.Line
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
mov ecx, 3
mov r14d, 5
test eax, eax
cmove r14d, ecx
jmp 0x1400ab6c0
mov r8d, 5
lea rdx, str.Write
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
test eax, eax
jne 0x1400ab5a0
cmp word [r15 + 0xa], bp
lea rcx, [r15 + 0xa]
jne 0x1400ab583
lea r14d, [rax + 2]
jmp 0x1400ab6c0
lea rdx, str.Line
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
mov ecx, ebp
test eax, eax
setne cl
lea r14d, [rcx + 4]
jmp 0x1400ab6c0
lea rdx, str.RawRead
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400ab5bd
lea r14d, [rax + 6]
jmp 0x1400ab6c0
lea rdx, str.RawWrite
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400ab5da
lea r14d, [rax + 6]
jmp 0x1400ab6c0
lea rdx, [0x1400e8d20]
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x1400ab6ba
lea rdx, str.Length
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400ab60f
lea r14d, [rax + 9]
jmp 0x1400ab6c0
lea rdx, str.AtEOF
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400ab62c
lea r14d, [rax + 0xa]
jmp 0x1400ab6c0
lea rdx, str.__Handle
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400ab646
lea r14d, [rax + 0xb]
jmp 0x1400ab6c0
lea rdx, str.Encoding
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400ab660
lea r14d, [rax + 0xc]
jmp 0x1400ab6c0
lea rdx, str.Close
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400ab67a
lea r14d, [rax + 0xd]
jmp 0x1400ab6c0
lea rdx, str.Position
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x1400ab6ba
lea rdx, str.Seek
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x1400ab6ba
lea rdx, str.Tell
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400ac02d
mov r14d, 8
mov eax, dword [rsp + 0x88]
test al, 2
jne 0x1400ab6e0
cmp r14d, 7
jb 0x1400aba15
and eax, 1
cmp edi, eax
jne 0x1400aba15
lea eax, [r14 - 1]
mov dword [rsi + 0x10], 1
cmp eax, 0xc
ja case.0x1400ab78c.69
cdqe
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0xac050]
add rax, rcx
jmp rax
movzx eax, word [r15]
mov ecx, 0xffdf
sub ax, 0x52
mov r14d, ebp
test cx, ax
sete al
mov byte [rsp + 0x98], al
movzx eax, al
xor rax, 1
lea r15, [r15 + rax*2]
add r15, 8
mov qword [rsp + 0x38], r15
movzx ecx, word [r15]
call fcn.14000d4e0
cmp ax, 0x55
jne 0x1400ab757
add r15, 2
mov qword [rsp + 0x38], r15
mov r15d, ebp
jmp 0x1400ab75d
mov r15d, 1
mov rax, qword [rsp + 0x38]
movzx ecx, word [rax]
call fcn.14000d4e0
movzx eax, ax
add eax, 0xffffffbd
cmp eax, 0x10
ja case.0x1400ab78c.69
lea rcx, [0x140000000]
cdqe
mov edx, dword [rcx + rax*4 + 0xac084]
add rdx, rcx
jmp rdx
mov rcx, qword [rsp + 0x38]
mov dx, gethostname
call qword [sym.imp.VCRUNTIME140.dll_wcschr]
test rax, rax
mov eax, 8
cmovne ebx, eax
jmp 0x1400ab7ca
mov ebx, 2
jmp 0x1400ab7ca
mov ebx, 1
jmp 0x1400ab7ca
mov ebx, 8
jmp 0x1400ab7ca
mov ebx, 8
mov r14d, 1
cmp byte [rsp + 0x98], bpl
je 0x1400ab895
lea rcx, [r13 + 0x10]
mov qword [rsp + 0x30], rbp
mov r8d, ebx
lea rdx, [rsp + 0x30]
call fcn.1400aad90
test eax, eax
je case.0x1400ab78c.69
test r14d, r14d
je 0x1400ab839
cmp ebx, 4
jne 0x1400ab81d
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 0x1400ac02f
movsd xmm0, qword [rsp + 0x30]
mov eax, 2
mov dword [rsi + 0x10], eax
mov eax, 1
movsd qword [rsi], xmm0
jmp 0x1400ac02f
test r15d, r15d
je 0x1400ab883
sub ebx, 1
je 0x1400ab870
sub ebx, 1
je 0x1400ab85d
cmp ebx, 2
jne 0x1400ab883
movsxd rax, dword [rsp + 0x30]
mov qword [rsi], rax
lea eax, [rbx - 1]
jmp 0x1400ac02f
movsx rax, word [rsp + 0x30]
mov qword [rsi], rax
mov eax, 1
jmp 0x1400ac02f
movsx rax, byte [rsp + 0x30]
mov qword [rsi], rax
mov eax, 1
jmp 0x1400ac02f
mov rax, qword [rsp + 0x30]
mov qword [rsi], rax
mov eax, 1
jmp 0x1400ac02f
cmp edi, 1
jne case.0x1400ab78c.69
mov r9, qword [r12 + 8]
test r14d, r14d
je 0x1400ab8da
xor r8d, r8d
mov edx, edi
mov rcx, r9
call fcn.140075500
movsd qword [rsp + 0x30], xmm0
lea rdi, [0x1400cc644]
cmp ebx, 4
jne 0x1400ab966
cvtsd2ss xmm0, xmm0
movss dword [rsp + 0x30], xmm0
jmp 0x1400ab966
cmp ebx, 8
jne 0x1400ab950
test r15d, r15d
jne 0x1400ab950
mov ecx, dword [r9 + 0x10]
lea eax, [rcx - 1]
cmp eax, 1
jbe 0x1400ab950
test ecx, ecx
je 0x1400ab93c
sub ecx, 1
je 0x1400ab908
sub ecx, 1
je 0x1400ab908
sub ecx, 2
je 0x1400ab91c
cmp ecx, 1
je 0x1400ab93c
lea rdi, [0x1400cc644]
mov rax, rdi
mov rcx, rax
call fcn.140049e20
jmp 0x1400ab961
mov rcx, qword [r9]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rcx, rax
lea rdi, [0x1400cc644]
call fcn.140049e20
jmp 0x1400ab961
mov rax, qword [r9]
lea rdi, [0x1400cc644]
mov rcx, rax
call fcn.140049e20
jmp 0x1400ab961
xor edx, edx
mov rcx, r9
call fcn.140075460
lea rdi, [0x1400cc644]
mov qword [rsp + 0x30], rax
lea rcx, [r13 + 0x10]
mov r8d, ebx
lea rdx, [rsp + 0x30]
call fcn.1400ab140
mov ecx, eax
test eax, eax
jne 0x1400ab991
mov rax, qword [0x1400ff050]
test byte [rax + 0x140], 1
jne 0x1400abd4f
mov qword [rsi], rcx
mov eax, 1
jmp 0x1400ac02f
cmp edi, 1
jg case.0x1400ab78c.69
test edi, edi
je 0x1400ab9bc
mov rcx, qword [r12 + 8]
xor edx, edx
call fcn.140075460
mov rbx, rax
jmp 0x1400ab9d5
lea rcx, [r13 + 0x10]
call fcn.1400aa790
lea rcx, [r13 + 0x10]
mov rdi, rax
call fcn.1400aa7e0
sub eax, edi
mov ebx, eax
cmp ebx, 0xffffffff
je case.0x1400ab78c.69
mov r8d, ebx
xor edx, edx
mov rcx, rsi
call fcn.140075b00
test eax, eax
je case.0x1400ab78c.69
xor r9d, r9d
mov r8d, ebx
mov rdx, qword [rsi]
lea rcx, [r13 + 0x10]
call fcn.1400aa9e0
mov ecx, eax
mov rax, qword [rsi]
mov dword [rsi + 0x10], ebp
mov word [rax + rcx*2], bp
mov qword [rsi + 8], rcx
mov eax, 1
jmp 0x1400ac02f
test edi, edi
jne case.0x1400ab78c.69
mov ecx, 0x20002
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rsi + 0x18], rax
test rax, rax
je case.0x1400ab78c.69
mov qword [rsi + 8], 0x10000
lea r9d, [rdi + 1]
mov qword [rsi], rax
mov r8d, 0xffff
mov word [rax + 0x20000], bp
jmp 0x1400ab9f9
cmp edi, 1
jg case.0x1400ab78c.69
mov r15d, ebp
mov ebx, ebp
test edi, edi
je 0x1400abb10
mov rdx, qword [rsi + 8]
mov rcx, qword [r12 + 8]
call fcn.1400755c0
mov rbx, qword [r12 + 8]
mov rdi, rax
cmp dword [rbx + 0x10], 4
jne 0x1400abae4
mov rbx, qword [rbx]
movzx edx, byte [rbx + 0x23]
test dl, dl
jne 0x1400abaa4
mov rax, qword [rbx + 0x10]
movzx ecx, byte [rax + 0x21]
jmp 0x1400abaa8
movzx ecx, byte [rbx + 0x21]
test cl, 1
jne 0x1400abae4
test dl, dl
jne 0x1400abab5
mov rbx, qword [rbx + 0x10]
cmp byte [rbx + 0x23], 1
jne 0x1400abad5
test byte [rbx + 0x21], 8
je 0x1400abac9
mov rcx, rbx
call fcn.140001560
add rbx, 0x10
mov rbx, qword [rbx]
shr rbx, 1
jmp 0x1400abaf9
lea rbx, [0x1401082d8]
mov rbx, qword [rbx]
shr rbx, 1
jmp 0x1400abaf9
mov rbx, 0xffffffffffffffff
nop dword [rax + rax]
inc rbx
cmp word [rdi + rbx*2], bp
jne 0x1400abaf0
add r13, 0x10
mov r8d, ebx
mov rcx, r13
mov rdx, rdi
call fcn.1400aaee0
mov r15d, eax
jmp 0x1400abb14
add r13, 0x10
cmp r14d, 4
jne 0x1400abb3d
test r15d, r15d
jne 0x1400abb23
test ebx, ebx
jne 0x1400abb46
mov r8d, 1
lea rdx, [0x1400ea534]
mov rcx, r13
inc ebx
call fcn.1400aaee0
add r15d, eax
test r15d, r15d
jne 0x1400abb5a
test ebx, ebx
je 0x1400abb5a
mov rax, qword [0x1400ff050]
test byte [rax + 0x140], 1
jne case.0x1400ab78c.69
mov eax, r15d
mov qword [rsi], rax
mov eax, 1
jmp 0x1400ac02f
cmp edi, 2
jne case.0x1400ab78c.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 r14b
xor edx, edx
call fcn.140075460
cmp dword [rdi + 0x10], 4
mov rbx, rax
jne 0x1400abc21
mov rcx, qword [rdi]
cmp byte [rcx + 0x23], bpl
jne 0x1400abbb1
mov rax, qword [rcx + 0x10]
jmp 0x1400abbb4
mov rax, rcx
cmp byte [rax + 0x23], 2
mov edx, dword [0x140106998]
je 0x1400abbc4
mov rdx, qword [rax + 0x18]
mov eax, ebx
cmp rax, rdx
jbe 0x1400abc10
test r14b, r14b
je 0x1400abbef
mov r8d, eax
mov byte [rsp + 0x20], bpl
shr r8, 1
and eax, 1
add r8, rax
xor r9d, r9d
xor edx, edx
call fcn.1400b1f60
test eax, eax
jne 0x1400abc10
mov rax, qword [0x1400ff050]
test byte [rax + 0x140], 1
jne case.0x1400ab78c.69
mov qword [rsi], rbp
mov eax, 1
jmp 0x1400ac02f
mov rcx, qword [rdi]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
jmp 0x1400abc2b
xor edx, edx
mov rcx, rdi
call fcn.140075460
cmp rax, 0x10000
jae 0x1400abc37
mov ecx, ebp
jmp 0x1400abc58
lea rcx, [r13 + 0x10]
mov r8d, ebx
mov rdx, rax
test r14b, r14b
je 0x1400abc4d
call fcn.1400aad90
jmp 0x1400abc52
call fcn.1400ab140
mov ecx, eax
test eax, eax
jne 0x1400abc70
test ebx, ebx
je 0x1400abc70
mov rax, qword [0x1400ff050]
test byte [rax + 0x140], 1
jne case.0x1400ab78c.69
mov eax, ecx
mov qword [rsi], rax
mov eax, 1
jmp 0x1400ac02f
test edi, edi
jne 0x1400abc97
lea rcx, [r13 + 0x10]
call fcn.1400aa790
mov qword [rsi], rax
lea eax, [rdi + 1]
jmp 0x1400ac02f
cmp edi, 2
jg case.0x1400ab78c.69
mov rcx, qword [r12 + 8]
xor edx, edx
call fcn.140075460
mov r14, rax
cmp edi, 2
jne 0x1400abcc5
mov rcx, qword [r12 + 0x10]
xor edx, edx
call fcn.140075460
mov rdi, rax
jmp 0x1400abcd2
test r14, r14
mov edi, ebp
mov ecx, 2
cmovs edi, ecx
mov rdx, qword [r13 + 0x40]
mov r8d, dword [r13 + 0x1c]
test rdx, rdx
je 0x1400abcfe
sub rdx, qword [r13 + 0x48]
lea rcx, [r13 + 0x10]
mov r9, qword [r13 + 0x10]
sub rdx, r8
mov r8d, 1
call qword [r9 + 0x28]
mov qword [r13 + 0x40], rbp
jmp 0x1400abd12
test r8d, r8d
je 0x1400abd16
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
mov rdx, qword [r13 + 0x48]
call qword [rax + 0x20]
mov dword [r13 + 0x1c], ebp
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
mov r8d, edi
mov word [r13 + 0x3c], bp
mov rdx, r14
call qword [rax + 0x28]
test al, al
jne 0x1400abebc
mov rax, qword [0x1400ff050]
test byte [rax + 0x140], 1
je 0x1400abec1
lea rdi, [0x1400cc644]
mov rax, qword [0x1400ff050]
mov dword [rsi + 0x10], ebp
test byte [rax + 0x140], 1
je 0x1400aba15
mov rcx, qword [0x1401063c0]
lea r8, str.FileObject
mov r9, rdi
lea rdx, [0x1400e1d2c]
call fcn.140047870
mov eax, 1
jmp 0x1400ac02f
test edi, edi
jne 0x1400abda5
lea rcx, [r13 + 0x10]
call fcn.1400aa7e0
mov qword [rsi], rax
lea eax, [rdi + 1]
jmp 0x1400ac02f
cmp edi, 1
jne case.0x1400ab78c.69
mov rcx, qword [r12 + 8]
xor edx, edx
call fcn.140075460
mov rdx, qword [r13 + 0x40]
mov r14, rax
mov r8d, dword [r13 + 0x1c]
test rdx, rdx
je 0x1400abde2
sub rdx, qword [r13 + 0x48]
lea rcx, [r13 + 0x10]
mov r9, qword [r13 + 0x10]
sub rdx, r8
mov r8d, edi
call qword [r9 + 0x28]
mov qword [r13 + 0x40], rbp
jmp 0x1400abdf6
test r8d, r8d
je 0x1400abdfa
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
mov rdx, qword [r13 + 0x48]
call qword [rax + 0x20]
mov dword [r13 + 0x1c], ebp
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
mov word [r13 + 0x3c], bp
call qword [rax + 0x30]
xor r8d, r8d
lea rcx, [r13 + 0x10]
mov rdi, rax
mov rdx, r14
mov rax, qword [r13 + 0x10]
call qword [rax + 0x28]
test al, al
je 0x1400abe58
mov rcx, qword [r13 + 0x50]
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
je 0x1400abe58
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
cmp r14, rdi
cmovl rdi, r14
xor r8d, r8d
mov rdx, rdi
call qword [rax + 0x28]
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + gethostname]
mov rbx, rax
jmp 0x1400abe5f
mov rbx, 0xffffffffffffffff
mov qword [rsi], rbx
cmp rbx, 0xffffffffffffffff
jne 0x1400aba15
lea rdi, [0x1400cc644]
mov qword [rsi], rdi
jmp 0x1400abd4f
test edi, edi
jne 0x1400aba15
mov rcx, qword [r13 + 0x40]
test rcx, rcx
je 0x1400abe99
mov eax, dword [r13 + 0x1c]
add rax, qword [r13 + 0x48]
cmp rcx, rax
jb 0x1400abec1
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + 0x30]
mov rdi, rax
test rax, rax
js 0x1400abebc
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + gethostname]
cmp rdi, rax
jl 0x1400abec1
mov ebp, 1
mov qword [rsi], rbp
mov eax, 1
jmp 0x1400ac02f
test edi, edi
jne 0x1400aba15
mov rdx, qword [r13 + 0x40]
mov r8d, dword [r13 + 0x1c]
test rdx, rdx
je 0x1400abf00
sub rdx, qword [r13 + 0x48]
lea rcx, [r13 + 0x10]
mov r9, qword [r13 + 0x10]
sub rdx, r8
lea r8d, [rdi + 1]
call qword [r9 + 0x28]
mov qword [r13 + 0x40], rbp
jmp 0x1400abf14
test r8d, r8d
je 0x1400abf18
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
mov rdx, qword [r13 + 0x48]
call qword [rax + 0x20]
mov dword [r13 + 0x1c], ebp
mov rax, qword [r13 + 0x50]
mov word [r13 + 0x3c], bp
mov qword [rsi], rax
mov eax, 1
jmp 0x1400ac02f
test edi, edi
jle 0x1400abfa9
mov rcx, qword [r12 + 8]
call fcn.140075330
mov r9, qword [r12 + 8]
test eax, eax
je 0x1400abf51
xor edx, edx
mov rcx, r9
call fcn.140075460
jmp 0x1400abf95
mov ecx, dword [r9 + 0x10]
test ecx, ecx
je 0x1400abf8a
sub ecx, 1
je 0x1400abf6d
sub ecx, 1
je 0x1400abf6d
sub ecx, 2
je 0x1400abf76
cmp ecx, 1
je 0x1400abf8a
lea rdi, [0x1400cc644]
jmp 0x1400abf8d
mov rcx, qword [r9]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rdi, rax
jmp 0x1400abf8d
mov rdi, qword [r9]
mov rcx, rdi
call fcn.140028210
cmp eax, 0xffffffff
je 0x1400abfa9
btr eax, 0x1f
lea rcx, [r13 + 0x10]
mov edx, eax
call fcn.140028470
mov ecx, dword [r13 + 0x24]
cmp ecx, 0x4b0
je 0x1400abff8
cmp ecx, 0xfde9
je 0x1400abfe4
mov rbx, qword [rsi + 8]
mov r8d, 0xa
lea rdx, [rbx + 4]
mov dword [rbx], 0x500043
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__itow]
mov eax, 1
mov dword [rsi + 0x10], ebp
mov qword [rsi], rbx
jmp 0x1400ac02f
lea rbx, str.UTF_8
mov dword [rsi + 0x10], ebp
mov qword [rsi], rbx
mov eax, 1
jmp 0x1400ac02f
lea rbx, str.UTF_16
mov dword [rsi + 0x10], ebp
mov qword [rsi], rbx
mov eax, 1
jmp 0x1400ac02f
test edi, edi
jne 0x1400ac019
lea rcx, [r13 + 0x10]
call fcn.140028420
lea rdi, [0x1400cc644]
mov dword [rsi + 0x10], ebp
mov qword [rsi], rdi
mov eax, 1
jmp 0x1400ac02f
mov eax, ebx
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
ret