Function at 0x4d87f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov ebx, dword [ebp + 8]
mov eax, dword [0x7aa024]
xor eax, ebp
mov dword [esp + 0x78], eax
mov edi, 0x80004003
test ebx, ebx
je 0x4d8b21
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4d8b21
mov esi, ecx
xor edi, edi
mov dword [eax], edi
push ebx
call fcn.0066b526
add esp, 4
lea ecx, [eax + eax]
cmp eax, 0x32
mov eax, 0x3e8
cmovge eax, ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], eax
add eax, eax
jae 0x4d885b
mov dword [esp + 0x28], 0
jmp 0x4d8b12
push eax
call dword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov dword [esp + 0x28], eax
test eax, eax
je 0x4d8873
mov word [eax], 0
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4d8b12
mov dword [esi], ebx
cmp word [ebx], 0
je 0x4d8b43
mov dword [esp + 0x10], 0
mov al, byte [0x7af16d]
mov byte [esp + 0xb], al
mov edi, dword [sym.imp.USER32.dll_CharNextW]
mov dword [esp + 0x14], 0
xor eax, eax
mov dword [esp + 0x18], esi
cmp byte [esp + 0xb], 0
mov dword [esp + 0xc], eax
je 0x4d88d3
test eax, eax
je 0x4d88e6
mov ebx, dword [esp + 0x10]
mov eax, dword [esi]
cmp word [eax], 0x27
jne 0x4d88dc
test bl, 1
jne 0x4d8933
mov bl, 1
jmp 0x4d897e
mov ebx, dword [esp + 0x10]
jmp 0x4d897e
test bl, 1
je 0x4d8959
jmp 0x4d897e
push str.HKCR
push ebx
call fcn.00650d02
add esp, 8
test eax, eax
je 0x4d88bb
cmp eax, dword [esi]
mov ebx, dword [esp + 0x10]
jne 0x4d88bf
push eax
call edi
mov dword [esi], eax
push eax
call edi
mov dword [esi], eax
push eax
call edi
mov dword [esi], eax
push eax
call edi
mov dword [esi], eax
lea ecx, [esp + 0x20]
push 0x1f
push str.HKCU_r_n_tSoftware_r_n_t_r_n_t_tClasses
call fcn.004d97c0
mov cl, 1
mov dword [esp + 0x14], ecx
test eax, eax
jne 0x4d88bf
jmp 0x4d8b12
push eax
call edi
cmp word [eax], 0x27
jne 0x4d8957
push dword [esi]
call edi
mov dword [esi], eax
lea ecx, [esp + 0x20]
push 1
push eax
call fcn.004d97c0
test eax, eax
jne 0x4d897e
jmp 0x4d8b12
xor ebx, ebx
mov eax, dword [esi]
movzx eax, word [eax]
xor ecx, ecx
cmp ax, 0x7b
sete cl
mov edx, dword [esp + 0xc]
add edx, ecx
cmp ax, 0x7d
jne 0x4d897a
dec edx
je 0x4d8a55
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
mov eax, dword [esi]
cmp word [eax], 0x25
jne 0x4d89a3
push eax
call edi
mov ebx, eax
mov dword [esi], eax
movzx eax, word [eax]
cmp ax, 0x25
jne 0x4d89d2
lea ecx, [esp + 0x20]
push 1
push ebx
jmp 0x4d89aa
lea ecx, [esp + 0x20]
push 1
push eax
call fcn.004d97c0
test eax, eax
je 0x4d8b12
push dword [esi]
call edi
mov ebx, eax
mov dword [esi], eax
cmp word [eax], 0
mov eax, dword [esp + 0xc]
jne 0x4d88ac
jmp 0x4d8b3f
mov esi, edi
mov edi, 0x80020009
test ebx, ebx
je 0x4d8b17
test ax, ax
je 0x4d8b17
movzx eax, ax
cmp eax, 0x25
je 0x4d89fc
push ebx
call esi
mov ebx, eax
movzx eax, word [eax]
jmp 0x4d89e1
test ebx, ebx
je 0x4d8b17
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, ebx
sub ecx, eax
cmp ecx, 0x3e
jg 0x4d8b38
sar ecx, 1
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x60], xmm0
movdqa xmmword [esp + 0x50], xmm0
movdqa xmmword [esp + 0x40], xmm0
movdqa xmmword [esp + 0x30], xmm0
push ecx
push eax
push 0x20
lea eax, [esp + 0x3c]
push eax
call fcn.0066bf07
add esp, 0x10
cmp eax, 0x15
jle 0x4d8a6d
cmp eax, 0x50
je 0x4d8a75
jmp 0x4d8b5f
test byte [esp + 0x14], 1
jne 0x4d8aed
mov dword [esp + 0xc], 0
jmp 0x4d897e
test eax, eax
jne 0x4d8b73
mov eax, dword [esp + 0x18]
mov edi, dword [eax + 4]
lea eax, [esp + 0x30]
mov dword [esp + 0x2c], eax
lea eax, [edi + 0x10]
mov dword [esp + 0x1c], eax
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add edi, 4
mov ecx, edi
lea eax, [esp + 0x2c]
push eax
call fcn.0068c550
mov edi, eax
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x4d8b58
push edi
call fcn.0066b526
add esp, 4
lea ecx, [esp + 0x20]
push eax
push edi
call fcn.004d97c0
test eax, eax
je 0x4d8b12
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
cmp eax, ebx
mov edi, esi
mov esi, ecx
je 0x4d89b7
push eax
call edi
mov dword [esi], eax
cmp eax, ebx
jne 0x4d8adf
jmp 0x4d89b7
lea ecx, [esp + 0x20]
push 9
push str._r_n_t_r_n_r_n
call fcn.004d97c0
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], 0
jmp 0x4d894e
mov edi, 0x8007000e
push dword [esp + 0x28]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.0064d372
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov edi, 0x80004005
jmp 0x4d8b17
mov eax, dword [esp + 0x28]
xor edi, edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x4d8b17
mov edi, 0x80020009
jmp 0x4d8b17
cmp eax, 0x16
je 0x4d8b69
cmp eax, 0x22
jne 0x4d8b82
push 0x80070057
call fcn.006a9890
cmp eax, 0xc
jne 0x4d8b82
push 0x8007000e
call fcn.006a9890
push 0x80004005
call fcn.006a9890
int3