Function at 0x140005980
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xc0
mov rax, qword [0x14008b040]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov rdi, rdx
mov qword [rbp - 0x19], rdx
mov r13, rcx
xor r15d, r15d
mov dword [rbp - 0x69], r15d
lea rbx, [rcx + 8]
mov qword [rbp - 0x59], rbx
mov rcx, rbx
call fcn.14001e414
test eax, eax
jne 0x140005eb9
mov eax, dword [rbx + 0x4c]
cmp eax, 0x7fffffff
je 0x140005ec4
cmp rdi, 0xffffffffffffffff
jne 0x1400059fe
xor edx, edx
mov rcx, r13
call fcn.140005ef0
cmp rax, rdi
jne 0x1400059fe
xor dil, dil
jmp 0x140005e7b
mov r9d, 2
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
call fcn.140002aa0
mov rcx, rax
test rax, rax
je 0x140005ed4
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x29], rax
mov r14, qword [r13 + 0x58]
mov r12, qword [r13 + 0x60]
mov rsi, 0xffffffffffffffff
cmp r14, r12
je 0x140005d99
lea rdi, [0x14007c8f8]
mov qword [rbp - 0x21], 0
mov rcx, qword [r14]
sub rcx, 0x18
call fcn.140001bb0
add rax, 0x18
mov qword [rbp - 0x21], rax
mov r10, qword [r13 + 0x70]
mov r8, qword [r10 + 8]
mov rbx, r10
cmp byte [r8 + 0x19], 0
jne 0x140005ad6
test rax, rax
je 0x140005eae
nop word [rax + rax]
mov rcx, qword [r8 + 0x20]
mov r9, rax
sub r9, rcx
nop word [rax + rax]
movzx edx, word [rcx]
cmp dx, word [rcx + r9]
jne 0x140005ab7
add rcx, 2
test dx, dx
jne 0x140005aa0
xor ecx, ecx
jmp 0x140005abc
sbb ecx, ecx
or ecx, 1
shr ecx, 0x1f
test cl, cl
je 0x140005ac9
mov r8, qword [r8 + 0x10]
jmp 0x140005acf
mov rbx, r8
mov r8, qword [r8]
cmp byte [r8 + 0x19], 0
je 0x140005a90
cmp byte [rbx + 0x19], 0
jne 0x140005b12
mov rdx, qword [rbx + 0x20]
test rdx, rdx
je 0x140005eae
sub rdx, rax
nop dword [rax]
movzx ecx, word [rax]
cmp cx, word [rax + rdx]
jne 0x140005b06
add rax, 2
test cx, cx
jne 0x140005af0
xor eax, eax
jmp 0x140005b0b
sbb eax, eax
or eax, 1
shr eax, 0x1f
test al, al
je 0x140005b15
mov rbx, r10
call fcn.140002aa0
test rax, rax
je 0x140005eae
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rbp - 0x31], rax
lea rcx, [rbp - 0x31]
cmp rdi, 0x10000
jae 0x140005b4b
movzx edx, di
call fcn.140001a30
jmp 0x140005b57
xor r8d, r8d
mov rdx, rdi
call fcn.140001ca0
nop
cmp rbx, qword [r13 + 0x70]
je 0x140005c45
lea r8, [rbp - 0x21]
lea rdx, [rbp - 0x41]
lea rcx, [r13 + 0x70]
call fcn.14000e8a0
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x28]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp - 0x31]
lea rdi, [rbx - 0x18]
cmp rcx, rdi
je 0x140005bc9
cmp dword [rdi + 0x10], 0
jl 0x140005c32
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140005c32
call fcn.140001bb0
mov rbx, rax
mov ecx, esi
lock xadd dword [rdi + 0x10], ecx
sub ecx, 1
jg 0x140005bc1
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rVariantCopy + 8]
add rbx, 0x18
mov qword [rbp - 0x31], rbx
lea rdi, [0x14007c8f8]
mov rax, qword [rbp - 0x29]
cmp dword [rax - 0x10], 0
je 0x140005bf1
mov r8d, 1
lea rdx, [0x14007c310]
lea rcx, [rbp - 0x29]
call fcn.14000e0d0
nop
mov qword [rbp - 0x61], 0
call fcn.140002aa0
test rax, rax
je 0x140005ee5
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rbp - 0x61], rax
lea rax, [rbx - 1]
cmp rax, 0xfffe
ja 0x140005c4b
movzx edx, bx
lea rcx, [rbp - 0x61]
call fcn.140001a30
jmp 0x140005c78
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x31]
call fcn.140001ca0
mov rbx, qword [rbp - 0x31]
jmp 0x140005bc9
mov rbx, qword [rbp - 0x31]
jmp 0x140005bd0
test rbx, rbx
jne 0x140005c55
xor r8d, r8d
jmp 0x140005c6b
mov r8, rsi
nop dword [rax + rax]
inc r8
cmp word [rbx + r8*2], 0
jne 0x140005c60
mov rdx, rbx
lea rcx, [rbp - 0x61]
call fcn.140001ca0
nop
or dword [rbp - 0x69], 1
lea r8, [0x14007c324]
lea rdx, [0x14007c32c]
lea rcx, [rbp - 0x61]
call fcn.14000ce60
lea r8, [0x14007c330]
lea rdx, [0x14007c338]
lea rcx, [rbp - 0x61]
call fcn.14000ce60
lea r8, [0x14007c33c]
lea rdx, [0x14007c310]
lea rcx, [rbp - 0x61]
call fcn.14000ce60
lea r8, [rbp - 0x61]
lea rcx, [rbp - 0x49]
call fcn.14000cac0
nop
mov rdx, rax
lea rcx, [rbp - 0x51]
call fcn.14000cc10
nop
mov rdx, qword [rax]
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x29]
call fcn.14000e0d0
nop
mov rdx, qword [rbp - 0x51]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005d0b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x49]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005d28
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
and dword [rbp - 0x69], 0xfffffffe
mov rdx, qword [rbp - 0x61]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005d4a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x31]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005d68
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x21]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005d85
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
add r14, 8
cmp r14, r12
jne 0x140005a50
mov rdi, qword [rbp - 0x19]
xor r15d, r15d
lea r8, [rbp - 0x29]
lea rdx, [rbp - 0x11]
call fcn.1400048f0
lea rdx, [rbp - 0x11]
cmp qword [rbp + 7], 0xf
cmova rdx, qword [rbp - 0x11]
mov qword [rsp + 0x20], r15
lea r9, [rbp + 0xf]
mov r8d, dword [rbp - 1]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov qword [rsp + 0x20], r15
lea r9, [rbp - 0x19]
mov r8d, 2
lea rdx, [0x14007c34c]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rbx, qword [r13 + 0x70]
mov r8, qword [rbx + 8]
lea rdx, [r13 + 0x70]
lea rcx, [r13 + 0x70]
call fcn.14000ea60
mov qword [rbx + 8], rbx
mov qword [rbx], rbx
mov qword [rbx + 0x10], rbx
mov qword [r13 + 0x78], r15
mov dil, 1
mov rdx, qword [rbp + 7]
cmp rdx, 0xf
jbe 0x140005e4b
inc rdx
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140005e46
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140005edf
call fcn.140045b20
movdqa xmm0, xmmword [0x14007ea50]
movdqu xmmword [rbp - 1], xmm0
mov byte [rbp - 0x11], 0
mov rdx, qword [rbp - 0x29]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x140005e77
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rbx, qword [rbp - 0x59]
mov rcx, rbx
call fcn.14001e41c
movzx eax, dil
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.1400454d0
mov rbx, qword [rsp + 0x110]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80004005
call fcn.140002830
nop
mov ecx, 5
call fcn.14001e318
int3
dec eax
mov dword [rbx + 0x4c], eax
mov ecx, 6
call fcn.14001e318
nop
mov ecx, 0x80004005
call fcn.140002830
nop
call fcn.14004cd2c
nop
mov ecx, 0x80004005
call fcn.140002830
int3