Function at 0x4b1390
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4f5f84
mov eax, dword fs:[0]
push eax
sub esp, 0x74
push ebx
push ebp
push esi
push edi
mov eax, dword [0x536ed4]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x18], esi
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4b13eb
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
call edx
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 8]
test eax, eax
je 0x4b2d39
mov eax, dword [eax + 0x18]
not eax
mov ebx, 1
and eax, ebx
push eax
push str.ShowTrayIcon
push str.General
mov ecx, 0x54b0b0
call fcn.004c5406
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 0x18]
shr edx, 2
not edx
and edx, ebx
push edx
push str.JDPopup
push str.General
mov ecx, 0x54b0b0
call fcn.004c5406
mov eax, dword [esi + 8]
test byte [eax + 0x1a], bl
jne 0x4b144b
test byte [eax + 0x1c], 0x10
je 0x4b15be
mov eax, dword [eax + 0x1b70]
test eax, eax
mov dword [esp + 0x20], eax
je 0x4b15be
lea ecx, [ecx]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4b1725
mov ebp, dword [eax + 8]
test ebp, ebp
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
je 0x4b15ae
lea edx, [esp + 0x24]
push edx
lea edi, [ebp + 0x6c]
xor ebx, ebx
mov dword [esp + 0x28], 0
call fcn.0048c120
test eax, eax
je 0x4b14b3
mov eax, dword [esp + 0x24]
push ebx
push 0x546454
push 0x5464b0
push ebx
push eax
call fcn.004d0049
add esp, 0x14
jmp 0x4b14b5
xor eax, eax
push 0
push 0x546df4
push 0x546454
push 0
push eax
call fcn.004d0049
mov ebx, eax
add esp, 0x14
test ebx, ebx
je 0x4b15ae
cmp dword [ebp + 0xb8], 0
je 0x4b15ae
test byte [ebp + 0x1e8], 1
je 0x4b1546
push ebx
lea esi, [esp + 0x28]
mov dword [esp + 0x28], 0
call fcn.0043a160
test eax, eax
je 0x4b1509
cmp dword [esp + 0x24], 0
je 0x4b1530
push ebx
lea edi, [esp + 0x30]
mov ecx, 0x509e34
mov word [esp + 0x30], 0x13
mov dword [esp + 0x38], 0
call fcn.0043a320
mov ecx, edi
push ecx
call dword [sym.imp.ole32.dll_PropVariantClear]
push 1
push ebx
mov ecx, 1
mov edx, 0x50a3f4
call fcn.004398f0
mov esi, dword [esp + 0x18]
cmp dword [ebp + 0xb8], 0
je 0x4b15ae
test dword [ebp + 0x1e0], 0x100
je 0x4b15ae
xor edi, edi
push ebx
lea esi, [esp + 0x28]
mov dword [esp + 0x28], edi
call fcn.0043a160
test eax, eax
je 0x4b1575
cmp dword [esp + 0x24], edi
je 0x4b1598
mov dword [esp + 0x44], edi
push ebx
lea edi, [esp + 0x40]
mov ecx, 0x509e34
mov word [esp + 0x40], 0x13
call fcn.0043a320
mov edx, edi
push edx
call dword [sym.imp.ole32.dll_PropVariantClear]
push 1
push ebx
mov ecx, 1
mov edx, 0x50a084
call fcn.004398f0
mov esi, dword [esp + 0x18]
cmp dword [esp + 0x20], 0
jne 0x4b1460
mov ebx, 1
mov eax, dword [esi + 8]
mov ecx, 0x800
test dword [eax + 0x58], ecx
je 0x4b15d1
mov dword [esi + 0x10], ebx
mov dword [esi + 0x1c], ebx
test dword [eax + 0x1c], 0x40000000
je 0x4b15e7
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x18], 3
mov dword [esi + 0x10], ebx
test dword [eax + 0x20], ecx
je 0x4b15f2
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
cmp dword [eax + 0x50], 0
je 0x4b1601
mov dword [esi + 0x10], ebx
mov ecx, dword [eax + 0x50]
mov dword [esi + 0x18], ecx
test byte [eax + 0xfc], 0x20
je 0x4b1614
mov dword [esi + 0x10], ebx
mov dword [esi + 0x18], 0
cmp dword [esi + 0x10], 0
je 0x4b1683
test dword [eax + 0x64], 0x2000000
je 0x4b1683
mov edx, dword [esi + 0x1c]
push edx
push str.Enabled
push str.PowerMgnt
mov ecx, 0x54b0b0
call fcn.004c5406
mov eax, dword [esi + 0x18]
push eax
push str.DelayTime
push str.PowerMgnt
mov ecx, 0x54b0b0
call fcn.004c5406
mov ecx, dword [esi + 0x14]
push ecx
push str.OnlyBattery
push str.PowerMgnt
mov ecx, 0x54b0b0
call fcn.004c5406
mov edx, dword [esi + 0x20]
push edx
push str.PowerState
push str.PowerMgnt
mov ecx, 0x54b0b0
call fcn.004c5406
mov eax, dword [esi + 8]
mov ebp, 0x10000000
test dword [eax + 0x18], ebp
jne 0x4b169a
test byte [eax + 0x1c], 0x40
je 0x4b1754
call fcn.0044eb90
test eax, eax
je 0x4b1754
mov eax, dword [esi + 8]
mov edi, dword [eax + 0x1b70]
test edi, edi
je 0x4b1754
test edi, edi
mov eax, edi
je 0x4b1725
mov ecx, dword [eax + 8]
test ecx, ecx
mov edi, dword [edi]
je 0x4b171f
mov eax, dword [ecx + 0x10c]
xor edx, edx
cmp eax, 1
jne 0x4b16e2
mov esi, dword [esp + 0x18]
mov esi, dword [esi + 8]
test dword [esi + 0x18], ebp
je 0x4b16e2
mov edx, eax
cmp eax, 9
jne 0x4b16f4
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 8]
test byte [eax + 0x1c], 0x40
jne 0x4b16f8
test edx, edx
je 0x4b171f
push 0
push 0x546b34
push 0x546454
push 0
mov ebx, 5
call fcn.00440390
push eax
call fcn.004d0049
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4b172a
test edi, edi
jne 0x4b16b8
jmp 0x4b174b
jmp fcn.004bb5cf
push 0
push 0
call fcn.00451f60
add esp, 8
mov ecx, esi
call fcn.00451cf0
mov ecx, esi
call fcn.00451dc0
mov ecx, esi
call fcn.00451e90
mov esi, dword [esp + 0x18]
mov ebx, 1
mov ecx, dword [esi + 8]
test byte [ecx + 0x20], 0x80
je 0x4b1864
call fcn.0044eb90
test eax, eax
je 0x4b1864
push 0x50148c
lea ecx, [esp + 0x20]
call fcn.00401b10
mov edx, dword [esp + 0x18]
mov dword [esp + 0x90], 0
mov eax, dword [edx + 8]
mov ebp, dword [eax + 0x1b70]
test ebp, ebp
je 0x4b184c
lea esp, [esp]
test ebp, ebp
mov eax, ebp
je 0x4b1725
mov esi, dword [eax + 8]
test esi, esi
mov ebp, dword [ebp]
je 0x4b1828
cmp dword [esi + 0xb8], 0
jne 0x4b1828
mov edx, dword [esi]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x1c]
push eax
mov ecx, esi
call edx
test eax, eax
je 0x4b1828
lea edi, [esp + 0x1c]
call fcn.00443020
mov eax, dword [esp + 0x1c]
cmp dword [eax - 0xc], 0
jl 0x4b1828
push str.DIGITALMICWAVE
push eax
call fcn.004ced30
add esp, 8
test eax, eax
je 0x4b1828
sub eax, dword [esp + 0x1c]
sar eax, 1
cmp eax, 0xffffffff
je 0x4b1828
push 0
push 0x546b34
push 0x546454
push 0
mov ebx, 5
mov ecx, esi
call fcn.00440390
push eax
call fcn.004d0049
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4b1832
test ebp, ebp
jne 0x4b17a0
jmp 0x4b1847
mov ecx, esi
call fcn.00451cf0
mov ecx, esi
call fcn.00451dc0
mov ecx, esi
call fcn.00451e90
mov ebx, 1
lea ecx, [esp + 0x1c]
mov dword [esp + 0x90], 0xffffffff
call fcn.00401fb0
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov ebp, 0x8000000
test dword [eax + 0x20], ebp
je 0x4b1956
push 0x50148c
lea ecx, [esp + 0x2c]
call fcn.00401b10
mov dword [esp + 0x90], ebx
mov ecx, dword [esi + 8]
mov edi, dword [ecx + 0x1b70]
test edi, edi
je 0x4b192b
jmp 0x4b18a0
test edi, edi
mov eax, edi
je 0x4b1725
mov esi, dword [eax + 8]
test esi, esi
mov edi, dword [edi]
je 0x4b190c
cmp dword [esi + 0xb8], 0
jne 0x4b190c
mov edx, dword [esi]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x28]
push eax
mov ecx, esi
call edx
test eax, eax
je 0x4b190c
cmp dword [esi + 0x10c], 4
jne 0x4b190c
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
test dword [ecx + 0x20], ebp
je 0x4b190c
push 0
push 0x546b34
push 0x546454
push 0
mov ebx, 5
mov ecx, esi
call fcn.00440390
push eax
call fcn.004d0049
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4b1912
test edi, edi
jne 0x4b18a0
jmp 0x4b1927
mov ecx, esi
call fcn.00451cf0
mov ecx, esi
call fcn.00451dc0
mov ecx, esi
call fcn.00451e90
mov esi, dword [esp + 0x18]
mov dword [esp + 0x90], 0xffffffff
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4b1956
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esi + 8]
test dword [eax + 0x18], 0x40000000
je 0x4b1a42
mov eax, dword [eax + 0x1b70]
test eax, eax
je 0x4b1a42
test eax, eax
mov ecx, eax
je 0x4b1725
mov ecx, dword [ecx + 8]
test ecx, ecx
mov eax, dword [eax]
mov dword [esp + 0x24], eax
je 0x4b1a3a
cmp dword [ecx + 0xb8], 0
je 0x4b1a3a
cmp dword [ecx + 0x10c], 8
jne 0x4b1a3a
test byte [ecx + 0x1ec], 1
je 0x4b1a3a
push 0
push 0x546eb0
push 0x546454
push 0
mov ebx, 7
call fcn.00440390
push eax
call fcn.004d0049
add esp, 0x14
test eax, eax
mov dword [esp + 0x20], eax
je 0x4b1a32
mov ecx, eax
mov ebp, dword [ecx + 0x48]
xor edi, edi
test ebp, ebp
jbe 0x4b1a32
xor ebx, ebx
cmp edi, ebp
jae 0x4b1a17
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x44]
test eax, eax
je 0x4b1a17
lea esi, [ebx + eax]
test esi, esi
je 0x4b1a17
lea eax, [esi + 0x1c]
push eax
push 0x510e38
call fcn.004432c0
add esp, 8
test eax, eax
jne 0x4b1a23
add edi, 1
add ebx, 0x44
cmp edi, ebp
jb 0x4b19f0
jmp 0x4b1a32
mov ebx, dword [esp + 0x20]
push 0
add esi, 0x2c
push esi
call fcn.00469450
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4b1974
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x1c]
test cl, 0x20
jne 0x4b1a59
test ecx, 0x800
je 0x4b1b2c
mov ebp, dword [eax + 0x1b70]
test ebp, ebp
je 0x4b1b2c
jmp 0x4b1a70
test ebp, ebp
mov eax, ebp
je 0x4b1725
mov esi, dword [eax + 8]
test esi, esi
mov ebp, dword [ebp]
je 0x4b1b20
test byte [esi + 0x1e8], 8
je 0x4b1b20
test byte [esi + 0x1ec], 0xe0
jne 0x4b1ab7
test dword [esi + 0x1f0], 0x40000
jne 0x4b1ab7
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 8]
test byte [edx + 0x1c], 0x20
jne 0x4b1b20
lea eax, [esp + 0x24]
push eax
lea edi, [esi + 0x6c]
mov ebx, 1
mov dword [esp + 0x28], 0
call fcn.0048c120
test eax, eax
je 0x4b1af2
mov ecx, dword [esp + 0x24]
push 0
push 0x546454
push 0x5464b0
push 0
push ecx
call fcn.004d0049
add esp, 0x14
jmp 0x4b1af4
xor eax, eax
push 0
push 0x547944
push 0x546454
push 0
push eax
call fcn.004d0049
add esp, 0x14
test eax, eax
je 0x4b1b20
cmp dword [esi + 0xb8], 0
je 0x4b1b20
push 1
push eax
call fcn.004910f0
test ebp, ebp
jne 0x4b1a70
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 8]
test dword [eax + 0x58], 0x200
je 0x4b1cbd
mov eax, dword [eax + 0x1b70]
test eax, eax
mov dword [esp + 0x20], eax
je 0x4b1cbd
mov edi, edi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4b1725
mov ebp, dword [eax + 8]
test ebp, ebp
mov edx, eax
mov ecx, dword [edx]
mov dword [esp + 0x20], ecx
je 0x4b1cae
test byte [ebp + 0x1ec], 0xe0
jne 0x4b1b88
test dword [ebp + 0x1f0], 0x40000
je 0x4b1cae
mov eax, dword [ebp + 0x10c]
cmp eax, 8
je 0x4b1b98
cmp eax, 9
jne 0x4b1bac
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 8]
test dword [eax + 0x1c], 0x100
jne 0x4b1cae
lea ecx, [esp + 0x24]
push ecx
lea edi, [ebp + 0x6c]
mov ebx, 3
mov dword [esp + 0x28], 0
call fcn.0048c120
test eax, eax
je 0x4b1be7
mov edx, dword [esp + 0x24]
push 0
push 0x546454
push 0x5464b0
push 0
push edx
call fcn.004d0049
add esp, 0x14
jmp 0x4b1be9
xor eax, eax
push 0
push 0x546bb8
push 0x546454
push 0
push eax
call fcn.004d0049
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4b1cae
cmp dword [ebp + 0xb8], 0
je 0x4b1c5c
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4b1c5c
mov ecx, dword [eax + 0x1ec]
test cl, 0x20
jne 0x4b1c53
test dword [eax + 0x1f0], 0x40000
jne 0x4b1c53
test cl, 0x40
je 0x4b1c3d
mov edx, 0x50a098
jmp 0x4b1c46
test cl, cl
jns 0x4b1c53
mov edx, 0x50a0c0
push 1
push esi
mov ecx, 1
call fcn.004398f0
xor ebx, ebx
mov eax, esi
call fcn.0043a1c0
test byte [ebp + 0x1ec], 0x20
je 0x4b1c90
push 1
push esi
mov ecx, 1
mov edx, 0x50a174
call fcn.004398f0
push 1
push esi
mov ecx, 1
mov edx, 0x50a14c
call fcn.004398f0
mov edx, 0x50a124
jmp 0x4b1ca1
test dword [ebp + 0x1f0], 0x40000
je 0x4b1cae
mov edx, 0x50a174
push 1
push esi
mov ecx, 1
call fcn.004398f0
cmp dword [esp + 0x20], 0
jne 0x4b1b50
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 8]
test dword [eax + 0x58], 0x400
je 0x4b1e8a
mov eax, dword [eax + 0x1b70]
test eax, eax
je 0x4b1e8a
jmp 0x4b1ce4
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4b1725
mov ebp, dword [eax + 8]
test ebp, ebp
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
je 0x4b1e7b
test byte [ebp + 0x1ef], 1
je 0x4b1e7b
mov eax, dword [ebp + 0x10c]
cmp eax, 8
je 0x4b1d1a
cmp eax, 9
jne 0x4b1d2e
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 8]
test dword [eax + 0x1c], 0x100
jne 0x4b1e7b
xor esi, esi
lea ecx, [esp + 0x24]
lea edi, [ebp + 0x6c]
push ecx
lea ebx, [esi + 0xc]
mov dword [esp + 0x28], esi
call fcn.0048c120
test eax, eax
je 0x4b1d63
mov edx, dword [esp + 0x24]
push esi
push 0x546454
push 0x5464b0
push esi
push edx
call fcn.004d0049
add esp, 0x14
jmp 0x4b1d65
xor eax, eax
push esi
push 0x547084
push 0x546454
push esi
push eax
call fcn.004d0049
mov ebx, eax
add esp, 0x14
cmp ebx, esi
jne 0x4b1e24
lea eax, [esp + 0x24]
push eax
mov ebx, 0xd
mov dword [esp + 0x28], esi
call fcn.0048c120
test eax, eax
je 0x4b1db6
mov ecx, dword [esp + 0x24]
push esi
push 0x546454
push 0x5464b0
push esi
push ecx
call fcn.004d0049
add esp, 0x14
jmp 0x4b1db8
xor eax, eax
push esi
push 0x547084
push 0x546454
push esi
push eax
call fcn.004d0049
mov ebx, eax
add esp, 0x14
cmp ebx, esi
jne 0x4b1e24
lea edx, [esp + 0x24]
push edx
mov ebx, 0x12
mov dword [esp + 0x28], esi
call fcn.0048c120
test eax, eax
je 0x4b1e05
mov eax, dword [esp + 0x24]
push esi
push 0x546454
push 0x5464b0
push esi
push eax
call fcn.004d0049
add esp, 0x14
jmp 0x4b1e07
xor eax, eax
push esi
push 0x547084
push 0x546454
push esi
push eax
call fcn.004d0049
mov ebx, eax
add esp, 0x14
cmp ebx, esi
je 0x4b1e7b
xor esi, esi
cmp dword [ebp + 0xb8], esi
je 0x4b1e7b
push 1
push ebx
mov ecx, 1
mov edx, 0x50a64c
call fcn.004398f0
xor edi, edi
push ebx
lea esi, [esp + 0x28]
mov dword [esp + 0x28], edi
call fcn.0043a160
test eax, eax
je 0x4b1e58
cmp dword [esp + 0x24], edi
je 0x4b1e7b
mov dword [esp + 0x44], edi
push ebx
lea edi, [esp + 0x40]
mov ecx, 0x509e34
mov word [esp + 0x40], 0x13
call fcn.0043a320
mov ecx, edi
push ecx
call dword [sym.imp.ole32.dll_PropVariantClear]
cmp dword [esp + 0x20], 0
jne 0x4b1ce0
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 8]
test byte [eax + 0x1e], 1
je 0x4b1f6d
mov ebp, dword [eax + 0x1b70]
test ebp, ebp
je 0x4b1f6d
test ebp, ebp
mov eax, ebp
je 0x4b1725
mov eax, dword [eax + 8]
test eax, eax
mov ebp, dword [ebp]
je 0x4b1f65
lea edx, [esp + 0x24]
push edx
lea edi, [eax + 0x6c]
xor ebx, ebx
mov dword [esp + 0x28], 0
call fcn.0048c120
test eax, eax
je 0x4b1ef3
mov eax, dword [esp + 0x24]
push ebx
push 0x546454
push 0x5464b0
push ebx
push eax
call fcn.004d0049
add esp, 0x14
jmp 0x4b1ef5
xor eax, eax
push 0
push 0x546df4
push 0x546454
push 0
push eax
call fcn.004d0049
mov ebx, eax
add esp, 0x14
test ebx, ebx
je 0x4b1f65
xor edi, edi
push ebx
lea esi, [esp + 0x28]
mov dword [esp + 0x28], edi
call fcn.0043a160
test eax, eax
je 0x4b1f2c
cmp dword [esp + 0x24], edi
je 0x4b1f4f
mov dword [esp + 0x34], edi
push ebx
lea edi, [esp + 0x30]
mov ecx, 0x509e34
mov word [esp + 0x30], 0x13
call fcn.0043a320
mov ecx, edi
push ecx
call dword [sym.imp.ole32.dll_PropVariantClear]
push 1
push ebx
mov ecx, 1
mov edx, 0x509fbc
call fcn.004398f0
mov esi, dword [esp + 0x18]
test ebp, ebp
jne 0x4b1ea5
mov eax, dword [esi + 8]
mov ebp, 0x2000000
test dword [eax + 0x1c], ebp
jne 0x4b1f87
test dword [eax + 0x58], 0xf000
je 0x4b20cb
push 0x24
call fcn.004bb012
mov esi, eax
add esp, 4
mov dword [esp + 0x24], esi
test esi, esi
mov dword [esp + 0x90], 2
je 0x4b1fbb
push esi
call fcn.0048b9b0
mov dword [esi], vtable.CDolbySetting.0
mov dword [esi + 0xc], 3
jmp 0x4b1fbd
xor esi, esi
test esi, esi
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x90], 0xffffffff
je 0x4b20cf
mov edx, dword [ebx + 8]
mov edi, dword [edx + 0x1b70]
test edi, edi
je 0x4b20bf
test edi, edi
mov eax, edi
je 0x4b1725
mov eax, dword [eax + 8]
test eax, eax
mov edi, dword [edi]
je 0x4b20b7
cmp dword [eax + 0xb8], 0
je 0x4b20b7
test dword [eax + 0x1ec], 0x8000000
je 0x4b20b7
mov edx, dword [esi]
push eax
mov eax, dword [edx + 8]
mov ecx, esi
call eax
test eax, eax
je 0x4b20b7
mov eax, dword [ebx + 8]
test dword [eax + 0x1c], ebp
jne 0x4b203c
test dword [eax + 0x58], 0x1000
je 0x4b204e
push 1
push esi
mov ecx, 1
mov edx, 0x50a174
call fcn.004398f0
mov eax, dword [ebx + 8]
test dword [eax + 0x1c], ebp
jne 0x4b205f
test dword [eax + 0x58], 0x2000
je 0x4b2071
push 1
push esi
mov ecx, 1
mov edx, 0x50a188
call fcn.004398f0
mov eax, dword [ebx + 8]
test dword [eax + 0x1c], ebp
jne 0x4b2082
test dword [eax + 0x58], 0x4000
je 0x4b2094
push 1
push esi
mov ecx, 1
mov edx, 0x50a19c
call fcn.004398f0
mov eax, dword [ebx + 8]
test dword [eax + 0x1c], ebp
jne 0x4b20a5
test dword [eax + 0x58], 0x8000
je 0x4b20b7
push 1
push esi
mov ecx, 1
mov edx, 0x50a124
call fcn.004398f0
test edi, edi
jne 0x4b1fe5
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
jmp 0x4b20cf
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebx + 8]
mov eax, dword [ecx + 0x1c]
test eax, 0x4000000
jne 0x4b20f5
and eax, 0x80000000
cmp eax, 0x80000000
je 0x4b20f5
test dword [ecx + 0x58], 0x20000
je 0x4b21b0
mov esi, dword [ecx + 0x1b70]
test esi, esi
je 0x4b21b0
mov ebx, dword [sym.imp.ole32.dll_PropVariantClear]
mov ebp, 0x13
mov edi, edi
test esi, esi
mov eax, esi
je 0x4b1725
mov edx, dword [eax + 8]
test edx, edx
mov esi, dword [esi]
je 0x4b21a4
cmp dword [edx + 0xb8], 0
je 0x4b21a4
test dword [edx + 0x1ec], 0x8000000
je 0x4b21a4
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 8]
mov eax, dword [ecx + 0x1c]
test eax, 0x4000000
je 0x4b215b
mov dword [esp + 0x34], 3
jmp 0x4b2185
and eax, 0x80000000
cmp eax, 0x80000000
jne 0x4b2171
mov dword [esp + 0x34], 6
jmp 0x4b2185
mov eax, dword [ecx + 0x58]
test eax, 0x20000
je 0x4b218a
shr eax, 0x12
and eax, 7
mov dword [esp + 0x34], eax
mov word [esp + 0x2c], bp
add edx, 0x88
push edx
lea edi, [esp + 0x30]
mov ecx, 0x50a1b0
call fcn.0043a320
mov edx, edi
push edx
call ebx
test esi, esi
jne 0x4b2110
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
test dword [eax + 0x1c], 0x20000000
je 0x4b22e1
mov ebp, dword [eax + 0x1b70]
test ebp, ebp
je 0x4b22e1
mov edi, edi
test ebp, ebp
mov eax, ebp
je 0x4b1725
mov eax, dword [eax + 8]
test eax, eax
mov ebp, dword [ebp]
je 0x4b22d5
lea ecx, [esp + 0x24]
push ecx
lea edi, [eax + 0x6c]
mov ebx, 0xa
mov dword [esp + 0x28], 0
call fcn.0048c120
test eax, eax
je 0x4b2223
mov edx, dword [esp + 0x24]
push 0
push 0x546454
push 0x5464b0
push 0
push edx
call fcn.004d0049
add esp, 0x14
jmp 0x4b2225
xor eax, eax
push 0
push 0x547738
push 0x546454
push 0
push eax
call fcn.004d0049
mov edi, eax
add esp, 0x14
test edi, edi
je 0x4b22d5
cmp dword [edi + 0x20], 0
push 2
je 0x4b225f
push str.SOFTWARESRS_LabsAPO
mov ecx, 0x50a4f8
call fcn.004a30b0
jmp 0x4b226f
push edi
mov ecx, 1
mov edx, 0x50a214
call fcn.004398f0
cmp dword [edi + 0x20], 0
push 1
je 0x4b2288
push str.SOFTWARESRS_LabsAPO
mov ecx, 0x50a4e4
call fcn.004a30b0
jmp 0x4b2298
push edi
mov ecx, 1
mov edx, 0x50a200
call fcn.004398f0
xor ebx, ebx
push edi
lea esi, [esp + 0x28]
mov dword [esp + 0x28], ebx
call fcn.0043a160
test eax, eax
je 0x4b22b2
cmp dword [esp + 0x24], ebx
je 0x4b22d5
push edi
lea edi, [esp + 0x50]
mov ecx, 0x509e34
mov word [esp + 0x50], 0x13
mov dword [esp + 0x58], ebx
call fcn.0043a320
mov eax, edi
push eax
call dword [sym.imp.ole32.dll_PropVariantClear]
test ebp, ebp
jne 0x4b21d0
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
test byte [eax + 0xcb], 1
je 0x4b23cf
test dword [eax + 0x500], 0x4000000
jne 0x4b23cf
mov edi, dword [eax + 0x1b70]
test edi, edi
je 0x4b23cf
nop
xor ebp, ebp
test edi, edi
mov eax, edi
je 0x4b1725
mov ecx, dword [eax + 8]
test ecx, ecx
mov edi, dword [edi]
je 0x4b23c3
cmp dword [ecx + 0xb8], ebp
jne 0x4b23c3
mov eax, dword [0x54af14]
add dword [eax + 0x1c38], 1
mov edx, dword [ecx + 0x1e4]
shr edx, 0x12
and edx, 1
je 0x4b23c3
push ebp
push 0x5469e0
push 0x546454
push ebp
lea ebx, [ebp + 2]
call fcn.00440390
push eax
call fcn.004d0049
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4b23c3
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0xf0]
test al, 0x20
je 0x4b238c
mov ebp, 1
test al, 0x40
je 0x4b2393
or ebp, 2
push ebp
push esi
mov ecx, 1
mov edx, 0x50aebc
call fcn.004398f0
mov ecx, dword [ebx + 8]
test dword [ecx + 0x38], 0x8000
je 0x4b23b5
call fcn.0047d7d0
mov edx, dword [ebx + 8]
test byte [edx + 0x3c], 1
je 0x4b23c3
call fcn.0047d8e0
test edi, edi
jne 0x4b2310
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
cmp dword [eax + 0x138], 0
mov edi, vtable.CSonicFocusSetting.0
je 0x4b24d2
test dword [eax + 0x100], 0x100
jne 0x4b24d2
lea eax, [esp + 0x5c]
push eax
call fcn.0048b9b0
xor eax, eax
mov dword [esp + 0x5c], edi
mov dword [esp + 0x68], 0x14
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], 5
mov dword [esp + 0x90], 3
mov ecx, dword [ebx + 8]
mov esi, dword [ecx + 0x1b70]
cmp esi, eax
je 0x4b24ba
mov ebp, dword [esp + 0x18]
nop
xor ebx, ebx
test esi, esi
mov eax, esi
je 0x4b1725
mov eax, dword [eax + 8]
test eax, eax
mov esi, dword [esi]
je 0x4b24af
cmp dword [eax + 0xb8], ebx
je 0x4b24af
test dword [eax + 0x1ec], 0x40000
je 0x4b24af
push eax
lea ecx, [esp + 0x60]
call fcn.00494000
test eax, eax
je 0x4b24af
lea edi, [esp + 0x5c]
call fcn.00494070
call fcn.004940e0
test eax, eax
je 0x4b2496
mov eax, dword [0x54bcfc]
test eax, eax
je 0x4b2496
push 1
call eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x138]
test eax, eax
je 0x4b24a5
mov ebx, eax
push ebx
lea edi, [esp + 0x60]
call fcn.00494260
test esi, esi
jne 0x4b2440
mov ebx, ebp
mov edi, vtable.CSonicFocusSetting.0
mov dword [esp + 0x90], 0xffffffff
lea ecx, [esp + 0x5c]
mov dword [esp + 0x5c], edi
call fcn.0048ba90
mov eax, dword [ebx + 8]
test dword [eax + 0x104], 0x800
je 0x4b25a4
lea ecx, [esp + 0x5c]
push ecx
call fcn.0048b9b0
xor ebp, ebp
mov dword [esp + 0x5c], edi
mov dword [esp + 0x68], 0x14
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], 5
mov dword [esp + 0x90], 4
mov edx, dword [ebx + 8]
mov esi, dword [edx + 0x1b70]
cmp esi, ebp
je 0x4b2588
jmp 0x4b2530
cmp esi, ebp
mov eax, esi
je 0x4b1725
mov eax, dword [eax + 8]
cmp eax, ebp
mov esi, dword [esi]
je 0x4b2584
cmp dword [eax + 0xb8], ebp
je 0x4b2584
test dword [eax + 0x1ec], 0x40000
je 0x4b2584
push eax
lea ecx, [esp + 0x60]
call fcn.00494000
test eax, eax
je 0x4b2584
lea edi, [esp + 0x5c]
call fcn.00494070
call fcn.004940e0
cmp eax, ebp
je 0x4b2584
mov eax, dword [0x54bcfc]
cmp eax, ebp
je 0x4b2584
push 1
call eax
cmp esi, ebp
jne 0x4b2530
mov dword [esp + 0x90], 0xffffffff
lea ecx, [esp + 0x5c]
mov dword [esp + 0x5c], vtable.CSonicFocusSetting.0
call fcn.0048ba90
mov ecx, dword [ebx + 8]
test byte [ecx + 0xfb], 1
je 0x4b25b7
push 1
call fcn.0044e760
mov eax, dword [ebx + 8]
test dword [eax + 0x20], 0x20000000
je 0x4b293e
push 0x24
call fcn.004bb012
mov edi, eax
add esp, 4
mov dword [esp + 0x28], edi
test edi, edi
mov dword [esp + 0x90], 5
je 0x4b25fb
push edi
call fcn.0048b9b0
mov dword [edi], vtable.CDolbySetting.0
mov dword [edi + 0xc], 3
jmp 0x4b25fd
xor edi, edi
push 0x58
mov dword [esp + 0x94], 0xffffffff
call fcn.004bb012
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
mov dword [esp + 0x90], 6
je 0x4b2630
mov esi, eax
call fcn.00468d20
mov ebp, eax
jmp 0x4b2632
xor ebp, ebp
test edi, edi
mov dword [esp + 0x90], 0xffffffff
je 0x4b292f
test ebp, ebp
je 0x4b2925
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0x1b70]
test eax, eax
je 0x4b2925
mov ecx, dword [eax]
mov eax, dword [eax + 8]
test eax, eax
mov dword [esp + 0x28], ecx
je 0x4b2919
mov edx, dword [eax + 0x1f0]
mov ecx, edx
shr ecx, 0xd
and ecx, 1
jne 0x4b268f
test edx, 0xe00000
je 0x4b2919
cmp dword [eax + 0xb8], 0
je 0x4b2919
test ecx, ecx
mov ecx, dword [eax + 0x10c]
je 0x4b27cf
sub ecx, 1
je 0x4b2723
sub ecx, 7
jne 0x4b2919
test byte [eax + 0x1ec], 1
je 0x4b2919
mov edx, dword [ebp]
push eax
mov eax, dword [edx + 8]
mov ecx, ebp
call eax
xor esi, esi
cmp dword [ebp + 0x48], esi
jbe 0x4b2919
jmp 0x4b26e0
mov ecx, esi
mov eax, ebp
call fcn.00469640
mov ebx, eax
test ebx, ebx
je 0x4b2704
lea ecx, [ebx + 0x1c]
push ecx
push 0x510e38
call fcn.004432c0
add esp, 8
test eax, eax
jne 0x4b2711
add esi, 1
cmp esi, dword [ebp + 0x48]
jb 0x4b26e0
jmp 0x4b2919
add ebx, 0x2c
push 0
push ebx
mov ebx, ebp
call fcn.00469450
jmp 0x4b2919
mov edx, dword [edi]
push eax
mov eax, dword [edx + 8]
mov ecx, edi
call eax
test eax, eax
je 0x4b2919
push 1
push edi
mov ecx, 1
mov edx, 0x50b45c
call fcn.004398f0
push 1
push edi
mov ecx, 1
mov edx, 0x50b470
call fcn.004398f0
push 1
push edi
mov ecx, 1
mov edx, 0x50b3d0
call fcn.004398f0
push 1
push edi
mov ecx, 1
mov edx, 0x50b3e4
call fcn.004398f0
push 1
push edi
mov ecx, 1
mov edx, 0x50b3f8
call fcn.004398f0
push 1
push edi
mov ecx, 1
mov edx, 0x50b40c
call fcn.004398f0
push 1
push edi
mov ecx, 1
mov edx, 0x50b420
call fcn.004398f0
push 1
push edi
mov ecx, 1
mov edx, 0x50b434
call fcn.004398f0
mov edx, 0x50b448
jmp 0x4b290c
sub ecx, 1
je 0x4b2853
sub ecx, 7
jne 0x4b2919
mov edx, dword [ebp]
push eax
mov eax, dword [edx + 8]
mov ecx, ebp
call eax
test eax, eax
je 0x4b2919
cmp dword [ebp + 0x50], 0
je 0x4b2919
xor ebx, ebx
cmp dword [ebp + 0x48], ebx
jbe 0x4b2919
lea esp, [esp]
mov ecx, ebx
mov eax, ebp
call fcn.00469640
mov esi, eax
test esi, esi
je 0x4b2834
lea ecx, [esi + 0x1c]
push ecx
push 0x510e38
call fcn.004432c0
add esp, 8
test eax, eax
jne 0x4b2841
add ebx, 1
cmp ebx, dword [ebp + 0x48]
jb 0x4b2810
jmp 0x4b2919
push 0
add esi, 0x2c
push esi
mov ebx, ebp
call fcn.00469450
jmp 0x4b2919
mov edx, dword [edi]
push eax
mov eax, dword [edx + 8]
mov ecx, edi
call eax
test eax, eax
je 0x4b2919
push 1
push edi
mov ecx, 1
mov edx, 0x509bb8
call fcn.004398f0
push 1
push edi
mov ecx, 1
mov edx, 0x509bcc
call fcn.004398f0
push 1
push edi
mov ecx, 1
mov edx, 0x509be0
call fcn.004398f0
push 1
push edi
mov ecx, 1
mov edx, 0x509bf4
call fcn.004398f0
push 1
push edi
mov ecx, 1
mov edx, 0x509c30
call fcn.004398f0
push 1
push edi
mov ecx, 1
mov edx, 0x509c44
call fcn.004398f0
push 1
push edi
mov ecx, 1
mov edx, 0x509c58
call fcn.004398f0
push 1
push edi
mov ecx, 1
mov edx, 0x509c6c
call fcn.004398f0
push 1
push edi
mov ecx, 1
mov edx, 0x509c08
call fcn.004398f0
mov edx, 0x509c1c
push 1
push edi
mov ecx, 1
call fcn.004398f0
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x4b2662
mov edx, dword [edi]
mov eax, dword [edx]
push 1
mov ecx, edi
call eax
test ebp, ebp
je 0x4b293e
mov edx, dword [ebp]
mov eax, dword [edx]
push 1
mov ecx, ebp
call eax
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + 8]
cmp dword [ecx + 0x34], 0
je 0x4b2abb
push 0x24
call fcn.004bb012
mov esi, eax
add esp, 4
mov dword [esp + 0x28], esi
test esi, esi
mov dword [esp + 0x90], 7
je 0x4b2983
push esi
call fcn.0048b9b0
mov dword [esi], vtable.CDolbySetting.0
mov dword [esi + 0xc], 3
jmp 0x4b2985
xor esi, esi
test esi, esi
mov dword [esp + 0x90], 0xffffffff
mov eax, dword [edi + 8]
mov edx, dword [eax + 0x34]
mov dword [esp + 0x28], edx
je 0x4b2abb
mov ebp, dword [eax + 0x1b70]
test ebp, ebp
je 0x4b2ab1
test ebp, ebp
mov eax, ebp
je 0x4b1725
mov eax, dword [eax + 8]
test eax, eax
mov ebp, dword [ebp]
je 0x4b2aa9
cmp dword [eax + 0xb8], 0
je 0x4b2aa9
mov ecx, dword [eax + 0x1f0]
test ecx, 0xe00000
jne 0x4b29e7
xor ebx, ebx
jmp 0x4b29ec
mov ebx, 1
test ecx, 0x2000
jne 0x4b29fc
test ebx, ebx
je 0x4b2aa9
mov ecx, dword [eax + 0x10c]
sub ecx, 1
jne 0x4b2aa9
mov edx, dword [esi]
push eax
mov eax, dword [edx + 8]
mov ecx, esi
call eax
test eax, eax
je 0x4b2aa9
cmp dword [esp + 0x28], 0
je 0x4b2aa9
test ebx, ebx
push 1
mov ecx, 1
push esi
je 0x4b2a69
mov edx, 0x509c08
call fcn.004398f0
push 1
push esi
mov ecx, 1
mov edx, 0x509bb8
call fcn.004398f0
push 1
push esi
mov ecx, 1
mov edx, 0x509be0
call fcn.004398f0
mov edx, 0x509c30
jmp 0x4b2a9c
mov edx, 0x50b45c
call fcn.004398f0
push 1
push esi
mov ecx, 1
mov edx, 0x50b3d0
call fcn.004398f0
push 1
push esi
mov ecx, 1
mov edx, 0x50b3f8
call fcn.004398f0
mov edx, 0x50b420
push 1
push esi
mov ecx, 1
call fcn.004398f0
test ebp, ebp
jne 0x4b29b0
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
mov eax, dword [edi + 8]
test byte [eax + 0x3c], 4
je 0x4b2ac9
call fcn.0044eed0
mov edx, dword [edi + 8]
test byte [edx + 0x3c], 0x20
je 0x4b2ad7
call fcn.0044ef00
mov eax, dword [edi + 8]
test byte [eax + 0x3c], 0x80
je 0x4b2ae5
call fcn.0044d0a0
mov eax, dword [edi + 8]
cmp dword [eax + 0x1ec], 0
je 0x4b2c16
mov esi, dword [eax + 0x1b70]
test esi, esi
mov dword [esp + 0x1c], 0
je 0x4b2c16
jmp 0x4b2b10
test esi, esi
mov eax, esi
je 0x4b1725
mov ebp, dword [eax + 8]
test ebp, ebp
mov esi, dword [esi]
mov dword [esp + 0x24], esi
je 0x4b2c0a
cmp dword [ebp + 0x10c], 0
je 0x4b2c0a
lea ecx, [esp + 0x28]
push ecx
lea edi, [ebp + 0x6c]
xor ebx, ebx
mov dword [esp + 0x2c], 0
call fcn.0048c120
test eax, eax
je 0x4b2b6e
mov edx, dword [esp + 0x28]
push ebx
push 0x546454
push 0x5464b0
push ebx
push edx
call fcn.004d0049
add esp, 0x14
jmp 0x4b2b70
xor eax, eax
push 0
push 0x546df4
push 0x546454
push 0
push eax
call fcn.004d0049
mov edi, eax
add esp, 0x14
test edi, edi
je 0x4b2c0a
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0x1ec]
sub eax, 4
je 0x4b2d89
sub eax, 2
je 0x4b2d50
sub eax, 2
jne 0x4b2be8
lea edx, [eax + 0x40]
lea esi, [esp + 0x1c]
mov eax, edi
call fcn.00497f20
test eax, eax
jne 0x4b2db2
mov esi, dword [ebp + 0x90]
call fcn.004c9321
mov eax, dword [eax + 4]
push 8
push str.SetDefNoSupport
push esi
mov ecx, eax
call fcn.004c5406
xor esi, esi
mov ebp, dword [ebp + 0x90]
call fcn.004c9321
mov eax, dword [eax + 4]
push esi
push str.SetDefCh
push ebp
mov ecx, eax
call fcn.004c5406
mov esi, dword [esp + 0x24]
test esi, esi
jne 0x4b2b10
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 8]
test byte [eax + 0xc2], 1
je 0x4b2cf9
mov ebp, dword [eax + 0x1b70]
test ebp, ebp
je 0x4b2cf9
test ebp, ebp
mov eax, ebp
je 0x4b1725
mov ebx, dword [eax + 8]
test ebx, ebx
mov ebp, dword [ebp]
je 0x4b2cf1
mov eax, dword [ebx + 0x10c]
sub eax, 1
jne 0x4b2cf1
call fcn.004bb047
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4b2dd3
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
mov dword [esp + 0x90], 8
mov eax, dword [edi + 8]
add eax, 0x504
mov eax, dword [eax]
test eax, eax
je 0x4b2ca7
push eax
mov esi, 0xe22
lea eax, [esp + 0x2c]
call fcn.00436d20
mov esi, dword [esp + 0x28]
push ecx
add esi, 0xfffffff0
mov dword [esp + 0x28], esp
mov edi, esp
push esi
call fcn.00401850
add esp, 4
add eax, 0x10
push ebx
mov dword [edi], eax
call fcn.00442c30
mov dword [esp + 0x90], 0xffffffff
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4b2ced
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov edi, dword [esp + 0x18]
test ebp, ebp
jne 0x4b2c34
mov eax, dword [edi + 8]
test byte [eax + 0x1c4], 8
je 0x4b2d39
mov esi, dword [eax + 0x1b70]
test esi, esi
je 0x4b2d39
mov edi, 3
test esi, esi
mov eax, esi
je 0x4b1725
mov eax, dword [eax + 8]
test eax, eax
mov esi, dword [esi]
je 0x4b2d35
cmp dword [eax + 0x10c], edi
jne 0x4b2d35
push eax
call fcn.00442cf0
test esi, esi
jne 0x4b2d14
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
lea esi, [esp + 0x1c]
mov edx, 0x10
mov eax, edi
call fcn.00497f20
test eax, eax
mov eax, edi
jne 0x4b2db4
mov edx, 0x20
call fcn.00497f20
test eax, eax
jne 0x4b2db2
mov esi, dword [ebp + 0x90]
call fcn.004c9321
mov eax, dword [eax + 4]
push 6
jmp 0x4b2bdb
lea esi, [esp + 0x1c]
mov edx, 4
mov eax, edi
call fcn.00497f20
test eax, eax
jne 0x4b2db2
mov esi, dword [ebp + 0x90]
call fcn.004c9321
mov eax, dword [eax + 4]
push 4
jmp 0x4b2bdb
mov eax, edi
mov esi, dword [esp + 0x1c]
call fcn.00498150
test eax, eax
je 0x4b2be8
mov ecx, dword [ebx + 8]
mov esi, dword [ecx + 0x1ec]
jmp 0x4b2bea
push 0x80004005
call fcn.00401730
int3