Function at 0x42f0f0
Capabilities:
Check os version
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x54e358
mov eax, dword fs:[0]
push eax
sub esp, 0x7c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5ab720]
xor eax, esp
push eax
lea eax, [esp + 0x90]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x18], ebx
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x42f14b
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
call edx
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 8]
test eax, eax
je 0x430da8
mov eax, dword [eax + 4]
not eax
mov esi, 1
and eax, esi
push eax
push str.ShowTrayIcon
push str.General
mov ecx, 0x5b9548
call fcn.00507c28
mov ecx, dword [ebx + 8]
mov edx, dword [ecx + 4]
shr edx, 2
not edx
and edx, esi
push edx
push str.JDPopup
push str.General
mov ecx, 0x5b9548
call fcn.00507c28
mov eax, dword [ebx + 8]
test byte [eax + 6], 1
jne 0x42f1ac
test byte [eax + 8], 0x10
je 0x42f271
mov edi, dword [eax + 0x19bc]
test edi, edi
je 0x42f271
lea ebx, [ebx]
test edi, edi
mov eax, edi
je 0x42f3da
mov ebp, dword [eax + 8]
test ebp, ebp
mov edi, dword [edi]
mov dword [esp + 0x40], edi
je 0x42f262
push 0
push 0x5b1acc
push 0x5ace98
push 0
xor ebx, ebx
mov eax, ebp
call fcn.0040ce40
push eax
call fcn.00521e47
mov esi, eax
add esp, 0x14
test esi, esi
je 0x42f262
cmp dword [ebp + 0x24], ebx
je 0x42f262
test byte [ebp + 0xf8], 1
je 0x42f22e
mov eax, dword [esi]
mov edx, dword [eax + 0x20]
push ebx
mov ecx, esi
call edx
push 1
lea edi, [ebx + 1]
mov ecx, 0x56333c
mov edx, esi
call fcn.004b51d0
mov edi, dword [esp + 0x40]
cmp dword [ebp + 0x24], 0
je 0x42f262
test dword [ebp + 0xf0], 0x100
je 0x42f262
mov eax, dword [esi]
mov edx, dword [eax + 0x20]
push 0
mov ecx, esi
call edx
push 1
mov edi, 1
mov ecx, 0x562fcc
mov edx, esi
call fcn.004b51d0
mov edi, dword [esp + 0x40]
test edi, edi
jne 0x42f1c0
mov ebx, dword [esp + 0x18]
lea esi, [edi + 1]
mov eax, dword [ebx + 8]
mov ecx, 0x800
test dword [eax + 0x44], ecx
je 0x42f284
mov dword [ebx + 0x10], esi
mov dword [ebx + 0x1c], esi
test dword [eax + 8], 0x40000000
je 0x42f29a
mov dword [ebx + 0x1c], esi
mov dword [ebx + 0x18], 3
mov dword [ebx + 0x10], esi
test dword [eax + 0xc], ecx
je 0x42f2a5
mov dword [ebx + 0x10], esi
mov dword [ebx + 0x14], esi
cmp dword [eax + 0x3c], 0
je 0x42f2b4
mov dword [ebx + 0x10], esi
mov ecx, dword [eax + 0x3c]
mov dword [ebx + 0x18], ecx
test byte [eax + 0xe8], 0x20
je 0x42f2c7
mov dword [ebx + 0x10], esi
mov dword [ebx + 0x18], 0
cmp dword [ebx + 0x10], 0
je 0x42f336
test dword [eax + 0x50], 0x2000000
je 0x42f336
mov edx, dword [ebx + 0x1c]
push edx
push str.Enabled
push str.PowerMgnt
mov ecx, 0x5b9548
call fcn.00507c28
mov eax, dword [ebx + 0x18]
push eax
push str.DelayTime
push str.PowerMgnt
mov ecx, 0x5b9548
call fcn.00507c28
mov ecx, dword [ebx + 0x14]
push ecx
push str.OnlyBattery
push str.PowerMgnt
mov ecx, 0x5b9548
call fcn.00507c28
mov edx, dword [ebx + 0x20]
push edx
push str.PowerState
push str.PowerMgnt
mov ecx, 0x5b9548
call fcn.00507c28
mov eax, dword [ebx + 8]
mov ebp, 0x10000000
test dword [eax + 4], ebp
jne 0x42f34d
test byte [eax + 8], 0x40
je 0x42f404
call fcn.00427a20
test eax, eax
je 0x42f404
mov eax, dword [ebx + 8]
mov edi, dword [eax + 0x19bc]
test edi, edi
je 0x42f404
jmp 0x42f370
test edi, edi
mov eax, edi
je 0x42f3da
mov eax, dword [eax + 8]
test eax, eax
mov edi, dword [edi]
je 0x42f3d4
mov ecx, dword [eax + 0x78]
xor edx, edx
cmp ecx, 1
jne 0x42f397
mov esi, dword [esp + 0x18]
mov esi, dword [esi + 8]
test dword [esi + 4], ebp
je 0x42f397
mov edx, ecx
cmp ecx, 9
jne 0x42f3a9
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 8]
test byte [ecx + 8], 0x40
jne 0x42f3ad
test edx, edx
je 0x42f3d4
push 0
push 0x5b1ae8
push 0x5ace98
push 0
mov ebx, 5
call fcn.0040ce40
push eax
call fcn.00521e47
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x42f3df
test edi, edi
jne 0x42f370
jmp 0x42f400
jmp fcn.00504221
push 0
push 0
call fcn.00439c50
add esp, 8
mov ecx, esi
call fcn.004399e0
mov ecx, esi
call fcn.00439ab0
mov ecx, esi
call fcn.00439b80
mov ebx, dword [esp + 0x18]
mov edx, dword [ebx + 8]
test byte [edx + 0xc], 0x80
je 0x42f500
call fcn.00427a20
test eax, eax
je 0x42f500
push 0x564f30
lea ecx, [esp + 0x30]
call fcn.00404670
mov dword [esp + 0x98], 0
mov eax, dword [ebx + 8]
mov ebp, dword [eax + 0x19bc]
test ebp, ebp
je 0x42f4ec
test ebp, ebp
mov eax, ebp
je 0x42f3da
mov esi, dword [eax + 8]
test esi, esi
mov ebp, dword [ebp]
je 0x42f4c9
cmp dword [esi + 0x24], 0
jne 0x42f4c9
mov edx, dword [esi]
mov edx, dword [edx + 0x14]
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call edx
test eax, eax
je 0x42f4c9
lea edi, [esp + 0x2c]
call fcn.00410630
mov eax, dword [esp + 0x2c]
cmp dword [eax - 0xc], 0
jl 0x42f4c9
push str.DIGITALMICWAVE
push eax
call fcn.00522186
add esp, 8
test eax, eax
je 0x42f4c9
sub eax, dword [esp + 0x2c]
sar eax, 1
cmp eax, 0xffffffff
je 0x42f4c9
push 0
push 0x5b1ae8
push 0x5ace98
push 0
mov ebx, 5
mov eax, esi
call fcn.0040ce40
push eax
call fcn.00521e47
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x42f4d3
test ebp, ebp
jne 0x42f448
jmp 0x42f4e8
mov ecx, esi
call fcn.004399e0
mov ecx, esi
call fcn.00439ab0
mov ecx, esi
call fcn.00439b80
mov ebx, dword [esp + 0x18]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x98], 0xffffffff
call fcn.00401640
mov eax, dword [ebx + 8]
test dword [eax + 0xc], 0x8000000
je 0x42f5f1
push 0x564f30
lea ecx, [esp + 0x44]
call fcn.00404670
mov dword [esp + 0x98], 1
mov ecx, dword [ebx + 8]
mov ebp, dword [ecx + 0x19bc]
test ebp, ebp
je 0x42f5c6
mov edi, 0x8000000
nop
test ebp, ebp
mov eax, ebp
je 0x42f3da
mov esi, dword [eax + 8]
test esi, esi
mov ebp, dword [ebp]
je 0x42f5a7
cmp dword [esi + 0x24], 0
jne 0x42f5a7
mov edx, dword [esi]
mov edx, dword [edx + 0x14]
lea eax, [esp + 0x40]
push eax
mov ecx, esi
call edx
test eax, eax
je 0x42f5a7
cmp dword [esi + 0x78], 4
jne 0x42f5a7
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
test dword [ecx + 0xc], edi
je 0x42f5a7
push 0
push 0x5b1ae8
push 0x5ace98
push 0
mov ebx, 5
mov eax, esi
call fcn.0040ce40
push eax
call fcn.00521e47
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x42f5ad
test ebp, ebp
jne 0x42f540
jmp 0x42f5c2
mov ecx, esi
call fcn.004399e0
mov ecx, esi
call fcn.00439ab0
mov ecx, esi
call fcn.00439b80
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x98], 0xffffffff
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42f5f1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebx + 8]
test dword [eax + 4], 0x40000000
je 0x42f6ce
mov ecx, dword [eax + 0x19bc]
test ecx, ecx
je 0x42f6ce
nop
test ecx, ecx
mov eax, ecx
je 0x42f3da
mov eax, dword [eax + 8]
test eax, eax
mov ecx, dword [ecx]
mov dword [esp + 0x2c], ecx
je 0x42f6c2
cmp dword [eax + 0x24], 0
je 0x42f6c2
cmp dword [eax + 0x78], 8
jne 0x42f6c2
test byte [eax + 0xfc], 1
je 0x42f6c2
push 0
push 0x5acfa8
push 0x5ace98
push 0
mov ebx, 7
call fcn.0040ce40
push eax
call fcn.00521e47
add esp, 0x14
test eax, eax
mov dword [esp + 0x30], eax
je 0x42f6be
mov ecx, eax
mov edi, dword [ecx + 0x54]
xor ebx, ebx
test edi, edi
jbe 0x42f6be
xor ebp, ebp
cmp ebx, edi
jae 0x42f6a6
mov edx, dword [esp + 0x30]
mov esi, dword [edx + 0x50]
test esi, esi
je 0x42f6a6
add esi, ebp
je 0x42f6a6
lea eax, [esi + 0x1c]
push eax
push 0x566c2c
call fcn.00405090
add esp, 8
test eax, eax
jne 0x42f6b2
add ebx, 1
add ebp, 0x40
cmp ebx, edi
jb 0x42f682
jmp 0x42f6be
mov ebx, dword [esp + 0x30]
lea eax, [esi + 0x2c]
call fcn.00464660
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x42f610
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
mov ecx, dword [eax + 8]
test cl, 0x20
jne 0x42f6e5
test ecx, 0x800
je 0x42f787
mov ebp, dword [eax + 0x19bc]
test ebp, ebp
je 0x42f787
test ebp, ebp
mov eax, ebp
je 0x42f3da
mov edi, dword [eax + 8]
test edi, edi
mov ebp, dword [ebp]
je 0x42f77b
test byte [edi + 0xf8], 8
je 0x42f77b
test byte [edi + 0xfc], 0xe0
jne 0x42f732
test dword [edi + 0x100], 0x40000
jne 0x42f732
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 8]
test byte [edx + 8], 0x20
jne 0x42f77b
push 0
push 0x5b1b88
push 0x5ace98
push 0
mov ebx, 1
mov eax, edi
call fcn.0040ce40
push eax
call fcn.00521e47
mov esi, eax
add esp, 0x14
test esi, esi
je 0x42f77b
cmp dword [edi + 0x24], 0
je 0x42f77b
mov eax, dword [esi]
mov edx, dword [eax + 0x20]
push 0
mov ecx, esi
call edx
push ebx
mov edi, ebx
mov ecx, 0x563378
mov edx, esi
call fcn.004b51d0
test ebp, ebp
jne 0x42f6f3
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
test dword [eax + 0x44], 0x200
je 0x42f888
mov ebp, dword [eax + 0x19bc]
test ebp, ebp
je 0x42f888
test ebp, ebp
mov eax, ebp
je 0x42f3da
mov esi, dword [eax + 8]
test esi, esi
mov ebp, dword [ebp]
je 0x42f87c
test byte [esi + 0xfc], 0xe0
jne 0x42f7d6
test dword [esi + 0x100], 0x40000
je 0x42f87c
mov eax, dword [esi + 0x78]
cmp eax, 8
je 0x42f7e3
cmp eax, 9
jne 0x42f7f7
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
test dword [ecx + 8], 0x100
jne 0x42f87c
push 0
push 0x5b1ba8
push 0x5ace98
push 0
mov ebx, 3
mov eax, esi
call fcn.0040ce40
push eax
call fcn.00521e47
mov ebx, eax
add esp, 0x14
test ebx, ebx
je 0x42f87c
cmp dword [esi + 0x24], 0
je 0x42f82d
push 1
call fcn.0044b140
test byte [esi + 0xfc], 0x20
je 0x42f85d
push 1
mov edi, 1
mov ecx, 0x5630bc
mov edx, ebx
call fcn.004b51d0
push edi
mov ecx, 0x563094
mov edx, ebx
call fcn.004b51d0
mov ecx, 0x56306c
jmp 0x42f873
test dword [esi + 0x100], 0x40000
je 0x42f87c
mov edi, 1
mov ecx, 0x5630bc
push 1
mov edx, ebx
call fcn.004b51d0
test ebp, ebp
jne 0x42f7a5
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
test dword [eax + 0x44], 0x400
je 0x42f98f
mov ebp, dword [eax + 0x19bc]
test ebp, ebp
je 0x42f98f
test ebp, ebp
mov eax, ebp
je 0x42f3da
mov edi, dword [eax + 8]
test edi, edi
mov ebp, dword [ebp]
je 0x42f983
test byte [edi + 0xff], 1
je 0x42f983
mov eax, dword [edi + 0x78]
cmp eax, 8
je 0x42f8d8
cmp eax, 9
jne 0x42f8ec
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 8]
test dword [eax + 8], 0x100
jne 0x42f983
push 0
push 0x5b1bc4
push 0x5ace98
push 0
mov ebx, 0xc
mov eax, edi
call fcn.0040ce40
push eax
call fcn.00521e47
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x42f95f
push eax
push 0x5b1bc4
push 0x5ace98
push eax
lea ebx, [eax + 0xd]
mov eax, edi
call fcn.0040ce40
push eax
call fcn.00521e47
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x42f95f
push eax
push 0x5b1bc4
push 0x5ace98
push eax
lea ebx, [eax + 0x12]
mov eax, edi
call fcn.0040ce40
push eax
call fcn.00521e47
mov esi, eax
add esp, 0x14
test esi, esi
je 0x42f983
cmp dword [edi + 0x24], 0
je 0x42f983
push 1
mov edi, 1
mov ecx, 0x563558
mov edx, esi
call fcn.004b51d0
mov edx, dword [esi]
mov eax, dword [edx + 0x20]
push 0
mov ecx, esi
call eax
test ebp, ebp
jne 0x42f8a6
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
test byte [eax + 0xa], 1
je 0x42f9fd
mov ebp, dword [eax + 0x19bc]
test ebp, ebp
je 0x42f9fd
test ebp, ebp
mov eax, ebp
je 0x42f3da
mov eax, dword [eax + 8]
test eax, eax
mov ebp, dword [ebp]
je 0x42f9f5
push 0
push 0x5b1acc
push 0x5ace98
push 0
xor ebx, ebx
call fcn.0040ce40
push eax
call fcn.00521e47
mov esi, eax
add esp, 0x14
test esi, esi
je 0x42f9f5
mov edx, dword [esi]
mov eax, dword [edx + 0x20]
push ebx
mov ecx, esi
call eax
push 1
lea edi, [ebx + 1]
mov ecx, 0x562f04
mov edx, esi
call fcn.004b51d0
test ebp, ebp
jne 0x42f9a2
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
test dword [eax + 8], 0x2000000
jne 0x42fa16
test dword [eax + 0x44], 0xf000
je 0x42fb77
push 0x30
call fcn.004fae94
mov esi, eax
add esp, 4
mov dword [esp + 0x40], esi
test esi, esi
mov dword [esp + 0x98], 2
je 0x42fa4a
push esi
call fcn.004b4960
mov dword [esi], vtable.CDolbySetting.0
mov dword [esi + 0x14], 3
jmp 0x42fa4c
xor esi, esi
test esi, esi
mov dword [esp + 0x98], 0xffffffff
je 0x42fb77
mov ecx, dword [ebx + 8]
mov ebp, dword [ecx + 0x19bc]
test ebp, ebp
je 0x42fb6c
test ebp, ebp
mov eax, ebp
je 0x42f3da
mov eax, dword [eax + 8]
test eax, eax
mov ebp, dword [ebp]
je 0x42fb64
cmp dword [eax + 0x24], 0
je 0x42fb64
test dword [eax + 0xfc], 0x8000000
je 0x42fb64
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
test eax, eax
je 0x42fb64
mov eax, dword [ebx + 8]
test dword [eax + 8], 0x2000000
jne 0x42fac9
test dword [eax + 0x44], 0x1000
je 0x42fae0
push 1
mov edi, 1
mov ecx, 0x5630bc
mov edx, esi
call fcn.004b51d0
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
test dword [eax + 8], 0x2000000
jne 0x42faf5
test dword [eax + 0x44], 0x2000
je 0x42fb0c
push 1
mov edi, 1
mov ecx, 0x5630d0
mov edx, esi
call fcn.004b51d0
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
test dword [eax + 8], 0x2000000
jne 0x42fb21
test dword [eax + 0x44], 0x4000
je 0x42fb38
push 1
mov edi, 1
mov ecx, 0x5630e4
mov edx, esi
call fcn.004b51d0
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
test dword [eax + 8], 0x2000000
jne 0x42fb4d
test dword [eax + 0x44], 0x8000
je 0x42fb64
push 1
mov edi, 1
mov ecx, 0x56306c
mov edx, esi
call fcn.004b51d0
mov ebx, dword [esp + 0x18]
test ebp, ebp
jne 0x42fa70
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
mov ecx, dword [ebx + 8]
mov eax, dword [ecx + 8]
test eax, 0x4000000
mov ebp, dword [sym.imp.ole32.dll_PropVariantClear]
jne 0x42fba3
and eax, 0x80000000
cmp eax, 0x80000000
je 0x42fba3
test dword [ecx + 0x44], 0x20000
je 0x42fc46
mov esi, dword [ecx + 0x19bc]
test esi, esi
je 0x42fc46
mov edi, 0x13
test esi, esi
mov eax, esi
je 0x42f3da
mov edx, dword [eax + 8]
test edx, edx
mov esi, dword [esi]
je 0x42fc3e
cmp dword [edx + 0x24], 0
je 0x42fc3e
test dword [edx + 0xfc], 0x8000000
je 0x42fc3e
mov ecx, dword [ebx + 8]
mov eax, dword [ecx + 8]
test eax, 0x4000000
je 0x42fbf2
mov dword [esp + 0x4c], 3
jmp 0x42fc1c
and eax, 0x80000000
cmp eax, 0x80000000
jne 0x42fc08
mov dword [esp + 0x4c], 6
jmp 0x42fc1c
mov eax, dword [ecx + 0x44]
test eax, 0x20000
je 0x42fc21
shr eax, 0x12
and eax, 7
mov dword [esp + 0x4c], eax
mov word [esp + 0x44], di
push edx
lea edi, [esp + 0x48]
mov ecx, 0x5630f8
call fcn.0040c970
mov ecx, edi
push ecx
call ebp
mov ebx, dword [esp + 0x18]
mov edi, 0x13
test esi, esi
jne 0x42fbb6
mov eax, dword [ebx + 8]
test dword [eax + 8], 0x20000000
je 0x42fd0e
mov ebp, dword [eax + 0x19bc]
test ebp, ebp
je 0x42fd0e
test ebp, ebp
mov eax, ebp
je 0x42f3da
mov eax, dword [eax + 8]
test eax, eax
mov ebp, dword [ebp]
je 0x42fd02
push 0
push 0x5b1be0
push 0x5ace98
push 0
mov ebx, 0xa
call fcn.0040ce40
push eax
call fcn.00521e47
mov esi, eax
add esp, 0x14
test esi, esi
je 0x42fd02
cmp dword [esi + 0x2c], 0
push 2
je 0x42fcbc
push str.SOFTWARESRS_LabsAPO
mov ecx, 0x563404
call fcn.004e4910
jmp 0x42fccd
mov edi, 1
mov ecx, 0x56315c
mov edx, esi
call fcn.004b51d0
cmp dword [esi + 0x2c], 0
push 1
je 0x42fce6
push str.SOFTWARESRS_LabsAPO
mov ecx, 0x5633f0
call fcn.004e4910
jmp 0x42fcf7
mov edi, 1
mov ecx, 0x563148
mov edx, esi
call fcn.004b51d0
mov edx, dword [esi]
mov eax, dword [edx + 0x20]
push 0
mov ecx, esi
call eax
test ebp, ebp
jne 0x42fc64
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
test byte [eax + 0xb7], 1
je 0x42fe56
mov ebp, dword [eax + 0x19bc]
test ebp, ebp
je 0x42fe56
lea esp, [esp]
xor edi, edi
test ebp, ebp
mov eax, ebp
je 0x42f3da
mov esi, dword [eax + 8]
test esi, esi
mov ebp, dword [ebp]
je 0x42fe4a
cmp dword [esi + 0x24], edi
jne 0x42fe4a
mov eax, esi
call fcn.00497020
test eax, eax
je 0x42fe4a
push edi
push 0x5b164c
push 0x5ace98
push edi
lea ebx, [edi + 2]
mov eax, esi
call fcn.0040ce40
push eax
call fcn.00521e47
mov esi, eax
add esp, 0x14
test esi, esi
je 0x42fe4a
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xdc]
test al, 0x20
je 0x42fd9f
lea edi, [ebx - 1]
test al, 0x40
je 0x42fda5
or edi, ebx
push edi
mov edi, 1
mov ecx, 0x563dc8
mov edx, esi
call fcn.004b51d0
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
test dword [eax + 0x24], 0x8000
je 0x42fe23
push edi
push 0x563dc8
lea ecx, [esp + 0x38]
mov edx, esi
mov dword [esp + 0x38], 0
call fcn.004b5090
cmp dword [esi + 0x170], 0
mov eax, dword [esp + 0x30]
je 0x42fdf0
and eax, 0xfffffffd
or eax, 0xc
push eax
mov ecx, 0x563dc8
mov edx, esi
call fcn.004b51d0
test eax, eax
je 0x42fe0d
push 1
mov eax, esi
call fcn.00496670
cmp dword [esi + 0x40], 0
je 0x42fe18
call fcn.004967c0
mov edx, dword [esi]
mov eax, dword [edx + 0x20]
push 0
mov ecx, esi
call eax
mov ecx, dword [ebx + 8]
test byte [ecx + 0x28], 1
je 0x42fe35
push 1
mov ecx, esi
call fcn.004968d0
mov edx, dword [ebx + 8]
test byte [edx + 0xf7], 1
je 0x42fe4a
push 1
mov ecx, esi
call fcn.00498050
test ebp, ebp
jne 0x42fd30
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
test dword [eax + 0xb4], 0x8000000
je 0x430017
cmp byte [eax + 0x118], 0
jne 0x42fe7f
test byte [eax + 0xec], 0x30
je 0x430017
mov ebp, dword [eax + 0x19bc]
xor edi, edi
cmp ebp, edi
je 0x430019
nop
lea eax, [esp + 0x58]
push eax
call fcn.004b4960
mov esi, vtable.CAndreaMicSetting.0
mov dword [esp + 0x58], esi
mov dword [esp + 0x6c], 0xe
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
cmp ebp, edi
mov dword [esp + 0x98], 3
mov eax, ebp
je 0x42f3da
mov ecx, dword [eax + 8]
cmp ecx, edi
mov ebp, dword [ebp]
je 0x42fff5
cmp dword [ecx + 0x24], edi
jne 0x42fff5
test dword [ecx + 0xf4], 0x5000
je 0x42fff5
mov dword [esp + 0x70], ecx
mov edx, dword [ecx]
mov edx, dword [edx + 0x14]
lea eax, [esp + 0x7c]
push eax
call edx
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0xf4]
mov eax, dword [ebx + 8]
shr ecx, 0x11
and ecx, 1
mov dword [esp + 0x84], ecx
test dword [eax + 0x108], 0x100
je 0x42ff69
movzx eax, byte [eax + 0x118]
sub eax, 1
je 0x42ff5f
sub eax, 1
je 0x42ff55
sub eax, 1
je 0x42ff4b
call fcn.004051d0
jmp 0x42fff5
call fcn.00405610
jmp 0x42fff5
call fcn.00405430
jmp 0x42fff5
call fcn.00405260
jmp 0x42fff5
test byte [eax + 0x118], 1
je 0x42ff80
mov ebx, 1
call fcn.004f8fa0
mov ebx, dword [esp + 0x18]
mov edx, dword [ebx + 8]
test byte [edx + 0xec], 0x10
je 0x42ff95
lea ecx, [esp + 0x58]
call fcn.00405990
mov eax, dword [ebx + 8]
movzx eax, byte [eax + 0x118]
test al, 2
je 0x42ffdd
shr eax, 2
mov ecx, 0
and eax, 1
setne cl
mov edi, 1
lea edx, [esp + 0x58]
mov esi, ecx
push esi
mov ecx, 0x564278
call fcn.004b51d0
mov eax, esi
mov ebx, edi
lea esi, [esp + 0x58]
call fcn.004058a0
mov ebx, dword [esp + 0x18]
mov esi, vtable.CAndreaMicSetting.0
mov edx, dword [ebx + 8]
test byte [edx + 0xec], 0x20
je 0x42fff3
mov eax, 1
call fcn.00405960
xor edi, edi
mov dword [esp + 0x98], 0xffffffff
lea ecx, [esp + 0x58]
mov dword [esp + 0x58], esi
call fcn.004b4a20
cmp ebp, edi
jne 0x42fe90
jmp 0x430019
xor edi, edi
mov eax, dword [ebx + 8]
cmp dword [eax + 0x124], edi
mov ebp, vtable.CSonicFocusSetting.0
je 0x430120
test dword [eax + 0xec], 0x100
jne 0x430120
lea eax, [esp + 0x58]
push eax
call fcn.004b4960
mov dword [esp + 0x58], ebp
mov dword [esp + 0x6c], 0x14
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], 5
mov dword [esp + 0x98], 4
mov ecx, dword [ebx + 8]
mov esi, dword [ecx + 0x19bc]
cmp esi, edi
je 0x430108
xor ebp, ebp
cmp esi, edi
mov eax, esi
je 0x42f3da
mov eax, dword [eax + 8]
cmp eax, edi
mov esi, dword [esi]
je 0x4300fd
cmp dword [eax + 0x24], edi
je 0x4300fd
test dword [eax + 0xfc], 0x40000
je 0x4300fd
push eax
lea ecx, [esp + 0x5c]
call fcn.004cb160
test eax, eax
je 0x4300fd
lea edi, [esp + 0x58]
call fcn.004cb1e0
call fcn.004cb250
test eax, eax
je 0x4300db
mov eax, dword [0x5baa04]
test eax, eax
je 0x4300db
push 1
call eax
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x124]
test eax, eax
je 0x4300ee
mov ebp, eax
push ebp
lea ecx, [esp + 0x5c]
push ecx
call fcn.004cb370
mov ebx, dword [esp + 0x18]
xor edi, edi
cmp esi, edi
jne 0x430088
mov ebp, vtable.CSonicFocusSetting.0
mov dword [esp + 0x98], 0xffffffff
lea ecx, [esp + 0x58]
mov dword [esp + 0x58], ebp
call fcn.004b4a20
mov edx, dword [ebx + 8]
test dword [edx + 0xf0], 0x800
je 0x4301f8
lea eax, [esp + 0x58]
push eax
call fcn.004b4960
mov eax, 5
mov dword [esp + 0x58], ebp
mov dword [esp + 0x6c], 0x14
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], eax
mov dword [esp + 0x98], eax
mov ecx, dword [ebx + 8]
mov esi, dword [ecx + 0x19bc]
cmp esi, edi
je 0x4301da
jmp 0x430180
test esi, esi
mov eax, esi
je 0x42f3da
mov eax, dword [eax + 8]
test eax, eax
mov esi, dword [esi]
je 0x4301d2
cmp dword [eax + 0x24], 0
je 0x4301d2
test dword [eax + 0xfc], 0x40000
je 0x4301d2
push eax
lea ecx, [esp + 0x5c]
call fcn.004cb160
test eax, eax
je 0x4301d2
lea edi, [esp + 0x58]
call fcn.004cb1e0
call fcn.004cb250
test eax, eax
je 0x4301d2
mov eax, dword [0x5baa04]
test eax, eax
je 0x4301d2
push 1
call eax
test esi, esi
jne 0x430180
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x98], 0xffffffff
lea ecx, [esp + 0x58]
mov dword [esp + 0x58], vtable.CSonicFocusSetting.0
call fcn.004b4a20
xor edi, edi
mov edx, dword [ebx + 8]
test byte [edx + 0xe7], 1
je 0x430638
mov dword [esp + 0x40], edi
mov dword [esp + 0x98], 6
mov dword [esp + 0x30], edi
lea eax, [esp + 0x40]
push eax
push 0x560db4
push 0x17
push edi
mov byte [esp + 0xa8], 7
push 0x560d64
mov dword [esp + 0x4c], edi
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, edi
jl 0x430601
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
lea edx, [esp + 0x30]
push edx
push 0x1000000f
push 1
push eax
mov eax, dword [ecx + 0xc]
call eax
cmp eax, edi
jl 0x430601
push 0x564f30
lea ecx, [esp + 0x40]
call fcn.00404670
mov byte [esp + 0x98], 8
mov ecx, dword [0x566fe8]
mov edx, dword [0x566fec]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [0x566ff0]
mov dword [eax + 4], edx
mov edx, dword [0x566ff4]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x44]
push eax
call fcn.00425f20
add esp, 0x14
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x9c], 9
call fcn.00404ff0
mov byte [esp + 0x98], 8
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4302ec
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
lea edx, [esp + 0x38]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
cmp eax, edi
jl 0x4305d9
xor ebp, ebp
cmp dword [esp + 0x38], ebp
jbe 0x4305d9
mov edi, dword [sym.imp.ole32.dll_PropVariantClear]
xor esi, esi
lea esp, [esp]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], esi
push 0x564f30
lea ecx, [esp + 0x2c]
mov byte [esp + 0x9c], 0xb
call fcn.00404670
mov bl, 0xc
push 0x564f30
lea ecx, [esp + 0x30]
mov byte [esp + 0x9c], bl
call fcn.00404670
mov dword [esp + 0x34], esi
mov dword [esp + 0x20], esi
mov byte [esp + 0x98], 0xe
mov eax, dword [esp + 0x1c]
cmp eax, esi
je 0x430379
mov dword [esp + 0x1c], esi
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x24]
cmp eax, esi
je 0x43038d
mov dword [esp + 0x24], esi
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x20]
cmp eax, esi
je 0x4303a1
mov dword [esp + 0x20], esi
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
lea edx, [esp + 0x1c]
push edx
push ebp
push eax
mov eax, dword [ecx + 0x10]
call eax
cmp eax, esi
jge 0x430427
mov byte [esp + 0x98], 0xd
mov eax, dword [esp + 0x20]
cmp eax, esi
je 0x4303cf
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x98], bl
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4303f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x98], 0xb
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430540
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x430540
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
push esi
push eax
mov eax, dword [ecx + 0x10]
call eax
cmp eax, esi
jl 0x430516
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
lea edx, [esp + 0x44]
push edx
push 0x566b60
push eax
mov eax, dword [ecx + 0x14]
call eax
cmp eax, esi
jl 0x430516
mov eax, dword [esp + 0x4c]
push eax
lea ecx, [esp + 0x30]
call fcn.00410cd0
lea ecx, [esp + 0x44]
push ecx
call edi
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x40]
push eax
call fcn.004340e0
add esp, 8
test al, al
jne 0x430516
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
lea edx, [esp + 0x34]
push edx
push eax
mov eax, dword [ecx + 0x14]
call eax
cmp eax, esi
jl 0x430516
push 0x564f30
lea ecx, [esp + 0x2c]
call fcn.004049b0
mov eax, dword [esp + 0x34]
push eax
lea ecx, [esp + 0x2c]
call fcn.00410cd0
mov ecx, dword [esp + 0x34]
push ecx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea eax, [esp + 0x20]
call fcn.004109a0
cmp eax, esi
jge 0x4304ff
mov byte [esp + 0x98], 0xd
mov eax, dword [esp + 0x20]
cmp eax, esi
je 0x43052e
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
jmp 0x43052e
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov ecx, dword [eax]
push 1
push edx
push eax
mov eax, dword [ecx + 0x34]
call eax
cmp eax, esi
jge 0x43057f
mov byte [esp + 0x98], 0xd
mov eax, dword [esp + 0x20]
cmp eax, esi
je 0x43052e
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea ecx, [esp + 0x2c]
call fcn.00401640
lea ecx, [esp + 0x28]
call fcn.00401640
mov byte [esp + 0x98], 0xa
mov eax, dword [esp + 0x24]
cmp eax, esi
je 0x430558
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x98], 8
mov eax, dword [esp + 0x1c]
cmp eax, esi
je 0x430570
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
add ebp, 1
cmp ebp, dword [esp + 0x38]
jb 0x430320
jmp 0x4305d9
mov byte [esp + 0x98], 0xd
mov eax, dword [esp + 0x20]
cmp eax, esi
je 0x430597
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea ecx, [esp + 0x2c]
call fcn.00401640
lea ecx, [esp + 0x28]
call fcn.00401640
mov byte [esp + 0x98], 0xa
mov eax, dword [esp + 0x24]
cmp eax, esi
je 0x4305c1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x98], 8
mov eax, dword [esp + 0x1c]
cmp eax, esi
je 0x4305d9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x98], 7
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430601
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x98], 6
mov eax, dword [esp + 0x30]
test eax, eax
je 0x430619
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x98], 0xffffffff
mov eax, dword [esp + 0x40]
test eax, eax
je 0x430634
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
test dword [eax + 0xc], 0x20000000
je 0x43099c
push 0x30
call fcn.004fae94
mov esi, eax
add esp, 4
mov dword [esp + 0x40], esi
test esi, esi
mov dword [esp + 0x98], 0xf
je 0x43067c
push esi
call fcn.004b4960
mov dword [esi], vtable.CDolbySetting.0
mov dword [esi + 0x14], 3
jmp 0x43067e
xor esi, esi
push 0x64
mov dword [esp + 0x9c], 0xffffffff
call fcn.004fae94
add esp, 4
mov dword [esp + 0x40], eax
test eax, eax
mov dword [esp + 0x98], 0x10
je 0x4306b4
push eax
call fcn.00463ed0
mov edi, eax
mov dword [esp + 0x2c], eax
jmp 0x4306ba
xor edi, edi
mov dword [esp + 0x2c], edi
test esi, esi
mov dword [esp + 0x98], 0xffffffff
je 0x43098d
test edi, edi
je 0x430982
mov ecx, dword [ebx + 8]
mov eax, dword [ecx + 0x19bc]
test eax, eax
mov dword [esp + 0x3c], eax
je 0x430982
test eax, eax
je 0x42f3da
mov edx, dword [eax]
mov eax, dword [eax + 8]
test eax, eax
mov dword [esp + 0x3c], edx
je 0x43096e
mov edx, dword [eax + 0x100]
mov ecx, edx
shr ecx, 0xd
and ecx, 1
jne 0x43071f
test edx, 0xe00000
je 0x43096e
cmp dword [eax + 0x24], 0
je 0x43096e
test ecx, ecx
mov ecx, dword [eax + 0x78]
je 0x43084d
sub ecx, 1
je 0x4307c3
sub ecx, 7
jne 0x43096e
test byte [eax + 0xfc], 1
je 0x43096e
mov edi, dword [esp + 0x2c]
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
mov ebp, dword [edi + 0x54]
xor ebx, ebx
test ebp, ebp
jbe 0x43096e
cmp ebx, ebp
mov dword [esp + 0x40], ebx
jae 0x4307a1
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x50]
test eax, eax
je 0x4307a1
mov edx, dword [esp + 0x40]
lea edi, [edx + eax]
test edi, edi
je 0x4307a1
lea eax, [edi + 0x1c]
push eax
push 0x566c2c
call fcn.00405090
add esp, 8
test eax, eax
jne 0x4307b2
add dword [esp + 0x40], 0x40
add ebx, 1
cmp ebx, ebp
jb 0x430776
jmp 0x43096e
mov ebx, dword [esp + 0x2c]
lea eax, [edi + 0x2c]
call fcn.00464660
jmp 0x43096e
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
test eax, eax
je 0x43096e
push 1
mov edi, 1
mov ecx, 0x564368
mov edx, esi
call fcn.004b51d0
push edi
mov ecx, 0x56437c
mov edx, esi
call fcn.004b51d0
push edi
mov ecx, 0x5642dc
mov edx, esi
call fcn.004b51d0
push edi
mov ecx, 0x5642f0
mov edx, esi
call fcn.004b51d0
push edi
mov ecx, 0x564304
mov edx, esi
call fcn.004b51d0
push edi
mov ecx, 0x564318
mov edx, esi
call fcn.004b51d0
push edi
mov ecx, 0x56432c
mov edx, esi
call fcn.004b51d0
push edi
mov ecx, 0x564340
mov edx, esi
call fcn.004b51d0
mov ecx, 0x564354
jmp 0x430965
sub ecx, 1
je 0x4308d3
sub ecx, 7
jne 0x43096e
mov edi, dword [esp + 0x2c]
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
je 0x43096e
cmp dword [edi + 0x5c], 0
je 0x43096e
mov ecx, dword [esp + 0x2c]
mov ebp, dword [ecx + 0x54]
xor edi, edi
test ebp, ebp
jbe 0x43096e
mov ecx, dword [esp + 0x2c]
mov eax, edi
call fcn.004647b0
mov ebx, eax
test ebx, ebx
je 0x4308b6
lea edx, [ebx + 0x1c]
push edx
push 0x566c2c
call fcn.00405090
add esp, 8
test eax, eax
jne 0x4308c2
add edi, 1
cmp edi, ebp
jb 0x430890
jmp 0x43096e
lea eax, [ebx + 0x2c]
mov ebx, dword [esp + 0x2c]
call fcn.00464660
jmp 0x43096e
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
test eax, eax
je 0x43096e
push 1
mov edi, 1
mov ecx, 0x5624f0
mov edx, esi
call fcn.004b51d0
push edi
mov ecx, 0x562504
mov edx, esi
call fcn.004b51d0
push edi
mov ecx, 0x562518
mov edx, esi
call fcn.004b51d0
push edi
mov ecx, 0x56252c
mov edx, esi
call fcn.004b51d0
push edi
mov ecx, 0x562568
mov edx, esi
call fcn.004b51d0
push edi
mov ecx, 0x56257c
mov edx, esi
call fcn.004b51d0
push edi
mov ecx, 0x562590
mov edx, esi
call fcn.004b51d0
push edi
mov ecx, 0x5625a4
mov edx, esi
call fcn.004b51d0
push edi
mov ecx, 0x562540
mov edx, esi
call fcn.004b51d0
mov ecx, 0x562554
push 1
mov edx, esi
call fcn.004b51d0
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x4306f2
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x18]
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
test edi, edi
je 0x43099c
mov edx, dword [edi]
mov eax, dword [edx + 4]
push 1
mov ecx, edi
call eax
mov ecx, dword [ebx + 8]
cmp dword [ecx + 0x20], 0
je 0x430afd
push 0x30
call fcn.004fae94
mov esi, eax
add esp, 4
mov dword [esp + 0x40], esi
test esi, esi
mov dword [esp + 0x98], 0x11
je 0x4309dd
push esi
call fcn.004b4960
mov dword [esi], vtable.CDolbySetting.0
mov dword [esi + 0x14], 3
jmp 0x4309df
xor esi, esi
test esi, esi
mov dword [esp + 0x98], 0xffffffff
mov eax, dword [ebx + 8]
mov edx, dword [eax + 0x20]
mov dword [esp + 0x40], edx
je 0x430afd
mov ebp, dword [eax + 0x19bc]
test ebp, ebp
je 0x430af2
lea ebx, [ebx]
test ebp, ebp
mov eax, ebp
je 0x42f3da
mov eax, dword [eax + 8]
test eax, eax
mov ebp, dword [ebp]
je 0x430aea
cmp dword [eax + 0x24], 0
je 0x430aea
mov ecx, dword [eax + 0x100]
test ecx, 0xe00000
jne 0x430a44
xor edi, edi
jmp 0x430a49
mov edi, 1
test ecx, 0x2000
jne 0x430a59
test edi, edi
je 0x430aea
mov ecx, dword [eax + 0x78]
sub ecx, 1
jne 0x430aea
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
test eax, eax
je 0x430aea
cmp dword [esp + 0x40], 0
je 0x430aea
test edi, edi
push 1
mov edx, esi
mov edi, 1
je 0x430ab2
mov ecx, 0x562540
call fcn.004b51d0
push edi
mov ecx, 0x5624f0
mov edx, esi
call fcn.004b51d0
push edi
mov ecx, 0x562518
mov edx, esi
call fcn.004b51d0
mov ecx, 0x562568
jmp 0x430add
mov ecx, 0x564368
call fcn.004b51d0
push 1
mov ecx, 0x5642dc
mov edx, esi
call fcn.004b51d0
push 1
mov ecx, 0x564304
mov edx, esi
call fcn.004b51d0
mov ecx, 0x56432c
push 1
mov edx, esi
call fcn.004b51d0
mov ebx, dword [esp + 0x18]
test ebp, ebp
jne 0x430a10
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
mov eax, dword [ebx + 8]
test byte [eax + 0x28], 4
je 0x430b2b
mov eax, dword [eax + 0x19bc]
mov edx, 1
test eax, eax
je 0x430b2b
mov ecx, eax
mov ecx, dword [ecx + 8]
test ecx, ecx
mov eax, dword [eax]
je 0x430b11
cmp dword [ecx + 0x78], edx
jne 0x430b11
push ecx
call fcn.0040e2c0
mov edx, dword [ebx + 8]
test byte [edx + 0x28], 0x20
je 0x430b39
call fcn.00427df0
mov eax, dword [ebx + 8]
test byte [eax + 0x28], 0x80
je 0x430b47
call fcn.004233c0
mov eax, dword [ebx + 8]
test dword [eax + 0x30], 0x800
je 0x430b66
add eax, 0x19b4
call fcn.004a68a0
test eax, eax
je 0x430b66
call fcn.0040e730
mov eax, dword [ebx + 8]
cmp dword [eax + 0x1d8], 0
je 0x430c5d
mov eax, dword [eax + 0x19bc]
test eax, eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], eax
je 0x430c5d
mov eax, dword [esp + 0x30]
test eax, eax
je 0x42f3da
mov ebp, dword [eax + 8]
test ebp, ebp
mov ecx, eax
mov edx, dword [ecx]
mov dword [esp + 0x30], edx
je 0x430c4e
cmp dword [ebp + 0x78], 0
je 0x430c4e
push 0
push 0x5b1acc
push 0x5ace98
push 0
xor ebx, ebx
mov eax, ebp
call fcn.0040ce40
push eax
call fcn.00521e47
mov edi, eax
add esp, 0x14
test edi, edi
je 0x430c4e
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0x1d8]
sub eax, 4
je 0x430d0d
sub eax, 2
je 0x430cd7
sub eax, 2
jne 0x430c33
lea esi, [esp + 0x2c]
lea edx, [ebx + 0x40]
mov eax, edi
call fcn.004d2df0
test eax, eax
jne 0x430d33
mov esi, dword [ebp + 0x14]
call fcn.00503137
mov eax, dword [eax + 4]
push 8
push str.SetDefNoSupport
push esi
mov ecx, eax
call fcn.00507c28
xor esi, esi
mov ebp, dword [ebp + 0x14]
call fcn.00503137
mov eax, dword [eax + 4]
push esi
push str.SetDefCh
push ebp
mov ecx, eax
call fcn.00507c28
cmp dword [esp + 0x30], 0
jne 0x430b90
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
test byte [eax + 0x1b0], 8
je 0x430c96
mov esi, dword [eax + 0x19bc]
test esi, esi
je 0x430c96
test esi, esi
mov eax, esi
je 0x42f3da
mov eax, dword [eax + 8]
test eax, eax
mov esi, dword [esi]
je 0x430c92
cmp dword [eax + 0x78], 3
jne 0x430c92
push eax
call fcn.00410190
test esi, esi
jne 0x430c73
mov eax, dword [0x5b6edc]
test eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov edi, 0x114
jne 0x430cbc
push 0x5b6ed8
mov dword [0x5b6ed8], edi
call esi
mov eax, dword [0x5b6edc]
cmp eax, 6
jne 0x430d58
cmp dword [0x5b6ee0], 2
jne 0x430d73
jmp 0x430d7c
lea esi, [esp + 0x2c]
mov edx, 0x10
mov eax, edi
call fcn.004d2df0
test eax, eax
mov eax, edi
jne 0x430d35
mov edx, 0x20
call fcn.004d2df0
test eax, eax
jne 0x430d33
mov esi, dword [ebp + 0x14]
call fcn.00503137
mov eax, dword [eax + 4]
push 6
jmp 0x430c26
lea esi, [esp + 0x2c]
mov edx, 4
mov eax, edi
call fcn.004d2df0
test eax, eax
jne 0x430d33
mov esi, dword [ebp + 0x14]
call fcn.00503137
mov eax, dword [eax + 4]
push 4
jmp 0x430c26
mov eax, edi
mov esi, dword [esp + 0x2c]
call fcn.004d31e0
test eax, eax
je 0x430c33
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 8]
mov esi, dword [eax + 0x1d8]
jmp 0x430c35
test eax, eax
jne 0x430d6e
push 0x5b6ed8
mov dword [0x5b6ed8], edi
call esi
mov eax, dword [0x5b6edc]
cmp eax, 6
jne 0x430d8d
cmp dword [0x5b6ee0], 3
jne 0x430d8d
mov ecx, dword [ebx + 8]
test byte [ecx + 0x1b0], 4
je 0x430d8d
call fcn.004ed790
mov edx, dword [ebx]
mov eax, dword [edx + 0xa0]
mov ecx, ebx
call eax
mov eax, dword [ebx + 8]
test byte [eax + 0x36], 1
je 0x430da8
push eax
call fcn.004291b0
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret