Function at 0x1400218c0
Capabilities:
Access peb ldr_data
Contain obfuscated stackstrings
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
mov rbp, rsp
sub rsp, 0x70
xor eax, eax
mov dword [rbp - 0x50], 0x71c0d18
mov word [rbp - 0x36], ax
xorps xmm0, xmm0
xor esi, esi
mov dword [rbp - 0x4c], 0x3184306
mov word [rbp - 0x48], 0x7102
movabs r9, 0x47f9f622eaef
movups xmmword [rbp - 0x46], xmm0
mov qword [rbp + 0x30], rsi
mov rax, qword [rbp + 0x30]
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [rbp + 0x30]
mov rax, qword [rbp + 0x30]
add rcx, r9
movzx edx, byte [rbp + rax - 0x50]
mov rax, rcx
and rax, rdx
imul r8, rax, 0xfffffffffffffffe
mov rax, qword [rbp + 0x30]
add r8, rcx
add r8, rdx
add r8b, 0x77
mov byte [rbp + rax - 0x50], r8b
mov rax, qword [rbp + 0x30]
inc rax
mov qword [rbp + 0x30], rax
mov rax, qword [rbp + 0x30]
cmp rax, 0x1c
jb 0x140021910
mov rdx, qword [0x14007d120]
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xb0], r14
mov qword [rsp + 0xb8], r15
test rdx, rdx
jne 0x140021b0f
mov rax, qword gs:[0x60]
mov r11d, esi
mov r10d, 0xacc89a81
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov r12, qword [rax]
mov rsi, r12
nop word [rax + rax]
movups xmm0, xmmword [rsi + 0x58]
movd eax, xmm0
sub ax, 8
test r11d, r11d
je 0x1400219ed
psrldq xmm0, 8
mov edx, 0xc48422df
movq rcx, xmm0
movzx eax, ax
shr rax, 1
lea r8, [rcx + rax*2]
cmp rcx, r8
je 0x1400219e4
nop
movsx eax, byte [rcx]
add rcx, 2
xor eax, edx
imul edx, eax, 0x1000193
cmp rcx, r8
jne 0x1400219d0
cmp edx, r11d
jne 0x140021aee
mov r9, qword [rsi + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov rcx, qword [rax + r9 + 0x88]
mov r15, rcx
mov edi, ecx
shr r15, 0x20
add rdi, r9
cmp rdi, r9
je 0x140021aee
mov r8d, dword [rdi + 0x18]
test r8d, r8d
je 0x140021aee
mov r14d, dword [rdi + 0x20]
nop dword [rax]
nop word [rax + rax]
dec r8d
mov edx, 0xc48422df
lea rax, [r14 + r8*4]
mov ecx, dword [rax + r9]
add rcx, r9
movzx eax, byte [rcx]
inc rcx
test al, al
je 0x140021a67
nop dword [rax]
movsx eax, al
lea rcx, [rcx + 1]
xor eax, edx
imul edx, eax, 0x1000193
movzx eax, byte [rcx - 1]
test al, al
jne 0x140021a50
cmp edx, r10d
je 0x140021a73
test r8d, r8d
jne 0x140021a30
jmp 0x140021aee
mov ecx, dword [rdi + 0x24]
add rcx, r9
movzx edx, word [rcx + r8*2]
mov ecx, dword [rdi + 0x1c]
add rcx, r9
mov edx, dword [rcx + rdx*4]
add rdx, r9
cmp rdx, rdi
jbe 0x140021c07
lea rax, [r15 + rdi]
cmp rdx, rax
jae 0x140021c07
movzx eax, byte [rdx]
mov r11d, 0xc48422df
mov r10d, r11d
cmp al, 0x2e
je 0x140021ac7
movsx eax, al
inc rdx
xor eax, r11d
imul r11d, eax, 0x1000193
movzx eax, byte [rdx]
cmp al, 0x2e
jne 0x140021ab0
movzx eax, byte [rdx + 1]
inc rdx
test al, al
je 0x140021aea
movsx eax, al
lea rdx, [rdx + 1]
xor eax, r10d
imul r10d, eax, 0x1000193
movzx eax, byte [rdx]
test al, al
jne 0x140021ad2
mov rsi, qword [r12]
mov rax, qword [rsi]
mov rsi, rax
cmp rax, r12
je 0x140021b04
cmp qword [rax + 0x30], 0
jne 0x1400219a0
xor esi, esi
mov edx, esi
mov qword [0x14007d120], rdx
lea rcx, [rbp - 0x50]
call rdx
mov r13, rax
call fcn.140003760
movsx r9d, al
call fcn.140003750
movsx ecx, al
imul r9d, ecx
call fcn.140003790
movsx r11d, al
xor edx, edx
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
mov r12d, 7
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
lea edi, [r11 + r9*2]
add edi, r9d
add eax, edi
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140021dca
mov rdx, rsi
lea rax, [r13 - 1]
cmp rax, 0xfffffffffffffffd
movsx eax, byte [0x14007c0da]
seta dl
movd xmm1, eax
movsx eax, byte [0x14007c0dc]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rdx
xor edx, edx
mulsd xmm1, xmm0
movsd qword [rbp + 0x30], xmm1
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, edi
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140021c0e
call fcn.140003770
movsx edx, al
movsx eax, byte [0x14007d2e0]
imul edx, eax
shl edx, 3
call fcn.1400037a0
movsx ecx, al
sub edx, ecx
call fcn.140003780
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14007c0dc]
add ecx, edx
je 0x140021c0e
mov ebx, r12d
lea r10d, [r9 + r9*4]
jmp 0x140021c70
xor esi, esi
jmp 0x140021b08
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
lea r10d, [r9 + r9*4]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r11d
add eax, r10d
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140021c6d
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
lea ecx, [r9 + r11]
lea ecx, [rcx + r9*8]
xor edx, edx
add eax, ecx
xorps xmm0, xmm0
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x30]
cvttsd2si ebx, xmm0
jmp 0x140021c70
mov ebx, dword [rbp + 0x30]
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r11d
lea eax, [rax + r9*4]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
imul eax, ebx
test eax, eax
je 0x140021dca
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
lea r9d, [r10 + r11]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r9d
xor edx, edx
xorps xmm2, xmm2
div ecx
movsx ecx, byte [0x14007c0db]
xor edx, edx
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x14007c0da]
movd xmm1, eax
movsx eax, byte [0x14007c0dc]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp + 0x30], xmm1
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, edi
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140021d4d
call fcn.140003770
movsx edx, al
movsx eax, byte [0x14007d2e0]
imul edx, eax
shl edx, 3
call fcn.1400037a0
movsx ecx, al
sub edx, ecx
call fcn.140003780
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14007c0dc]
add ecx, edx
jne 0x14002239b
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r9d
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140021dbf
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x30]
cvttsd2si eax, xmm0
jmp 0x140021dc2
mov eax, dword [rbp + 0x30]
cmp esi, eax
jl 0x14002239b
xor eax, eax
mov dword [rbp - 0x30], 0x7653754e
mov dword [rbp - 0x16], eax
mov word [rbp - 0x12], ax
mov byte [rbp - 0x10], al
mov dword [rbp - 0x2c], 0x4e7f7761
mov dword [rbp - 0x28], 0x79656f66
mov dword [rbp - 0x24], 0x667a6c61
mov dword [rbp - 0x20], 0x61427f7f
mov dword [rbp - 0x1c], 0x6473767b
mov word [rbp - 0x18], 0x196b
mov qword [rbp + 0x30], rsi
mov rax, qword [rbp + 0x30]
cmp rax, 0x21
jae 0x140021e62
movabs r9, 0xc92ac746a6bdfe80
nop
mov rcx, qword [rbp + 0x30]
mov rax, qword [rbp + 0x30]
add rcx, r9
movzx edx, byte [rbp + rax - 0x30]
mov rax, rcx
and rax, rdx
imul r8, rax, 0xfffffffffffffffe
mov rax, qword [rbp + 0x30]
add r8, rcx
add r8, rdx
add r8b, 0x80
mov byte [rbp + rax - 0x30], r8b
mov rax, qword [rbp + 0x30]
inc rax
mov qword [rbp + 0x30], rax
mov rax, qword [rbp + 0x30]
cmp rax, 0x21
jb 0x140021e20
mov r8, qword [0x14007d140]
test r8, r8
jne 0x140022022
mov rax, qword gs:[0x60]
mov r11d, esi
mov r10d, 0x5c3eb719
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov r15, qword [rax]
mov rdi, r15
nop dword [rax]
nop word [rax + rax]
movups xmm0, xmmword [rdi + 0x58]
movd eax, xmm0
sub ax, 8
test r11d, r11d
je 0x140021eed
psrldq xmm0, 8
mov edx, 0xddbd2001
movq rcx, xmm0
movzx eax, ax
shr rax, 1
lea r8, [rcx + rax*2]
cmp rcx, r8
je 0x140021ee4
nop
movsx eax, byte [rcx]
add rcx, 2
xor eax, edx
imul edx, eax, 0x1000193
cmp rcx, r8
jne 0x140021ed0
cmp edx, r11d
jne 0x140022000
mov r9, qword [rdi + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov rcx, qword [rax + r9 + 0x88]
mov r14, rcx
mov ebx, ecx
shr r14, 0x20
add rbx, r9
cmp rbx, r9
je 0x140022000
mov r8d, dword [rbx + 0x18]
test r8d, r8d
je 0x140022000
mov esi, dword [rbx + 0x20]
nop dword [rax]
nop word [rax + rax]
dec r8d
lea rcx, [r9 + r8*4]
mov edx, dword [rcx + rsi]
mov ecx, 0xddbd2001
add rdx, r9
movzx eax, byte [rdx]
inc rdx
test al, al
je 0x140021f67
nop dword [rax]
movsx eax, al
lea rdx, [rdx + 1]
xor eax, ecx
imul ecx, eax, 0x1000193
movzx eax, byte [rdx - 1]
test al, al
jne 0x140021f50
cmp ecx, r10d
je 0x140021f76
test r8d, r8d
jne 0x140021f30
jmp 0x140022000
mov ecx, dword [rbx + 0x24]
add rcx, r9
movzx r8d, word [rcx + r8*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r9
mov r8d, dword [rcx + r8*4]
add r8, r9
cmp r8, rbx
jbe 0x1400221c0
lea rax, [rbx + r14]
cmp r8, rax
jae 0x1400221c0
movzx eax, byte [r8]
mov r11d, 0xddbd2001
mov r10d, r11d
cmp al, 0x2e
je 0x140021fd8
nop word [rax + rax]
movsx eax, al
inc r8
xor eax, r11d
imul r11d, eax, 0x1000193
movzx eax, byte [r8]
cmp al, 0x2e
jne 0x140021fc0
movzx eax, byte [r8 + 1]
inc r8
test al, al
je 0x140021ffd
movsx eax, al
lea r8, [r8 + 1]
xor eax, r10d
imul r10d, eax, 0x1000193
movzx eax, byte [r8]
test al, al
jne 0x140021fe4
mov rdi, qword [r15]
mov rax, qword [rdi]
mov rdi, rax
cmp rax, r15
je 0x140022016
cmp qword [rax + 0x30], 0
jne 0x140021ea0
xor esi, esi
mov r8d, esi
mov qword [0x14007d140], r8
lea rdx, [rbp - 0x30]
mov rcx, r13
call r8
mov r9, rax
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.140003790
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x1400223a2
movsx eax, byte [0x14007c0da]
test r9, r9
movd xmm1, eax
movsx eax, byte [0x14007c0dc]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov rax, rsi
cvtdq2pd xmm0, xmm0
sete al
addsd xmm0, xmm0
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm1, xmm0
movsd qword [rbp + 0x30], xmm1
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*2]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x14002212c
call fcn.140003770
movsx edx, al
movsx eax, byte [0x14007d2e0]
imul edx, eax
shl edx, 3
call fcn.1400037a0
movsx ecx, al
sub edx, ecx
call fcn.140003780
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14007c0dc]
add ecx, edx
jne 0x1400221cb
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*4]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x1400221c7
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x30]
cvttsd2si r12d, xmm0
jmp 0x1400221cb
xor esi, esi
jmp 0x14002201b
mov r12d, dword [rbp + 0x30]
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
imul r9d, edx, 7
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
imul eax, r12d
test eax, eax
je 0x1400223a2
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
call fcn.140003790
movsx ecx, al
xorps xmm2, xmm2
lea eax, [rcx + rdx*8]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x14007c0da]
movd xmm1, eax
movsx eax, byte [0x14007c0dc]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp + 0x30], xmm1
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*2]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140022301
call fcn.140003770
movsx edx, al
movsx eax, byte [0x14007d2e0]
imul edx, eax
shl edx, 3
call fcn.1400037a0
movsx ecx, al
sub edx, ecx
call fcn.140003780
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14007c0dc]
add ecx, edx
jne 0x14002239b
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*4]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140022394
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x30]
cvttsd2si eax, xmm0
jmp 0x140022397
mov eax, dword [rbp + 0x30]
cmp esi, eax
jge 0x1400223a2
xor eax, eax
jmp 0x1400226bc
cmp qword [0x14007d2a8], 0
jne 0x14002254e
mov rax, qword gs:[0x60]
mov r11d, esi
mov r10d, 0xa75d66d8
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov r15, qword [rax]
mov rdi, r15
movups xmm0, xmmword [rdi + 0x58]
movd eax, xmm0
sub ax, 8
test r11d, r11d
je 0x14002241d
psrldq xmm0, 8
mov edx, 0xeb40e3b5
movq rcx, xmm0
movzx eax, ax
shr rax, 1
lea r8, [rcx + rax*2]
cmp rcx, r8
je 0x140022414
nop
movsx eax, byte [rcx]
add rcx, 2
xor eax, edx
imul edx, eax, 0x1000193
cmp rcx, r8
jne 0x140022400
cmp edx, r11d
jne 0x14002251d
mov r9, qword [rdi + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov rcx, qword [rax + r9 + 0x88]
mov r14, rcx
mov ebx, ecx
shr r14, 0x20
add rbx, r9
cmp rbx, r9
je 0x14002251d
mov r8d, dword [rbx + 0x18]
test r8d, r8d
je 0x14002251d
mov esi, dword [rbx + 0x20]
nop dword [rax]
nop word [rax + rax]
dec r8d
lea rcx, [r9 + r8*4]
mov edx, dword [rcx + rsi]
mov ecx, 0xeb40e3b5
add rdx, r9
movzx eax, byte [rdx]
inc rdx
test al, al
je 0x140022497
nop dword [rax]
movsx eax, al
lea rdx, [rdx + 1]
xor eax, ecx
imul ecx, eax, 0x1000193
movzx eax, byte [rdx - 1]
test al, al
jne 0x140022480
cmp ecx, r10d
je 0x1400224a3
test r8d, r8d
jne 0x140022460
jmp 0x14002251d
mov ecx, dword [rbx + 0x24]
add rcx, r9
movzx r8d, word [rcx + r8*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r9
mov edx, dword [rcx + r8*4]
add rdx, r9
cmp rdx, rbx
jbe 0x140022542
lea rax, [rbx + r14]
cmp rdx, rax
jae 0x140022542
movzx eax, byte [rdx]
mov r11d, 0xeb40e3b5
mov r10d, r11d
cmp al, 0x2e
je 0x1400224f7
nop dword [rax]
movsx eax, al
inc rdx
xor eax, r11d
imul r11d, eax, 0x1000193
movzx eax, byte [rdx]
cmp al, 0x2e
jne 0x1400224e0
movzx eax, byte [rdx + 1]
inc rdx
test al, al
je 0x14002251a
movsx eax, al
lea rdx, [rdx + 1]
xor eax, r10d
imul r10d, eax, 0x1000193
movzx eax, byte [rdx]
test al, al
jne 0x140022502
mov rdi, qword [r15]
mov rax, qword [rdi]
mov rdi, rax
cmp rax, r15
je 0x140022533
cmp qword [rax + 0x30], 0
jne 0x1400223d0
xor r11d, r11d
mov edx, r11d
mov qword [0x14007d2a8], rdx
jmp 0x140022551
xor r11d, r11d
mov qword [0x14007d2a8], rdx
jmp 0x140022551
xor r11d, r11d
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r10d, [rdx + rdx*8]
call fcn.140003790
movsx ecx, al
xor edx, edx
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
add r10d, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r10d
div ecx
movsx ecx, byte [0x14007c0db]
xorps xmm2, xmm2
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x14007c0da]
movd xmm1, eax
movsx eax, byte [0x14007c0dc]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp + 0x30], xmm1
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*2]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x14002263d
call fcn.140003770
movsx edx, al
movsx eax, byte [0x14007d2e0]
imul edx, eax
shl edx, 3
call fcn.1400037a0
movsx ecx, al
sub edx, ecx
call fcn.140003780
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14007c0dc]
add ecx, edx
jne 0x1400226b7
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*4]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x1400226af
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r10d
div ecx
movsx ecx, byte [0x14007c0db]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x30]
cvttsd2si eax, xmm0
jmp 0x1400226b2
mov eax, dword [rbp + 0x30]
cmp r11d, eax
jge 0x1400226bc
mov eax, 1
mov r15, qword [rsp + 0xb8]
mov r14, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xa8]
add rsp, 0x70
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret