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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
push r13
push r14
push r15
sub rsp, 0x90
mov rax, qword [0x14007c040]
xor rax, rsp
mov qword [rsp + 0x80], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
movups xmmword [rsp + 0x58], xmm0
movups xmmword [rsp + 0x68], xmm0
xor r13d, r13d
mov dword [rsp + 0x78], r13d
mov rdx, qword [0x14007d0e8]
test rdx, rdx
jne 0x14002ab6c
mov r11d, r13d
mov r10d, 0x816f1526
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov r12, qword [rax]
mov rsi, r12
nop dword [rax]
movups xmm0, xmmword [rsi + 0x58]
movd eax, xmm0
sub ax, 8
test r11d, r11d
je 0x14002aa4d
psrldq xmm0, 8
movq rcx, xmm0
movzx eax, ax
shr rax, 1
lea r8, [rcx + rax*2]
mov edx, 0xe1b759c5
cmp rcx, r8
je 0x14002aa44
nop
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
add rcx, 2
cmp rcx, r8
jne 0x14002aa30
cmp edx, r11d
jne 0x14002ab4d
mov r9, qword [rsi + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov rcx, qword [rax + r9 + 0x88]
mov r15, rcx
shr r15, 0x20
mov edi, ecx
add rdi, r9
cmp rdi, r9
je 0x14002ab4d
mov r8d, dword [rdi + 0x18]
test r8d, r8d
je 0x14002ab4d
mov r14d, dword [rdi + 0x20]
nop dword [rax]
nop word [rax + rax]
dec r8d
lea rax, [r14 + r8*4]
mov ecx, dword [rax + r9]
add rcx, r9
mov edx, 0xe1b759c5
movzx eax, byte [rcx]
inc rcx
test al, al
je 0x14002aac6
nop dword [rax]
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
test al, al
jne 0x14002aab0
cmp edx, r10d
je 0x14002aad2
test r8d, r8d
jne 0x14002aa90
jmp 0x14002ab4d
mov ecx, dword [rdi + 0x1c]
add rcx, r9
mov eax, dword [rdi + 0x24]
add rax, r9
movzx eax, word [rax + r8*2]
mov edx, dword [rcx + rax*4]
add rdx, r9
cmp rdx, rdi
jbe 0x14002ab65
lea rax, [r15 + rdi]
cmp rdx, rax
jae 0x14002ab65
mov r11d, 0xe1b759c5
mov r10d, r11d
movzx eax, byte [rdx]
cmp al, 0x2e
je 0x14002ab27
nop word [rax + rax]
movsx eax, al
xor eax, r11d
imul r11d, eax, 0x1000193
inc rdx
movzx eax, byte [rdx]
cmp al, 0x2e
jne 0x14002ab10
inc rdx
movzx eax, byte [rdx]
test al, al
je 0x14002ab49
movsx eax, al
xor eax, r10d
imul r10d, eax, 0x1000193
lea rdx, [rdx + 1]
movzx eax, byte [rdx]
test al, al
jne 0x14002ab31
mov rsi, qword [r12]
mov rax, qword [rsi]
mov rsi, rax
cmp rax, r12
je 0x14002ab62
cmp qword [rax + 0x30], r13
jne 0x14002aa00
mov rdx, r13
mov qword [0x14007d0e8], rdx
lea rcx, [rsp + 0x48]
call rdx
mov r10, qword [0x14007d258]
test r10, r10
jne 0x14002ad0d
mov ebx, r13d
mov r11d, 0xf8359a21
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov r12, qword [rax]
mov rsi, r12
nop dword [rax]
nop word [rax + rax]
movups xmm0, xmmword [rsi + 0x58]
movd eax, xmm0
sub ax, 8
test ebx, ebx
je 0x14002abfc
psrldq xmm0, 8
movq rcx, xmm0
movzx eax, ax
shr rax, 1
lea r8, [rcx + rax*2]
mov edx, 0x8b28c065
cmp rcx, r8
je 0x14002abf4
nop
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
add rcx, 2
cmp rcx, r8
jne 0x14002abe0
cmp edx, ebx
jne 0x14002acee
mov r9, qword [rsi + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov rcx, qword [rax + r9 + 0x88]
mov r15, rcx
shr r15, 0x20
mov edi, ecx
add rdi, r9
cmp rdi, r9
je 0x14002acee
mov r8d, dword [rdi + 0x18]
test r8d, r8d
je 0x14002acee
mov r14d, dword [rdi + 0x20]
dec r8d
lea rax, [r14 + r8*4]
mov ecx, dword [rax + r9]
add rcx, r9
mov edx, 0x8b28c065
movzx eax, byte [rcx]
inc rcx
test al, al
je 0x14002ac66
nop
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
test al, al
jne 0x14002ac50
cmp edx, r11d
je 0x14002ac72
test r8d, r8d
jne 0x14002ac32
jmp 0x14002acee
mov ecx, dword [rdi + 0x1c]
add rcx, r9
mov eax, dword [rdi + 0x24]
add rax, r9
movzx eax, word [rax + r8*2]
mov r10d, dword [rcx + rax*4]
add r10, r9
cmp r10, rdi
jbe 0x14002ad06
lea rax, [r15 + rdi]
cmp r10, rax
jae 0x14002ad06
mov ebx, 0x8b28c065
mov r11d, ebx
movzx eax, byte [r10]
cmp al, 0x2e
je 0x14002acc6
nop dword [rax + rax]
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
inc r10
movzx eax, byte [r10]
cmp al, 0x2e
jne 0x14002acb0
inc r10
movzx eax, byte [r10]
test al, al
je 0x14002acea
movsx eax, al
xor eax, r11d
imul r11d, eax, 0x1000193
lea r10, [r10 + 1]
movzx eax, byte [r10]
test al, al
jne 0x14002acd1
mov rsi, qword [r12]
mov rax, qword [rsi]
mov rsi, rax
cmp rax, r12
je 0x14002ad03
cmp qword [rax + 0x30], r13
jne 0x14002abb0
mov r10, r13
mov qword [0x14007d258], r10
mov edx, dword [rsp + 0x4c]
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x3000
call r10
mov r13, rax
mov qword [rsp + 0x20], rax
call fcn.140003760
movsx ebx, al
call fcn.140003750
movsx edi, al
mov r9d, edi
imul r9d, ebx
call fcn.140003790
movsx r11d, al
lea r10d, [r11 + r9*4]
add r10d, r9d
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, r10d
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
xor r14d, r14d
cmp eax, ecx
je 0x14002aff9
movsx eax, byte [0x14007c0da]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x14007c0dc]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mov eax, r14d
test r13, r13
sete al
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm1, xmm0
movsd qword [rsp + 0x28], xmm1
lea esi, [r11 + r9*2]
add esi, r9d
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, esi
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x14002ae1c
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 0x14002ae1c
mov r12d, 7
mov r10d, r12d
jmp 0x14002ae81
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, r10d
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
mov r12d, 7
cmp eax, ecx
je 0x14002ae7c
lea ecx, [r9 + r11]
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
lea ecx, [rcx + r9*8]
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x28]
cvttsd2si r10d, xmm0
jmp 0x14002ae81
mov r10d, dword [rsp + 0x78]
lea edx, [r9 + r9*4]
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, r11d
lea eax, [rax + rdx*2]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
imul eax, r10d
test eax, eax
je 0x14002afff
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, r11d
add eax, r9d
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
xorps xmm2, xmm2
cvtsi2sd xmm2, rax
movsx eax, byte [0x14007c0da]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x14007c0dc]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x28], xmm1
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, esi
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x14002af66
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 0x14002af66
mov eax, r12d
jmp 0x14002afee
call fcn.140003790
movsx eax, al
mov edx, edi
imul edx, ebx
lea ecx, [rdx + rdx*4]
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x14002afea
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.140003790
movsx eax, al
add eax, r9d
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x28]
cvttsd2si eax, xmm0
jmp 0x14002afee
mov eax, dword [rsp + 0x78]
cmp r14d, eax
jl 0x14002b4e5
jmp 0x14002afff
mov r12d, 7
mov byte [r13], 0xc3
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
imul r9d, edx, 7
call fcn.140003790
movsx eax, al
add eax, r9d
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x14002b4ec
mov r10, qword [0x14007d1c0]
test r10, r10
jne 0x14002b1e2
mov ebx, r14d
mov r11d, 0x310ac8f8
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov r15, qword [rax]
mov r10, r15
nop dword [rax]
movups xmm0, xmmword [r10 + 0x58]
movd eax, xmm0
sub ax, 8
test ebx, ebx
je 0x14002b0cc
psrldq xmm0, 8
movq rcx, xmm0
movzx eax, ax
shr rax, 1
lea r8, [rcx + rax*2]
mov edx, 0x13d24252
cmp rcx, r8
je 0x14002b0c4
nop
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
add rcx, 2
cmp rcx, r8
jne 0x14002b0b0
cmp edx, ebx
jne 0x14002b1bd
mov r9, qword [r10 + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov rcx, qword [rax + r9 + 0x88]
mov r14, rcx
shr r14, 0x20
mov edi, ecx
add rdi, r9
cmp rdi, r9
je 0x14002b1bd
mov r8d, dword [rdi + 0x18]
test r8d, r8d
je 0x14002b1bd
mov esi, dword [rdi + 0x20]
dec r8d
lea rcx, [r9 + r8*4]
mov edx, dword [rcx + rsi]
add rdx, r9
mov ecx, 0x13d24252
movzx eax, byte [rdx]
inc rdx
test al, al
je 0x14002b136
nop dword [rax]
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
test al, al
jne 0x14002b120
cmp ecx, r11d
je 0x14002b142
test r8d, r8d
jne 0x14002b101
jmp 0x14002b1bd
mov edx, dword [rdi + 0x1c]
add rdx, r9
mov ecx, dword [rdi + 0x24]
add rcx, r9
movzx ecx, word [rcx + r8*2]
mov r10d, dword [rdx + rcx*4]
add r10, r9
cmp r10, rdi
jbe 0x14002b1d8
lea rax, [r14 + rdi]
cmp r10, rax
jae 0x14002b1d8
mov ebx, 0x13d24252
mov r11d, ebx
movzx eax, byte [r10]
cmp al, 0x2e
je 0x14002b196
nop dword [rax + rax]
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
inc r10
movzx eax, byte [r10]
cmp al, 0x2e
jne 0x14002b180
inc r10
movzx eax, byte [r10]
test al, al
je 0x14002b1ba
movsx eax, al
xor eax, r11d
imul r11d, eax, 0x1000193
lea r10, [r10 + 1]
movzx eax, byte [r10]
test al, al
jne 0x14002b1a1
mov r10, qword [r15]
mov rax, qword [r10]
mov r10, rax
cmp rax, r15
je 0x14002b1d3
cmp qword [rax + 0x30], 0
jne 0x14002b080
xor ebx, ebx
mov r10d, ebx
mov qword [0x14007d1c0], r10
xor r14d, r14d
mov edx, dword [rsp + 0x4c]
lea r9, [rsp + 0x78]
mov r8d, 0x140
mov rcx, r13
call r10
mov rcx, r14
test eax, eax
sete cl
xorps xmm2, xmm2
cvtsi2sd xmm2, rcx
movsx eax, byte [0x14007c0da]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x14007c0dc]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x28], xmm1
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r10d, [rdx + rdx*2]
call fcn.140003790
movsx ecx, al
add r10d, ecx
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, r10d
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x14002b2b5
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 0x14002b2b5
mov r9d, r12d
jmp 0x14002b34f
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*4]
call fcn.140003790
movsx eax, al
add eax, r9d
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x14002b34a
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.140003790
movsx eax, al
add eax, r9d
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x28]
cvttsd2si r9d, xmm0
jmp 0x14002b34f
mov r9d, dword [rsp + 0x78]
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
call fcn.140003790
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
imul eax, r9d
test eax, eax
je 0x14002b4ec
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, r10d
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
xorps xmm2, xmm2
cvtsi2sd xmm2, rax
movsx eax, byte [0x14007c0da]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x14007c0dc]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x28], xmm1
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, r10d
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x14002b448
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 0x14002b448
mov eax, r12d
jmp 0x14002b4e0
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*4]
call fcn.140003790
movsx eax, al
add eax, r9d
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x14002b4dc
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.140003790
movsx eax, al
add eax, r9d
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x28]
cvttsd2si eax, xmm0
jmp 0x14002b4e0
mov eax, dword [rsp + 0x78]
cmp r14d, eax
jge 0x14002b4ec
xor al, al
jmp 0x14002bb9d
call r13
jmp 0x14002b853
mov r9, qword [0x14007d298]
test r9, r9
jne 0x14002b9fc
mov ebx, r14d
mov r11d, 0x98eed4e6
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov r15, qword [rax]
mov r9, r15
nop dword [rax]
nop word [rax + rax]
movups xmm0, xmmword [r9 + 0x58]
movd eax, xmm0
sub ax, 8
test ebx, ebx
je 0x14002b8dc
psrldq xmm0, 8
movq rcx, xmm0
movzx eax, ax
shr rax, 1
lea r8, [rcx + rax*2]
mov edx, 0x7914bd29
cmp rcx, r8
je 0x14002b8d4
nop
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
add rcx, 2
cmp rcx, r8
jne 0x14002b8c0
cmp edx, ebx
jne 0x14002b9cd
mov r10, qword [r9 + 0x30]
movsxd rax, dword [r10 + 0x3c]
mov rcx, qword [rax + r10 + 0x88]
mov r14, rcx
shr r14, 0x20
mov edi, ecx
add rdi, r10
cmp rdi, r10
je 0x14002b9cd
mov r8d, dword [rdi + 0x18]
test r8d, r8d
je 0x14002b9cd
mov esi, dword [rdi + 0x20]
dec r8d
lea rcx, [r10 + r8*4]
mov edx, dword [rcx + rsi]
add rdx, r10
mov ecx, 0x7914bd29
movzx eax, byte [rdx]
inc rdx
test al, al
je 0x14002b946
nop dword [rax]
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
test al, al
jne 0x14002b930
cmp ecx, r11d
je 0x14002b952
test r8d, r8d
jne 0x14002b911
jmp 0x14002b9cd
mov eax, dword [rdi + 0x24]
add rax, r10
movzx edx, word [rax + r8*2]
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov r9d, dword [rcx + rdx*4]
add r9, r10
cmp r9, rdi
jbe 0x14002b9f1
lea rax, [rdi + r14]
cmp r9, rax
jae 0x14002b9f1
mov ebx, 0x7914bd29
mov r11d, ebx
movzx eax, byte [r9]
cmp al, 0x2e
je 0x14002b9a6
nop dword [rax]
movsx eax, al
xor eax, ebx
imul ebx, eax, 0x1000193
inc r9
movzx eax, byte [r9]
cmp al, 0x2e
jne 0x14002b990
inc r9
movzx eax, byte [r9]
test al, al
je 0x14002b9ca
movsx eax, al
xor eax, r11d
imul r11d, eax, 0x1000193
lea r9, [r9 + 1]
movzx eax, byte [r9]
test al, al
jne 0x14002b9b1
mov r9, qword [r15]
mov rax, qword [r9]
mov r9, rax
cmp rax, r15
je 0x14002b9e3
cmp qword [rax + 0x30], 0
jne 0x14002b890
xor ebx, ebx
mov r9d, ebx
mov qword [0x14007d298], rbx
jmp 0x14002b9fe
xor ebx, ebx
mov qword [0x14007d298], r9
jmp 0x14002b9fe
xor ebx, ebx
xor edx, edx
mov r8d, 0x8000
mov rcx, r13
call r9
call fcn.140003760
movsx r9d, al
call fcn.140003750
movsx ecx, al
imul r9d, ecx
call fcn.140003790
movsx eax, al
add eax, r9d
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
xorps xmm2, xmm2
cvtsi2sd xmm2, rax
movsx eax, byte [0x14007c0da]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x14007c0dc]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x20], 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 eax, al
add eax, r9d
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x14002bafc
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 eax, byte [0x14007c0dc]
mov ecx, eax
add ecx, edx
jne 0x14002bb96
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*4]
call fcn.140003790
movsx eax, al
add eax, r9d
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
je 0x14002bb91
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.140003790
movsx eax, al
add eax, r9d
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si r12d, xmm0
jmp 0x14002bb96
mov r12d, dword [rsp + 0x78]
cmp ebx, r12d
jge 0x14002bb9d
mov al, 1
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.14006f780
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
ret