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

Disassembly:
push 0xffffffffffffffff
push 0x41d54d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x15c
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.004045c0
mov dword [esp + 0x170], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], 0x41fa28
mov eax, dword [esi + 0x2e0]
mov ecx, 0x4292a8
push eax
mov byte [esp + 0x174], 1
call fcn.00407950
mov ebx, eax
mov eax, dword [0x429558]
xor ecx, ecx
cmp eax, ebp
sete cl
mov dword [esp + 0x30], ecx
mov ecx, 0x4292a8
call fcn.004096e0
test eax, eax
mov dword [esp + 0x2c], 0x427c28
jne 0x40a94f
mov dword [esp + 0x2c], 0x427a68
lea ecx, [esp + 0xbc]
call fcn.00403c10
cmp ebx, ebp
mov byte [esp + 0x170], 2
jne 0x40a9b5
lea ecx, [esp + 0xbc]
mov byte [esp + 0x170], 1
call fcn.00403cb0
mov dword [esp + 0x1c], 0x41fa14
lea ecx, [esp + 0x1c]
mov byte [esp + 0x170], 3
call sub.MFC42.DLL_CGdiObject::DeleteObject
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c], 0x41fa3c
mov dword [esp + 0x170], 0xffffffff
call fcn.0041bec4
jmp 0x40ae3d
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 0x4292a8
call fcn.004069c0
mov eax, dword [esp + 0xd8]
add esp, 0x10
cmp eax, 0xa
jne 0x40aac9
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], 0x41fbdc
mov byte [esp + 0x174], 4
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
mov edi, eax
lea eax, [esi + 0x260]
cmp eax, ebp
mov dword [esp + 0x38], 0x34
jne 0x40aa27
xor eax, eax
jmp 0x40aa2a
mov eax, dword [eax + 0x20]
lea ecx, [esp + 0x38]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetComboBoxInfo]
push edi
call fcn.004046a0
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 0x40aaa8
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], 0x41fa14
lea ecx, [esp + 0x18]
mov byte [esp + 0x174], 5
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov byte [esp + 0x174], 2
mov ebp, dword [esp + 0x30]
xor edi, edi
push edi
push str.CAudioESPDlg::InitComboBox__:___i:__d
push 5
push 0x4292a8
call fcn.004069c0
mov eax, dword [ebp]
add esp, 0x10
push eax
push edi
push str.CAudioESPDlg::InitComboBox__:___pDevSelection__d_.dwFID:__0x_08X
push 5
push 0x4292a8
call fcn.004069c0
mov ecx, dword [ebp]
add esp, 0x14
push 0xffffffffffffffff
push ecx
mov ecx, esi
call fcn.0040d110
test eax, eax
jl 0x40ac95
mov edx, dword [esp + 0x34]
push edx
push str.CAudioESPDlg::InitComboBox__:___bShowAll:__d
push 5
push 0x4292a8
call fcn.004069c0
mov ecx, dword [ebp]
mov eax, dword [ebx + 0x18]
add esp, 0x10
push ecx
push edi
push eax
push str.CAudioESPDlg::InitComboBox__:___FCBits:_0x_08X___pDevSelection__d_.dwFID:__0x_08X
push 5
push 0x4292a8
call fcn.004069c0
mov eax, dword [ebx + 0x40]
add esp, 0x18
push eax
push edi
push str.CAudioESPDlg::InitComboBox__:___ExludeDID:__0x_08X___pDevSelection__d_.dwDIDExcluded___m_uFCExcludeDIDs:_0x_08X
push 5
push 0x4292a8
call fcn.004069c0
mov edx, dword [ebx + 0x40]
mov ecx, dword [ebp + 8]
and edx, ecx
add esp, 0x14
neg edx
sbb edx, edx
inc edx
push edx
push str.CAudioESPDlg::InitComboBox__:___IsDIDAllowedInList:__d
push 5
push 0x4292a8
call fcn.004069c0
mov eax, dword [esp + 0x44]
add esp, 0x10
test eax, eax
mov eax, dword [ebp]
je 0x40abb6
mov ecx, eax
and ecx, 0x20
jne 0x40ab99
test al, 0x40
je 0x40abc6
mov edx, dword [ebx + 0x28]
cmp edx, 1
jne 0x40abad
test ecx, ecx
jne 0x40acbe
cmp edx, edx
je 0x40abc6
test al, 0x40
je 0x40abc6
jmp 0x40acbe
push eax
mov ecx, ebx
call fcn.00412ef0
test eax, eax
je 0x40ac95
mov ecx, dword [ebp]
push ecx
mov ecx, ebx
call fcn.00412ef0
push eax
push str.CAudioESPDlg::InitComboBox__:___IsBitSet:__d
push 5
push 0x4292a8
call fcn.004069c0
mov edx, dword [ebx + 0x40]
mov eax, dword [ebp + 8]
add esp, 0x10
test eax, edx
jne 0x40ac95
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x14]
push eax
call fcn.004045d0
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 0x40ac95
mov eax, dword [esp + 0x14]
push eax
push str.CAudioESPDlg::InitComboBox__:__Adding_to_list:___s
push 5
push 0x4292a8
call fcn.004069c0
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 0x40ac95
mov dword [esp + 0x28], eax
push edi
push 0x4275fc
push 5
push 0x4292a8
call fcn.004069c0
add esp, 0x10
push str.CAudioESPDlg::InitComboBox__:
push 5
push 0x4292a8
call fcn.004069c0
add esp, 0xc
inc edi
add ebp, 0x20
cmp edi, 0xe
jl 0x40aacf
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 + 0x2ec]
cmp eax, 0xa
ja case.default.0x40ad41
jmp dword [eax*4 + 0x40ae58]
push 1
push 1
jmp 0x40adaa
mov edx, dword [esi + 0x2e8]
push 2
push edx
jmp 0x40adaa
push eax
push 0x1000
mov ecx, esi
call fcn.0040cfa0
xor edx, edx
test eax, eax
setl dl
dec edx
and edx, eax
mov dword [esp + 0x10], edx
jmp case.0x40ad41.0
push 4
push 8
jmp 0x40adaa
push eax
push 0x20
mov ecx, esi
call fcn.0040cfa0
test eax, eax
mov dword [esp + 0x10], eax
jge case.0x40ad41.0
mov edx, dword [esi + 0x2ec]
mov ecx, esi
push edx
push 0x40
call fcn.0040cfa0
mov dword [esp + 0x10], eax
jmp case.0x40ad41.0
push eax
push 0x80
mov ecx, esi
call fcn.0040cfa0
xor ecx, ecx
test eax, eax
setl cl
dec ecx
and ecx, eax
mov dword [esp + 0x10], ecx
jmp case.0x40ad41.0
mov dword [esp + 0x10], 0
mov ebx, dword [esp + 0x10]
push ebx
push str.CAudioESPDlg::InitComboBox__:___Guessed_idx:__d
push 5
push 0x4292a8
call fcn.004069c0
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 + 0x174], 1
call fcn.00403cb0
mov dword [esp + 0x20], 0x41fa14
lea ecx, [esp + 0x20]
mov byte [esp + 0x174], 6
call sub.MFC42.DLL_CGdiObject::DeleteObject
lea ecx, [esp + 0x14]
mov dword [esp + 0x20], 0x41fa3c
mov dword [esp + 0x174], 0xffffffff
call fcn.0041bec4
pop edi
mov ecx, dword [esp + 0x168]
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x168
ret