Function at 0x40b8f0
Capabilities:
Access peb ldr_data
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x41f0cd
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x164
push ebx
push ebp
push esi
mov esi, ecx
xor ebp, ebp
lea ecx, [esp + 0x10]
mov dword [esp + 0x24], ebp
mov dword [esp + 0xc], ebp
call fcn.00404610
mov dword [esp + 0x178], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], 0x421a30
mov eax, dword [esi + 0x2e8]
mov ecx, 0x42bd98
push eax
mov byte [esp + 0x17c], 1
call fcn.00407dd0
mov ebx, eax
mov eax, dword [0x42c050]
xor ecx, ecx
cmp eax, ebp
sete cl
mov dword [esp + 0x30], ecx
mov ecx, 0x42bd98
call fcn.00409ee0
test eax, eax
mov dword [esp + 0x2c], 0x429f58
jne 0x40b97f
mov dword [esp + 0x2c], 0x429d98
lea ecx, [esp + 0xbc]
call fcn.00403c20
cmp ebx, ebp
mov byte [esp + 0x178], 2
jne 0x40b9e5
lea ecx, [esp + 0xbc]
mov byte [esp + 0x178], 1
call fcn.00403cc0
mov dword [esp + 0x1c], 0x421a1c
lea ecx, [esp + 0x1c]
mov byte [esp + 0x178], 3
call sub.MFC42.DLL_CGdiObject::DeleteObject
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c], 0x421a44
mov dword [esp + 0x178], 0xffffffff
call fcn.0041d8b4
jmp 0x40be65
mov edx, dword [esi + 0x280]
push edi
push edx
call dword [sym.imp.USER32.dll_GetDC]
push eax
call sub.MFC42.DLL_CDC::FromHandle
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0xc]
push eax
push str.CAudioESPDlg::InitComboBox__:___Jack:__d__________________
push 5
push 0x42bd98
call fcn.00406d40
mov eax, dword [esp + 0xd8]
add esp, 0x10
cmp eax, 0xa
je 0x40ba2a
cmp eax, 0xb
jne 0x40bafd
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], 0x421be4
mov byte [esp + 0x17c], 4
call sub.KERNEL32.dll_GetSystemDefaultLangID
mov edi, eax
lea eax, [esi + 0x260]
cmp eax, ebp
mov dword [esp + 0x38], 0x34
jne 0x40ba5b
xor eax, eax
jmp 0x40ba5e
mov eax, dword [eax + 0x20]
lea ecx, [esp + 0x38]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetComboBoxInfo]
push edi
call fcn.00404750
mov edx, eax
add esp, 4
mov ecx, 0xf
xor eax, eax
lea edi, [esp + 0x6c]
cmp dx, 0x411
rep stosd dword es:[edi], eax
jne 0x40badc
lea edx, [esp + 0x6c]
mov byte [esp + 0x83], 0x80
push edx
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
push eax
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CGdiObject::Attach
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x68]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 1
push eax
push 0x30
push ecx
call edi
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x64]
push 1
push edx
push 0x30
push eax
call edi
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x60]
push 1
push ecx
push 0x30
push edx
call edi
mov dword [esp + 0x18], 0x421a1c
lea ecx, [esp + 0x18]
mov byte [esp + 0x17c], 5
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov byte [esp + 0x17c], 2
mov ebp, dword [esp + 0x30]
xor edi, edi
push edi
push str.CAudioESPDlg::InitComboBox__:___i:__d
push 5
push 0x42bd98
call fcn.00406d40
mov eax, dword [ebp]
push eax
push edi
push str.CAudioESPDlg::InitComboBox__:___pDevSelection__d_.dwFID:__0x_08X
push 5
push 0x42bd98
call fcn.00406d40
mov ecx, dword [ebp]
add esp, 0x24
push 0xffffffffffffffff
push ecx
mov ecx, esi
call fcn.0040e180
test eax, eax
jl 0x40bcc0
mov edx, dword [esp + 0x34]
push edx
push str.CAudioESPDlg::InitComboBox__:___bShowAll:__d
push 5
push 0x42bd98
call fcn.00406d40
mov ecx, dword [ebp]
mov eax, dword [ebx + 0x18]
push ecx
push edi
push eax
push str.CAudioESPDlg::InitComboBox__:___FCBits:_0x_08X___pDevSelection__d_.dwFID:__0x_08X
push 5
push 0x42bd98
call fcn.00406d40
mov eax, dword [ebx + 0x40]
push eax
push edi
push str.CAudioESPDlg::InitComboBox__:___ExludeDID:__0x_08X___pDevSelection__d_.dwDIDExcluded___m_uFCExcludeDIDs:_0x_08X
push 5
push 0x42bd98
call fcn.00406d40
mov edx, dword [ebp + 8]
mov ecx, dword [ebx + 0x40]
and edx, ecx
neg edx
sbb edx, edx
inc edx
push edx
push str.CAudioESPDlg::InitComboBox__:___IsDIDAllowedInList:__d
push 5
push 0x42bd98
call fcn.00406d40
mov eax, dword [esp + 0x80]
add esp, 0x4c
test eax, eax
mov eax, dword [ebp]
je 0x40bbe1
mov ecx, eax
and ecx, 0x20
jne 0x40bbc4
test al, 0x40
je 0x40bbf1
mov edx, dword [ebx + 0x28]
cmp edx, 1
jne 0x40bbd8
test ecx, ecx
jne 0x40bce6
cmp edx, edx
je 0x40bbf1
test al, 0x40
je 0x40bbf1
jmp 0x40bce6
push eax
mov ecx, ebx
call fcn.004149d0
test eax, eax
je 0x40bcc0
mov ecx, dword [ebp]
push ecx
mov ecx, ebx
call fcn.004149d0
push eax
push str.CAudioESPDlg::InitComboBox__:___IsBitSet:__d
push 5
push 0x42bd98
call fcn.00406d40
mov edx, dword [ebp + 8]
mov eax, dword [ebx + 0x40]
add esp, 0x10
test eax, edx
jne 0x40bcc0
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x14]
push eax
call fcn.00404670
mov ecx, dword [esp + 0x14]
mov edx, dword [esi + 0x280]
push ecx
push 0xffffffffffffffff
push 0x14c
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 0xffffffff
jne 0x40bcc0
mov eax, dword [esp + 0x14]
push eax
push str.CAudioESPDlg::InitComboBox__:__Adding_to_list:___s
push 5
push 0x42bd98
call fcn.00406d40
mov ecx, dword [esp + 0x24]
mov edx, dword [esi + 0x280]
add esp, 0x10
push ecx
push 0
push 0x143
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
push edi
mov dword [esp + 0x14], eax
push eax
mov eax, dword [esi + 0x280]
push 0x151
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x18]
push edx
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 8]
push ecx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
cmp eax, ecx
jle 0x40bcc0
mov dword [esp + 0x28], eax
push edi
push 0x429930
push 5
push 0x42bd98
call fcn.00406d40
push str.CAudioESPDlg::InitComboBox__:
push 5
push 0x42bd98
call fcn.00406d40
add esp, 0x1c
inc edi
add ebp, 0x20
cmp edi, 0xe
jl 0x40bb03
push 0xa4
push 2
push 0xa4
call sub.MFC42.DLL_AfxFindResourceHandle
push eax
call dword [sym.imp.USER32.dll_LoadBitmapA]
push eax
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CGdiObject::Attach
mov eax, dword [esp + 0x24]
lea edx, [esp + 0xa8]
push edx
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esi + 0x280]
mov edx, dword [ecx + 4]
push edx
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [esp + 0x28]
mov edx, dword [esi + 0x280]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push ecx
push 0x160
push edx
call edi
mov eax, dword [esi + 0x2f4]
cmp eax, 0xa
ja case.default.0x40bd69
jmp dword [eax*4 + 0x40be80]
push 1
push 1
jmp 0x40bdd2
mov edx, dword [esi + 0x2f0]
push 2
push edx
jmp 0x40bdd2
push eax
push 0x1000
mov ecx, esi
call fcn.0040e010
xor edx, edx
test eax, eax
setl dl
dec edx
and edx, eax
mov dword [esp + 0x10], edx
jmp case.0x40bd69.0
push 4
push 8
jmp 0x40bdd2
push eax
push 0x20
mov ecx, esi
call fcn.0040e010
test eax, eax
mov dword [esp + 0x10], eax
jge case.0x40bd69.0
mov edx, dword [esi + 0x2f4]
mov ecx, esi
push edx
push 0x40
call fcn.0040e010
mov dword [esp + 0x10], eax
jmp case.0x40bd69.0
push eax
push 0x80
mov ecx, esi
call fcn.0040e010
xor ecx, ecx
test eax, eax
setl cl
dec ecx
and ecx, eax
mov dword [esp + 0x10], ecx
jmp case.0x40bd69.0
mov dword [esp + 0x10], 0
mov ebx, dword [esp + 0x10]
push ebx
push str.CAudioESPDlg::InitComboBox__:___Guessed_idx:__d
push 5
push 0x42bd98
call fcn.00406d40
mov edx, dword [esi + 0x280]
add esp, 0x10
push 0
push ebx
push 0x14e
push edx
call edi
lea ecx, [esp + 0xc0]
mov byte [esp + 0x17c], 1
call fcn.00403cc0
mov dword [esp + 0x20], 0x421a1c
lea ecx, [esp + 0x20]
mov byte [esp + 0x17c], 6
call sub.MFC42.DLL_CGdiObject::DeleteObject
lea ecx, [esp + 0x14]
mov dword [esp + 0x20], 0x421a44
mov dword [esp + 0x17c], 0xffffffff
call fcn.0041d8b4
pop edi
mov ecx, dword [esp + 0x170]
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x170
ret