function keypad_slot_20() /* entry=384 class_id=0x0A0E slot=0x20 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    valueBox, /* [BP-02h] type=0x24 */
    boxesInArea, /* [BP-04h] type=0x69 */
    linkedWithSwitch, /* [BP-05h] type=0x62 */
    wrongCode, /* [BP-06h] type=0x62 */
    userInput, /* [BP-08h] type=0x69 */
    boxPasscode, /* [BP-0Ah] type=0x69 */
    keycode; /* [BP-0Ch] type=0x69 */

  entry:
    set_info(0x0207, *(arg_06));
    wrongCode = 0;
    userInput = 0;
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */

  block_011C:
    if condition goto block_0163;

  block_011F:
    if (Item.getQHi(valueBox) != Item.getQHi(arg_06)) goto block_015F;

  block_013B:
    class_0A19_slot_20(valueBox);
    boxPasscode = retval;
    if (boxPasscode > 0x03E7) goto block_015F;

  block_0159:
    goto block_02AB;

  block_015F:
    /* loopnext  */
    goto block_011C;

  block_0163:
    if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_02AB;

  block_017B:
    keycode = Item.getQHi(boxPasscode);
    if (keycode != -1) goto block_01BA;

  block_01A5:
    /* bit_not  */
    goto block_02AB;

  block_01BA:
    if (keycode != boxPasscode) goto block_022F;

  block_01C5:
    spawn class_0A0C_slot_32(pid, 60, 0x00000000);
    suspend;
    spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06);
    suspend;
    goto block_029C;

  block_022F:
    spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06);
    suspend;
    spawn class_0A0C_slot_32(pid, 60, 0x00000000);
    suspend;
    if (!Intrinsic0000()) goto block_029C;

  block_028B:
    spawn class_0A0C_slot_3B(0x00000000);

  block_029C:
    /* bit_not  */

  block_02AB:
    return;

}
