Function at 0x180004c08
Capabilities:
Allocate or change rwx memory

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
lea rbp, [rax - 0x4858]
mov eax, 0x4940
call fcn.180225460
sub rsp, rax
movaps xmmword [rsp + 0x4930], xmm7
movaps xmmword [rsp + 0x4920], xmm8
mov rax, qword [0x180377128]
xor rax, rsp
mov qword [rbp + 0x4810], rax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
xor edi, edi
test rax, rax
je 0x180004941
mov ebx, edi
mov r12d, 0x4844
call fcn.180223da0
and eax, 0x800000ff
jge 0x18000482e
dec eax
or eax, 0xffffff00
inc eax
mov byte [rbp + rbx - 0x40], al
inc rbx
cmp rbx, r12
jl 0x180004819
mov rbx, rdi
lea rsi, [0x180379300]
movzx edx, byte [rbp + rbx - 0x40]
mov rcx, rsi
call fcn.1800034f8
lea rdx, [0x18027ec08]
mov rcx, rax
call fcn.1800039ec
inc rbx
cmp rbx, r12
jl 0x180004844
mov dl, 0xa
mov rcx, rsi
call fcn.180003c0c
mov rcx, rsi
call fcn.180002b7c
lea rcx, [rbp - 0x40]
mov edx, r12d
call sym.TEEDriverW10.dll_LogCallbackA
mov rbx, rdi
movzx edx, byte [rbp + rbx - 0x40]
mov rcx, rsi
call fcn.1800034f8
lea rdx, [0x18027ec08]
mov rcx, rax
call fcn.1800039ec
inc rbx
cmp rbx, r12
jl 0x180004889
mov dl, 0xa
mov rcx, rsi
call fcn.180003c0c
mov rcx, rsi
call fcn.180002b7c
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
mov ecx, 8
call fcn.180005518
mov rbx, rax
test rax, rax
je 0x1800048ed
lea rax, vtable.MyObject.0
mov qword [rbx], rax
jmp 0x1800048f0
mov rbx, rdi
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
call qword [sym.imp.ole32.dll_CoUninitialize]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_HeapCreate]
mov rsi, rax
test rax, rax
je 0x180004941
mov ebx, 0x800000
xor edx, edx
mov rcx, rax
mov r8d, ebx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r12, rax
test rax, rax
jne 0x18000497c
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_HeapDestroy]
mov eax, 1
mov rcx, qword [rbp + 0x4810]
xor rcx, rsp
call fcn.1802250f0
lea r11, [rsp + 0x4940]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
movaps xmm7, xmmword [r11 - 0x10]
movaps xmm8, xmmword [r11 - 0x20]
mov rsp, r11
pop r13
pop r12
pop rbp
ret
call fcn.180223da0
and eax, 0x80000003
jge 0x18000498f
dec eax
or eax, 0xfffffffc
inc eax
mov byte [rdi + r12], al
inc rdi
cmp rdi, rbx
jl 0x18000497c
xor ecx, ecx
mov edx, 0x2d9360
mov r8d, 0x3000
lea r9d, [rcx + 4]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
lea rdx, [rsp + 0x34]
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 0x957b5a2
mov dword [rsp + 0x34], 0x5a39d4e6
mov dword [rsp + 0x38], 0x5a39d4e6
mov r13, rax
mov dword [rsp + 0x3c], 0x5a39d4e6
mov dword [rsp + 0x40], 0x5abaacef
mov dword [rsp + 0x44], 0x5a39d4ec
mov dword [rsp + 0x48], 0x5aaa86f8
mov dword [rsp + 0x4c], 0x5a39d4e4
mov dword [rsp + 0x50], 0x5a93a281
mov dword [rsp + 0x54], 0x5a39d4f2
mov dword [rsp + 0x58], 0x5aa5a289
mov dword [rsp + 0x5c], 0x5a39d4e4
mov dword [rsp + 0x60], 0x5aa19a75
mov dword [rsp + 0x64], 0x5a39d4e7
mov dword [rsp + 0x68], 0x5aa7a289
mov dword [rsp + 0x6c], 0x5a39d4e8
mov dword [rsp + 0x70], 0x5a93a289
mov dword [rsp + 0x74], 0x5a39d4eb
mov dword [rsp + 0x78], 0x5a92a289
mov dword [rsp + 0x7c], 0x5a39d4ef
mov dword [rbp - 0x80], 0x5a92a281
mov dword [rbp - 0x7c], 0x5a39d4c3
mov dword [rbp - 0x78], 0x5aaaacef
mov dword [rbp - 0x74], 0x5a39d4fd
mov dword [rbp - 0x70], 0x5a38d4e6
mov dword [rbp - 0x6c], 0x5a39d507
mov dword [rbp - 0x68], 0x5a96a281
mov dword [rbp - 0x64], 0x5a39d455
mov dword [rbp - 0x60], 0x5aa2a281
mov dword [rbp - 0x5c], 0x5a39d4e7
mov dword [rbp - 0x58], 0x5aa3a281
mov dword [rbp - 0x54], 0x5a39d4e7
mov dword [rbp - 0x50], 0x5aa4a281
mov dword [rbp - 0x4c], 0x5a39d4e7
mov dword [rbp - 0x48], 0x68636952
mov dword [rbp - 0x44], 0x5a39d4e6
call sym.TEEDriverW10.dll_DriverPackageGetPathW
xor edx, edx
lea r8d, [rdx + 0x7f]
lea rcx, [rsp + 0x31]
mov byte [rsp + 0x30], al
call fcn.1802246b0
mov ecx, 0x408
call fcn.180005518
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x30]
mov rbx, rax
xor eax, eax
lea rdx, [rsp + 0x30]
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
mov rcx, rbx
call fcn.180001164
lea rdx, section.text
mov r8d, 0x2d9360
mov rcx, rbx
call fcn.1800011f8
mov ecx, 2
shr ecx, 1
jne 0x180004b30
lea rdx, [0x180592480]
mov r8d, 0xf0ee0
mov rcx, r13
call fcn.180001128
lea r9, [rsp + 0x20]
mov edx, 0x2d9360
mov r8d, 0x40
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
xor ecx, ecx
call fcn.180223d28
mov rcx, rax
call fcn.180223d88
xorpd xmm7, xmm7
movsd xmm0, qword [0x18027ec00]
movapd xmm8, xmm7
subsd xmm0, qword [0x18027ebf8]
mulsd xmm0, qword [0x18027ebf0]
addsd xmm8, xmm0
movapd xmm0, xmm8
mulsd xmm0, qword [0x18027ebf0]
addsd xmm7, xmm0
call fcn.180223da0
mov edi, eax
mov eax, 0x66666667
imul edi
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*4]
sub edi, ecx
sub edi, 3
comisd xmm7, xmmword [0x18027ebe8]
movd xmm0, edi
cvtdq2pd xmm0, xmm0
divsd xmm0, qword [0x18027ebf0]
addsd xmm0, qword [0x18027ec00]
jae 0x180004b7f
mov r8, r12
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_HeapDestroy]
call r13
xor eax, eax
jmp 0x180004946
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x1800047b4