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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x128
movaps xmmword [rsp + 0x110], xmm6
mov qword [rsp + 0x170], rcx
call qword [0x1401841b8]
lea rcx, [0x140021180]
mov ebp, eax
call fcn.140014910
movzx r12d, byte [rax]
mov rbx, rax
test r12b, r12b
jne 0x14000af4c
movdqa xmm0, xmmword [0x14017c650]
lea rsi, [rsp + 0xc0]
lea rdi, [rsp + 0xb0]
mov r8d, 0x61a83972
mov rdx, rdi
mov rcx, rsi
movaps xmmword [rsp + 0xb0], xmm0
call fcn.140007f10
cmp byte [rbx], 0
mov rax, qword [rsp + 0xc0]
mov r13, qword [rsp + 0xc8]
jne 0x14000af3c
mov rdx, rdi
mov r8d, 0x61f8ecc2
mov rcx, rsi
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], r13
call fcn.140008120
mov rdx, qword [rsp + 0xc8]
cmp byte [rbx], 0
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x38], rdx
jne 0x14000af28
test rax, rax
mov rax, qword [rsp + 0x170]
lea rcx, [rdx + 8]
lea r14, [0x14002206f]
cmove rcx, r14
call qword [rax + 0x28]
cmp byte [rbx], 0
mov qword [rsp + 0x60], rax
jne 0x14000af28
movsxd rdx, ebp
mov qword [rsp + 0xf0], 0
mov r9d, 0x18
lea r8, [rsp + 0xf0]
mov qword [rsp + 0x50], rdx
mov rcx, rdx
mov rdx, rax
mov rax, qword [rsp + 0x170]
mov qword [rsp + 0xf8], 0
mov qword [rsp + 0x100], 0
call qword [rax + 0x30]
cmp byte [rbx], 0
jne 0x14000af28
mov rax, qword [rsp + 0xf0]
mov rdx, rdi
mov r8d, 0x2dd26e76
mov rcx, rsi
movdqa xmm1, xmmword [0x14017c640]
mov qword [rsp + 0x58], rax
movaps xmmword [rsp + 0xb0], xmm1
call fcn.140007f10
mov rdx, qword [rsp + 0xc8]
cmp byte [rbx], 0
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x40], rdx
jne 0x14000af14
mov qword [rsp + 0xb8], rdx
mov rcx, rsi
mov rdx, rdi
mov r8d, 0x7cdcb566
mov qword [rsp + 0xb0], rax
call fcn.140008120
mov rax, qword [rsp + 0xc8]
cmp byte [rbx], 0
mov rbp, qword [rsp + 0xc0]
mov qword [rsp + 0x48], rax
jne 0x14000af00
test rbp, rbp
lea rdx, [rax + 8]
mov rcx, rsi
cmove rdx, r14
call fcn.140005040
cmp byte [rbx], 0
mov r15, qword [rsp + 0xc8]
jne 0x14000af00
lea rdx, [0x1400221cf]
mov rcx, rsi
call fcn.140005040
cmp byte [rbx], 0
mov r8, qword [rsp + 0xc8]
jne 0x14000af00
mov qword [rsp + 0x68], r8
mov rdx, r8
mov rcx, r15
call qword [sym.imp.msvcrt.dll__wfopen]
mov r8, qword [rsp + 0x68]
mov r14, rax
test r8, r8
je 0x14000a934
mov rcx, r8
call fcn.140004a90
cmp byte [rbx], 0
jne 0x14000af00
test r15, r15
je 0x14000a953
mov rcx, r15
call fcn.140004a90
cmp byte [rbx], 0
jne 0x14000af00
test r14, r14
je 0x14000ad00
mov rcx, r14
call qword [sym.imp.msvcrt.dll__fileno]
cmp byte [rbx], 0
mov ecx, eax
jne 0x14000af00
call qword [sym.imp.msvcrt.dll__get_osfhandle]
cmp byte [rbx], 0
jne 0x14000af00
cdqe
xor r9d, r9d
xor edx, edx
mov dword [rsp + 0x20], 0
mov qword [rsp + 0x90], rax
mov rcx, rax
mov r8d, 0x1000002
mov rax, qword [rsp + 0x170]
mov qword [rsp + 0x28], 0
call qword [rax + 0x38]
cmp byte [rbx], 0
mov qword [rsp + 0x98], rax
jne 0x14000af00
test rax, rax
je 0x14000b0c0
mov rcx, rax
xor r9d, r9d
xor r8d, r8d
mov edx, 4
mov rax, qword [rsp + 0x170]
mov qword [rsp + 0x20], 0
call qword [rax + 0x40]
cmp byte [rbx], 0
mov qword [rsp + 0x80], rax
jne 0x14000af00
cmp qword [rsp + 0x80], 0
je 0x14000b0c0
mov rcx, qword [rsp + 0x58]
movsxd rax, dword [rcx + 0x3c]
add rax, rcx
cmp word [rax + 6], 0
mov r15, rax
je 0x14000af7f
lea rcx, [0x140021160]
call fcn.140014910
lea rcx, [r15 + 0x18]
mov byte [rsp + 0xaf], r12b
movdqa xmm6, xmmword [0x14017c630]
mov qword [rsp + 0x70], rax
mov rax, r15
xor r15d, r15d
mov qword [rsp + 0x68], rcx
lea rcx, [rsp + 0xd8]
mov r12, rax
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0xa0], r13
jmp 0x14000aa8d
cmp byte [rbx], 0
jne 0x14000b1b0
cmp word [r12 + 6], r15w
jbe 0x14000af6e
lea eax, [r15 + r15*4]
mov rcx, qword [rsp + 0x70]
movzx ebp, word [r12 + 0x14]
mov edx, 0x11
shl eax, 3
add rbp, qword [rsp + 0x68]
movzx eax, ax
add rbp, rax
call fcn.140004ce0
mov qword [rax + 8], 0
mov r14, rax
mov byte [rax + 0x10], 0
mov qword [rax], 8
cmp byte [rbx], 0
jne 0x14000ace8
movzx edx, byte [rbp]
mov byte [rax + 8], dl
cmp byte [rbx], 0
jne 0x14000ace8
movzx edx, byte [rbp + 1]
mov byte [rax + 9], dl
cmp byte [rbx], 0
jne 0x14000ace8
movzx edx, byte [rbp + 2]
mov byte [rax + 0xa], dl
cmp byte [rbx], 0
jne 0x14000ace8
movzx edx, byte [rbp + 3]
mov byte [rax + 0xb], dl
cmp byte [rbx], 0
jne 0x14000ace8
movzx edx, byte [rbp + 4]
mov byte [rax + 0xc], dl
cmp byte [rbx], 0
jne 0x14000ace8
movzx edx, byte [rbp + 5]
mov byte [rax + 0xd], dl
cmp byte [rbx], 0
jne 0x14000ace8
movzx edx, byte [rbp + 6]
mov byte [rax + 0xe], dl
cmp byte [rbx], 0
jne 0x14000ace8
movzx edx, byte [rbp + 7]
mov byte [rax + 0xf], dl
cmp byte [rbx], 0
jne 0x14000ace8
mov r8d, 0x1843e3c2
mov rdx, rdi
mov rcx, rsi
movaps xmmword [rsp + 0xb0], xmm6
call fcn.140007f10
cmp byte [rbx], 0
mov rax, qword [rsp + 0xc0]
mov r13, qword [rsp + 0xc8]
jne 0x14000acd8
mov rdx, rdi
mov rcx, rsi
mov qword [rsp + 0xc0], 8
mov qword [rsp + 0xc8], r14
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], r13
call fcn.14000a580
test rax, rax
js 0x14000acd4
movsxd rax, dword [rbp + 0xc]
add rax, qword [rsp + 0x58]
lea r10, [rsp + 0xe0]
mov dword [rsp + 0xd4], 0
mov qword [rsp + 0xe0], rax
movsxd rax, dword [rbp + 8]
mov r9d, 4
mov rdx, r10
mov dword [rsp + 0xd0], 0
mov r8, qword [rsp + 0x78]
mov qword [rsp + 0xd8], rax
lea rax, [rsp + 0xd4]
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x170]
mov qword [rsp + 0xe8], 0
mov qword [rsp + 0x88], r10
call qword [rax + 0x10]
cmp byte [rbx], 0
jne 0x14000acd8
test eax, eax
jne 0x14000b096
lea rdx, [rsp + 0xe8]
movsxd rax, dword [rbp + 0xc]
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x20], rdx
mov rdx, qword [rsp + 0x80]
mov r9, qword [rsp + 0xd8]
lea r8, [rdx + rax]
mov rax, qword [rsp + 0x170]
mov rdx, qword [rsp + 0xe0]
call qword [rax + 0x18]
cmp byte [rbx], 0
mov r10, qword [rsp + 0x88]
jne 0x14000acd8
test eax, eax
jne 0x14000b096
lea rax, [rsp + 0xd0]
mov r9d, dword [rsp + 0xd4]
mov r8, qword [rsp + 0x78]
mov rdx, r10
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x170]
mov rcx, qword [rsp + 0x50]
call qword [rax + 0x10]
cmp byte [rbx], 0
jne 0x14000acd8
test eax, eax
jne 0x14000b096
add r15d, 1
test r13, r13
je 0x14000ace8
test byte [r13 + 7], 0x40
je 0x14000b120
test byte [r14 + 7], 0x40
jne 0x14000aa78
mov rcx, r14
call fcn.140004a90
jmp 0x14000aa78
lea rcx, [0x140021160]
call fcn.140014910
mov edx, 0x50
mov rcx, rax
mov qword [rsp + 0x68], rax
call fcn.140004ce0
lea r10, [rbp + 0xd]
lea rcx, [0x140021080]
xor r9d, r9d
lea r15, [rax + 0x10]
lea r11, str.IOError
test r10, r10
mov qword [rax + 0x10], rcx
mov qword [rax], 0
mov rcx, qword [rsp + 0x68]
mov qword [rax + 8], 0
mov qword [rax + 0x18], 0
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0
mov qword [rax + 0x38], 0
mov qword [rax + 0x40], 0
mov qword [rax + 0x48], 0
mov qword [r15 + 0x10], r11
jg 0x14000b140
movabs rcx, 0x6f20746f6e6e6163
mov eax, 0x20
mov qword [rsp + 0x68], r10
mov r10d, 0xd
mov qword [r9 + 8], rcx
mov dword [r9 + 0x10], 0x3a6e6570
mov word [r9 + 0x14], ax
test rbp, rbp
jle 0x14000ade8
mov rax, qword [rsp + 0x48]
lea rcx, [r9 + 0x15]
lea r8, [rbp + 1]
mov qword [rsp + 0x70], r9
lea rdx, [rax + 8]
call sub.msvcrt.dll_memcpy
mov r9, qword [rsp + 0x70]
mov r10, qword [rsp + 0x68]
lea r11, str.IOError
cmp qword [r15 + 0x10], 0
mov qword [r15 + 0x18], r10
mov qword [r15 + 0x20], r9
mov qword [r15 + 8], 0
je 0x14000b130
mov rdx, qword [r15 + 0x30]
mov rbp, qword [r15 + 0x28]
test rdx, rdx
je 0x14000b180
movabs rax, 0xbfffffffffffffff
and rax, qword [rdx]
cmp rbp, rax
jge 0x14000b180
lea rax, [rbp + 1]
lea rcx, str.open
mov qword [r15 + 0x28], rax
lea rax, [rbp + rbp*2]
lea rax, [rdx + rax*8 + 8]
mov qword [rax], rcx
lea rcx, str.syncio.nim
mov qword [rax + 0x10], rcx
lea rcx, [0x140021060]
mov qword [rax + 8], 0x2ff
call fcn.140014910
mov rax, qword [rax]
test rax, rax
je 0x14000ae7a
mov rcx, r15
call rax
test al, al
je 0x14000b170
lea rcx, [0x140021100]
call fcn.140014910
mov r14, qword [r15 + 0x38]
mov rsi, rax
mov rax, qword [rax]
test rax, rax
je 0x14000ae9a
add qword [rax - 0x10], 0x10
mov qword [r15 + 0x38], rax
test r14, r14
je 0x14000aec9
mov rax, qword [r14 - 0x10]
lea rdx, [r14 - 0x10]
test rax, 0xfffffffffffffff0
je 0x14000b1fd
sub rax, 0x10
mov r8, qword [r14]
xor ecx, ecx
mov qword [r14 - 0x10], rax
call fcn.1400056f0
mov r14, qword [rsi]
mov qword [rsi], r15
test r14, r14
je 0x14000aefa
mov rax, qword [r14 - 0x10]
lea rdx, [r14 - 0x10]
test rax, 0xfffffffffffffff0
je 0x14000b217
sub rax, 0x10
mov r8, qword [r14]
xor ecx, ecx
mov qword [r14 - 0x10], rax
call fcn.1400056f0
mov byte [rbx], 1
nop dword [rax]
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x14000af14
test byte [rax + 7], 0x40
je 0x14000b050
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x14000af28
test byte [rax + 7], 0x40
je 0x14000b060
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x14000af3c
test byte [rax + 7], 0x40
je 0x14000b080
test r13, r13
je 0x14000af4c
test byte [r13 + 7], 0x40
je 0x14000b040
xor r12d, r12d
movaps xmm6, xmmword [rsp + 0x110]
mov eax, r12d
add rsp, 0x128
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r13, qword [rsp + 0xa0]
movzx r12d, byte [rsp + 0xaf]
mov rax, qword [rsp + 0x170]
mov rcx, qword [rsp + 0x50]
call qword [rax + 0x20]
cmp byte [rbx], 0
jne 0x14000af00
mov rax, qword [rsp + 0x170]
mov rcx, qword [rsp + 0x90]
call qword [rax + 0x20]
cmp byte [rbx], 0
jne 0x14000af00
mov rax, qword [rsp + 0x170]
mov rcx, qword [rsp + 0x98]
call qword [rax + 0x20]
cmp byte [rbx], 0
jne 0x14000af00
mov rax, qword [rsp + 0x170]
mov rcx, qword [rsp + 0x60]
call qword [rax + 0x48]
cmp byte [rbx], 0
jne 0x14000af00
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x14000affd
test byte [rax + 7], 0x40
je 0x14000b24b
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x14000b011
test byte [rax + 7], 0x40
je 0x14000b258
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x14000b025
test byte [rax + 7], 0x40
je 0x14000b23e
mov r12d, 1
test r13, r13
je 0x14000af4f
test byte [r13 + 7], 0x40
jne 0x14000af4f
nop
mov rcx, r13
call fcn.140004a90
jmp 0x14000af4f
mov rcx, rax
call fcn.140004a90
jmp 0x14000af14
mov rcx, rax
call fcn.140004a90
mov rax, qword [rsp + 0x38]
test rax, rax
jne 0x14000af32
jmp 0x14000af3c
mov rcx, rax
call fcn.140004a90
test r13, r13
jne 0x14000af41
jmp 0x14000af4c
mov r11, r13
mov r13, qword [rsp + 0xa0]
test r11, r11
je 0x14000b0b1
test byte [r11 + 7], 0x40
je 0x14000b231
test byte [r14 + 7], 0x40
jne 0x14000b0c0
mov rcx, r14
call fcn.140004a90
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x14000b0d4
test byte [rax + 7], 0x40
je 0x14000b1f0
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x14000b0e8
test byte [rax + 7], 0x40
je 0x14000b1e0
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x14000b0fc
test byte [rax + 7], 0x40
je 0x14000b1d0
test r13, r13
je 0x14000af4c
test byte [r13 + 7], 0x40
jne 0x14000af4c
mov rcx, r13
call fcn.140004a90
jmp 0x14000af4c
mov rcx, r13
call fcn.140004a90
jmp 0x14000ace8
mov qword [r15 + 0x10], r11
jmp 0x14000ae03
lea rdx, [rbp + 0x16]
mov qword [rsp + 0x68], r10
call fcn.140004ce0
mov r10, qword [rsp + 0x68]
lea r11, str.IOError
mov byte [rax + 8], 0
mov r9, rax
mov qword [rax], r10
jmp 0x14000ad8c
cmp byte [rbx], 0
je 0x14000a95c
jmp 0x14000af00
mov r9d, 0x18
mov r8d, 1
mov rcx, rbp
mov qword [rsp + 0x20], 8
call fcn.1400060a0
mov qword [r15 + 0x30], rax
mov rdx, rax
jmp 0x14000ae2a
mov r13, qword [rsp + 0xa0]
movzx r12d, byte [rsp + 0xaf]
jmp 0x14000af00
mov rcx, rax
call fcn.140004a90
jmp 0x14000b0fc
mov rcx, rax
call fcn.140004a90
jmp 0x14000b0e8
mov rcx, rax
call fcn.140004a90
jmp 0x14000b0d4
mov r8, qword [r14]
mov ecx, 1
call fcn.1400056f0
mov rcx, r14
call fcn.140005ee0
jmp 0x14000aec9
mov r8, qword [r14]
mov ecx, 1
call fcn.1400056f0
mov rcx, r14
call fcn.140005ee0
jmp 0x14000aefa
mov rcx, r11
call fcn.140004a90
jmp 0x14000b0b1
mov rcx, rax
call fcn.140004a90
jmp 0x14000b025
mov rcx, rax
call fcn.140004a90
jmp 0x14000affd
mov rcx, rax
call fcn.140004a90
jmp 0x14000b011