Function at 0x1400a0aec
Capabilities:
Clear file content
Read file on windows
Write file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xd0
mov rdi, rcx
lea rcx, [rax - 0x58]
mov rbx, rdx
call fcn.14006166c
xor r12d, r12d
mov qword [rsp + 0xb8], rdi
lea esi, [r12 + 9]
mov edi, 0x4b0
mov qword [rsp + 0xc0], r12
mov byte [rsp + 0x43], r12b
lea r13d, [r12 + 0x2d]
lea r14d, [r12 + 0x20]
lea ecx, [rsi + 4]
lea ebp, [rdi + 1]
cmp si, word [rbx]
ja 0x1400a0b58
cmp word [rbx], cx
jbe 0x1400a0b5e
cmp r14w, word [rbx]
jne 0x1400a0b66
mov edi, r12d
jmp 0x1400a0cb9
lea rcx, str._UNI
mov r8d, 4
mov rdx, rbx
call fcn.14005a6c0
cmp al, r12b
jne 0x1400a0cb4
mov r11d, 5
lea rcx, str._UNIB
mov rdx, rbx
mov r8d, r11d
call fcn.14005a6c0
cmp al, r12b
je 0x1400a0ba8
mov edi, ebp
jmp 0x1400a0cb4
lea rcx, str._UNICODE
mov r8d, 8
mov rdx, rbx
call fcn.14005a6c0
cmp al, r12b
jne 0x1400a0cb4
lea rcx, str._UNICODEB
mov r8d, esi
mov rdx, rbx
call fcn.14005a6c0
cmp al, r12b
jne 0x1400a0ba1
lea rcx, str._UTF8
mov r8d, r11d
mov rdx, rbx
call fcn.14005a6c0
cmp al, r12b
je 0x1400a0bfe
mov edi, 0xfde9
jmp 0x1400a0cb4
lea rcx, str._UTF7
mov r8d, r11d
mov rdx, rbx
call fcn.14005a6c0
cmp al, r12b
je 0x1400a0c1f
mov edi, 0xfde8
jmp 0x1400a0cb4
lea rcx, str._GBK
mov r8d, 4
mov rdx, rbx
call fcn.14005a6c0
cmp al, r12b
je 0x1400a0c40
mov edi, 0x3a8
jmp 0x1400a0cb4
lea rcx, str._BIG5
mov r8d, r11d
mov rdx, rbx
call fcn.14005a6c0
cmp al, r12b
je 0x1400a0c5e
mov edi, 0x3b6
jmp 0x1400a0cb4
lea rcx, [0x14011fc24]
mov r8d, r11d
mov rdx, rbx
call fcn.14005a6c0
cmp al, r12b
je 0x1400a0c7a
mov edi, r12d
jmp 0x1400a0cb4
cmp r13w, word [rbx]
jne 0x1400a1ddb
add rbx, 2
movzx eax, word [rbx]
sub ax, 0x30
cmp ax, si
ja 0x1400a1ddb
mov rcx, rbx
mov qword [rsp + 0x118], rbx
call fcn.140062aa4
cmp eax, r12d
mov rdi, rax
jl 0x1400a1ddb
mov ecx, 0xd
mov ebp, 2
jmp 0x1400a0cdb
cmp si, ax
ja 0x1400a0cca
cmp ax, cx
jbe 0x1400a0ce4
cmp r14w, ax
je 0x1400a0ce4
add rbx, rbp
mov qword [rsp + 0x118], rbx
movzx eax, word [rbx]
cmp ax, r12w
jne 0x1400a0cc0
lea rcx, [rsp + 0x118]
call fcn.140059074
mov ebx, 0x2a
mov byte [rsp + 0x128], r12b
mov byte [rsp + 0x44], r12b
mov byte [rsp + 0x41], r12b
mov r15b, r12b
lea r13d, [rbx - 0x29]
mov byte [rsp + 0x42], r12b
mov byte [rsp + 0x45], r12b
jmp 0x1400a0e7e
lea rdx, [rsp + 0x118]
lea rcx, [0x14011fbfc]
mov r8d, 4
call fcn.1400640c8
cmp al, r12b
je 0x1400a0d4a
mov byte [rsp + 0x128], bpl
jmp 0x1400a0e7e
lea rdx, [rsp + 0x118]
lea rcx, [0x14011fc78]
mov r8d, 4
call fcn.1400640c8
cmp al, r12b
je 0x1400a0d73
mov byte [rsp + 0x44], r13b
jmp 0x1400a0e7e
lea rdx, [rsp + 0x118]
lea rcx, [0x14011fc74]
mov r8d, ebp
call fcn.1400640c8
cmp al, r12b
je 0x1400a0d99
mov byte [rsp + 0x41], r13b
jmp 0x1400a0e7e
lea rdx, [rsp + 0x118]
lea rcx, [0x14011fc70]
mov r8d, 3
call fcn.1400640c8
cmp al, r12b
je 0x1400a0dc0
mov r15b, r13b
jmp 0x1400a0e7e
lea rdx, [rsp + 0x118]
lea rcx, [0x1401185e0]
mov r8d, ebp
call fcn.1400640c8
cmp al, r12b
je 0x1400a0de6
mov byte [rsp + 0x42], r13b
jmp 0x1400a0e7e
lea rdx, [rsp + 0x118]
lea rcx, str.sparse
mov r8d, 7
call fcn.1400640c8
cmp al, r12b
je 0x1400a0e0c
mov byte [rsp + 0x43], r13b
jmp 0x1400a0e7e
lea rdx, [rsp + 0x118]
lea rcx, [0x14011e5d4]
mov r8d, 6
call fcn.1400640c8
cmp al, r12b
je 0x1400a0e32
mov byte [rsp + 0x45], r13b
jmp 0x1400a0e7e
mov rcx, qword [rsp + 0x118]
movzx eax, word [rcx]
cmp ax, r12w
je 0x1400a0e71
mov ebx, 0xd
cmp si, ax
ja 0x1400a0e52
cmp ax, bx
jbe 0x1400a0e64
cmp r14w, ax
je 0x1400a0e64
add rcx, rbp
mov ax, word [rcx]
cmp ax, r12w
jne 0x1400a0e48
mov qword [rsp + 0x118], rcx
mov ebx, 0x2a
lea rcx, [rsp + 0x118]
call fcn.140059074
mov rax, qword [rsp + 0x118]
cmp bx, word [rax]
je 0x1400a0d1e
lea rbx, [0x140113598]
lea rcx, [rsp + 0x78]
mov rdx, rbx
call fcn.14006d600
lea rdx, [0x14011fc5c]
lea rcx, [rsp + 0x70]
call fcn.14006d600
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0xb0]
mov r8d, 0x2c
mov r9b, r13b
mov rsi, r12
mov qword [rsp + 0x80], r12
mov qword [rsp + 0x60], r12
call fcn.14007c190
lea rdx, [rsp + 0x78]
xor r8d, r8d
mov rcx, rax
call fcn.14006555c
mov rcx, qword [rsp + 0x78]
call fcn.14001b680
mov r14, rax
mov qword [rsp + 0x90], rax
cmp word [rax], r12w
jne 0x1400a0f2d
lea rcx, [rsp + 0x70]
call fcn.1400590a4
lea rcx, [rsp + 0x78]
call fcn.1400590a4
mov r12, 0xffffffff80070057
jmp 0x1400a1de1
mov rax, qword [rsp + 0x118]
mov r8d, 0x2c
cmp word [rax], r8w
jne 0x1400a0fa7
add rax, rbp
lea rcx, [rsp + 0x118]
mov qword [rsp + 0x118], rax
call fcn.140059074
mov rax, qword [rsp + 0x118]
cmp word [rax], r8w
je 0x1400a0fa3
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0xb0]
mov r9b, r13b
call fcn.14007c190
lea rdx, [rsp + 0x70]
xor r8d, r8d
mov rcx, rax
call fcn.14006555c
mov rax, qword [rsp + 0x118]
mov r8d, 0x2c
cmp word [rax], r8w
jne 0x1400a0fa7
lea rbx, [rax + 2]
mov rax, qword [rsp + 0x70]
mov bpl, r12b
mov byte [rsp + 0x40], r12b
cmp word [rax], 0x24
mov qword [rsp + 0x118], rax
jne 0x1400a0fd1
mov bpl, byte [rax]
add rax, 2
mov qword [rsp + 0x118], rax
lea rcx, [rsp + 0x118]
call fcn.140059074
mov rcx, qword [rsp + 0x118]
cmp word [rcx], 0x2b
je 0x1400a0ff6
mov eax, 0x2d
cmp word [rcx], ax
jne 0x1400a1008
mov al, byte [rcx]
add rcx, 2
mov byte [rsp + 0x40], al
mov qword [rsp + 0x118], rcx
lea rcx, [rsp + 0x118]
call fcn.140059074
mov rcx, qword [rsp + 0x118]
movzx eax, word [rcx]
mov ecx, 9
sub ax, 0x30
cmp ax, cx
ja 0x1400a106b
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x118]
call fcn.140065894
mov rsi, qword [rsp + 0x60]
cmp rsi, r12
mov qword [rsp + 0x80], rsi
jge 0x1400a106b
lea rcx, [rsp + 0x70]
call fcn.1400590a4
lea rcx, [rsp + 0x78]
call fcn.1400590a4
jmp 0x1400a1de1
lea rcx, [rsp + 0x50]
call fcn.14006166c
mov eax, 0x26
cmp r15b, r12b
je 0x1400a10e1
mov rbp, qword [rsp + 0x110]
cmp ax, word [rbx]
je 0x1400a10a1
test byte [rbp + 0xd], 0xf
jne 0x1400a10a1
lea rdx, [rsp + 0x50]
mov rcx, rbx
call fcn.14006cbb4
jmp 0x1400a110f
lea rcx, [0x140134120]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
or r9d, 0xffffffff
xor r8d, r8d
mov rdx, rbx
mov rcx, rbp
call fcn.14001e108
cmp rax, r12
je 0x1400a10d2
mov rdx, qword [rax]
lea rcx, [rsp + 0x50]
call fcn.14006d718
lea rcx, [0x140134120]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x1400a110f
mov rdx, rbx
cmp bpl, r12b
je 0x1400a1105
mov rcx, qword [rsp + 0x110]
lea r8, [rsp + 0x50]
xor r9d, r9d
mov byte [rsp + 0x20], r13b
call fcn.140078b18
jmp 0x1400a110f
lea rcx, [rsp + 0x50]
call fcn.14006d680
lea rcx, [0x140114414]
mov rbx, r12
mov rdx, r14
mov rbp, r12
mov byte [rsp + 0x118], r12b
mov qword [rsp + 0x48], rbx
call fcn.14005a758
cmp al, r12b
je 0x1400a114a
mov rbp, qword [0x140130350]
mov r14b, 2
mov byte [rsp + 0x118], r14b
jmp 0x1400a1175
lea rcx, [0x140114c8c]
mov rdx, r14
call fcn.14005a758
cmp al, r12b
je 0x1400a1172
mov rbp, qword [0x140130348]
mov r14b, r13b
mov byte [rsp + 0x118], r13b
jmp 0x1400a1175
mov r14b, bl
cmp byte [rsp + 0x44], r12b
jne 0x1400a1194
cmp byte [rsp + 0x41], r12b
jne 0x1400a1194
lea rdx, [0x140117ff8]
lea rcx, [rsp + 0x50]
call fcn.1400617a8
mov r15, r12
cmp byte [rsp + 0x41], r12b
je 0x1400a11a8
mov edi, 0x4b0
jmp 0x1400a147e
cmp r14b, r12b
jne 0x1400a147e
mov rbp, qword [rsp + 0x90]
lea rcx, str.CONOUT_
mov r14b, r13b
mov rdx, rbp
call fcn.14005a758
cmp al, r12b
je 0x1400a11df
mov ecx, 0x100
mov r14b, r12b
call fcn.14005e984
jmp 0x1400a11f0
cmp byte [rsp + 0x43], r12b
je 0x1400a11f0
xor edx, edx
mov rcx, rbp
call fcn.14006ac20
mov rcx, rbp
call fcn.14000697c
cmp eax, r12d
je 0x1400a1223
mov rdx, 0xffffffffc0000000
mov r8d, 7
mov rcx, rbp
call fcn.14001d1ac
mov rbx, rax
mov qword [rsp + 0x48], rax
cmp rax, r12
jne 0x1400a1316
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x30], 0x80
lea rcx, [rsp + 0x48]
mov r9d, 7
mov r8d, 0xc0000000
mov rdx, rbp
mov dword [rsp + 0x28], 3
mov qword [rsp + 0x20], r12
call fcn.1400037a8
mov rbx, qword [rsp + 0x48]
cmp rbx, r12
jne 0x1400a1316
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x30], 0x2000080
lea rcx, [rsp + 0x48]
mov r9d, 7
mov r8d, 0xc0000000
mov rdx, rbp
mov dword [rsp + 0x28], 3
mov qword [rsp + 0x20], r12
call fcn.1400037a8
mov rbx, qword [rsp + 0x48]
cmp rbx, r12
jne 0x1400a1316
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x30], 0x80
lea rcx, [rsp + 0x48]
mov r9d, 7
mov r8d, 0xc0000000
mov rdx, rbp
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], r12
call fcn.1400037a8
mov rbx, qword [rsp + 0x48]
cmp rbx, r12
jne 0x1400a1316
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x30], 0x2000080
lea rcx, [rsp + 0x48]
mov r9d, 7
mov r8d, 0xc0000000
mov rdx, rbp
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], r12
call fcn.1400037a8
mov rbx, qword [rsp + 0x48]
mov rbp, rbx
cmp rbx, r12
jne 0x1400a1336
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r12d, eax
lea rcx, [rsp + 0x50]
call fcn.1400590a4
jmp 0x1400a1052
xor r8d, r8d
mov al, r12b
mov cl, r12b
mov dl, r12b
mov qword [rsp + 0xa0], r12
mov byte [rsp + 0x58], al
mov byte [rsp + 0x59], cl
mov word [rsp + 0x5b], r8w
mov byte [rsp + 0x5a], dl
cmp r14b, r12b
je 0x1400a138e
lea r9, [rsp + 0xa0]
lea rdx, [rsp + 0x58]
mov r8d, 3
mov rcx, rbx
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dl, byte [rsp + 0x5a]
mov cl, byte [rsp + 0x59]
mov al, byte [rsp + 0x58]
cmp al, 0xff
jne 0x1400a13a7
cmp cl, 0xfe
jne 0x1400a13d7
mov r8d, 2
mov edi, 0x4b0
mov r15, r8
jmp 0x1400a13ad
mov r8d, 2
cmp al, 0xfe
jne 0x1400a13be
cmp cl, 0xff
jne 0x1400a13d7
mov edi, 0x4b1
mov r15, r8
cmp al, 0xef
jne 0x1400a13d7
cmp cl, 0xbb
jne 0x1400a13d7
cmp dl, 0xbf
jne 0x1400a13d7
mov edi, 0xfde9
mov r15d, 3
lea rcx, [rsp + 0xa0]
call fcn.14001bcc8
mov r14b, byte [rsp + 0x42]
cmp qword [rax], r12
je 0x1400a1403
cmp r14b, r12b
jne 0x1400a1403
xor r8d, r8d
mov rdx, r15
mov rcx, rbx
call fcn.14005a608
jmp 0x1400a147e
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.14005a608
cmp r14b, r12b
je 0x1400a141e
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
cmp byte [rsp + 0x45], r12b
jne 0x1400a147e
cmp edi, 0x4b0
jne 0x1400a143b
mov eax, 2
lea rdx, [0x14011afe8]
jmp 0x1400a1465
cmp edi, 0x4b1
jne 0x1400a1451
mov eax, 2
lea rdx, [0x14011afec]
jmp 0x1400a1465
cmp edi, 0xfde9
jne 0x1400a147e
mov eax, 3
lea rdx, [0x14011aff0]
lea r9, [rsp + 0x68]
mov r8d, eax
mov rcx, rbx
mov qword [rsp + 0x20], r12
mov r15, rax
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd r14, eax
add r14, r14
cmp edi, 0x4b0
je 0x1400a14ff
cmp edi, 0x4b1
jne 0x1400a14ae
mov rcx, qword [rsp + 0x50]
mov edx, r14d
call fcn.14005e964
jmp 0x1400a14ff
lea rcx, [rsp + 0x50]
cmp edi, 0xfde9
jne 0x1400a14c5
call fcn.14001732c
mov r14, rax
jmp 0x1400a14ff
mov rdx, qword [rsp + 0x50]
movzx r9d, di
or r8, 0xffffffffffffffff
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x50], r12
call fcn.1400615a8
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea rcx, [rsp + 0x88]
movsxd r14, eax
call fcn.1400590a4
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x60], rax
cmp byte [rsp + 0x118], r12b
je 0x1400a15bf
cmp rbp, 0xffffffffffffffff
jne 0x1400a1556
cmp rbx, r12
je 0x1400a1530
cmp rbx, rbp
je 0x1400a1530
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rsp + 0x50]
call fcn.1400590a4
lea rcx, [rsp + 0x70]
call fcn.1400590a4
lea rcx, [rsp + 0x78]
call fcn.1400590a4
mov r12, r13
jmp 0x1400a1de1
lea r9, [rsp + 0x118]
mov r8d, r14d
mov rdx, rax
mov rcx, rbp
mov dword [rsp + 0x118], r12d
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FlushFileBuffers]
cmp rbx, r12
je 0x1400a1327
cmp rbx, 0xffffffffffffffff
je 0x1400a1327
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1400a1327
lea rcx, [rsp + 0x88]
call fcn.14006166c
lea rcx, [rsp + 0x98]
call fcn.14006166c
lea rcx, [rsp + 0xa8]
call fcn.140061390
lea rcx, [rsp + 0x68]
call fcn.140061390
cmp byte [rsp + 0x41], r12b
je 0x1400a1a0f
lea rcx, [rsp + 0x128]
call fcn.14006166c
mov rdi, qword [rsp + 0x90]
mov eax, 0x26
cmp ax, word [rdi]
je 0x1400a163a
mov rax, qword [rsp + 0x110]
test byte [rax + 0xd], 0xf
jne 0x1400a163a
lea rdx, [rsp + 0x128]
mov rcx, rdi
call fcn.14006cbb4
jmp 0x1400a1680
lea rcx, [0x140134120]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, qword [rsp + 0x110]
or r9d, 0xffffffff
xor r8d, r8d
mov rdx, rdi
call fcn.14001e108
cmp rax, r12
je 0x1400a1673
mov rdx, qword [rax]
lea rcx, [rsp + 0x128]
call fcn.14006d718
lea rcx, [0x140134120]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rbp, qword [rsp + 0x128]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r10b, byte [rsp + 0x40]
mov r8, r12
movsxd rdx, eax
mov eax, 0x2d
mov qword [rsp + 0x48], r12
mov r9, r12
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x118], rdx
mov rdi, rdx
cmp r10b, al
jne 0x1400a16cb
mov r11, r12
mov qword [rsp + 0x80], r12
jmp 0x1400a16e9
mov rax, r14
cqo
sub rax, rdx
mov rdx, qword [rsp + 0x118]
sar rax, 1
mov r11, rax
mov qword [rsp + 0x80], rax
mov r14, r12
mov r15, r12
mov ecx, 0xa
cmp rsi, r12
jne 0x1400a1786
cmp r10b, 0x2b
je 0x1400a18b3
cmp rdx, r12
jbe 0x1400a176d
cmp word [rbp + rdx*2 - 2], cx
jne 0x1400a1729
lea rdi, [rdx - 1]
cmp rdi, r12
jbe 0x1400a176d
lea eax, [rcx + 3]
cmp word [rbp + rdi*2 - 2], ax
jne 0x1400a1729
sub rdi, r13
cmp rdi, r12
jbe 0x1400a176d
lea rax, [rbp + rdi*2 - 2]
cmp rax, rbp
jb 0x1400a176d
mov esi, 2
cmp word [rax], cx
je 0x1400a174f
sub rax, rsi
sub rdi, r13
cmp rax, rbp
jae 0x1400a173d
jmp 0x1400a176d
cmp r10b, 0x2d
jne 0x1400a176d
sub rax, rsi
sub rdi, r13
cmp rax, rbp
jb 0x1400a176d
mov esi, 0xd
cmp word [rax], si
jne 0x1400a176d
sub rdi, r13
mov eax, 0x2d
mov word [rbp + rdi*2], r12w
cmp r10b, al
jne 0x1400a18bd
jmp 0x1400a19af
cmp rsi, r13
mov r9d, edx
mov r8, rbp
cmove r9d, r12d
cmp rsi, r13
jne 0x1400a179e
cmp r10b, 0x2b
je 0x1400a17a1
mov r14, rdx
mov al, byte [rsp + 0x40]
mov r10d, r12d
cmp al, 0x2b
sete r10b
add r10d, r13d
cmp al, 0x2d
jne 0x1400a17bf
cmp rsi, r13
jne 0x1400a17bf
mov edi, r13d
jmp 0x1400a17e9
mov edi, r12d
cmp rsi, r13
jne 0x1400a17e9
cmp al, 0x2b
jne 0x1400a17e9
cmp r11, r12
jbe 0x1400a17e9
mov rax, qword [rsp + 0x50]
cmp word [rax + r11*2 - 2], cx
mov eax, 2
cmovne r15, rax
mov qword [rsp + 0x60], r15
movsxd r10, r10d
cmp rsi, r10
jl 0x1400a189d
mov r15d, 2
movzx eax, word [r8]
cmp ax, r12w
je 0x1400a1895
mov edx, 0xd
cmp ax, cx
je 0x1400a1861
cmp ax, dx
jne 0x1400a1821
add r8, r15
cmp word [r8], cx
je 0x1400a1830
add r8, r15
mov ax, word [r8]
cmp ax, r12w
je 0x1400a188c
jmp 0x1400a180e
cmp r10, rsi
jne 0x1400a184e
mov rdx, r8
lea eax, [rdi + rdi]
movsxd rcx, eax
sub rdx, rbp
sar rdx, 1
lea r14, [rdx + rcx - 1]
mov ecx, 0xa
cmp rsi, r15
jne 0x1400a1886
mov r9, r8
sub r9, rbp
sar r9, 1
sub r9d, r13d
jmp 0x1400a1886
cmp r10, rsi
jne 0x1400a1875
mov r14, r8
movsxd rax, edi
sub r14, rbp
sar r14, 1
add r14, rax
cmp rsi, r15
jne 0x1400a1886
mov rax, r8
sub rax, rbp
sar rax, 1
mov r9d, eax
sub rsi, r13
add r8, r15
cmp rsi, r10
jge 0x1400a17fb
mov rdx, qword [rsp + 0x118]
mov r10b, byte [rsp + 0x40]
mov r15, rdx
movsxd rdi, r9d
mov r9, qword [rsp + 0x60]
mov r8, r12
sub r15, r14
mov eax, 0x2d
cmp r10b, al
je 0x1400a18d8
mov r13d, 2
cmp rdi, r12
jbe 0x1400a18de
cmp word [rbp + rdi*2 - 2], cx
cmovne r8, r13
mov qword [rsp + 0x48], r8
jmp 0x1400a18de
mov r13d, 2
lea rsi, [r11 + r9]
sub r14, rdi
add rsi, r8
lea rax, [rsi + r15]
lea rbp, [rax + rdi + 1]
mov rax, qword [rsp + 0x128]
lea rcx, [rax + rdi*2]
cmp rdx, rbp
jb 0x1400a1918
cmp r15, r12
jbe 0x1400a1918
lea rdx, [rcx + r14*2]
lea r8, [r15 + r15]
lea rcx, [rcx + rsi*2]
call fcn.14001d0e0
lea rcx, [rsp + 0x128]
mov rdx, rbp
call fcn.14006176c
mov r11, qword [rsp + 0x128]
lea rdi, [r11 + rdi*2]
cmp qword [rsp + 0x118], rbp
jae 0x1400a1954
cmp r15, r12
jbe 0x1400a1954
lea r8, [r15 + r15]
lea rdx, [rdi + r14*2]
lea rcx, [rdi + rsi*2]
call fcn.14001d0e0
mov r14d, 0xd
lea esi, [r14 - 3]
cmp qword [rsp + 0x48], r12
je 0x1400a1972
mov word [rdi], r14w
add rdi, r13
mov word [rdi], si
add rdi, r13
mov rbp, qword [rsp + 0x80]
cmp rbp, r12
jbe 0x1400a1996
mov rdx, qword [rsp + 0x50]
movsxd r8, ebp
mov rcx, rdi
add r8, r8
call fcn.14001d128
lea rdi, [rdi + rbp*2]
cmp qword [rsp + 0x60], r12
je 0x1400a19aa
mov word [rdi], r14w
add rdi, r13
mov word [rdi], si
add rdi, r13
mov word [rdi + r15*2], r12w
mov r8, qword [rsp + 0x128]
mov rdx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x110]
call fcn.140060a94
lea rcx, [rsp + 0x128]
call fcn.1400590a4
lea rcx, [rsp + 0x68]
call fcn.1400590a4
lea rcx, [rsp + 0xa8]
call fcn.1400590a4
lea rcx, [rsp + 0x98]
call fcn.1400590a4
lea rcx, [rsp + 0x88]
call fcn.1400590a4
jmp 0x1400a159e
cmp rsi, r12
jne 0x1400a1bb6
cmp byte [rsp + 0x40], 0x2b
mov rcx, rbx
je 0x1400a1ba2
xor r8d, r8d
mov rdx, r15
call fcn.14005a608
mov r8d, r13d
xor edx, edx
mov rcx, rbx
call fcn.14005a608
mov r9b, byte [rsp + 0x128]
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x48]
mov r8d, edi
mov rbp, rax
call fcn.14006a794
cmp eax, r12d
je 0x1400a1a9d
mov sil, byte [rsp + 0x128]
mov r8d, r13d
xor edx, edx
mov rcx, rbx
mov r15, rbp
call fcn.14005a608
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x48]
mov r9b, sil
mov r8d, edi
mov rbp, rax
call fcn.14006a794
cmp eax, r12d
jne 0x1400a1a68
mov rsi, qword [rsp + 0x80]
xor r8d, r8d
mov rdx, r15
mov rcx, rbx
call fcn.14005a608
lea rcx, [rsp + 0x48]
mov rdx, r15
call fcn.14006acb4
mov r15b, byte [rsp + 0x128]
mov al, byte [rsp + 0x40]
cmp al, 0x2b
jne 0x1400a1bf5
mov rcx, rbx
cmp rsi, r12
je 0x1400a1cbb
mov r8d, r13d
xor edx, edx
call fcn.14005a608
mov rcx, rbx
mov rdi, rax
call fcn.1400deaf0
lea rcx, [rsp + 0x128]
sub eax, edi
mov esi, eax
cmp eax, r12d
cmovl esi, r12d
add eax, 0xca
movsxd rdx, eax
call fcn.1400613f4
movsxd rdi, edi
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
call fcn.14005a608
mov rdx, qword [rsp + 0x128]
lea r9, [rsp + 0x118]
mov r8d, esi
mov rcx, rbx
mov dword [rsp + 0x118], r12d
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
call fcn.14005a608
mov rdx, qword [rsp + 0x60]
lea r9, [rsp + 0x110]
mov r8d, r14d
mov rcx, rbx
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp esi, r12d
jle 0x1400a1dc9
mov r8d, esi
mov rdx, qword [rsp + 0x128]
lea r9, [rsp + 0x110]
mov rcx, rbx
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x1400a1dc9
mov eax, 2
xor edx, edx
mov r8d, eax
call fcn.14005a608
jmp 0x1400a1ab8
cmp r13, rsi
mov rbp, r13
jge 0x1400a1ab8
mov r15b, byte [rsp + 0x128]
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x48]
mov r9b, r15b
mov r8d, edi
call fcn.14006a794
cmp eax, r12d
je 0x1400a1ac0
add rbp, r13
cmp rbp, rsi
jl 0x1400a1bca
jmp 0x1400a1ac0
cmp al, 0x2d
jne 0x1400a1cb3
cmp rsi, r12
je 0x1400a19d9
mov r8d, r13d
xor edx, edx
mov rcx, rbx
call fcn.14005a608
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x48]
mov r9b, r15b
mov r8d, edi
mov rbp, rax
call fcn.14006a794
mov r8d, r13d
xor edx, edx
mov rcx, rbx
call fcn.14005a608
mov rcx, rbx
mov rdi, rax
call fcn.1400deaf0
mov rsi, rax
sub esi, edi
lea ecx, [rsi + 0xca]
movsxd rdx, ecx
lea rcx, [rsp + 0x128]
call fcn.1400613f4
mov rdx, qword [rsp + 0x128]
lea r8d, [rsi + 0xc8]
lea r9, [rsp + 0x118]
mov rcx, rbx
mov dword [rsp + 0x118], r12d
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
xor r8d, r8d
mov rdx, rbp
mov rcx, rbx
call fcn.14005a608
lea rcx, [rsp + 0x48]
mov rdx, rbp
call fcn.14006acb4
mov r8d, dword [rsp + 0x118]
jmp 0x1400a1b7f
mov rcx, rbx
cmp rsi, r12
jne 0x1400a1cdb
mov rdx, qword [rsp + 0x60]
lea r9, [rsp + 0x118]
mov r8d, r14d
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x1400a19d9
mov r8d, r13d
xor edx, edx
call fcn.14005a608
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x48]
mov r9b, r15b
mov r8d, edi
mov rbp, rax
call fcn.14006a794
mov r8d, r13d
xor edx, edx
mov rcx, rbx
call fcn.14005a608
mov rcx, rbx
mov rdi, rax
call fcn.1400deaf0
mov rsi, rax
sub esi, edi
lea ecx, [rsi + 0xca]
movsxd rdx, ecx
lea rcx, [rsp + 0x128]
call fcn.1400613f4
mov rdx, qword [rsp + 0x128]
lea r8d, [rsi + 0xc8]
lea r9, [rsp + 0x118]
mov rcx, rbx
mov dword [rsp + 0x118], r12d
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
xor r8d, r8d
mov rdx, rbp
mov rcx, rbx
call fcn.14005a608
mov rdx, qword [rsp + 0x60]
lea r9, [rsp + 0x110]
mov r8d, r14d
mov rcx, rbx
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov r8d, dword [rsp + 0x118]
mov rdx, qword [rsp + 0x128]
lea r9, [rsp + 0x110]
mov rcx, rbx
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov r8d, r13d
xor edx, edx
mov rcx, rbx
call fcn.14005a608
lea rcx, [rsp + 0x48]
movsxd rdx, eax
call fcn.14006acb4
lea rcx, [rsp + 0x128]
call fcn.1400590a4
jmp 0x1400a19d9
mov r12d, 1
lea rcx, [rsp + 0xb0]
call fcn.1400590a4
mov rbx, qword [rsp + 0x120]
mov rax, r12
add rsp, 0xd0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret