Function at 0x7ff8c39dcd10
Capabilities:
Write file on windows

Disassembly:
push rbx
push rdi
push r15
sub rsp, 0x20
mov rax, qword [rcx + 0xa8]
mov rbx, rcx
test rax, rax
je 0x7ff8c39dcd61
cmp byte [rcx + 1], 0
je 0x7ff8c39dcd61
mov byte [rax + 0x18], 0
mov rdi, qword [rcx + 0xa8]
test rdi, rdi
je 0x7ff8c39dcd61
mov rcx, rdi
call fcn.7ff8c3a09a40
mov rax, qword [0x7ff8c3abb7a0]
test rax, rax
je 0x7ff8c39dcd58
dec dword [rax + 0x3b0]
mov rcx, rdi
call qword [sym.imp.ucrtbase.dll_free]
xor r15d, r15d
mov qword [rbx + 0xa8], r15
cmp byte [rbx], r15b
je 0x7ff8c39dd480
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x50], rsi
cmp byte [rbx + 0x3230], r15b
je 0x7ff8c39dcdee
mov rdi, qword [rbx + 0x20]
test rdi, rdi
je 0x7ff8c39dcdee
mov rsi, qword [0x7ff8c3abb7a0]
lea rcx, [rsp + 0x40]
mov qword [0x7ff8c3abb7a0], rbx
mov dword [rbx + 0x3234], r15d
mov qword [rsp + 0x40], r15
call fcn.7ff8c39ee170
lea rdx, [0x7ff8c3a9c7cc]
mov rcx, rdi
mov rbp, rax
call fcn.7ff8c39d6aa0
mov rdi, rax
test rax, rax
je 0x7ff8c39dcdf5
mov r8, qword [rsp + 0x40]
lea edx, [r15 + 1]
mov r9, rax
mov rcx, rbp
call qword [sym.imp.ucrtbase.dll_fwrite]
mov rcx, rdi
call qword [sym.imp.ucrtbase.dll_fclose]
jmp 0x7ff8c39dcdf5
mov rsi, qword [0x7ff8c3abb7a0]
mov qword [0x7ff8c3abb7a0], rbx
call fcn.7ff8c39f1180
mov eax, dword [rbx + 0x31f8]
mov qword [0x7ff8c3abb7a0], rsi
mov esi, r15d
test eax, eax
jle 0x7ff8c39dce8f
mov qword [rsp + 0x58], r14
mov rbp, r15
mov r14, r15
test rbp, rbp
js 0x7ff8c39dce29
cmp esi, eax
jl 0x7ff8c39dce43
mov r8d, 0x6c7
lea rdx, [0x7ff8c3a982a0]
lea rcx, [0x7ff8c3a9e628]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rax, qword [rbx + 0x3200]
mov rdi, qword [rax + r14 + 8]
test rdi, rdi
je 0x7ff8c39dce77
mov rcx, rdi
call fcn.7ff8c39f3290
mov rax, qword [0x7ff8c3abb7a0]
test rax, rax
je 0x7ff8c39dce6e
dec dword [rax + 0x3b0]
mov rcx, rdi
call qword [sym.imp.ucrtbase.dll_free]
mov eax, dword [rbx + 0x31f8]
inc esi
inc rbp
add r14, 0x10
cmp esi, eax
jl 0x7ff8c39dce20
mov r14, qword [rsp + 0x58]
mov edx, 6
mov rcx, rbx
call fcn.7ff8c39d9ed0
mov eax, dword [rbx + 0x1cb8]
mov ebp, r15d
test eax, eax
jle 0x7ff8c39dcf15
mov rsi, r15
nop dword [rax]
test rsi, rsi
js 0x7ff8c39dceb9
cmp ebp, eax
jl 0x7ff8c39dced3
mov r8d, 0x6c7
lea rdx, [0x7ff8c3a982a0]
lea rcx, [0x7ff8c3a9e628]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rax, qword [rbx + 0x1cc0]
mov rdi, qword [rax + rsi*8]
test rdi, rdi
je 0x7ff8c39dcf06
mov rcx, rdi
call fcn.7ff8c39d9630
mov rax, qword [0x7ff8c3abb7a0]
test rax, rax
je 0x7ff8c39dcefd
dec dword [rax + 0x3b0]
mov rcx, rdi
call qword [sym.imp.ucrtbase.dll_free]
mov eax, dword [rbx + 0x1cb8]
inc ebp
inc rsi
cmp ebp, eax
jl 0x7ff8c39dceb0
mov rcx, qword [rbx + 0x1cc0]
mov rbp, qword [rsp + 0x48]
test rcx, rcx
je 0x7ff8c39dcf4c
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x1cb8], r15
test rax, rax
je 0x7ff8c39dcf3f
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x1cc0], r15
mov rcx, qword [rbx + 0x1cd0]
test rcx, rcx
je 0x7ff8c39dcf7e
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x1cc8], r15
test rax, rax
je 0x7ff8c39dcf71
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x1cd0], r15
mov rcx, qword [rbx + 0x1ce0]
test rcx, rcx
je 0x7ff8c39dcfb0
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x1cd8], r15
test rax, rax
je 0x7ff8c39dcfa3
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x1ce0], r15
mov qword [rbx + 0x1d18], r15
mov rcx, qword [rbx + 0x1cf0]
test rcx, rcx
je 0x7ff8c39dcfe9
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x1ce8], r15
test rax, rax
je 0x7ff8c39dcfdc
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x1cf0], r15
mov rcx, qword [rbx + 0x1d00]
test rcx, rcx
je 0x7ff8c39dd01b
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x1cf8], r15
test rax, rax
je 0x7ff8c39dd00e
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x1d00], r15
mov qword [rbx + 0x1f88], r15
mov qword [rbx + 0x1d28], r15
mov qword [rbx + 0x1d20], r15
mov qword [rbx + 0x1db0], r15
mov qword [rbx + 0x1d98], r15
mov qword [rbx + 0x1d38], r15
mov rcx, qword [rbx + 0x1eb0]
test rcx, rcx
je 0x7ff8c39dd077
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x1ea8], r15
test rax, rax
je 0x7ff8c39dd06a
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x1eb0], r15
mov rcx, qword [rbx + 0x1ec0]
test rcx, rcx
je 0x7ff8c39dd0a9
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x1eb8], r15
test rax, rax
je 0x7ff8c39dd09c
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x1ec0], r15
mov rcx, qword [rbx + 0x1ed0]
test rcx, rcx
je 0x7ff8c39dd0db
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x1ec8], r15
test rax, rax
je 0x7ff8c39dd0ce
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x1ed0], r15
mov rcx, qword [rbx + 0x1f10]
test rcx, rcx
je 0x7ff8c39dd10d
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x1f08], r15
test rax, rax
je 0x7ff8c39dd100
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x1f10], r15
mov rcx, qword [rbx + 0x1f20]
test rcx, rcx
je 0x7ff8c39dd13f
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x1f18], r15
test rax, rax
je 0x7ff8c39dd132
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x1f20], r15
mov eax, dword [rbx + 0x1f28]
mov edi, r15d
mov qword [rbx + 0x1f50], r15
mov qword [rbx + 0x1f48], r15
mov qword [rbx + 0x1f40], r15
test eax, eax
jle 0x7ff8c39dd1a6
mov rsi, r15
test rsi, rsi
js 0x7ff8c39dd16d
cmp edi, eax
jl 0x7ff8c39dd187
mov r8d, 0x6c7
lea rdx, [0x7ff8c3a982a0]
lea rcx, [0x7ff8c3a9e628]
call qword [sym.imp.ucrtbase.dll__wassert]
mov rcx, qword [rbx + 0x1f30]
mov rcx, qword [rcx + rsi*8]
call fcn.7ff8c39fd030
mov eax, dword [rbx + 0x1f28]
inc edi
inc rsi
cmp edi, eax
jl 0x7ff8c39dd164
mov rcx, qword [rbx + 0x1f30]
mov rsi, qword [rsp + 0x50]
test rcx, rcx
je 0x7ff8c39dd1dd
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x1f28], r15
test rax, rax
je 0x7ff8c39dd1d0
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x1f30], r15
lea rcx, [rbx + 0x2218]
call fcn.7ff8c39fbf50
mov rcx, qword [rbx + 0x2248]
test rcx, rcx
je 0x7ff8c39dd21b
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x2240], r15
test rax, rax
je 0x7ff8c39dd20e
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x2248], r15
mov rcx, qword [rbx + 0x2258]
test rcx, rcx
je 0x7ff8c39dd24d
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x2250], r15
test rax, rax
je 0x7ff8c39dd240
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x2258], r15
lea rcx, [rbx + 0x21b8]
call fcn.7ff8c39fc110
mov rcx, qword [rbx + 0x21e8]
test rcx, rcx
je 0x7ff8c39dd28b
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x21e0], r15
test rax, rax
je 0x7ff8c39dd27e
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x21e8], r15
mov rcx, qword [rbx + 0x2208]
test rcx, rcx
je 0x7ff8c39dd2bd
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x2200], r15
test rax, rax
je 0x7ff8c39dd2b0
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x2208], r15
mov rcx, qword [rbx + 0x31c0]
test rcx, rcx
je 0x7ff8c39dd2ef
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x31b8], r15
test rax, rax
je 0x7ff8c39dd2e2
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x31c0], r15
mov rcx, qword [rbx + 0x31d0]
test rcx, rcx
je 0x7ff8c39dd321
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x31c8], r15
test rax, rax
je 0x7ff8c39dd314
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x31d0], r15
mov rcx, qword [rbx + 0x2280]
test rcx, rcx
je 0x7ff8c39dd353
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x2278], r15
test rax, rax
je 0x7ff8c39dd346
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x2280], r15
mov rcx, qword [rbx + 0x2290]
test rcx, rcx
je 0x7ff8c39dd385
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x2288], r15
test rax, rax
je 0x7ff8c39dd378
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x2290], r15
mov rcx, qword [rbx + 0x22a0]
test rcx, rcx
je 0x7ff8c39dd3b7
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x2298], r15
test rax, rax
je 0x7ff8c39dd3aa
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x22a0], r15
mov rcx, qword [rbx + 0x3260]
test rcx, rcx
je 0x7ff8c39dd3e9
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x3258], r15
test rax, rax
je 0x7ff8c39dd3dc
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x3260], r15
mov rcx, qword [rbx + 0x3250]
test rcx, rcx
je 0x7ff8c39dd41b
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x3248], r15
test rax, rax
je 0x7ff8c39dd40e
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x3250], r15
cmp qword [rbx + 0x3298], r15
je 0x7ff8c39dd44b
mov rdi, qword [rbx + 0x3298]
mov ecx, 1
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
cmp rdi, rax
je 0x7ff8c39dd444
mov rcx, rdi
call qword [sym.imp.ucrtbase.dll_fclose]
mov qword [rbx + 0x3298], r15
mov rcx, qword [rbx + 0x32a8]
test rcx, rcx
je 0x7ff8c39dd47d
mov rax, qword [0x7ff8c3abb7a0]
mov qword [rbx + 0x32a0], r15
test rax, rax
je 0x7ff8c39dd470
dec dword [rax + 0x3b0]
call qword [sym.imp.ucrtbase.dll_free]
mov qword [rbx + 0x32a8], r15
mov byte [rbx], r15b
add rsp, 0x20
pop r15
pop rdi
pop rbx
ret