Function at 0x40bacd5f
Capabilities:
Load assembly via iassembly

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x124
mov eax, dword [0x40bb1020]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push 0x7f02
xor ebx, ebx
push ebx
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push ebx
push ebx
push 0xb
push dword [esi + 0x18]
mov dword [ebp - 0x124], eax
call edi
push esi
call fcn.40babf36
push ebx
push ebx
push 0x14b
push dword [esi + 0x18]
call edi
xor eax, eax
cmp dword [esi + 0x70], ebx
setne al
mov edi, eax
cmp edi, ebx
je 0x40bad1aa
mov eax, dword [esi]
sub eax, ebx
je 0x40bad022
dec eax
jne 0x40bad185
lea eax, [ebp - 0x108]
push eax
push ebx
push dword [esi + 0x98]
xor edi, edi
call fcn.40ba23db
test eax, eax
jne 0x40baceeb
cmp dword [ebp - 0x108], ebx
je 0x40bad1aa
mov eax, dword [esi + 0x88]
cmp dword [ebp - 0x108], eax
ja 0x40bace16
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 ebx, eax
mov dword [ebp - 0x120], ebx
test ebx, ebx
je 0x40bad1a8
and dword [ebp - 0x110], edi
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x11c], 0x118
mov dword [ebp - 0x10c], ebx
mov eax, dword [eax + 0x184]
test eax, eax
je 0x40bace80
mov ecx, dword [esi + 0x88]
cmp ecx, dword [ebp - 0x108]
jb 0x40bace75
mov ecx, dword [ebp - 0x108]
push ecx
push eax
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x94]
mov eax, dword [eax + 0x180]
test eax, 0x300000
jne 0x40bacea5
mov cx, word [esi + 0x70]
mov edx, dword [ebp - 0x10c]
or eax, 0x10000
mov word [edx], cx
movzx ecx, word [ebx]
push eax
push esi
push fcn.40baca3f
lea eax, [ebp - 0x11c]
push eax
push 0
mov dword [ebp - 0x114], ecx
call sym.MSACM32.dll_acmFormatEnumW
mov edi, eax
neg edi
sbb edi, edi
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalHandle]
inc edi
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push dword [ebp - 0x120]
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor ebx, ebx
mov ecx, dword [esi + 0x94]
test dword [ecx + 4], 0x40
je 0x40bacf78
mov eax, dword [ecx + 0xc]
mov ax, word [eax]
cmp ax, word [esi + 0x70]
jne 0x40bacf78
mov eax, dword [esi + 0x70]
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x11c], 0x118
mov eax, ecx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x10c], edx
mov eax, dword [eax + 0xc]
xor edx, edx
inc edx
cmp dx, word [eax]
jne 0x40bacf3b
mov dword [ebp - 0x108], 0x10
jmp 0x40bacf4b
mov eax, dword [ecx + 0xc]
movzx eax, word [eax + 0x10]
add eax, 0x12
mov dword [ebp - 0x108], eax
push 1
lea eax, [ebp - 0x11c]
push eax
push ebx
mov dword [ebp - 0x110], ebx
call sym.MSACM32.dll_acmFormatDetailsW
test eax, eax
jne 0x40bacf78
push dword [ebp - 0x110]
lea eax, [ebp - 0x11c]
push esi
push eax
push ebx
call fcn.40baca3f
mov ecx, dword [esi + 0x94]
test dword [ecx + 0x180], 0x300000
je 0x40bad185
mov eax, dword [ecx + 0x184]
mov ax, word [eax]
cmp ax, word [esi + 0x70]
jne 0x40bad185
mov eax, dword [esi + 0x70]
mov dword [ebp - 0x114], eax
mov eax, ecx
add eax, 0x184
mov dword [ebp - 0x11c], 0x118
mov edx, dword [eax]
mov dword [ebp - 0x10c], edx
mov eax, dword [eax]
xor edx, edx
inc edx
cmp dx, word [eax]
jne 0x40bacfd9
mov dword [ebp - 0x108], 0x10
jmp 0x40bacfec
mov eax, dword [ecx + 0x184]
movzx eax, word [eax + 0x10]
add eax, 0x12
mov dword [ebp - 0x108], eax
push 1
lea eax, [ebp - 0x11c]
push eax
push ebx
mov dword [ebp - 0x110], ebx
call sym.MSACM32.dll_acmFormatDetailsW
test eax, eax
jne 0x40bad185
push dword [ebp - 0x110]
lea eax, [ebp - 0x11c]
push esi
push eax
push ebx
call fcn.40baca3f
jmp 0x40bad185
lea eax, [ebp - 0x108]
push eax
push ebx
push dword [esi + 0x98]
xor edi, edi
call fcn.40ba814f
test eax, eax
jne 0x40bad116
cmp dword [ebp - 0x108], ebx
je 0x40bad1aa
mov eax, dword [esi + 0x8c]
cmp dword [ebp - 0x108], eax
ja 0x40bad05f
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 edx, eax
mov dword [ebp - 0x120], edx
cmp edx, ebx
je 0x40bad116
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x11c], 0x118
mov dword [ebp - 0x10c], edx
mov dword [ebp - 0x110], ebx
mov eax, dword [eax + 0x184]
cmp eax, ebx
je 0x40bad0c5
mov ecx, dword [eax]
cmp ecx, dword [ebp - 0x108]
jb 0x40bad0ba
mov ecx, dword [ebp - 0x108]
push ecx
push eax
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x70]
mov ecx, dword [ebp - 0x10c]
push 0x10000
push esi
mov dword [ecx + 4], eax
push fcn.40bacaf1
lea eax, [ebp - 0x11c]
push eax
push ebx
call sym.MSACM32.dll_acmFilterEnumW
push dword [ebp - 0x120]
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalHandle]
mov edi, eax
neg edi
sbb edi, edi
inc edi
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push dword [ebp - 0x120]
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor ebx, ebx
lea ecx, [esi + 0x94]
mov edx, dword [ecx]
test dword [edx + 4], 0x40
je 0x40bad185
mov eax, dword [esi + 0x70]
mov edx, dword [edx + 0xc]
cmp dword [edx + 4], eax
jne 0x40bad185
mov dword [ebp - 0x114], eax
mov eax, dword [ecx]
mov dword [ebp - 0x11c], 0x118
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x10c], ecx
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [ebp - 0x108], eax
push 1
lea eax, [ebp - 0x11c]
push eax
push ebx
mov dword [ebp - 0x110], ebx
call sym.MSACM32.dll_acmFilterDetailsW
test eax, eax
jne 0x40bad185
push dword [ebp - 0x110]
lea eax, [ebp - 0x11c]
push esi
push eax
push ebx
call fcn.40bacaf1
cmp edi, ebx
je 0x40bad1aa
push ebx
push ebx
push 0x146
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_SendMessageW]
xor ecx, ecx
test eax, eax
setg cl
mov edi, ecx
cmp edi, ebx
je 0x40bad1aa
jmp 0x40bad1ec
xor ebx, ebx
mov eax, dword [esi + 0x40]
movzx ecx, word [eax]
dec ecx
dec ecx
shr ecx, 1
push ecx
add eax, 2
push eax
mov eax, dword [esi + 0x98]
push 0x96
push dword [eax + 0x34]
call dword [sym.imp.USER32.dll_LoadStringW]
mov eax, dword [esi + 0x40]
inc eax
inc eax
push eax
push ebx
push dword [esi + 0x18]
call fcn.40baacab
push ebx
push eax
push 0x151
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ebx, dword [sym.imp.USER32.dll_EnableWindow]
push edi
push dword [esi + 0x24]
call ebx
push edi
push dword [esi + 0x30]
call ebx
push 0
push 1
push 0xb
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebp - 0x124]
call dword [sym.imp.USER32.dll_SetCursor]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.40ba1e8c
leave
ret 4