Function at 0x18000dd60
Capabilities:
Get file size
Write file on windows

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xd8]
sub rsp, 0x1b0
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x1801485f0]
xor rax, rsp
mov qword [rbp + 0xa0], rax
mov qword [rsp + 0x48], rcx
lea rcx, [rbp + 0x20]
call fcn.180004390
nop
mov rdx, rax
lea rcx, [rbp - 0x40]
call fcn.18001b8b0
mov rbx, rax
lea rcx, [rbp + 0x40]
call fcn.18000c770
nop
mov r8, rbx
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.180019320
nop
cmp qword [rbp + 0x58], 8
jb 0x18000dde8
mov rcx, qword [rbp + 0x40]
call fcn.1800b5700
mov qword [rbp + 0x58], 7
xor r13d, r13d
mov qword [rbp + 0x50], r13
mov word [rbp + 0x40], r13w
cmp qword [rbp - 0x28], 8
jb 0x18000de0c
mov rcx, qword [rbp - 0x40]
call fcn.1800b5700
mov qword [rbp - 0x28], 7
mov qword [rbp - 0x30], r13
mov word [rbp - 0x40], r13w
cmp qword [rbp + 0x38], 0x10
jb 0x18000de2d
mov rcx, qword [rbp + 0x20]
call fcn.1800b5700
mov qword [rbp + 0x38], 0xf
mov qword [rbp + 0x30], r13
mov byte [rbp + 0x20], 0
cmp qword [rbp - 0x10], 0
je 0x18000e7e6
lea rcx, [rbp - 0x20]
cmp qword [rbp - 8], 8
cmovae rcx, qword [rbp - 0x20]
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x18000e7e6
mov dword [rsp + 0x50], r13d
lea rdx, [rsp + 0x50]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
cmp dword [rsp + 0x50], 0
jne 0x18000e7dd
test eax, eax
je 0x18000e7dd
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
je 0x18000e7e6
lea eax, [rdi + 1]
mov ebx, eax
mov ecx, eax
call fcn.1800b1b34
mov rsi, rax
mov r8d, ebx
xor edx, edx
mov rcx, rax
call fcn.1800b6c70
lea r9, [rsp + 0x40]
mov r8d, edi
mov rdx, rsi
lea rcx, [rbp - 0x20]
call fcn.180025870
mov qword [rsp + 0x70], r13
mov qword [rsp + 0x78], r13
mov qword [rsp + 0x78], 0xf
mov qword [rsp + 0x70], r13
mov byte [rsp + 0x60], 0
cmp byte [rsi], 0
jne 0x18000df19
mov r8, r13
jmp 0x18000df2a
or r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rsi + r8], 0
jne 0x18000df20
mov rdx, rsi
lea rcx, [rsp + 0x60]
call fcn.180015d00
nop
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x80]
call fcn.18001b8b0
nop
lea rcx, [rbp + 0x60]
call fcn.180004110
nop
mov r15, qword [rbp + 0x70]
lea r14, [rbp + 0x60]
cmp qword [rbp + 0x78], 0x10
cmovae r14, qword [rbp + 0x60]
mov r12d, 1
test r15, r15
jne 0x18000df79
mov rbx, r13
jmp 0x18000e009
mov rdi, qword [rsp + 0x70]
test rdi, rdi
je 0x18000e241
cmp r15, rdi
ja 0x18000e241
sub rdi, r15
inc rdi
lea rsi, [rsp + 0x60]
cmp qword [rsp + 0x78], 0x10
cmovae rsi, qword [rsp + 0x60]
test rdi, rdi
je 0x18000e241
movsx edx, byte [r14]
mov r8, rdi
mov rcx, rsi
call fcn.1800b766c
mov rbx, rax
test rax, rax
je 0x18000e241
mov r8, r15
mov rdx, r14
mov rcx, rax
call fcn.1800b8b30
test eax, eax
je 0x18000dfec
sub rsi, rbx
dec rsi
add rdi, rsi
lea rsi, [rbx + 1]
jmp 0x18000dfa7
lea rax, [rsp + 0x60]
cmp qword [rsp + 0x78], 0x10
cmovae rax, qword [rsp + 0x60]
sub rbx, rax
cmp ebx, 0xffffffff
je 0x18000e241
mov qword [rbp - 0x30], r13
mov qword [rbp - 0x28], r13
mov qword [rbp - 0x28], 0xf
mov qword [rbp - 0x30], r13
mov byte [rbp - 0x40], 0
mov r8d, 2
lea rdx, [0x180100964]
lea rcx, [rbp - 0x40]
call fcn.180015d00
nop
mov qword [rbp - 0x50], r13
mov qword [rbp - 0x48], r13
mov qword [rbp - 0x48], 0xf
mov qword [rbp - 0x50], r13
mov byte [rbp - 0x60], 0
mov r8, r12
lea rdx, [0x180100968]
lea rcx, [rbp - 0x60]
call fcn.180015d00
nop
movsxd r12, ebx
mov rbx, qword [rbp + 0x70]
add rbx, r12
mov r14, qword [rbp - 0x50]
lea r15, [rbp - 0x60]
cmp qword [rbp - 0x48], 0x10
cmovae r15, qword [rbp - 0x60]
mov rdi, qword [rsp + 0x70]
test r14, r14
jne 0x18000e093
cmp rbx, rdi
jbe 0x18000e125
cmp rbx, rdi
jae 0x18000e1fb
sub rdi, rbx
cmp r14, rdi
ja 0x18000e1fb
mov eax, 1
sub rax, r14
add rdi, rax
lea rsi, [rsp + 0x60]
cmp qword [rsp + 0x78], 0x10
cmovae rsi, qword [rsp + 0x60]
add rsi, rbx
test rdi, rdi
je 0x18000e1fb
movsx edx, byte [r15]
mov r8, rdi
mov rcx, rsi
call fcn.1800b766c
mov rbx, rax
test rax, rax
je 0x18000e1fb
test r14, r14
je 0x18000e111
mov r8, r14
mov rdx, r15
mov rcx, rax
call fcn.1800b8b30
test eax, eax
je 0x18000e111
sub rsi, rbx
dec rsi
add rdi, rsi
lea rsi, [rbx + 1]
jmp 0x18000e0c7
lea rax, [rsp + 0x60]
cmp qword [rsp + 0x78], 0x10
cmovae rax, qword [rsp + 0x60]
sub rbx, rax
cmp ebx, 0xffffffff
je 0x18000e1fb
movsxd r9, ebx
sub r9, r12
add r9, qword [rbp - 0x30]
mov r8, r12
lea rdx, [rbp + 0x40]
lea rcx, [rsp + 0x60]
call fcn.180012d80
nop
mov qword [rbp + 0x30], r13
mov qword [rbp + 0x38], r13
mov qword [rbp + 0x38], 7
mov qword [rbp + 0x30], r13
mov word [rbp + 0x20], r13w
xor r8d, r8d
lea rdx, [0x180100a4c]
lea rcx, [rbp + 0x20]
call fcn.1800166f0
nop
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x80]
call fcn.18001b8b0
nop
lea r8, [rbp + 0x20]
mov rdx, rax
lea rcx, [rbp + 0x80]
call fcn.18001ce30
nop
cmp qword [rbp - 0x68], 8
jb 0x18000e1a9
mov rcx, qword [rbp - 0x80]
call fcn.1800b5700
mov qword [rbp - 0x68], 7
mov qword [rbp - 0x70], r13
mov word [rbp - 0x80], r13w
cmp qword [rbp + 0x38], 8
jb 0x18000e1ca
mov rcx, qword [rbp + 0x20]
call fcn.1800b5700
mov qword [rbp + 0x38], 7
mov qword [rbp + 0x30], r13
mov word [rbp + 0x20], r13w
cmp qword [rbp + 0x58], 0x10
jb 0x18000e1eb
mov rcx, qword [rbp + 0x40]
call fcn.1800b5700
mov qword [rbp + 0x58], 0xf
mov qword [rbp + 0x50], r13
mov byte [rbp + 0x40], 0
cmp qword [rbp - 0x48], 0x10
jb 0x18000e20b
mov rcx, qword [rbp - 0x60]
call fcn.1800b5700
mov qword [rbp - 0x48], 0xf
mov qword [rbp - 0x50], r13
mov byte [rbp - 0x60], 0
cmp qword [rbp - 0x28], 0x10
jb 0x18000e22b
mov rcx, qword [rbp - 0x40]
call fcn.1800b5700
mov qword [rbp - 0x28], 0xf
mov qword [rbp - 0x30], r13
mov byte [rbp - 0x40], 0
mov r12d, 1
lea rdx, [rbp + 0x80]
lea rcx, [rbp - 0x80]
call fcn.18001b690
mov rbx, rax
lea rax, [rsp + 0x60]
cmp rax, rbx
je 0x18000e291
cmp qword [rsp + 0x78], 0x10
jb 0x18000e270
mov rcx, qword [rsp + 0x60]
call fcn.1800b5700
mov qword [rsp + 0x78], 0xf
mov qword [rsp + 0x70], r13
mov byte [rsp + 0x60], 0
mov rdx, rbx
lea rcx, [rsp + 0x60]
call fcn.180015910
nop
cmp qword [rbp - 0x68], 0x10
jb 0x18000e2a1
mov rcx, qword [rbp - 0x80]
call fcn.1800b5700
mov qword [rbp - 0x68], 0xf
mov qword [rbp - 0x70], r13
mov byte [rbp - 0x80], 0
lea rcx, [rbp]
call fcn.180004240
nop
xor r13b, r13b
mov r15, qword [rbp + 0x10]
lea r14, [rbp]
cmp qword [rbp + 0x18], 0x10
cmovae r14, qword [rbp]
test r15, r15
jne 0x18000e2de
xor eax, eax
mov edi, eax
jmp 0x18000e374
mov rbx, qword [rsp + 0x70]
test rbx, rbx
je 0x18000e507
cmp r15, rbx
ja 0x18000e507
sub rbx, r15
inc rbx
lea rsi, [rsp + 0x60]
cmp qword [rsp + 0x78], 0x10
cmovae rsi, qword [rsp + 0x60]
nop dword [rax]
test rbx, rbx
je 0x18000e507
movsx edx, byte [r14]
mov r8, rbx
mov rcx, rsi
call fcn.1800b766c
mov rdi, rax
test rax, rax
je 0x18000e507
mov r8, r15
mov rdx, r14
mov rcx, rax
call fcn.1800b8b30
test eax, eax
je 0x18000e355
sub rsi, rdi
dec rsi
add rbx, rsi
lea rsi, [rdi + 1]
jmp 0x18000e310
lea rax, [rsp + 0x60]
cmp qword [rsp + 0x78], 0x10
cmovae rax, qword [rsp + 0x60]
sub rdi, rax
cmp edi, 0xffffffff
je 0x18000e507
xor eax, eax
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x48], 0xf
mov qword [rbp - 0x50], rax
mov byte [rbp - 0x60], 0
mov r8, r12
lea rdx, [0x180100960]
lea rcx, [rbp - 0x60]
call fcn.180015d00
nop
movsxd r12, edi
mov r9, qword [rbp + 0x10]
add r9, r12
mov rsi, qword [rbp - 0x50]
lea r15, [rbp - 0x60]
cmp qword [rbp - 0x48], 0x10
cmovae r15, qword [rbp - 0x60]
test rsi, rsi
je 0x18000e4dd
mov r8, qword [rsp + 0x70]
cmp r9, r8
jae 0x18000e4dd
lea r14, [rsp + 0x60]
cmp qword [rsp + 0x78], 0x10
cmovae r14, qword [rsp + 0x60]
add r14, r8
lea rbx, [rsp + 0x60]
cmp qword [rsp + 0x78], 0x10
cmovae rbx, qword [rsp + 0x60]
add rbx, r9
cmp rbx, r14
jae 0x18000e4dd
test rsi, rsi
je 0x18000e41c
movsx edx, byte [rbx]
mov r8, rsi
mov rcx, r15
call fcn.1800b766c
test rax, rax
jne 0x18000e421
inc rbx
jmp 0x18000e3fb
lea rax, [rsp + 0x60]
cmp qword [rsp + 0x78], 0x10
cmovae rax, qword [rsp + 0x60]
sub rbx, rax
cmp ebx, 0xffffffff
je 0x18000e4dd
sub ebx, edi
movsxd r9, ebx
mov rax, qword [rbp + 0x10]
sub r9, rax
lea r8, [r12 + rax]
lea rdx, [rbp - 0x40]
lea rcx, [rsp + 0x60]
call fcn.180012d80
nop
cmp qword [rbp - 0x30], 0
je 0x18000e4b3
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x80]
call fcn.18001b8b0
nop
mov r14, qword [rsp + 0x48]
mov r8, r14
mov rdx, rax
lea rcx, [rbp + 0x80]
call fcn.18001ce30
nop
cmp qword [rbp - 0x68], 8
jb 0x18000e49a
mov rcx, qword [rbp - 0x80]
call fcn.1800b5700
mov qword [rbp - 0x68], 7
xor r15d, r15d
mov qword [rbp - 0x70], r15
mov word [rbp - 0x80], r15w
mov r13b, 1
jmp 0x18000e4bb
mov r14, qword [rsp + 0x48]
xor r15d, r15d
cmp qword [rbp - 0x28], 0x10
jb 0x18000e4cb
mov rcx, qword [rbp - 0x40]
call fcn.1800b5700
mov qword [rbp - 0x28], 0xf
mov qword [rbp - 0x30], r15
mov byte [rbp - 0x40], 0
jmp 0x18000e4e5
mov r14, qword [rsp + 0x48]
xor r15d, r15d
cmp qword [rbp - 0x48], 0x10
jb 0x18000e4f5
mov rcx, qword [rbp - 0x60]
call fcn.1800b5700
mov qword [rbp - 0x48], 0xf
mov qword [rbp - 0x50], r15
mov byte [rbp - 0x60], 0
jmp 0x18000e50f
mov r14, qword [rsp + 0x48]
xor r15d, r15d
lea rdx, [rbp + 0x80]
lea rcx, [rbp - 0x80]
call fcn.18001b690
mov rbx, rax
lea rax, [rsp + 0x60]
cmp rax, rbx
je 0x18000e55f
cmp qword [rsp + 0x78], 0x10
jb 0x18000e53e
mov rcx, qword [rsp + 0x60]
call fcn.1800b5700
mov qword [rsp + 0x78], 0xf
mov qword [rsp + 0x70], r15
mov byte [rsp + 0x60], 0
mov rdx, rbx
lea rcx, [rsp + 0x60]
call fcn.180015910
nop
cmp qword [rbp - 0x68], 0x10
jb 0x18000e56f
mov rcx, qword [rbp - 0x80]
call fcn.1800b5700
mov qword [rbp - 0x68], 0xf
mov qword [rbp - 0x70], r15
mov byte [rbp - 0x80], 0
mov rsi, qword [rsp + 0x70]
lea rbx, [rsp + 0x60]
cmp qword [rsp + 0x78], 0x10
cmovae rbx, qword [rsp + 0x60]
cmp qword [rbp - 0x10], 0
je 0x18000e600
lea rcx, [rbp - 0x20]
cmp qword [rbp - 8], 8
cmovae rcx, qword [rbp - 0x20]
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 2
xor r9d, r9d
xor r8d, r8d
mov edx, 0x40000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x18000e600
mov dword [rsp + 0x40], r15d
mov qword [rsp + 0x20], r15
lea r9, [rsp + 0x40]
mov r8d, esi
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test r13b, r13b
je 0x18000e612
mov ebx, 1
xor r13d, r13d
jmp 0x18000e746
lea rcx, [rbp - 0x80]
call fcn.180004240
nop
lea rcx, [rbp]
cmp rcx, rax
je 0x18000e639
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rbp]
call fcn.180015bd0
nop
cmp qword [rbp - 0x68], 0x10
jb 0x18000e649
mov rcx, qword [rbp - 0x80]
call fcn.1800b5700
mov qword [rbp - 0x68], 0xf
xor r13d, r13d
mov qword [rbp - 0x70], r13
mov byte [rbp - 0x80], r13b
mov rdx, r14
lea rcx, [rbp - 0x80]
call fcn.18001b690
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rbp]
call fcn.180015990
lea r8d, [r13 + 4]
lea rdx, str.____n
mov rcx, rax
call fcn.180012c30
nop
cmp qword [rbp - 0x68], 0x10
jb 0x18000e6a0
mov rcx, qword [rbp - 0x80]
call fcn.1800b5700
mov qword [rbp - 0x68], 0xf
mov qword [rbp - 0x70], r13
mov byte [rbp - 0x80], 0
mov rsi, qword [rbp + 0x10]
lea rbx, [rbp]
cmp qword [rbp + 0x18], 0x10
cmovae rbx, qword [rbp]
cmp qword [rbp - 0x10], 0
je 0x18000e741
lea rcx, [rbp - 0x20]
cmp qword [rbp - 8], 8
cmovae rcx, qword [rbp - 0x20]
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
xor r9d, r9d
xor r8d, r8d
mov edx, 0x40000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x18000e741
mov r9d, 2
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x40], r13d
mov qword [rsp + 0x20], r13
lea r9, [rsp + 0x40]
mov r8d, esi
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, 2
cmp qword [rbp + 0x18], 0x10
jb 0x18000e756
mov rcx, qword [rbp]
call fcn.1800b5700
mov qword [rbp + 0x18], 0xf
mov qword [rbp + 0x10], r13
mov byte [rbp], 0
cmp qword [rbp + 0x78], 0x10
jb 0x18000e776
mov rcx, qword [rbp + 0x60]
call fcn.1800b5700
mov qword [rbp + 0x78], 0xf
mov qword [rbp + 0x70], r13
mov byte [rbp + 0x60], 0
cmp qword [rbp + 0x98], 8
jb 0x18000e79c
mov rcx, qword [rbp + 0x80]
call fcn.1800b5700
mov qword [rbp + 0x98], 7
mov qword [rbp + 0x90], r13
mov word [rbp + 0x80], r13w
cmp qword [rsp + 0x78], 0x10
jb 0x18000e7c8
mov rcx, qword [rsp + 0x60]
call fcn.1800b5700
mov qword [rsp + 0x78], 0xf
mov qword [rsp + 0x70], r13
mov byte [rsp + 0x60], 0
jmp 0x18000e7e9
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
or ebx, 0xffffffff
cmp qword [rbp - 8], 8
jb 0x18000e7f9
mov rcx, qword [rbp - 0x20]
call fcn.1800b5700
mov qword [rbp - 8], 7
mov qword [rbp - 0x10], r13
mov word [rbp - 0x20], r13w
mov eax, ebx
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.1800b6c40
lea r11, [rsp + 0x1b0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret