Function at 0x41de00
Capabilities:
Link many functions at runtime

Disassembly:
push esi
mov esi, ecx
mov eax, dword [esi + 4]
push edi
xor edi, edi
cmp eax, edi
je 0x41de14
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [esp + 0xc]
cmp eax, edi
je 0x41de25
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
jmp 0x41de27
xor eax, eax
mov dword [esi + 4], eax
cmp eax, edi
jne 0x41de35
pop edi
xor eax, eax
pop esi
ret 4
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push ebp
push str.VistaVol_Init
push eax
mov ebp, 1
call ebx
mov dword [esi + 8], eax
cmp eax, edi
jne 0x41de53
xor ebp, ebp
mov eax, dword [esi + 4]
cmp eax, edi
je 0x41de67
push str.VistaVol_InitEx
push eax
call ebx
mov dword [esi + 0xc], eax
jmp 0x41de6a
mov dword [esi + 0xc], edi
cmp dword [esi + 0xc], edi
jne 0x41de71
xor ebp, ebp
mov eax, dword [esi + 4]
cmp eax, edi
je 0x41de85
push str.VistaVol_DeInit
push eax
call ebx
mov dword [esi + 0x10], eax
jmp 0x41de88
mov dword [esi + 0x10], edi
cmp dword [esi + 0x10], edi
jne 0x41de8f
xor ebp, ebp
mov eax, dword [esi + 4]
cmp eax, edi
je 0x41dea3
push str.VistaVol_GetMute
push eax
call ebx
mov dword [esi + 0x14], eax
jmp 0x41dea6
mov dword [esi + 0x14], edi
cmp dword [esi + 0x14], edi
jne 0x41dead
xor ebp, ebp
mov eax, dword [esi + 4]
cmp eax, edi
je 0x41dec1
push str.VistaVol_SetMute
push eax
call ebx
mov dword [esi + 0x18], eax
jmp 0x41dec4
mov dword [esi + 0x18], edi
cmp dword [esi + 0x18], edi
jne 0x41decb
xor ebp, ebp
mov eax, dword [esi + 4]
cmp eax, edi
je 0x41dedf
push str.VistaVol_GetVolumeLevel
push eax
call ebx
mov dword [esi + 0x1c], eax
jmp 0x41dee2
mov dword [esi + 0x1c], edi
cmp dword [esi + 0x1c], edi
jne 0x41dee9
xor ebp, ebp
mov eax, dword [esi + 4]
cmp eax, edi
je 0x41defd
push str.VistaVol_SetVolumeLevel
push eax
call ebx
mov dword [esi + 0x20], eax
jmp 0x41df00
mov dword [esi + 0x20], edi
cmp dword [esi + 0x20], edi
jne 0x41df07
xor ebp, ebp
mov eax, dword [esi + 4]
cmp eax, edi
je 0x41df1b
push str.VistaVol_VolumeLevelStepUp
push eax
call ebx
mov dword [esi + 0x24], eax
jmp 0x41df1e
mov dword [esi + 0x24], edi
cmp dword [esi + 0x24], edi
jne 0x41df25
xor ebp, ebp
mov eax, dword [esi + 4]
cmp eax, edi
je 0x41df39
push str.VistaVol_VolumeLevelStepDown
push eax
call ebx
mov dword [esi + 0x28], eax
jmp 0x41df3c
mov dword [esi + 0x28], edi
cmp dword [esi + 0x28], edi
jne 0x41df43
xor ebp, ebp
mov eax, dword [esi + 4]
cmp eax, edi
je 0x41df57
push str.VistaVol_Register
push eax
call ebx
mov dword [esi + 0x2c], eax
jmp 0x41df5a
mov dword [esi + 0x2c], edi
cmp dword [esi + 0x2c], edi
jne 0x41df61
xor ebp, ebp
mov eax, dword [esi + 4]
cmp eax, edi
je 0x41df75
push str.VistaVol_Unregister
push eax
call ebx
mov dword [esi + 0x30], eax
jmp 0x41df78
mov dword [esi + 0x30], edi
cmp dword [esi + 0x30], edi
jne 0x41df7f
xor ebp, ebp
mov eax, dword [esi + 4]
cmp eax, edi
je 0x41df93
push str.VistaVol_DeviceChanged
push eax
call ebx
mov dword [esi + 0x34], eax
jmp 0x41df96
mov dword [esi + 0x34], edi
cmp dword [esi + 0x34], edi
jne 0x41df9d
xor ebp, ebp
mov eax, dword [esi + 4]
cmp eax, edi
je 0x41dfb1
push str.VistaVol_OnDefaultDeviceChanged
push eax
call ebx
mov dword [esi + 0x38], eax
jmp 0x41dfb4
mov dword [esi + 0x38], edi
cmp dword [esi + 0x38], edi
jne 0x41dfbb
xor ebp, ebp
mov eax, dword [esi + 4]
cmp eax, edi
je 0x41dfcf
push str.VistaVol_OnDeviceRemoved
push eax
call ebx
mov dword [esi + 0x3c], eax
jmp 0x41dfd2
mov dword [esi + 0x3c], edi
cmp dword [esi + 0x3c], edi
jne 0x41dfd9
xor ebp, ebp
mov eax, ebp
pop ebp
pop ebx
pop edi
pop esi
ret 4