Function at 0x40bac65e
Capabilities:
Load assembly via iassembly

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x19c
mov eax, dword [0x40bb1020]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push esi
mov esi, dword [ebp + 8]
push edi
xor edi, edi
push edi
push edi
push 0xb
push dword [esi + 0x10]
mov dword [ebp - 0x198], edi
call ebx
push edi
push edi
push 0x14b
push dword [esi + 0x10]
call ebx
mov eax, dword [esi]
sub eax, edi
je 0x40bac931
dec eax
jne 0x40bac9ff
push 0x118
lea eax, [ebp - 0x11c]
push edi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x108]
push eax
push edi
push dword [esi + 0x98]
call fcn.40ba23db
test eax, eax
jne 0x40bac9ff
mov eax, dword [esi + 0x88]
cmp dword [ebp - 0x108], eax
ja 0x40bac6f1
mov dword [ebp - 0x108], eax
push dword [ebp - 0x108]
push 0x42
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x19c], eax
cmp eax, edi
je 0x40bac9ff
mov ecx, dword [esi + 0x94]
mov dword [ebp - 0x11c], 0x118
mov dword [ebp - 0x10c], eax
mov ecx, dword [ecx + 0x184]
cmp ecx, edi
je 0x40bac762
mov edx, dword [esi + 0x88]
cmp edx, dword [ebp - 0x108]
jb 0x40bac748
mov edx, dword [ebp - 0x108]
push edx
push ecx
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x19c]
movzx eax, word [eax]
add esp, 0xc
mov dword [ebp - 0x114], eax
mov ebx, dword [esi + 0x94]
mov eax, dword [ebx + 0x180]
test eax, 0x300000
jne 0x40bac7d7
push 0x78
lea eax, [ebp - 0x194]
push edi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [ebp - 0x194], 0x78
cmp dword [ebx + 0x184], edi
je 0x40bac7aa
test dword [ebx + 0x180], 0x10000
je 0x40bac7aa
xor eax, eax
inc eax
jmp 0x40bac7ac
xor eax, eax
push edi
mov dword [esi + 0x7c], eax
push esi
lea eax, [ebp - 0x11c]
mov dword [esi + 0x90], eax
push 0x40babcb9
lea eax, [ebp - 0x194]
push eax
push edi
call sym.MSACM32.dll_acmFormatTagEnumW
mov dword [esi + 0x90], edi
jmp 0x40bac7eb
push eax
push esi
push fcn.40babe04
lea eax, [ebp - 0x11c]
push eax
push edi
call sym.MSACM32.dll_acmFormatEnumW
mov dword [ebp - 0x198], eax
cmp eax, edi
jne 0x40bac902
mov eax, dword [esi + 0x94]
test dword [eax + 4], 0x40
push 0x10
pop ebx
je 0x40bac879
mov dword [ebp - 0x11c], 0x118
mov ecx, dword [eax + 0xc]
movzx ecx, word [ecx]
mov dword [ebp - 0x114], ecx
mov ecx, dword [eax + 0xc]
xor edx, edx
mov dword [ebp - 0x10c], ecx
mov ecx, dword [eax + 0xc]
inc edx
cmp dx, word [ecx]
jne 0x40bac83d
mov dword [ebp - 0x108], ebx
jmp 0x40bac84c
mov eax, ecx
movzx eax, word [eax + 0x10]
add eax, 0x12
mov dword [ebp - 0x108], eax
push 1
lea eax, [ebp - 0x11c]
push eax
push edi
mov dword [ebp - 0x110], edi
call sym.MSACM32.dll_acmFormatDetailsW
test eax, eax
jne 0x40bac879
push dword [ebp - 0x110]
lea eax, [ebp - 0x11c]
push esi
push eax
push edi
call fcn.40babe04
mov eax, dword [esi + 0x94]
test dword [eax + 0x180], 0x300000
je 0x40bac902
mov dword [ebp - 0x11c], 0x118
mov ecx, dword [eax + 0x184]
movzx ecx, word [ecx]
mov dword [ebp - 0x114], ecx
mov ecx, dword [eax + 0x184]
xor edx, edx
mov dword [ebp - 0x10c], ecx
mov ecx, dword [eax + 0x184]
inc edx
cmp dx, word [ecx]
jne 0x40bac8c6
mov dword [ebp - 0x108], ebx
jmp 0x40bac8d5
mov eax, ecx
movzx eax, word [eax + 0x10]
add eax, 0x12
mov dword [ebp - 0x108], eax
push 1
lea eax, [ebp - 0x11c]
push eax
push edi
mov dword [ebp - 0x110], edi
call sym.MSACM32.dll_acmFormatDetailsW
test eax, eax
jne 0x40bac902
push dword [ebp - 0x110]
lea eax, [ebp - 0x11c]
push esi
push eax
push edi
call fcn.40babe04
push dword [ebp - 0x19c]
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalHandle]
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push dword [ebp - 0x19c]
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x40bac9f7
push 0x78
lea eax, [ebp - 0x194]
push edi
push eax
call sub.msvcrt.dll_memset
mov eax, dword [esi + 0x94]
add esp, 0xc
mov dword [ebp - 0x194], 0x78
cmp dword [eax + 0x184], edi
je 0x40bac96c
test dword [eax + 0x180], 0x10000
je 0x40bac96c
xor eax, eax
inc eax
jmp 0x40bac96e
xor eax, eax
push edi
push esi
mov dword [esi + 0x7c], eax
push fcn.40babeb3
lea eax, [ebp - 0x194]
push eax
push edi
call sym.MSACM32.dll_acmFilterTagEnumW
mov dword [ebp - 0x198], eax
cmp eax, edi
jne 0x40baca19
mov eax, dword [esi + 0x94]
test dword [eax + 4], 0x40
je 0x40bac9f7
push 0x78
lea eax, [ebp - 0x194]
push edi
push eax
call sub.msvcrt.dll_memset
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x194], 0x78
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
add esp, 0xc
mov dword [ebp - 0x18c], eax
push 1
lea eax, [ebp - 0x194]
push eax
push edi
call sym.MSACM32.dll_acmFilterTagDetailsW
test eax, eax
jne 0x40bac9f7
push dword [ebp - 0x184]
lea eax, [ebp - 0x194]
push esi
push eax
push edi
call fcn.40babeb3
cmp dword [ebp - 0x198], edi
jne 0x40baca19
push edi
push edi
push 0x146
push dword [esi + 0x10]
call ebx
test eax, eax
jne 0x40baca19
mov dword [ebp - 0x198], 6
push edi
push 1
push 0xb
push dword [esi + 0x10]
call ebx
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x198]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.40ba1e8c
leave
ret 4