http://www.bay12games.com/dwarves/mantisbt/view.php?id=1445

0x4c05c4
8B 8C 24 80 00 00 00
89 C1 90 90 90 90 90

<<<<
.text:008C11C4                 mov     ecx, [esp+98h+var_18]
====
.text:008C11C4                 mov     ecx, eax
.text:008C11C6                 nop
.text:008C11C7                 nop
.text:008C11C8                 nop
.text:008C11C9                 nop
.text:008C11CA                 nop
>>>>

0x4c06a1
8B 8C 24 80 00 00 00
89 C1 90 90 90 90 90

<<<<
.text:008C12A1                 mov     ecx, [esp+98h+var_18]
====
.text:008C12A1                 mov     ecx, eax
.text:008C12A3                 nop
.text:008C12A4                 nop
.text:008C12A5                 nop
.text:008C12A6                 nop
.text:008C12A7                 nop
>>>>


basically:

  b_squad_id = building->getSpecificSquad();
- if (b_squad_id != squad->id || !building->canUse(some_squad_id, 4))
+ if (b_squad_id != squad->id || !building->canUse(b_squad_id, 4))
    unassign(building);

the reason being, some_other_squad_id contains irrelevant garbage at this point


---8<---
This difference file is created by The Interactive Disassembler

Dwarf Fortress.exe
004C05C4: 8B 89
004C05C5: 8C C1
004C05C6: 24 90
004C05C7: 80 90
004C05C8: 00 90
004C05C9: 00 90
004C05CA: 00 90
004C06A1: 8B 89
004C06A2: 8C C1
004C06A3: 24 90
004C06A4: 80 90
004C06A5: 00 90
004C06A6: 00 90
004C06A7: 00 90