int __usercall sub_A02120<eax>(int a5) { int v1; // eax@0 int v2; // ebx@0 int v3; // edi@0 int v4; // esi@0 int v5; // edi@1 int v6; // esi@3 int v7; // esi@5 int v9; // [sp-18h] [bp-B8h]@1 int v10; // [sp-14h] [bp-B4h]@1 int v11; // [sp-10h] [bp-B0h]@1 int v12; // [sp+0h] [bp-A0h]@1 int v13; // [sp+90h] [bp-10h]@1 int (*v14)(); // [sp+94h] [bp-Ch]@1 int *v15; // [sp+98h] [bp-8h]@1 int v16; // [sp+9Ch] [bp-4h]@1 v14 = j___vbaExceptHandler; v13 = v1; v11 = v2; v10 = v4; v9 = v3; v15 = &v9; v16 = (int)dword_4066E8; memset(&v12, 0, 0x90u); v5 = SLOWORD(doors_count[0]) - 1; if ( (unsigned int)v5 >= 0xC8 ) _vbaGenerateBoundsError(); v6 = *(_WORD *)a5 - 1; if ( (unsigned int)v6 >= 0xC8 ) _vbaGenerateBoundsError(); _vbaRecAssign(&off_423FC0, &doorData[v6], &doorData[v5]); v7 = SLOWORD(doors_count[0]) - 1; if ( (unsigned int)v7 >= 0xC8 ) _vbaGenerateBoundsError(); _vbaRecAssign(&off_423FC0, &doorData[v7], &v12); if ( __OFSUB__(LOWORD(doors_count[0]), 1) ) { _vbaErrorOverflow(); JUMPOUT(*(int *)algn_A0221C); } --LOWORD(doors_count[0]); return _vbaRecDestruct(&off_423FC0, &v12); }