Function at 0x416a20
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x5c
push ebx
mov ebx, dword [esp + 0x64]
push ebp
push esi
push edi
push str.MuiMultiselDraw
push ebx
mov byte [esp + 0x34], 0
call fcn.00413fc0
add esp, 8
test al, al
je 0x416d90
lea eax, [ebx + ebx*4]
lea ecx, [ebx + eax*2]
lea eax, [ebx + ebx*8]
shl eax, 2
sub eax, ebx
shl eax, 2
sub eax, ebx
shl ecx, 6
lea edx, [eax + eax*8]
sub ecx, ebx
lea eax, [ebx + edx*2]
lea esi, [ecx*8 + 0x1d726c0]
lea edi, [eax*4 + 0x72d0e8]
mov eax, dword [0x4b17a8]
cmp ebx, eax
mov dword [esp + 0x18], edi
jne 0x416a84
mov byte [esp + 0x2c], 1
cmp dword [esi + 8], 8
je 0x416aa5
push ebx
push str.Multisel_ID__d_is_not_a_multisel
push str.MuiMultiselDraw
call fcn.00401170
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret
lea ecx, [esp + 0x3c]
push ecx
push ebx
call fcn.00416930
mov edx, dword [esp + 0x44]
mov ecx, dword [edi + 4]
mov byte [esp + 0x1b], al
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x40], edx
add esp, 8
cdq
idiv ecx
mov ebp, eax
test ebp, ebp
mov dword [esp + 0x34], ebp
jle 0x416d90
mov edx, dword [0xbf3398]
mov eax, dword [edi]
add ecx, edx
mov dword [esp + 0x14], edx
cmp ecx, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x30], ecx
jle 0x416af4
mov dword [esp + 0x1c], eax
test edx, edx
jge 0x416b00
mov dword [esp + 0x14], 0
mov al, byte [esp + 0x74]
mov edx, dword [esp + 0x14]
test al, al
je 0x416b9a
mov eax, dword [esp + 0x30]
mov edi, edx
cmp edx, eax
jge 0x416b96
imul edx, ebp
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x14]
sub eax, edx
add ecx, eax
mov eax, dword [esp + 0x18]
cmp byte [eax + edi + 0xc], 0
setne al
mov byte [esp + 0x20], al
mov eax, dword [esp + 0x1c]
cmp edi, eax
jl 0x416b4d
mov byte [esp + 0x20], 0
cmp byte [esi], 0
jne 0x416b57
mov byte [esp + 0x20], 3
test ecx, ecx
jl 0x416b83
mov eax, 0x280
sub eax, ebp
cmp ecx, eax
jge 0x416b83
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
push edx
push ebp
push eax
push ecx
mov ecx, dword [esi + 0x10]
push ecx
push ebx
call fcn.00414650
mov edx, dword [esp + 0x40]
add esp, 0x18
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
inc edi
add ecx, ebp
cmp edi, eax
mov dword [esp + 0x24], ecx
jl 0x416b25
mov edi, dword [esp + 0x18]
mov al, byte [esp + 0x78]
test al, al
je 0x416d09
cmp dword [edi], 0
jle 0x416d09
fild dword [esi + 0x15c4]
fmul dword [0x4b17b0]
call fcn.0046af00
fild dword [esi + 0x15c0]
push eax
fmul dword [0x4b17ac]
call fcn.0046af00
push eax
call fcn.0040acd0
mov edx, dword [esi + 0xc]
push edx
call fcn.0041b9c0
mov al, byte [esp + 0x1f]
add esp, 0xc
test al, al
mov eax, dword [esi + 0x18]
je 0x416bf5
sub eax, dword [0x47803c]
mov ebx, dword [esi + 0x15c4]
mov dword [esp + 0x30], eax
mov eax, ebp
mov ebp, dword [esp + 0x14]
sub eax, ebx
cdq
sub eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 1
cmp ebp, eax
jge 0x416d05
mov edx, dword [esp + 0x34]
mov ecx, ebp
imul ecx, edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x14]
mov edi, dword [esi + 0x14]
sub eax, ecx
add edi, eax
mov al, byte [esi]
test al, al
je 0x416c87
mov eax, dword [esp + 0x18]
cmp byte [eax + ebp + 0xc], 0
je 0x416c67
mov al, byte [esi + 0x15b7]
mov byte [esp + 0x20], al
mov al, byte [esi + 0x15b8]
mov byte [esp + 0x24], al
mov al, byte [esi + 0x15b9]
mov byte [esp + 0x78], al
jmp 0x416c96
mov al, byte [esi + 0x15b1]
mov byte [esp + 0x20], al
mov al, byte [esi + 0x15b2]
mov byte [esp + 0x24], al
mov al, byte [esi + 0x15b3]
mov byte [esp + 0x78], al
jmp 0x416c96
mov byte [esp + 0x20], 0x60
mov byte [esp + 0x24], 0x60
mov byte [esp + 0x78], 0x60
test edi, edi
jl 0x416cee
mov eax, 0x280
sub eax, edx
cmp edi, eax
jge 0x416cee
mov ecx, dword [esp + 0x18]
push ebp
call dword [ecx + 8]
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x80]
push 0
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esi + 0x15c4]
push ecx
mov ecx, dword [esp + 0x48]
add eax, ebx
add eax, edi
push edx
push eax
mov eax, dword [esi + 0x10]
lea edx, [ebx + edi]
push ecx
push edx
push eax
call fcn.0041b9f0
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x54]
add esp, 0x2c
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
inc ebp
add edi, edx
cmp ebp, eax
mov dword [esp + 0x14], edi
jl 0x416c2b
mov ebx, dword [esp + 0x70]
mov al, byte [esp + 0x13]
test al, al
je 0x416d90
mov al, byte [esp + 0x74]
test al, al
je 0x416d90
cmp byte [esi], 0
jne 0x416d23
mov byte [esp + 0x2c], 3
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
mov edx, dword [esp + 0x48]
push eax
push ecx
push edx
push ebx
call fcn.00414650
fild dword [esp + 0x80]
add esp, 0x14
fmul dword [0x4b17b0]
fstp dword [esp]
fild dword [esp + 0x60]
push ecx
fmul dword [0x4b17ac]
fstp dword [esp]
fild dword [esp + 0x68]
push ecx
fmul dword [0x4b17b0]
fstp dword [esp]
fild dword [esp + 0x64]
push ecx
fmul dword [0x4b17ac]
fstp dword [esp]
push 9
call fcn.00410e70
push 9
call fcn.00410ed0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret