Function at 0x14000d080
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov dword [rsp + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov rsi, qword [rcx + 0x40]
movzx r15d, word [rcx + 0x20]
xor r12d, r12d
mov eax, edx
mov rbx, rcx
lea rdi, [0x140046e30]
mov ecx, 2
mov edx, r12d
mov ebp, r12d
repe cmpsb byte [rsi], byte [rdi]
mov ecx, dword [0x140053f3c]
mov dword [rsp + 0x60], r12d
sete dl
test eax, eax
mov eax, 0xffffffff
jne 0x14000d145
mov dword [0x1400579a0], r12d
cmp qword [rbx + 0x10], rax
ja 0x14000d0fc
cmp qword [rbx + 0x18], rax
ja 0x14000d0fc
cmp ecx, 1
je 0x14000d0fc
test ecx, ecx
je 0x14000d232
test edx, edx
je 0x14000d232
test ecx, ecx
jne 0x14000d121
mov rdx, qword [rbx + 0x70]
lea rcx, str.Entry_too_big:
call fcn.140001860
lea rdx, str.Large_entry_support_disabled_with__fz__but_needed
mov ecx, 6
call fcn.140001310
mov dword [0x1400579a0], 1
cmp word [rbx + 2], 0x2d
jae 0x14000d13b
mov eax, 0x2d
mov word [rbx + 2], ax
mov edi, 1
jmp 0x14000d21e
mov edi, dword [0x1400579a0]
mov dword [0x1400579a0], r12d
cmp qword [rbx + 0x10], rax
ja 0x14000d16b
cmp qword [rbx + 0x18], rax
ja 0x14000d16b
cmp ecx, 1
je 0x14000d16b
test ecx, ecx
je 0x14000d1a2
test edx, edx
je 0x14000d175
mov dword [0x1400579a0], 1
test ecx, ecx
jne 0x14000d1a2
cmp dword [0x1400579a0], ebp
je 0x14000d1a2
mov rdx, qword [rbx + 0x70]
lea rcx, str.Entry_too_big:
call fcn.140001860
lea rdx, str.Large_entry_support_disabled_with__fz__but_entry_needs
mov ecx, 6
call fcn.140001310
test edi, edi
jne 0x14000d1dd
cmp dword [0x1400579a0], 1
jne 0x14000d1dd
mov rdx, qword [rbx + 0x70]
lea rcx, str.Entry_too_big:
call fcn.140001860
cmp dword [0x140053f3c], ebp
lea ecx, [rdi + 6]
lea rdx, str.Compressed_stored_entry_unexpectedly_large___do_not_use__fz_
je 0x14000d1d8
lea rdx, str.Poor_compression_resulted_in_unexpectedly_large_entry___try__fz
call fcn.140001310
cmp dword [0x1400579a0], ebp
je 0x14000d201
mov dword [0x1400579a4], 1
cmp word [rbx + 2], 0x2d
jae 0x14000d208
mov eax, 0x2d
mov word [rbx + 2], ax
jmp 0x14000d208
mov dword [0x1400579a0], r12d
test edi, edi
je 0x14000d21e
cmp dword [0x1400579a0], 1
je 0x14000d21e
mov eax, 0x14
mov word [rbx + 2], ax
cmp dword [0x1400579a0], ebp
jne 0x14000d22a
test edi, edi
je 0x14000d232
mov rcx, rbx
call fcn.14000a350
cmp qword [rbx + 0x78], rbp
je 0x14000d2a7
cmp dword [0x1400579d0], ebp
mov eax, 0x800
jne 0x14000d24d
cmp dword [0x1400578e8], ebp
je 0x14000d255
or word [rbx + 0x2e], ax
or word [rbx + 4], ax
test word [rbx + 4], ax
je 0x14000d29d
mov rdx, qword [0x1400a3de8]
or rcx, 0xffffffffffffffff
movzx eax, r15w
sub rdx, rax
xor eax, eax
mov ebp, 1
mov qword [0x1400a3de8], rdx
mov rdi, qword [rbx + 0x78]
mov dword [rsp + 0x60], ebp
repne scasb al, byte [rdi]
not rcx
dec rcx
movzx eax, cx
mov r15, rcx
add rdx, rax
mov qword [0x1400a3de8], rdx
jmp 0x14000d2b4
mov rcx, rbx
call fcn.14000a5c0
jmp 0x14000d2b4
mov eax, 0xf7ff
and word [rbx + 4], ax
and word [rbx + 0x2e], ax
mov r13, qword [rbx + 0x60]
test ebp, ebp
je 0x14000d2c0
mov r13, qword [rbx + 0x78]
mov rsi, qword [0x1400579c8]
test rsi, rsi
je 0x14000d363
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rsi
repne scasb al, byte [rdi]
movzx r12d, r15w
not rcx
lea r15d, [r12 + rcx - 1]
lea eax, [r15 + 1]
movsxd rcx, eax
call fcn.140022488
mov rbp, rax
test rax, rax
jne 0x14000d311
lea rdx, str.putlocal_path_prefix
lea ecx, [rax + 4]
call fcn.140001310
mov rsi, qword [0x1400579c8]
mov rcx, rbp
nop word [rax + rax]
movzx eax, byte [rsi]
inc rcx
inc rsi
mov byte [rcx - 1], al
test al, al
jne 0x14000d320
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rbp
repne scasb al, byte [rdi]
xor ecx, ecx
nop dword [rax]
movzx eax, byte [r13 + rcx]
inc rcx
mov byte [rdi + rcx - 2], al
test al, al
jne 0x14000d340
mov eax, r15d
mov r13, rbp
sub eax, r12d
cdqe
add qword [0x1400a3de8], rax
mov r12d, 0x400
mov ecx, r12d
mov r14d, r12d
call fcn.140022488
mov rsi, rax
test rax, rax
jne 0x14000d38b
lea rdx, str.append_ulong_to_mem
lea ecx, [rax + 4]
call fcn.140001310
mov word [rsi], 0x4b50
mov word [rsi + 2], 0x403
movzx ecx, word [rbx + 2]
mov byte [rsi + 4], cl
shr cx, 8
mov byte [rsi + 5], cl
movzx eax, word [rbx + 0x2e]
mov byte [rsi + 6], al
shr ax, 8
mov byte [rsi + 7], al
movzx eax, word [rbx + 6]
mov byte [rsi + 8], al
shr ax, 8
mov byte [rsi + 9], al
mov ecx, dword [rbx + 8]
mov byte [rsi + 0xa], cl
movzx eax, cx
shr ecx, 0x10
shr ax, 8
mov byte [rsi + 0xb], al
mov byte [rsi + 0xc], cl
shr cx, 8
mov byte [rsi + 0xd], cl
mov ecx, dword [rbx + 0xc]
mov byte [rsi + 0xe], cl
movzx eax, cx
shr ecx, 0x10
shr ax, 8
mov byte [rsi + 0xf], al
mov byte [rsi + 0x10], cl
shr cx, 8
mov byte [rsi + 0x11], cl
cmp dword [0x1400579a0], 0
je 0x14000d41d
mov word [rsi + 0x12], 0xffff
mov word [rsi + 0x14], 0xffff
mov word [rsi + 0x16], 0xffff
mov word [rsi + 0x18], 0xffff
jmp 0x14000d457
mov ecx, dword [rbx + 0x10]
mov byte [rsi + 0x12], cl
movzx eax, cx
shr ecx, 0x10
shr ax, 8
mov byte [rsi + 0x13], al
mov byte [rsi + 0x14], cl
shr cx, 8
mov byte [rsi + 0x15], cl
mov ecx, dword [rbx + 0x18]
mov byte [rsi + 0x16], cl
movzx eax, cx
shr ecx, 0x10
shr ax, 8
mov byte [rsi + 0x17], al
mov byte [rsi + 0x18], cl
shr cx, 8
mov byte [rsi + 0x19], cl
mov byte [rsi + 0x1a], r15b
movzx eax, r15w
mov ebp, 0x1e
shr ax, 8
mov byte [rsi + 0x1b], al
movzx eax, word [rbx + 0x22]
mov byte [rsi + 0x1c], al
shr ax, 8
cmp dword [rsp + 0x60], 0
mov byte [rsi + 0x1d], al
je 0x14000d505
test r13, r13
je 0x14000d640
movzx r15d, r15w
mov eax, r12d
cmp r15d, r12d
lea rbp, [r15 + 0x1e]
mov edi, r15d
cmova eax, r15d
cmp rbp, 0x3ff
jbe 0x14000d4d3
mov r14d, eax
mov rcx, rsi
add r14, r12
mov rdx, r14
call fcn.140026348
mov rsi, rax
test rax, rax
jne 0x14000d4d3
lea rdx, str.append_string_to_mem
lea ecx, [rax + 4]
call fcn.140001310
test r15d, r15d
je 0x14000d640
mov rdx, r13
lea rcx, [rsi + 0x1e]
sub rdx, rsi
nop word [rax + rax]
movzx eax, byte [rdx + rcx - 0x1e]
inc rcx
dec rdi
mov byte [rcx - 1], al
jne 0x14000d4f0
jmp 0x14000d640
mov eax, 0xff00
test word [rbx], ax
jne 0x14000d5cf
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r13
repne scasb al, byte [rdi]
not rcx
call fcn.140022488
mov rdi, rax
mov qword [rsp + 0x60], rax
test rax, rax
jne 0x14000d542
lea rdx, str.putlocal_oem
lea ecx, [rax + 4]
call fcn.140001310
mov rdx, rdi
mov rcx, r13
call qword [sym.imp.USER32.dll_CharToOemA]
test rdi, rdi
je 0x14000d5c5
movzx r15d, r15w
mov eax, r12d
cmp r15d, r12d
lea rbp, [r15 + 0x1e]
mov edi, r15d
cmova eax, r15d
cmp rbp, 0x3ff
jbe 0x14000d599
mov r14d, eax
mov rcx, rsi
add r14, r12
mov rdx, r14
call fcn.140026348
mov rsi, rax
test rax, rax
jne 0x14000d599
lea rdx, str.append_string_to_mem
lea ecx, [rax + 4]
call fcn.140001310
test r15d, r15d
je 0x14000d5c0
mov rdx, qword [rsp + 0x60]
lea rcx, [rsi + 0x1e]
sub rdx, rsi
nop word [rax + rax]
movzx eax, byte [rdx + rcx - 0x1e]
inc rcx
dec rdi
mov byte [rcx - 1], al
jne 0x14000d5b0
mov rdi, qword [rsp + 0x60]
mov rcx, rdi
call fcn.140021628
jmp 0x14000d640
test r13, r13
je 0x14000d640
movzx r15d, r15w
mov eax, r12d
cmp r15d, r12d
lea rbp, [r15 + 0x1e]
mov edi, r15d
cmova eax, r15d
cmp rbp, 0x3ff
jbe 0x14000d61a
mov r14d, eax
mov rcx, rsi
add r14, r12
mov rdx, r14
call fcn.140026348
mov rsi, rax
test rax, rax
jne 0x14000d61a
lea rdx, str.append_string_to_mem
lea ecx, [rax + 4]
call fcn.140001310
test r15d, r15d
je 0x14000d640
mov rcx, r13
lea rdx, [rsi + 0x1e]
sub rcx, rsi
nop dword [rax]
movzx eax, byte [rdx + rcx - 0x1e]
inc rdx
dec rdi
mov byte [rdx - 1], al
jne 0x14000d630
cmp qword [0x1400579c8], 0
je 0x14000d652
mov rcx, r13
call fcn.140021628
movzx eax, word [rbx + 0x22]
test ax, ax
je 0x14000d6e2
mov rdi, qword [rbx + 0x48]
test rdi, rdi
je 0x14000d6e2
movzx ebx, ax
cmp ebx, r12d
cmova r12d, ebx
test rsi, rsi
jne 0x14000d681
mov ecx, r12d
call fcn.140022488
jmp 0x14000d69d
lea rcx, [rbp + rbx]
lea rax, [r14 - 1]
cmp rcx, rax
jbe 0x14000d6b6
mov edx, r12d
mov rcx, rsi
add rdx, r14
call fcn.140026348
mov rsi, rax
test rax, rax
jne 0x14000d6b6
lea rdx, str.append_string_to_mem
mov ecx, 4
call fcn.140001310
test ebx, ebx
je 0x14000d6df
sub rdi, rbp
lea rcx, [rsi + rbp]
mov rdx, rbx
sub rdi, rsi
nop word [rax + rax]
movzx eax, byte [rdi + rcx]
inc rcx
dec rdx
mov byte [rcx - 1], al
jne 0x14000d6d0
add rbp, rbx
cmp dword [rsp + 0x68], 1
mov r8, rbp
mov rcx, rsi
jne 0x14000d788
mov edx, 1
cmp dword [0x140057a98], edx
jne 0x14000d768
mov r9, qword [0x140057a80]
call fcn.140023e4c
cmp rax, rbp
jne 0x14000d779
mov ecx, dword [0x140057a48]
cmp ecx, dword [0x140057a4c]
je 0x14000d749
mov r8, qword [0x140057a78]
mov rdx, qword [0x140057a80]
call fcn.140014340
mov rcx, qword [0x140057a78]
mov qword [0x140057a80], 0
call fcn.140021628
mov rcx, rsi
call fcn.140021628
xor eax, eax
mov rbx, qword [rsp + 0x70]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r9, qword [0x140057a08]
call fcn.140023e4c
cmp rax, rbp
je 0x14000d749
mov rcx, rsi
call fcn.140021628
mov eax, 0xa
jmp 0x14000d753
mov r9d, 1
mov edx, r9d
call fcn.1400143b0
jmp 0x14000d774