B0:
*(rsp - 81920) <- rax
v22 <- rsp - 8
*v22 <- rbp
*(rsp - 52) <- parm0
S <- this.currentSize
if S - 1 < 0 then B8 else B1
B1:
L <- unpack(this.hashCodes).length
if L <= 0 then B30
hashCodes <- unpack(this.hashCodes)
goto B3
B3:
i0 <- φ(0, i0 + 1)
if i0 æ L then B29
if hashCodes[i0] == parm0 then B9 else B5
B5:
if S - i0 - 1 æ L then B31
if hashCodes[S - i0 - 1] == parm0 then B10 else B7
B7:
if S - i0 - 2 >= i0 + 1 then B11 else B8
B9:
v97 <- φ(i0, i, i1)
goto B10
B10:
v105 <- φ(S - i0 - 1, -1, v97, j, S - i1 - 1)
*(rip - 25986973)
return v105
B11:
if i0 + 1 < min(max(S - L, 1), L) then B3 else B12
B12:
if i0 + 1 >= min(S, L) then B19 else B13
B14:
i <- φ(i0 + 1, i + 1)
if hashCodes[i] == parm0 then B9 else B15
B15:
j <- S - 1 - i
if hashCodes[j] == parm0 then B10 else B16
B16:
if j - 1 < i + 1 then B8 else B17
B17:
if i + 1 < min(S, L) then B14 else B18
B20:
v156 <- φ(i + 1, i0 + 1)
v235 <- φ(j - 1, S - i0 - 2)
if v156 >= L then B34
goto B22
B22:
i1 <- φ(v156, i1 + 1)
if i1 æ L then B29
if hashCodes[i1] == parm0 then B9 else B24
B24:
if S - i1 - 1 æ L then B33
if hashCodes[S - i1 - 1] == parm0 then B10 else B26
B26:
if S - i1 - 2 < i1 + 1 then B8 else B27
B27:
if i1 + 1 < L then B22 else B28
B29:
v202 <- φ((S - i0 - 1), S - i1 - 1)
v258 <- φ(i0, i1)
goto B30
B30:
v205 <- φ(0, i1 + 1, v258, v156)
v212 <- φ(S - 1, S - i1 - 2, v202, v235)
*(rsp - 56) <- v205
*(rsp - 48) <- this
*(rsp - 40) <- v212
*(rsp - 36) <- this.hashCodes
{OpCall()}
{OpCall()}
B32:
v222 <- φ(i0, i1)
*(rsp - 56) <- v222
*(rsp - 48) <- this
*(rsp - 40) <- this.hashCodes
{OpCall()}
{OpCall()}
B35:
v239 <- φ()
v240 <- φ()
*(v240 + 0) <- v239
{OpCall()}
{OpCall()}