Function at 0x44bdb0
Capabilities:
Access peb ldr_data
Encode data using xor
Get number of processors
Hash data using fnv
Hide graphical window
Resolve function by parsing pe exports

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x473220
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x38
push esi
push edi
mov eax, dword [0x48b040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0xb
xorps xmm0, xmm0
mov dword [ebp - 0x34], 0
push str.config.json
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x30], 0
movups xmmword [ebp - 0x44], xmm0
call fcn.0043a820
mov edx, 0x48d3ac
lea ecx, [ebp - 0x44]
call fcn.00438380
mov ecx, dword [ebp - 0x30]
cmp ecx, 0xf
jbe 0x44be50
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44be46
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c76c
push ecx
push edx
call fcn.0044c982
add esp, 8
mov eax, dword [0x48d3b0]
mov dword [0x48bb54], eax
mov eax, dword [0x48d3ac]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
mov dword [0x48d3a4], eax
mov eax, dword [0x48d3bc]
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x44bf42
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [ebp - 0x1c], eax
mov edx, eax
mov dword [ebp - 0x18], ecx
nop
mov ecx, dword [ecx + 0x18]
mov dword [ebp - 0x20], ecx
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax + ecx + 0x78]
add eax, ecx
mov dword [ebp - 0x28], eax
cmp eax, ecx
je 0x44bf1f
mov edi, dword [eax + 0x18]
test edi, edi
je 0x44bf1f
mov eax, dword [eax + 0x20]
lea eax, [eax + edi*4]
add eax, ecx
mov edx, dword [eax - 4]
sub eax, 4
add edx, ecx
mov dword [ebp - 0x24], eax
dec edi
mov esi, 0x781174d2
mov al, byte [edx]
inc edx
test al, al
je 0x44bf15
nop dword [eax]
movsx ecx, al
lea edx, [edx + 1]
sub al, 0x41
mov byte [ebp - 0x11], al
mov eax, ecx
or eax, 0x20
cmp byte [ebp - 0x11], 0x19
cmova eax, ecx
xor eax, esi
imul esi, eax, 0x1000193
mov al, byte [edx - 1]
test al, al
jne 0x44bee0
cmp esi, 0x34f52eba
je 0x44c394
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
test edi, edi
jne 0x44bec5
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0x18], ecx
cmp eax, edx
je 0x44bf37
cmp dword [ecx + 0x18], 0
jne 0x44bea0
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov dword [0x48d3bc], ecx
mov eax, dword [0x48d3d0]
test eax, eax
jne 0x44c006
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [ebp - 0x20], eax
mov edx, eax
mov dword [ebp - 0x18], ecx
mov ecx, dword [ecx + 0x18]
mov dword [ebp - 0x28], ecx
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax + ecx + 0x78]
add eax, ecx
mov dword [ebp - 0x2c], eax
cmp eax, ecx
je 0x44bfe7
mov edi, dword [eax + 0x18]
test edi, edi
je 0x44bfe7
mov eax, dword [eax + 0x20]
lea eax, [eax + edi*4]
add eax, ecx
nop dword [eax]
mov edx, dword [eax - 4]
sub eax, 4
add edx, ecx
mov dword [ebp - 0x24], eax
dec edi
mov esi, 0x79117665
mov al, byte [edx]
inc edx
test al, al
je 0x44bfdd
movsx ecx, al
lea edx, [edx + 1]
sub al, 0x41
mov byte [ebp - 0x11], al
mov eax, ecx
or eax, 0x20
cmp byte [ebp - 0x11], 0x19
cmova eax, ecx
xor eax, esi
imul esi, eax, 0x1000193
mov al, byte [edx - 1]
test al, al
jne 0x44bfa8
cmp esi, 0x22b6ad5c
je 0x44c3b5
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
test edi, edi
jne 0x44bf90
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0x18], ecx
cmp eax, edx
je 0x44bfff
cmp dword [ecx + 0x18], 0
jne 0x44bf67
xor eax, eax
mov dword [0x48d3d0], eax
push str.win32u
call eax
push str.NtUserSendInput
push eax
call dword [ebp - 0x1c]
mov ecx, eax
test ecx, ecx
jne 0x44c45a
mov eax, dword [0x48d3c8]
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x44c0f2
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [ebp - 0x20], eax
mov edx, eax
mov dword [ebp - 0x1c], ecx
nop dword [eax + eax]
mov ecx, dword [ecx + 0x18]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax + ecx + 0x78]
add eax, ecx
mov dword [ebp - 0x24], eax
cmp eax, ecx
je 0x44c0cf
mov edi, dword [eax + 0x18]
test edi, edi
je 0x44c0cf
mov eax, dword [eax + 0x20]
lea eax, [eax + edi*4]
add eax, ecx
mov edx, dword [eax - 4]
sub eax, 4
add edx, ecx
mov dword [ebp - 0x28], eax
dec edi
mov esi, 0x7e2088ce
mov al, byte [edx]
inc edx
test al, al
je 0x44c0c5
nop dword [eax]
movsx ecx, al
lea edx, [edx + 1]
sub al, 0x41
mov byte [ebp - 0x11], al
mov eax, ecx
or eax, 0x20
cmp byte [ebp - 0x11], 0x19
cmova eax, ecx
xor eax, esi
imul esi, eax, 0x1000193
mov al, byte [edx - 1]
test al, al
jne 0x44c090
cmp esi, 0xe4a2b83e
je 0x44c3d6
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
test edi, edi
jne 0x44c075
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0x1c], ecx
cmp eax, edx
je 0x44c0e7
cmp dword [ecx + 0x18], 0
jne 0x44c050
xor ecx, ecx
mov dword [ebp - 0x18], ecx
mov dword [0x48d3c8], ecx
mov eax, dword [0x48d3cc]
test eax, eax
jne 0x44c1b6
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [ebp - 0x20], eax
mov edx, eax
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ecx + 0x18]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax + ecx + 0x78]
add eax, ecx
mov dword [ebp - 0x24], eax
cmp eax, ecx
je 0x44c197
mov edi, dword [eax + 0x18]
test edi, edi
je 0x44c197
mov eax, dword [eax + 0x20]
lea eax, [eax + edi*4]
add eax, ecx
nop dword [eax]
mov edx, dword [eax - 4]
sub eax, 4
add edx, ecx
mov dword [ebp - 0x28], eax
dec edi
mov esi, 0x7f208a61
mov al, byte [edx]
inc edx
test al, al
je 0x44c18d
movsx ecx, al
lea edx, [edx + 1]
sub al, 0x41
mov byte [ebp - 0x11], al
mov eax, ecx
or eax, 0x20
cmp byte [ebp - 0x11], 0x19
cmova eax, ecx
xor eax, esi
imul esi, eax, 0x1000193
mov al, byte [edx - 1]
test al, al
jne 0x44c158
cmp esi, 0x1a7f1610
je 0x44c3f7
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
test edi, edi
jne 0x44c140
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0x1c], ecx
cmp eax, edx
je 0x44c1af
cmp dword [ecx + 0x18], 0
jne 0x44c117
xor eax, eax
mov dword [0x48d3cc], eax
push str.user32
call eax
push str.NtUserSendInput
push eax
call dword [ebp - 0x18]
mov ecx, eax
test ecx, ecx
jne 0x44c45a
mov eax, dword [0x48d3c0]
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x44c2a2
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [ebp - 0x20], eax
mov edx, eax
mov dword [ebp - 0x1c], ecx
nop dword [eax + eax]
mov ecx, dword [ecx + 0x18]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax + ecx + 0x78]
add eax, ecx
mov dword [ebp - 0x24], eax
cmp eax, ecx
je 0x44c27f
mov edi, dword [eax + 0x18]
test edi, edi
je 0x44c27f
mov eax, dword [eax + 0x20]
lea eax, [eax + edi*4]
add eax, ecx
mov edx, dword [eax - 4]
sub eax, 4
add edx, ecx
mov dword [ebp - 0x28], eax
dec edi
mov esi, 0x2f670be9
mov al, byte [edx]
inc edx
test al, al
je 0x44c275
nop dword [eax]
movsx ecx, al
lea edx, [edx + 1]
sub al, 0x41
mov byte [ebp - 0x11], al
mov eax, ecx
or eax, 0x20
cmp byte [ebp - 0x11], 0x19
cmova eax, ecx
xor eax, esi
imul esi, eax, 0x1000193
mov al, byte [edx - 1]
test al, al
jne 0x44c240
cmp esi, 0x6712af11
je 0x44c418
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
test edi, edi
jne 0x44c225
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0x1c], ecx
cmp eax, edx
je 0x44c297
cmp dword [ecx + 0x18], 0
jne 0x44c200
xor ecx, ecx
mov dword [ebp - 0x18], ecx
mov dword [0x48d3c0], ecx
mov eax, dword [0x48d3c4]
test eax, eax
jne 0x44c366
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [ebp - 0x20], eax
mov edx, eax
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ecx + 0x18]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax + ecx + 0x78]
add eax, ecx
mov dword [ebp - 0x24], eax
cmp eax, ecx
je 0x44c347
mov edi, dword [eax + 0x18]
test edi, edi
je 0x44c347
mov eax, dword [eax + 0x20]
lea eax, [eax + edi*4]
add eax, ecx
nop dword [eax]
mov edx, dword [eax - 4]
sub eax, 4
add edx, ecx
mov dword [ebp - 0x28], eax
dec edi
mov esi, 0x2e670a56
mov al, byte [edx]
inc edx
test al, al
je 0x44c33d
movsx ecx, al
lea edx, [edx + 1]
sub al, 0x41
mov byte [ebp - 0x11], al
mov eax, ecx
or eax, 0x20
cmp byte [ebp - 0x11], 0x19
cmova eax, ecx
xor eax, esi
imul esi, eax, 0x1000193
mov al, byte [edx - 1]
test al, al
jne 0x44c308
cmp esi, 0x8bf7231b
je 0x44c439
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
test edi, edi
jne 0x44c2f0
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0x1c], ecx
cmp eax, edx
je 0x44c35f
cmp dword [ecx + 0x18], 0
jne 0x44c2c7
xor eax, eax
mov dword [0x48d3c4], eax
push str.user32
call eax
push str.SendInput
push eax
call dword [ebp - 0x18]
mov ecx, eax
test ecx, ecx
jne 0x44c45a
mov edx, str.____Still_searching_for_functions..._n
mov ecx, 0x48c778
call fcn.004416d0
jmp 0x44be76
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x18]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add eax, dword [edx + 0x18]
add ecx, dword [edx + 0x18]
movzx eax, word [eax + edi*2]
mov ecx, dword [ecx + eax*4]
add ecx, dword [edx + 0x18]
jmp 0x44bf39
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x18]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add eax, dword [edx + 0x18]
add ecx, dword [edx + 0x18]
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, dword [edx + 0x18]
jmp 0x44c001
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add eax, dword [edx + 0x18]
add ecx, dword [edx + 0x18]
movzx eax, word [eax + edi*2]
mov ecx, dword [ecx + eax*4]
add ecx, dword [edx + 0x18]
jmp 0x44c0e9
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add eax, dword [edx + 0x18]
add ecx, dword [edx + 0x18]
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, dword [edx + 0x18]
jmp 0x44c1b1
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add eax, dword [edx + 0x18]
add ecx, dword [edx + 0x18]
movzx eax, word [eax + edi*2]
mov ecx, dword [ecx + eax*4]
add ecx, dword [edx + 0x18]
jmp 0x44c299
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add eax, dword [edx + 0x18]
add ecx, dword [edx + 0x18]
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, dword [edx + 0x18]
jmp 0x44c361
movups xmm0, xmmword [ecx]
push 0
movups xmmword [0x48d384], xmm0
movq xmm0, qword [ecx + 0x10]
movq qword [0x48d394], xmm0
mov eax, dword [ecx + 0x18]
mov dword [0x48d39c], eax
mov ax, word [ecx + 0x1c]
mov word [0x48d3a0], ax
mov dword [0x48d300], 0x30
mov dword [0x48d304], 0x40
mov dword [0x48d308], 0x439540
mov dword [0x48d30c], 0
mov dword [0x48d310], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
xorps xmm0, xmm0
mov dword [0x48d314], eax
push 0x48d300
movups xmmword [0x48d318], xmm0
mov dword [0x48d328], 0x4833f8
mov dword [0x48d32c], 0
call dword [sym.imp.USER32.dll_RegisterClassExA]
push 0
push dword [0x48d314]
push 0
push 0
push 0x12c
push 0xfa
push 0x64
push 0x64
push 0x80000000
push str.superglide
push str.superglide_class
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
push 2
push 0xff
push 0
push eax
mov dword [0x48d2f8], eax
call dword [sym.imp.USER32.dll_SetLayeredWindowAttributes]
push 0xa
push dword [0x48d2f8]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [0x48d2f8]
call dword [sym.imp.USER32.dll_UpdateWindow]
push 0x20
mov dword [ebp - 4], 0
call dword [sym.imp.d3d9.dll_Direct3DCreate9]
mov ecx, eax
mov dword [0x48d2f4], ecx
test ecx, ecx
je 0x44c5f1
push 0x48d2fc
push 0x48d330
push 0x40
push dword [0x48d2f8]
xorps xmm0, xmm0
mov dword [0x48d344], 0
push 1
movlpd qword [0x48d330], xmm0
movlpd qword [0x48d33c], xmm0
mov dword [0x48d34c], 0
movlpd qword [0x48d35c], xmm0
mov dword [0x48d350], 1
mov dword [0x48d348], 1
mov dword [0x48d338], 0
mov dword [0x48d354], 1
mov dword [0x48d358], 0x50
mov dword [0x48d364], 1
mov eax, dword [ecx]
push 0
push ecx
call dword [eax + 0x40]
call fcn.00439800
cmp byte [0x48bb30], 0
je 0x44c6f6
call fcn.00439c80
call fcn.00439ed0
mov dword [ebp - 4], 1
call fcn.004095d0
mov ecx, dword [0x48d2fc]
push 0
push 7
push ecx
mov eax, dword [ecx]
call dword [eax + 0xe4]
mov ecx, dword [0x48d2fc]
push 0
push 0x1b
push ecx
mov eax, dword [ecx]
call dword [eax + 0xe4]
mov ecx, dword [0x48d2fc]
push 0
push 0xae
push ecx
mov eax, dword [ecx]
call dword [eax + 0xe4]
mov ecx, dword [0x48d2fc]
push 0
push ecx
mov dword [esp], 0x3f800000
mov eax, dword [ecx]
push 0
push 3
push 0
push 0
push ecx
call dword [eax + 0xac]
mov eax, dword [0x48d2fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xa4]
test eax, eax
js 0x44c6b7
call fcn.004099a0
mov eax, dword [0x48d2c8]
xor ecx, ecx
mov eax, dword [eax + 0x4a34]
mov eax, dword [eax]
add eax, 0x3c
cmp byte [eax], cl
cmovne ecx, eax
call fcn.0042ba20
mov eax, dword [0x48d2fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xa8]
mov ecx, dword [0x48d2fc]
push 0
push 0
push 0
mov eax, dword [ecx]
push 0
push ecx
call dword [eax + 0x44]
cmp eax, 0x88760868
jne 0x44c6e9
mov eax, dword [0x48d2fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
cmp eax, 0x88760869
jne 0x44c6e9
call fcn.00439730
cmp byte [0x48bb30], 0
jne 0x44c603
call fcn.00439a40
mov dword [ebp - 4], 2
mov ecx, dword [0x48d2fc]
test ecx, ecx
je 0x44c71c
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x48d2fc], 0
mov ecx, dword [0x48d2f4]
test ecx, ecx
je 0x44c736
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x48d2f4], 0
push dword [0x48d2f8]
call dword [sym.imp.USER32.dll_DestroyWindow]
push dword [0x48d314]
push dword [0x48d328]
call dword [sym.imp.USER32.dll_UnregisterClassA]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10
call fcn.0045ccb6
int3