Function at 0x18002e750
Capabilities:
Write file on windows

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1fc0]
mov eax, 0x20c0
call fcn.1800623b0
sub rsp, rax
mov qword [rbp - 0x78], 0xfffffffffffffffe
mov qword [rsp + 0x2108], rbx
mov rax, qword [0x1800a8088]
xor rax, rsp
mov qword [rbp + 0x1fb0], rax
mov rsi, r9
mov eax, r8d
mov dword [rsp + 0x48], eax
mov qword [rbp - 0x80], rdx
mov r10, rcx
mov qword [rsp + 0x38], rcx
mov rdi, qword [rbp + 0x2020]
mov qword [rsp + 0x50], rdi
xor ebx, ebx
mov qword [rbp - 0x60], rbx
mov qword [rbp - 0x58], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rbp - 0x70], bl
mov edx, r8d
mov dword [rsp + 0x30], eax
mov r15, qword [rsp + 0x68]
mov r12, qword [rsp + 0x68]
mov r14d, dword [rsp + 0x48]
mov r13, qword [rsp + 0x40]
lea r8, [0x180000000]
add eax, 0xfffffff9
cmp edx, eax
jbe 0x18002e94a
lea eax, [rdx - 0x11]
cmp eax, 0xf
ja case.0x18002e809.19
mov ecx, dword [r8 + rax*4 + 0x2ed78]
add rcx, r8
jmp rcx
add r13, qword [rbp - 0x60]
dec edx
mov dword [rsp + 0x30], edx
mov rdi, qword [rsp + 0x50]
mov eax, dword [rsp + 0x48]
jmp 0x18002e7e0
mov edi, 0xeb
jmp 0x18002e922
mov edx, 0x106
mov rcx, rsi
call fcn.18002d700
xor r8d, r8d
mov rcx, rsi
test eax, eax
js 0x18002ebf3
mov r14d, ebx
mov qword [rsp + 0x40], 0x2000
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
mov edx, 0xa6
call fcn.18003a5d0
mov r12, rax
test rax, rax
jle 0x18002e8b9
mov r9, rdi
mov r8, r12
mov edx, 1
lea rcx, [rbp - 0x50]
call fcn.18006bd00
cmp rax, r12
jne 0x18002e8d6
mov qword [rsp + 0x40], 0x2000
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
xor r8d, r8d
mov edx, 0xa6
mov rcx, rsi
call fcn.18003a5d0
mov r12, rax
test rax, rax
jg 0x18002e871
mov r10, qword [rsp + 0x38]
mov edx, dword [rsp + 0x30]
dec edx
mov dword [rsp + 0x30], edx
mov rdi, qword [rsp + 0x50]
mov eax, dword [rsp + 0x48]
jmp 0x18002e7e0
call fcn.18006be3c
mov ecx, dword [rax]
mov dword [rsp + 0x60], ecx
mov dword [rsp + 0x58], 6
mov rcx, qword [rsp + 0x38]
add rcx, 0x18
mov r9d, 0x112
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x60]
call fcn.18002d330
mov r14d, 0xffffffff
mov edi, 0xeb
mov dword [rsp + 0x30], DispInvoke
add edi, 0x7f
mov r10, qword [rsp + 0x38]
cmp edi, 0x268
jae 0x18002ea05
mov eax, edi
sub eax, 0xeb
je 0x18002e90d
sub eax, 0x7f
je 0x18002e9b7
cmp eax, 0x7f
jne 0x18002e91a
mov dword [rsp + 0x38], r14d
mov rbx, qword [rsp + 0x38]
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x18002e98a
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002e985
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002ed70
call fcn.1800618f4
mov rax, rbx
mov rcx, qword [rbp + 0x1fb0]
xor rcx, rsp
call fcn.1800618d0
mov rbx, qword [rsp + 0x2108]
add rsp, 0x20c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
test r12, r12
jns 0x18002e9e8
test r14d, r14d
jne 0x18002e9e2
lea rax, [r10 + 0x18]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xa7
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.180021450
mov r14d, 0xffffffff
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor edx, edx
mov r8d, 0xf3
mov rcx, rsi
call fcn.180004350
jmp 0x18002e91a
mov edx, dword [rsp + 0x30]
mov r15, r10
mov qword [rsp + 0x68], rsi
dec edx
mov dword [rsp + 0x30], edx
mov rdi, qword [rsp + 0x50]
mov eax, dword [rsp + 0x48]
jmp 0x18002e7e0
mov r8, qword [r10 + 0x10]
mov rax, r10
cmp qword [r10 + 0x18], 0x10
jb 0x18002ea36
mov rax, qword [r10]
sub r8, r13
lea rdx, [rax + r13]
lea rcx, [r10 + 0x20]
call fcn.180055dc0
mov r10, qword [rsp + 0x38]
mov edx, dword [rsp + 0x30]
dec edx
mov dword [rsp + 0x30], edx
mov rdi, qword [rsp + 0x50]
mov eax, dword [rsp + 0x48]
jmp 0x18002e7e0
mov ecx, 0x20
call fcn.180061b98
mov qword [rsp + 0x78], rax
lea rdx, [0x1800a8bf0]
mov rcx, rax
call fcn.180055fa0
nop
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x70], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x60], xmm1
lea r9, [0x1800a8bf0]
cmp qword [reloc.OLEAUT32.dll_SafeArrayDestroy], 0x10
cmovae r9, qword [0x1800a8bf0]
mov r13, qword [0x1800a8c00]
movq rcx, xmm1
mov qword [rbp - 0x60], rcx
psrldq xmm1, 8
movq rdx, xmm1
mov qword [rbp - 0x58], rdx
mov rax, rdx
sub rax, rcx
cmp r13, rax
ja 0x18002eafe
lea rax, [rcx + r13]
mov qword [rbp - 0x60], rax
lea rdi, [rbp - 0x70]
cmp rdx, 0x10
cmovae rdi, qword [rbp - 0x70]
add rdi, rcx
mov r8, r13
mov rdx, r9
mov rcx, rdi
call fcn.180063330
mov byte [rdi + r13], 0
jmp 0x18002eb12
mov qword [rsp + 0x20], r13
xor r8d, r8d
mov rdx, r13
lea rcx, [rbp - 0x70]
call fcn.180057550
lea rdi, [rbp - 0x70]
cmp qword [rbp - 0x58], 0x10
cmovae rdi, qword [rbp - 0x70]
mov r10, qword [rsp + 0x38]
mov r9, r10
mov qword [rsp + 0x70], r10
cmp qword [r10 + 0x18], 0x10
jb 0x18002eb3c
mov r9, qword [r10]
mov qword [rsp + 0x70], r9
mov rax, qword [r10 + 0x10]
mov rcx, qword [rbp - 0x60]
cmp rcx, rax
ja 0x18002ebca
test rcx, rcx
jne 0x18002eb6d
mov r13, rbx
mov edx, dword [rsp + 0x30]
dec edx
mov dword [rsp + 0x30], edx
mov rdi, qword [rsp + 0x50]
mov eax, dword [rsp + 0x48]
jmp 0x18002e7e0
sub rax, qword [rbp - 0x60]
lea r13, [rax + r9]
lea r8, [r13 + 1]
sub r8, r9
mov rcx, r9
movsx edx, byte [rdi]
call fcn.1800638c0
test rax, rax
mov qword [rsp + 0x40], rax
je 0x18002e94a
mov r8, qword [rbp - 0x60]
mov rdx, rdi
mov rcx, rax
call fcn.1800637e0
test eax, eax
je 0x18002ebb9
mov rcx, qword [rsp + 0x40]
inc rcx
lea r8, [r13 + 1]
sub r8, rcx
jmp 0x18002eb7f
mov r13, qword [rsp + 0x40]
sub r13, qword [rsp + 0x70]
mov r10, qword [rsp + 0x38]
jmp 0x18002ebd1
mov r13, 0xffffffffffffffff
cmp r13, 0xffffffffffffffff
je 0x18002e94a
mov edx, dword [rsp + 0x30]
dec edx
mov dword [rsp + 0x30], edx
mov rdi, qword [rsp + 0x50]
mov eax, dword [rsp + 0x48]
jmp 0x18002e7e0
mov rax, qword [rsp + 0x38]
add rax, 0x18
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xa7
xor r9d, r9d
xor edx, edx
call fcn.180021450
mov dword [rsp + 0x38], 0xffffffff
jmp 0x18002e94a
mov rax, qword [rbp - 0x80]
movsxd rax, dword [rax]
cmp eax, 5
ja case.default.0x18002ec3b
mov ecx, dword [r8 + rax*4 + 0x2edb8]
add rcx, r8
jmp rcx
mov rax, qword [r15 + 8]
mov qword [r15], rax
jmp case.0x18002ec3b.2
mov esi, 0x7f
mov rdi, qword [rsp + 0x78]
mov r14, qword [rsp + 0x68]
mov r12, qword [rsp + 0x50]
nop dword [rax]
cmp esi, 0x7f
je 0x18002ec75
cmp esi, 0x1f41
jne 0x18002ec9d
mov rbx, rdi
jmp case.0x18002ec3b.2
mov rdx, qword [r15]
mov rax, qword [r15 + 0x10]
sub rax, rdx
mov rdi, qword [r12]
cmp rax, rdi
cmovbe rdi, rax
test rdi, rdi
je 0x18002ec9d
mov r8, rdi
mov rcx, r14
call fcn.180063330
add qword [r15], rdi
add esi, 0x1ec2
cmp esi, 0x3d84
ja case.0x18002ec3b.2
jmp 0x18002ec60
mov edi, VarUI2FromUI1
mov r14, qword [rsp + 0x78]
mov r12, qword [rsp + 0x50]
cmp edi, 0xfc
je 0x18002ed05
cmp edi, 0x1a8
je 0x18002ecee
cmp edi, 0x254
jne 0x18002ed1f
mov word [r14 + 0x36], bx
mov qword [r14], 0xdc
mov ebx, 0x40
jmp case.0x18002ec3b.2
mov rax, qword [r15 + 0x10]
sub rax, qword [r15 + 8]
mov qword [r14 + 0x18], rax
mov qword [r14 + 0x20], rax
mov word [r14 + 0x34], bx
jmp 0x18002ed1f
cmp qword [r12], 0x40
jb case.default.0x18002ec3b
mov r14, rsi
mov rcx, rsi
call fcn.18004e900
mov rax, qword [r15 + 0x18]
mov qword [rsi + 0x28], rax
add edi, 0xac
cmp edi, 0x300
jb 0x18002ecc0
mov rdi, r12
cmp qword [rdi], 8
jae 0x18002ed42
mov rbx, 0xffffffffffffffff
jmp case.0x18002ec3b.2
mov qword [rsi], rbx
mov ebx, 8
jmp case.0x18002ec3b.2
cmp dword [r15 + 0x20], 0
je 0x18002ed63
mov rcx, qword [r15 + 8]
call fcn.18006c3d8
mov qword [r15 + 8], rbx
mov rcx, r15
call fcn.18006c3d8
jmp case.0x18002ec3b.2
call fcn.18006cf68
int3