Function at 0x45ae50
Capabilities:
Accept command line arguments
Link many functions at runtime
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a3765
mov eax, dword fs:[0]
push eax
sub esp, 0xec
mov eax, dword [0x4ce4bc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0xf0], esi
mov dword [ebp - 0xdc], esi
mov ebx, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0xf8], esi
xor ecx, ecx
mov dword [ebp - 0xdc], eax
mov dword [esi + 4], eax
mov dword [ebp - 0xf4], ebx
mov dword [ebp - 0xd4], eax
mov dword [esi], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], 7
mov word [esi + 4], cx
mov edi, 7
mov dword [ebp - 0x28], ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0xd8], edi
mov dword [ebp - 0x14], edi
mov word [ebp - 0x28], ax
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push str._PerfTool
push eax
call sub.VCRUNTIME140.dll_wcsstr
add esp, 8
test eax, eax
je 0x45b040
cmp dword [ebx + 0x10], 0
jne 0x45af16
lea eax, [ebp - 0x40]
push eax
call fcn.0045bab0
add esp, 4
mov ecx, eax
mov byte [ebp - 4], 2
lea edx, [edi - 6]
jmp 0x45af26
push ebx
lea ecx, [ebp - 0x58]
call fcn.00401f70
mov ecx, eax
mov edx, 2
lea eax, [ebp - 0x28]
mov dword [ebp - 0xd4], edx
cmp eax, ecx
je 0x45af71
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 0x14]
mov ebx, dword [ecx]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0x20], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0xd8], edi
mov dword [ebp - 0x14], edi
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
jmp 0x45af74
mov ebx, dword [ebp - 0x28]
test dl, 2
je 0x45afd2
mov eax, dword [ebp - 0x44]
and edx, 0xfffffffd
mov dword [ebp - 0xd4], edx
cmp eax, 8
jb 0x45afbe
mov ecx, dword [ebp - 0x58]
lea edx, [eax*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x45afae
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45b017
push edx
push ecx
call fcn.0049995e
mov edx, dword [ebp - 0xd4]
add esp, 8
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
mov dword [ebp - 4], 1
test dl, 1
je 0x45b3eb
and edx, 0xfffffffe
mov dword [ebp - 0xd4], edx
mov edx, dword [ebp - 0x2c]
cmp edx, 8
jb 0x45b027
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x45b01d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x45b01d
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.0049995e
add esp, 8
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
jmp 0x45b3eb
push 6
xor eax, eax
mov dword [ebp - 0x88], 0
push str.switch
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 7
mov word [ebp - 0x88], ax
call fcn.00404580
push 0x2d
push str.SOFTWAREKingsoftOffice6.0pluginsperftool
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 3
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 7
call fcn.00404580
cmp dword [ebp - 0x74], 8
lea edx, [ebp - 0xec]
push edx
lea edx, [ebp - 0xe0]
mov dword [ebp - 0xe0], 0
push edx
lea ecx, [ebp - 0x88]
mov dword [ebp - 0xec], 4
cmovae ecx, dword [ebp - 0x88]
lea eax, [ebp - 0xa0]
cmp dword [ebp - 0x8c], 8
push 0
cmovae eax, dword [ebp - 0xa0]
push ecx
push eax
push 0x80000001
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
mov edi, dword [ebp - 0xe0]
xor ecx, ecx
mov edx, dword [ebp - 0x8c]
test eax, eax
cmovne edi, ecx
cmp edx, 8
jb 0x45b146
mov ecx, dword [ebp - 0xa0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x45b13c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45b196
push edx
push ecx
call fcn.0049995e
add esp, 8
mov edx, dword [ebp - 0x74]
xor eax, eax
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 7
mov word [ebp - 0xa0], ax
mov byte [ebp - 4], 1
cmp edx, 8
jb 0x45b1a6
mov ecx, dword [ebp - 0x88]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x45b19c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x45b19c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.0049995e
add esp, 8
xor eax, eax
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 7
mov word [ebp - 0x88], ax
test edi, edi
je 0x45b5c4
push eax
mov dword [ebp - 0x58], eax
lea ecx, [ebp - 0x58]
push 0x4a9810
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
call fcn.00404580
push 3
xor eax, eax
mov dword [ebp - 0x40], 0
push 0x4b02ec
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 4
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
call fcn.00404580
push 0x2d
xor eax, eax
mov dword [ebp - 0xb8], 0
push str.SOFTWAREKingsoftOffice6.0pluginsperftool
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 5
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 7
mov word [ebp - 0xb8], ax
call fcn.00404580
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0xd0]
push 0x80000001
push eax
call fcn.0045bfa0
add esp, 0x14
lea ecx, [ebp - 0x28]
push eax
call fcn.004023b0
mov edx, dword [ebp - 0xbc]
cmp edx, 8
jb 0x45b2bf
mov ecx, dword [ebp - 0xd0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x45b2b5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45b3bb
push edx
push ecx
call fcn.0049995e
add esp, 8
mov edx, dword [ebp - 0xa4]
xor eax, eax
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 7
mov word [ebp - 0xd0], ax
mov byte [ebp - 4], 5
cmp edx, 8
jb 0x45b320
mov ecx, dword [ebp - 0xb8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x45b316
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45b3bb
push edx
push ecx
call fcn.0049995e
add esp, 8
mov edx, dword [ebp - 0x2c]
xor eax, eax
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 7
mov word [ebp - 0xb8], ax
mov byte [ebp - 4], 4
cmp edx, 8
jb 0x45b377
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x45b36d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45b3bb
push edx
push ecx
call fcn.0049995e
add esp, 8
mov edx, dword [ebp - 0x44]
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
mov byte [ebp - 4], 1
cmp edx, 8
jb 0x45b3cb
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x45b3c1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x45b3c1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.0049995e
add esp, 8
mov edi, dword [ebp - 0x14]
xor eax, eax
mov ebx, dword [ebp - 0x28]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
mov dword [ebp - 0xd8], edi
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x45b426
cmp edi, 8
jb 0x45b5c4
lea edi, [edi*2 + 2]
mov eax, ebx
cmp edi, 0x1000
jb 0x45b420
mov ebx, dword [ebx - 4]
add edi, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45b75f
push edi
jmp 0x45b5bb
mov eax, 0x7ffffffe
sub eax, ecx
cmp eax, 0xd
jb 0x45b765
cmp edi, 8
mov dword [ebp - 0x70], 0
lea eax, [ebp - 0x28]
mov esi, 7
cmovae eax, ebx
lea edi, [ebp - 0x70]
mov dword [ebp - 0xdc], eax
lea eax, [ecx + 0xd]
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], edi
cmp eax, esi
jbe 0x45b4a5
mov esi, eax
or esi, 7
cmp esi, 0x7ffffffe
jbe 0x45b47b
mov esi, 0x7ffffffe
jmp 0x45b485
mov eax, 0xa
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x70]
call fcn.00401c70
mov ecx, dword [ebp - 0x18]
mov edi, eax
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0xe4], edi
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x5c], esi
lea esi, [ecx + ecx]
push esi
push dword [ebp - 0xdc]
mov dword [ebp - 0x60], eax
push edi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0xe4]
add edi, esi
mov ecx, 6
mov esi, str.perftool.dll
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0xe8]
xor edx, edx
add esp, 0xc
movsw word es:[edi], word [esi]
mov word [eax + ecx*2], dx
mov eax, dword [ebp - 0xd4]
or eax, 4
mov dword [ebp - 0xdc], eax
mov esi, dword [ebp - 0xf0]
mov byte [ebp - 4], 7
mov eax, dword [esi]
test eax, eax
je 0x45b50c
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [esi], 0
lea eax, [ebp - 0x70]
lea ecx, [esi + 4]
cmp ecx, eax
je 0x45b527
cmp dword [ebp - 0x5c], 8
push dword [ebp - 0x60]
cmovae eax, dword [ebp - 0x70]
push eax
call fcn.00404580
mov edx, dword [ebp - 0x5c]
mov byte [ebp - 4], 1
cmp edx, 8
jb 0x45b565
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x45b55b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45b75f
push edx
push ecx
call fcn.0049995e
add esp, 8
push dword [ebp - 0xf4]
xor eax, eax
mov dword [ebp - 0x60], 0
mov ecx, esi
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
call fcn.0045bd10
test al, al
jne 0x45b5e4
mov eax, dword [ebp - 0xd8]
cmp eax, 8
jb 0x45b5c4
lea ecx, [eax*2 + 2]
mov eax, ebx
cmp ecx, 0x1000
jb 0x45b5ba
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45b75f
push ecx
push ebx
call fcn.0049995e
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0049996c
mov esp, ebp
pop ebp
ret 4
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov byte [0x4d58f8], 1
mov eax, dword [esi]
test eax, eax
je 0x45b601
push str.PerfToolInit
push eax
call edi
jmp 0x45b603
xor eax, eax
mov dword [0x4d58fc], eax
mov eax, dword [esi]
test eax, eax
je 0x45b618
push str.PerfToolTerm
push eax
call edi
jmp 0x45b61a
xor eax, eax
mov dword [0x4d5900], eax
mov eax, dword [esi]
test eax, eax
je 0x45b62f
push str.PerfToolTermForce
push eax
call edi
jmp 0x45b631
xor eax, eax
mov dword [0x4d5904], eax
mov eax, dword [esi]
test eax, eax
je 0x45b646
push str.PerfLogBegin
push eax
call edi
jmp 0x45b648
xor eax, eax
mov dword [0x4d5908], eax
mov eax, dword [esi]
test eax, eax
je 0x45b65d
push str.PerfLogEnd
push eax
call edi
jmp 0x45b65f
xor eax, eax
mov dword [0x4d590c], eax
mov eax, dword [esi]
test eax, eax
je 0x45b674
push str.PerfLogBegin2
push eax
call edi
jmp 0x45b676
xor eax, eax
mov dword [0x4d5910], eax
mov eax, dword [esi]
test eax, eax
je 0x45b68b
push str.PerfLogEnd2
push eax
call edi
jmp 0x45b68d
xor eax, eax
mov dword [0x4d5914], eax
mov eax, dword [esi]
test eax, eax
je 0x45b6a2
push str.AddToStrTable
push eax
call edi
jmp 0x45b6a4
xor eax, eax
mov dword [0x4d5918], eax
mov eax, dword [esi]
test eax, eax
je 0x45b6b9
push str.PerfStubBegin
push eax
call edi
jmp 0x45b6bb
xor eax, eax
mov dword [0x4d591c], eax
mov eax, dword [esi]
test eax, eax
je 0x45b6d0
push str.PerfStubEnd
push eax
call edi
jmp 0x45b6d2
xor eax, eax
mov dword [0x4d5920], eax
mov eax, dword [esi]
test eax, eax
je 0x45b6e7
push str.PerfToolGetLogFilePath
push eax
call edi
jmp 0x45b6e9
xor eax, eax
mov dword [0x4d5924], eax
mov eax, dword [esi]
test eax, eax
je 0x45b6fe
push str.PerfToolGetBeginPerfCount
push eax
call edi
jmp 0x45b700
xor eax, eax
mov dword [0x4d5928], eax
mov eax, dword [esi]
test eax, eax
je 0x45b715
push str.PerfToolSetUIStable
push eax
call edi
jmp 0x45b717
xor eax, eax
mov dword [0x4d592c], eax
mov eax, dword [0x4d58fc]
test eax, eax
je 0x45b727
call eax
mov eax, dword [ebp - 0xd8]
cmp eax, 8
jb 0x45b5c4
lea ecx, [eax*2 + 2]
mov eax, ebx
cmp ecx, 0x1000
jb 0x45b5ba
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x45b5ba
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.00401c50
int3