Function at 0x14002f053
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
mov rdi, rdx
mov rsi, rcx
movabs rbp, 0x8000000000000000
lea r15, [rsp + 0x40]
mov rcx, r15
call fcn.14003042b
mov r13, qword [r15]
mov r14, qword [r15 + 8]
cmp r13, rbp
jne 0x14002f90c
mov rbx, qword [r14 + 0x18]
lea rax, [0x140070b81]
lea r14, [rsp + 0x40]
mov qword [r14], rax
mov rcx, qword [r14]
movabs rax, 0x375807075c431d98
mov qword [r14], rax
mov rdx, qword [r14]
call fcn.1400310c3
movabs rdx, 0x7ad8ab50c3de00b4
xor rdx, qword [rax]
lea rcx, [rsp + 0x20]
mov qword [rcx], rdx
mov edx, 8
call fcn.14005c9d3
mov qword [r14], 0
mov r9, qword [rbx]
mov rcx, rbx
mov rdx, rax
mov r8, r14
call qword [r9 + 0x160]
test eax, eax
js 0x14002f913
mov r15, qword [rsp + 0x40]
test r15, r15
je 0x14002f913
lea rax, [0x14006d6b3]
lea rdx, [rsp + 0xb0]
mov qword [rdx], rax
mov rcx, qword [rdx]
movabs rax, 0xea394bd59b516c25
mov qword [rdx], rax
mov rdx, qword [rdx]
call fcn.140031053
movabs rcx, 0x46144d6b5c8576c5
xor rcx, qword [rax]
mov edx, 0x3893fc48
xor edx, dword [rax + 8]
movzx eax, word [rax + 0xc]
not rcx
mov r8d, eax
not r8d
or r8d, 0xffffd89a
or eax, 0x2765
and eax, r8d
lea rbx, [rsp + 0x20]
mov qword [rbx], rcx
mov dword [rbx + 8], edx
mov word [rbx + 0xc], ax
lea r14, [rsp + 0x40]
mov r9d, 0xe
mov rcx, r14
mov rdx, r15
mov r8, rbx
call fcn.1400314ce
mov r13, qword [r14]
mov r14, qword [r14 + 8]
cmp r13, rbp
jne 0x14002f90c
lea rax, [0x140073ec3]
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0x20]
movabs rax, 0x131735c308456e4
mov qword [rsp + 0x20], rax
mov rdx, qword [rsp + 0x20]
call fcn.1400312d3
mov ecx, 0xb652c680
xor ecx, dword [rax]
movzx edx, byte [rax + 6]
movzx eax, word [rax + 4]
mov r8d, eax
and r8d, 0x9e1
add r8d, r8d
neg r8d
add eax, r8d
add eax, 0xffff89e1
xor dl, 0xd4
movzx edx, dl
shl rdx, 0x30
movzx eax, ax
shl rax, 0x20
or rax, rdx
movabs rdx, 0xff885558602d3ec0
xor rdx, rdx
xor rdx, rax
lea r12, [rsp + 0xb0]
mov dword [r12], ecx
mov rax, rdx
shr rax, 0x30
mov byte [r12 + 6], al
shr rdx, 0x20
mov word [r12 + 4], dx
lea rbx, [rsp + 0x40]
mov r9d, 7
mov rcx, rbx
mov rdx, r14
mov r8, r12
call fcn.140031571
mov r13, qword [rbx]
mov rax, qword [rbx + 8]
cmp r13, rbp
jne 0x14002f921
mov qword [rsp + 0x70], rax
lea rax, [0x14006eafa]
mov qword [rsp + 0xb0], rax
mov rcx, qword [rsp + 0xb0]
movabs rax, 0x6e45f4c7d7245cdf
mov qword [rsp + 0xb0], rax
mov rdx, qword [rsp + 0xb0]
call fcn.140030f03
movabs rcx, 0xdfec47c9e521d6f6
xor rcx, qword [rax]
not rcx
mov al, byte [rax + 8]
mov edx, eax
and dl, 0x3c
add dl, dl
sub al, dl
add al, 0x3c
lea rbx, [rsp + 0x20]
mov qword [rbx], rcx
mov byte [rbx + 8], al
lea r12, [rsp + 0x40]
mov r9d, 9
mov rcx, r12
mov rdx, r14
mov r8, rbx
call fcn.140031571
mov r13, qword [r12]
mov rax, qword [r12 + 8]
cmp r13, rbp
jne 0x14002f921
mov qword [rsp + 0x78], rax
lea rax, [0x14007194f]
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0x20]
movabs rax, 0x1a4aec0d422d6a5c
mov qword [rsp + 0x20], rax
mov rdx, qword [rsp + 0x20]
call fcn.140030e9d
mov ecx, dword [rax]
mov edx, ecx
not edx
or edx, 0x277781af
or ecx, 0xd8887e50
and ecx, edx
movzx eax, word [rax + 4]
xor eax, 0xabd1
lea r8, [rsp + 0xb0]
mov word [r8 + 4], ax
mov dword [r8], ecx
lea r12, [rsp + 0x40]
mov r9d, 6
mov rcx, r12
mov rdx, r14
call fcn.140031571
mov r13, qword [r12]
mov rax, qword [r12 + 8]
movabs rcx, 0x8000000000000000
cmp r13, rcx
jne 0x14002f921
mov qword [rsp + 0xa8], rax
lea rax, [0x14006c1e6]
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0x20]
movabs rax, 0x59bcefc4b7dddcd5
mov qword [rsp + 0x20], rax
mov rdx, qword [rsp + 0x20]
call fcn.1400311c1
mov rax, qword [rax]
mov rcx, rax
not rcx
movabs rdx, 0xe424fd142bacf6ce
or rax, rdx
not rdx
or rdx, rcx
and rdx, rax
not rdx
lea r8, [rsp + 0xb0]
mov qword [r8], rdx
lea r12, [rsp + 0x40]
mov r9d, 8
mov rcx, r12
mov rdx, r14
call fcn.140031571
mov r13, qword [r12]
mov r14, qword [r12 + 8]
movabs rbp, 0x8000000000000000
cmp r13, rbp
jne 0x14002f90c
mov qword [rsp + 0xa0], r14
lea r8, [rsp + 0x80]
mov qword [r8], 0
lea r12, [rsp + 0x40]
mov rcx, r12
mov rdx, qword [rsp + 0x70]
call fcn.14003153a
cmp qword [r12], 0
mov r13, qword [r12 + 8]
mov r14, qword [r12 + 0x10]
mov r12, qword [r12 + 0x18]
jne 0x14002f486
lea rbx, [rsp + 0x40]
lea r8, [rsp + 0x80]
mov rcx, rbx
mov rdx, qword [rsp + 0x78]
call fcn.14003153a
cmp qword [rbx], 0
mov rax, qword [rbx + 8]
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
je 0x14002f963
mov r12, rdx
mov r14, rcx
mov r13, rax
cmp r13, rbp
jne 0x14002f929
lea rbx, [rsp + 0x40]
mov rcx, rbx
mov rdx, rdi
call fcn.14003042b
mov rcx, qword [rbx]
mov rax, qword [rbx + 8]
cmp rcx, rbp
jne 0x14002f950
mov rbx, qword [rax + 0x18]
mov r15, qword [rdi + 0x88]
mov r12, qword [rdi + 0x90]
lea r8, [rsp + 0x80]
mov dword [r8], r12d
mov dword [r8 + 4], 0
mov cx, 0x11
mov edx, 1
call qword [sym.imp.oleaut32.dll_SafeArrayCreate]
mov r14, rax
lea rdx, [rsp + 0x40]
mov qword [rdx], 0
mov rcx, rax
call qword [sym.imp.oleaut32.dll_SafeArrayAccessData]
test eax, eax
js 0x14002fdae
mov rcx, qword [rsp + 0x40]
mov rdx, r15
mov r8, r12
call fcn.140070050
mov rcx, r14
call qword [sym.imp.oleaut32.dll_SafeArrayUnaccessData]
test eax, eax
js 0x14002fdae
lea r8, [rsp + 0x40]
mov qword [r8], 0
mov rax, qword [rbx]
mov rcx, rbx
mov rdx, r14
call qword [rax + 0x168]
test eax, eax
js 0x14002fdc3
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x14002fdc3
mov rax, qword [rdi + 0xa0]
mov qword [rsp + 0x70], rax
mov rbx, qword [rdi + 0xa8]
lea rdx, [rsp + 0x40]
mov qword [rdx], 0
mov rax, qword [rcx]
call qword [rax + 0x80]
test eax, eax
js 0x14002fdf8
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x14002fdf8
mov qword [rsp + 0xa0], rbx
lea rbx, [rsp + 0xd0]
mov qword [rbx], 0
mov rax, qword [rcx]
mov qword [rsp + 0xc8], rcx
mov rdx, rbx
call qword [rax + 0x38]
test eax, eax
js 0x14002ff23
xor eax, eax
lea rcx, [rsp + 0x20]
mov qword [rcx], rax
mov edx, 1
mov qword [rcx + 8], rdx
mov qword [rcx + 0x10], rax
lea r8, [rsp + 0xd8]
mov qword [r8], rbx
lea r9, [rsp + 0xe0]
mov qword [r9], r8
mov qword [rsp + 0xb0], r9
lea r8, [0x14005c488]
mov qword [rsp + 0xb8], r8
lea r8, [0x14007f5f8]
lea rbx, [rsp + 0x40]
mov qword [rbx], r8
mov qword [rbx + 8], rdx
mov qword [rbx + 0x20], rax
lea rax, [rsp + 0xb0]
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rdx
lea rdx, [0x140076d48]
mov r8, rbx
call fcn.140034aec
test al, al
jne 0x140030429
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x78], rax
mov rbp, qword [rsp + 0x30]
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x14002f674
call qword [sym.imp.oleaut32.dll_SysFreeString]
lea rax, [0x14006fca0]
mov qword [rsp + 0x40], rax
mov rcx, qword [rsp + 0x40]
movabs rax, 0xee7e6f0996165ce6
mov qword [rsp + 0x40], rax
mov rdx, qword [rsp + 0x40]
call fcn.140031233
mov ecx, 0xe997b
xor ecx, dword [rax]
movzx eax, word [rax + 4]
xor eax, 0xffff8358
shl rax, 0x20
not rax
movabs rdx, 0xffffffff56caa64d
xor rdx, rcx
and rdx, rax
not rdx
mov dword [rsp + 0x20], edx
shr rdx, 0x20
mov word [rsp + 0x24], dx
cmp rbp, 5
jbe 0x14002f700
mov eax, dword [rsp + 0x20]
mov rdx, qword [rsp + 0x78]
mov r8, rbp
xor eax, dword [rdx + rbp - 6]
movzx ecx, word [rsp + 0x24]
xor cx, word [rdx + rbp - 2]
movzx ecx, cx
or ecx, eax
je 0x14002ff62
movabs r12, 0xd4a51bcc2db3ef83
lea rax, [0x14006cf9c]
mov qword [rsp + 0x40], rax
mov rcx, qword [rsp + 0x40]
movabs rax, 0xf4c2eb69e1c161d5
mov qword [rsp + 0x40], rax
mov rdx, qword [rsp + 0x40]
call fcn.14003127e
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x40], xmm0
mov cl, 1
xor r15d, r15d
lea r8, [0x140076d78]
movabs r9, 0x2b5ae433d24c107a
lea r10, [r12 + 2]
mov r11, qword [rax + r15]
movzx ebx, byte [r15 + r8]
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r15
xor r14, 3
add r14, r15
sub r14, r13
mov r13, r15
and r13, r9
or r13, r10
xor r13, r12
mov edx, r15d
and edx, 6
or rdx, r13
movzx r13d, byte [r15 + r8 + 5]
movzx edx, byte [rdx + r8]
shl rdx, 0x30
shl r13, 0x28
or r13, rdx
mov rdx, r15
or rdx, 1
movzx edx, byte [rdx + r8]
shl rdx, 8
or rdx, rbx
mov rbx, r15
or rbx, 2
movzx ebx, byte [rbx + r8]
shl rbx, 0x10
or rdx, rbx
movzx ebx, byte [r14 + r8]
shl rbx, 0x18
not rdx
not rbx
and rbx, rdx
mov rdx, r15
or rdx, 4
movzx edx, byte [rdx + r8]
shl rdx, 0x20
not rdx
and rdx, rbx
mov rbx, r15
or rbx, 7
movzx ebx, byte [rbx + r8]
shl rbx, 0x38
not rdx
or rdx, r13
mov r14, rdx
not r14
or rdx, rbx
not rbx
and rbx, r14
not rdx
or rbx, rdx
xor rbx, r11
not rbx
mov qword [rsp + r15 + 0x40], rbx
mov r15d, 8
test cl, 1
mov ecx, 0
jne 0x14002f759
mov ecx, dword [rax + 0x10]
mov edx, ecx
and edx, 0x6ed38f0a
add edx, edx
neg edx
add ecx, edx
add ecx, 0xeed38f0a
mov dword [rsp + 0x50], ecx
mov al, byte [rax + 0x14]
mov ecx, eax
not cl
or al, 0xf3
or cl, 0xc
and cl, al
mov byte [rsp + 0x54], cl
movdqa xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x20], xmm0
mov rax, qword [rsp + 0x4d]
mov qword [rsp + 0x2d], rax
cmp rbp, 0x14
jbe 0x14002f8d1
movabs rax, 0x7fffffffffffffeb
and rax, rbp
xor rbp, 0xffffffffffffffeb
lea rax, [rax*2]
add rax, rbp
movdqu xmm0, xmmword [rsp + 0x25]
mov rcx, qword [rsp + 0x78]
movdqu xmm1, xmmword [rcx + rax]
movdqu xmm2, xmmword [rcx + rax + 5]
pcmpeqb xmm1, xmmword [rsp + 0x20]
pcmpeqb xmm2, xmm0
pand xmm1, xmm2
pmovmskb eax, xmm1
cmp eax, 0xffff
je 0x14002ff98
xor eax, eax
mov qword [rsp + 0x88], rax
mov ecx, 1
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x80], rcx
cmp qword [rsp + 0xa8], 0
jne 0x1400301c7
jmp 0x14002fe16
mov r12, qword [rsp + 0x50]
jmp 0x14002f929
mov r14d, 1
xor r12d, r12d
xor r13d, r13d
jmp 0x14002f929
mov r12, qword [rsp + 0x50]
mov r14, rax
mov qword [rsi + 0x10], r14
mov qword [rsi + 0x18], r12
mov qword [rsi + 8], r13
mov qword [rsi], 1
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [rsp + 0x50]
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], rdx
jmp 0x14002f935
mov qword [rsp + 0xf0], rdx
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0xc8], rax
movabs rbx, 0x8f5ed68b3ba20f15
lea rax, [0x14006eb90]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x20]
mov rcx, qword [rsp + 0x20]
movabs rax, 0x180ffced9a1325eb
mov qword [rsp + 0x20], rax
mov rdx, qword [rsp + 0x20]
call fcn.140030f75
mov rbp, rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0x20], xmm0
mov cl, 1
xor r10d, r10d
lea r8, [0x140076c98]
lea rax, [rbx + 1]
mov r11, qword [rbp + r10]
movzx ebx, byte [r10 + r8]
mov r9, r10
movabs rdx, 0x70a12974c45df0e9
and r9, rdx
or r9, rax
movabs rdx, 0x8f5ed68b3ba20f15
xor r9, rdx
mov edx, r10d
and edx, 3
or rdx, r9
mov r9, r10
xor r9, 1
movzx r9d, byte [r9 + r8]
shl r9, 8
or r9, rbx
mov rbx, r10
or rbx, 2
movzx ebx, byte [rbx + r8]
movzx edx, byte [rdx + r8]
shl rdx, 0x18
shl rbx, 0x10
or r9, rbx
lea rbx, [r9 + rdx]
not r9
not rdx
and rdx, r9
movzx r9d, byte [r10 + r8 + 4]
not rbx
or rdx, rbx
mov rbx, r10
xor rbx, 5
movzx ebx, byte [rbx + r8]
shl r9, 0x20
not rdx
or rdx, r9
mov r9, r10
or r9, 6
movzx r9d, byte [r9 + r8]
shl r9, 0x30
shl rbx, 0x28
not rdx
not rbx
and rbx, rdx
not rbx
mov rdx, r9
and rdx, rbx
add rbx, r9
movzx r9d, byte [r10 + r8 + 7]
shl r9, 0x38
sub rbx, rdx
mov rdx, rbx
xor rdx, r9
not r9
and r9, rbx
add rdx, rbx
sub rdx, r9
mov r9, rdx
and r9, r11
add rdx, r11
add r9, r9
sub rdx, r9
mov qword [rsp + r10 + 0x20], rdx
mov r10d, 8
test cl, 1
mov ecx, 0
jne 0x14002f9cf
mov eax, 0x92b63f56
xor eax, dword [rbp + 0x10]
mov dword [rsp + 0x30], eax
movzx eax, word [rbp + 0x14]
mov ecx, 0x6af8
mov edx, eax
and edx, ecx
add edx, edx
sub eax, edx
add eax, ecx
mov word [rsp + 0x34], ax
movdqa xmm0, xmmword [rsp + 0x20]
lea r8, [rsp + 0xb0]
movdqa xmmword [r8], xmm0
mov rax, qword [rsp + 0x2e]
mov qword [r8 + 0xe], rax
lea rbx, [rsp + 0x40]
mov r9d, 0x16
mov rcx, rbx
mov rdx, r15
call fcn.1400314ce
mov rax, qword [rbx]
mov rbx, qword [rbx + 8]
movabs rbp, 0x8000000000000000
cmp rax, rbp
jne 0x14002fdde
lea rax, [0x14007405a]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x20]
mov rcx, qword [rsp + 0x20]
movabs rax, 0x76b459c54efe5b9e
mov qword [rsp + 0x20], rax
mov rdx, qword [rsp + 0x20]
call fcn.140030e2d
mov rax, qword [rax]
movabs rcx, 0x809a1a59c1b305ff
mov rdx, rax
and rdx, rcx
add rdx, rdx
add rax, rcx
sub rax, rdx
lea r8, [rsp + 0xb0]
mov qword [r8], rax
lea rbp, [rsp + 0x40]
mov r9d, 8
mov rcx, rbp
mov rdx, rbx
call fcn.140031571
mov rax, qword [rbp]
mov rcx, qword [rbp + 8]
movabs r8, 0x8000000000000000
cmp rax, r8
jne 0x14002fde8
mov rdx, rbp
mov qword [rsp + 0xe8], rcx
movabs rbx, 0xfa8dafc9a8a496e6
movabs rbp, 0x5725036575b6919
lea rax, [0x14007561e]
mov qword [rsp + 0x40], rax
mov rcx, qword [rsp + 0x40]
movabs rax, 0xf84f73b742925dc0
mov qword [rsp + 0x40], rax
mov rdx, qword [rsp + 0x40]
call fcn.14003113f
mov qword [rsp + 0x70], rax
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x40], xmm0
mov al, 1
xor edx, edx
lea r8, [0x140076cae]
xor rbp, rbx
mov qword [rsp + 0x78], rbp
movabs rbp, 0x23f807036b6ca7c3
movzx r10d, byte [rdx + r8]
mov r9, rdx
or r9, 1
movzx r9d, byte [r9 + r8]
mov r11, rdx
or r11, 2
movzx ebx, byte [r11 + r8]
movzx r11d, byte [rdx + r8 + 3]
shl r9, 8
or r9, r10
movzx r10d, byte [rdx + r8 + 4]
shl rbx, 0x10
or r9, rbx
mov rbx, rdx
or rbx, 5
movzx ebx, byte [rbx + r8]
shl r11, 0x18
or r9, r11
mov r11, rdx
xor r11, 7
shl r10, 0x20
or r9, r10
mov r10, rdx
or r10, 6
movzx ecx, byte [r10 + r8]
movzx r10d, byte [r11 + r8]
shl r10, 0x38
shl rcx, 0x30
shl rbx, 0x28
or r9, rbx
mov r11, r9
xor r11, rcx
not rcx
and rcx, r9
add r11, r9
sub r11, rcx
mov r9, r11
not r9
mov rcx, r9
movabs rbx, 0xdc07f8fc9493583c
and rcx, rbx
and r11, rbp
or r11, rcx
mov rcx, r10
not rcx
or r9, rcx
and rcx, rbx
and r10, rbp
or r10, rcx
xor r10, r11
not r9
or r9, r10
mov r10, qword [rsp + 0x78]
and r9, r10
mov rcx, qword [rsp + 0x70]
mov rcx, qword [rcx + rdx]
and rcx, r10
movabs r10, 0xfa8dafc9a8a496e6
xor rcx, r10
xor rcx, r10
xor rcx, r9
mov qword [rsp + rdx + 0x40], rcx
mov edx, 8
test al, 1
mov eax, 0
jne 0x14002fc3c
mov rdx, qword [rsp + 0x70]
mov eax, dword [rdx + 0x10]
mov ecx, eax
not ecx
or ecx, 0x49499eea
or eax, 0xb6b66115
and eax, ecx
lea rbx, [rsp + 0x40]
mov dword [rbx + 0x10], eax
movzx eax, word [rdx + 0x14]
xor eax, 0x77bf
mov word [rbx + 0x14], ax
movdqa xmm0, xmmword [rbx]
lea r8, [rsp + 0x20]
movdqa xmmword [r8], xmm0
mov rax, qword [rbx + 0xe]
mov qword [r8 + 0xe], rax
mov rcx, rbx
mov rdx, r15
call fcn.140031453
cmp qword [rbx], 0
mov rbp, qword [rbx + 8]
mov rax, qword [rbx + 0x10]
mov r15, qword [rbx + 0x18]
je 0x14002fe3f
mov r12, r15
mov r14, rax
mov r13, rbp
jmp 0x14002ff0a
mov ecx, eax
call case.0x140008522.715
test rax, rax
je 0x14002fdc3
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x10]
xor eax, eax
mov qword [rsi + 8], rax
mov ecx, 1
mov qword [rsi + 0x10], rcx
mov qword [rsi + 0x18], rax
mov qword [rsi], rcx
jmp 0x14002f93c
mov r12, qword [rsp + 0x50]
mov r14, rbx
jmp 0x14002fdf0
mov r12, qword [rsp + 0x50]
mov r14, rcx
mov r13, rax
jmp 0x14002f929
xor eax, eax
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], 1
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x98]
mov qword [rsi + 0x18], rax
mov rax, qword [rsp + 0x88]
mov qword [rsi + 8], rax
mov rax, qword [rsp + 0x90]
mov qword [rsi + 0x10], rax
jmp 0x14002f935
mov qword [rsp + 0x70], rax
mov al, byte [0x14008fbb8]
mov edx, 0x18
xor ecx, ecx
call fcn.140042681
test rax, rax
je 0x140030429
mov qword [rax], rbp
mov rcx, qword [rsp + 0x70]
mov qword [rax + 8], rcx
mov qword [rax + 0x10], r15
mov ecx, 1
lea rdx, [rsp + 0x40]
mov qword [rdx], rcx
mov qword [rdx + 8], rax
mov qword [rdx + 0x10], rcx
lea rbx, [rsp + 0x20]
mov rcx, rbx
call fcn.140031b07
mov rax, qword [rbx]
mov rbx, qword [rbx + 8]
movabs rcx, 0x8000000000000000
cmp rax, rcx
jne 0x14002ff19
lea rcx, [rsp + 0x40]
lea r9, [rsp + 0x80]
mov rdx, qword [rsp + 0xa8]
mov r8, rbx
call fcn.140031335
lea rax, [rsp + 0x40]
cmp qword [rax], 0
jne 0x14002fefb
lea rcx, [rsp + 0x40]
lea r9, [rsp + 0x80]
mov rdx, qword [rsp + 0xa0]
mov r8, rbx
call fcn.140031335
lea rax, [rsp + 0x40]
cmp qword [rax], 0
je 0x14003007c
mov r13, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
movabs rbp, 0x8000000000000000
jmp 0x14002f486
mov r12, qword [rsp + 0x30]
jmp 0x14002fde3
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x14002ff36
call qword [sym.imp.oleaut32.dll_SysFreeString]
xor eax, eax
mov qword [rsp + 0x88], rax
mov ecx, 1
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x80], rcx
jmp 0x14002fe16
lea rbx, [rsp + 0x40]
mov qword [rbx], 0
mov cx, 0xc
xor edx, edx
xor r8d, r8d
call qword [sym.imp.oleaut32.dll_SafeArrayCreateVector]
lea rcx, [rsp + 0x80]
mov rdx, qword [rsp + 0xc8]
mov r8, rax
mov r9, rbx
jmp 0x1400301b7
xor eax, eax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 8
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0xa0], 0
je 0x140030103
mov rax, qword [rsp + 0xa0]
shl rax, 3
lea r15, [rax + rax*2]
mov r13d, 8
xor ebx, ebx
lea rbp, [rsp + 0x40]
xor r8d, r8d
mov r14, r8
mov rax, qword [rsp + 0x70]
mov rcx, qword [rax + rbx + 8]
mov rdx, qword [rax + rbx + 0x10]
call fcn.14005c9d3
mov r12, rax
cmp r14, qword [rsp + 0x40]
jne 0x14003000a
mov rcx, rbp
call fcn.14003eb7e
mov r13, qword [rsp + 0x48]
mov qword [r13 + r14*8], r12
lea r8, [r14 + 1]
mov qword [rsp + 0x50], r8
add rbx, 0x18
cmp r15, rbx
jne 0x14002ffdc
xor r15d, r15d
mov cx, 8
xor edx, edx
call qword [sym.imp.oleaut32.dll_SafeArrayCreateVector]
mov rbx, rax
mov r12, qword [rsp + 0x48]
lea rbp, [rsp + 0x20]
mov r13, qword [sym.imp.oleaut32.dll_SafeArrayPutElement]
mov dword [rsp + 0x20], r15d
mov r8, qword [r12 + r15*8]
mov rcx, rbx
mov rdx, rbp
call r13
test eax, eax
js 0x1400303ce
mov eax, r15d
and eax, 1
mov rcx, r15
xor rcx, 1
lea rax, [rcx + rax*2]
cmp r15, r14
mov r15, rax
jne 0x140030044
jmp 0x140030115
mov qword [rdi + 0x20], r13
mov qword [rdi + 0x28], r14
mov qword [rdi + 0x30], r12
mov rax, qword [rsp + 0xc8]
mov qword [rdi + 0x38], rax
mov rax, qword [rsp + 0xf8]
mov qword [rdi + 0x40], rax
mov rax, qword [rsp + 0xf0]
mov qword [rdi + 0x48], rax
mov qword [rdi], 1
mov rax, qword [rsp + 0xa8]
mov qword [rdi + 8], rax
mov rax, qword [rsp + 0xa0]
mov qword [rdi + 0x10], rax
mov rax, qword [rsp + 0xe8]
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x50], rbp
mov rax, qword [rsp + 0x70]
mov qword [rdi + 0x58], rax
mov qword [rdi + 0x60], r15
mov qword [rdi + 0x68], rbp
mov qword [rdi + 0x70], rax
mov qword [rdi + 0x78], r15
movabs rbp, 0x8000000000000000
jmp 0x14002f48f
mov cx, 8
xor edx, edx
xor r8d, r8d
call qword [sym.imp.oleaut32.dll_SafeArrayCreateVector]
mov rbx, rax
cmp qword [rsp + 0x40], 0
je 0x140030131
mov r8, qword [rsp + 0x48]
mov rcx, qword [0x14008fb30]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov al, byte [0x14008fbb8]
mov edx, 0x18
xor ecx, ecx
call fcn.140042681
test rax, rax
je 0x140030429
mov qword [rax], 0x2008
mov qword [rax + 8], rbx
mov qword [rax + 0x10], 0
mov ecx, 1
lea rdx, [rsp + 0x40]
mov qword [rdx], rcx
mov qword [rdx + 8], rax
mov qword [rdx + 0x10], rcx
lea rbx, [rsp + 0x20]
mov rcx, rbx
call fcn.140031b07
mov rax, qword [rbx]
mov r8, qword [rbx + 8]
movabs rcx, 0x8000000000000000
cmp rax, rcx
jne 0x1400303a0
lea r9, [rsp + 0x40]
mov qword [r9], 0
lea rcx, [rsp + 0x80]
mov rdx, qword [rsp + 0xc8]
call fcn.140031335
cmp qword [rsp + 0xa8], 0
je 0x1400301db
mov rcx, qword [0x14008fb30]
xor edx, edx
mov r8, qword [rsp + 0x78]
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x80], 0
jne 0x14002fe16
cmp qword [rdi], 0
je 0x14002fdc3
mov rax, qword [rdi + 0x60]
lea rbx, [rsp + 0x40]
mov qword [rbx + 0x18], rax
movdqu xmm0, xmmword [rdi + 0x50]
movdqu xmmword [rbx + 8], xmm0
mov rdi, qword [rdi + 0x18]
mov cx, 0xc
xor edx, edx
xor r8d, r8d
call qword [sym.imp.oleaut32.dll_SafeArrayCreateVector]
mov qword [rbx], 1
lea r14, [rsp + 0x80]
mov rcx, r14
mov rdx, rdi
mov r8, rax
mov r9, rbx
call fcn.140031335
cmp qword [r14], 0
mov rax, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
je 0x14003027f
xor ecx, ecx
mov qword [rsi + 8], rcx
mov edx, 1
mov qword [rsi + 0x10], rdx
mov qword [rsi + 0x18], rcx
mov qword [rsi], rdx
test rax, rax
je 0x14002f93c
mov rcx, qword [0x14008fb30]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x14002f93c
lea rdi, [rsp + 0x80]
mov rcx, qword [rdi + 0x18]
lea rdx, [rsp + 0x28]
mov qword [rdx - 8], rax
mov qword [rdx], r8
mov qword [rdx + 8], rcx
xor eax, eax
mov qword [rdi], rax
mov ecx, 1
mov qword [rdi + 8], rcx
mov qword [rdi + 0x10], rax
mov qword [rsp + 0xd8], rdx
lea rdx, [rsp + 0xd8]
mov qword [rsp + 0xe0], rdx
lea rdx, [rsp + 0xe0]
mov qword [rsp + 0xb0], rdx
lea rdx, [0x14005c488]
mov qword [rsp + 0xb8], rdx
lea r8, [rsp + 0x40]
lea rdx, [0x14007f5f8]
mov qword [r8], rdx
mov qword [r8 + 8], rcx
mov qword [r8 + 0x20], rax
lea rax, [rsp + 0xb0]
mov qword [r8 + 0x10], rax
mov qword [r8 + 0x18], rcx
lea rdx, [0x140076c48]
mov rcx, rdi
call fcn.140034aec
test al, al
jne 0x140030429
movups xmm0, xmmword [rsp + 0x80]
mov rax, qword [rsp + 0x90]
lea rbx, [rsp + 0x100]
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rax
mov qword [rsp + 0x80], rbx
lea rax, [0x140005730]
mov qword [rsp + 0x88], rax
lea rax, [0x140076c78]
lea rcx, [rsp + 0x40]
mov qword [rcx], rax
mov qword [rcx + 8], 2
xor r14d, r14d
mov qword [rcx + 0x20], r14
mov qword [rcx + 0x10], rdi
mov qword [rcx + 0x18], 1
call fcn.14004e5a8
mov rax, qword [rbx + 0x10]
mov qword [rsi + 0x18], rax
movdqu xmm0, xmmword [rbx]
movdqu xmmword [rsi + 8], xmm0
mov qword [rsi], r14
jmp 0x14002f93c
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], r8
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0x80], 1
jmp 0x1400301bc
mov ecx, eax
call case.0x140008522.715
test rax, rax
je 0x1400303e3
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x10]
cmp qword [rsp + 0x40], 0
je 0x1400303fd
mov rcx, qword [0x14008fb30]
xor edx, edx
mov r8, r12
call qword [sym.imp.kernel32.dll_HeapFree]
xor eax, eax
mov qword [rsp + 0x88], rax
mov ecx, 1
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x80], rcx
jmp 0x1400301bc
ud2