5f1fd7:	1b c0                	sbb    %eax,%eax
5f1fd9:	23 c1                	and    %ecx,%eax
5f1fdb:	50                   	push   %eax
5f1fdc:	56                   	push   %esi
5f1fdd:	e8 36 c9 ff ff       	call   0x5ee918
5f1fe2:	59                   	pop    %ecx
5f1fe3:	59                   	pop    %ecx
5f1fe4:	85 c0                	test   %eax,%eax
5f1fe6:	75 1f                	jne    0x5f2007
5f1fe8:	e8 9b 8c fe ff       	call   0x5dac88
5f1fed:	56                   	push   %esi
5f1fee:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
5f1ff4:	e8 29 92 ff ff       	call   0x5eb222
5f1ff9:	83 cb ff             	or     $0xffffffff,%ebx
5f1ffc:	59                   	pop    %ecx
5f1ffd:	57                   	push   %edi
5f1ffe:	e8 1f 92 ff ff       	call   0x5eb222
5f2003:	8b c3                	mov    %ebx,%eax
5f2005:	eb 25                	jmp    0x5f202c
5f2007:	56                   	push   %esi
5f2008:	e8 15 92 ff ff       	call   0x5eb222
5f200d:	59                   	pop    %ecx
5f200e:	57                   	push   %edi
5f200f:	e8 0e 92 ff ff       	call   0x5eb222
5f2014:	33 c0                	xor    %eax,%eax
5f2016:	eb 14                	jmp    0x5f202c
5f2018:	e8 6b 8c fe ff       	call   0x5dac88
5f201d:	56                   	push   %esi
5f201e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f2024:	e8 f9 91 ff ff       	call   0x5eb222
5f2029:	83 c8 ff             	or     $0xffffffff,%eax
5f202c:	59                   	pop    %ecx
5f202d:	5f                   	pop    %edi
5f202e:	5e                   	pop    %esi
5f202f:	5b                   	pop    %ebx
5f2030:	c9                   	leave
5f2031:	c3                   	ret
5f2032:	53                   	push   %ebx
5f2033:	53                   	push   %ebx
5f2034:	53                   	push   %ebx
5f2035:	53                   	push   %ebx
5f2036:	53                   	push   %ebx
5f2037:	e8 d1 41 fe ff       	call   0x5d620d
5f203c:	cc                   	int3
5f203d:	8b ff                	mov    %edi,%edi
5f203f:	55                   	push   %ebp
5f2040:	8b ec                	mov    %esp,%ebp
5f2042:	83 ec 14             	sub    $0x14,%esp
5f2045:	53                   	push   %ebx
5f2046:	56                   	push   %esi
5f2047:	8b 75 08             	mov    0x8(%ebp),%esi
5f204a:	85 f6                	test   %esi,%esi
5f204c:	75 13                	jne    0x5f2061
5f204e:	e8 35 8c fe ff       	call   0x5dac88
5f2053:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f2059:	83 c8 ff             	or     $0xffffffff,%eax
5f205c:	e9 58 02 00 00       	jmp    0x5f22b9
5f2061:	57                   	push   %edi
5f2062:	6a 3d                	push   $0x3d
5f2064:	56                   	push   %esi
5f2065:	8b fe                	mov    %esi,%edi
5f2067:	e8 47 62 00 00       	call   0x5f82b3
5f206c:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f206f:	59                   	pop    %ecx
5f2070:	59                   	pop    %ecx
5f2071:	85 c0                	test   %eax,%eax
5f2073:	0f 84 2a 02 00 00    	je     0x5f22a3
5f2079:	3b c6                	cmp    %esi,%eax
5f207b:	0f 84 22 02 00 00    	je     0x5f22a3
5f2081:	0f b7 48 02          	movzwl 0x2(%eax),%ecx
5f2085:	8b c1                	mov    %ecx,%eax
5f2087:	89 45 ec             	mov    %eax,-0x14(%ebp)
5f208a:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f208d:	e8 be 03 00 00       	call   0x5f2450
5f2092:	a1 6c 6f 71 00       	mov    0x716f6c,%eax
5f2097:	33 db                	xor    %ebx,%ebx
5f2099:	89 45 fc             	mov    %eax,-0x4(%ebp)
5f209c:	85 c0                	test   %eax,%eax
5f209e:	0f 85 96 00 00 00    	jne    0x5f213a
5f20a4:	a1 68 6f 71 00       	mov    0x716f68,%eax
5f20a9:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
5f20ac:	74 30                	je     0x5f20de
5f20ae:	85 c0                	test   %eax,%eax
5f20b0:	74 2c                	je     0x5f20de
5f20b2:	e8 f9 71 ff ff       	call   0x5e92b0
5f20b7:	85 c0                	test   %eax,%eax
5f20b9:	75 14                	jne    0x5f20cf
5f20bb:	e8 c8 8b fe ff       	call   0x5dac88
5f20c0:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f20c6:	83 cb ff             	or     $0xffffffff,%ebx
5f20c9:	56                   	push   %esi
5f20ca:	e9 ba 01 00 00       	jmp    0x5f2289
5f20cf:	e8 7c 03 00 00       	call   0x5f2450
5f20d4:	a1 6c 6f 71 00       	mov    0x716f6c,%eax
5f20d9:	89 45 fc             	mov    %eax,-0x4(%ebp)
5f20dc:	eb 58                	jmp    0x5f2136
5f20de:	66 39 5d f4          	cmp    %bx,-0xc(%ebp)
5f20e2:	74 e5                	je     0x5f20c9
5f20e4:	85 c0                	test   %eax,%eax
5f20e6:	75 2b                	jne    0x5f2113
5f20e8:	6a 04                	push   $0x4
5f20ea:	6a 01                	push   $0x1
5f20ec:	e8 52 a4 ff ff       	call   0x5ec543
5f20f1:	53                   	push   %ebx
5f20f2:	a3 68 6f 71 00       	mov    %eax,0x716f68
5f20f7:	e8 26 91 ff ff       	call   0x5eb222
5f20fc:	83 c4 0c             	add    $0xc,%esp
5f20ff:	39 1d 68 6f 71 00    	cmp    %ebx,0x716f68
5f2105:	74 bf                	je     0x5f20c6
5f2107:	a1 6c 6f 71 00       	mov    0x716f6c,%eax
5f210c:	89 45 fc             	mov    %eax,-0x4(%ebp)
5f210f:	85 c0                	test   %eax,%eax
5f2111:	75 27                	jne    0x5f213a
5f2113:	6a 04                	push   $0x4
5f2115:	6a 01                	push   $0x1
5f2117:	e8 27 a4 ff ff       	call   0x5ec543
5f211c:	53                   	push   %ebx
5f211d:	a3 6c 6f 71 00       	mov    %eax,0x716f6c
5f2122:	e8 fb 90 ff ff       	call   0x5eb222
5f2127:	a1 6c 6f 71 00       	mov    0x716f6c,%eax
5f212c:	83 c4 0c             	add    $0xc,%esp
5f212f:	89 45 fc             	mov    %eax,-0x4(%ebp)
5f2132:	85 c0                	test   %eax,%eax
5f2134:	74 90                	je     0x5f20c6
5f2136:	85 c0                	test   %eax,%eax
5f2138:	74 8c                	je     0x5f20c6
5f213a:	8b 45 f0             	mov    -0x10(%ebp),%eax
5f213d:	2b c6                	sub    %esi,%eax
5f213f:	d1 f8                	sar    $1,%eax
5f2141:	50                   	push   %eax
5f2142:	56                   	push   %esi
5f2143:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f2146:	e8 74 03 00 00       	call   0x5f24bf
5f214b:	59                   	pop    %ecx
5f214c:	59                   	pop    %ecx
5f214d:	8b c8                	mov    %eax,%ecx
5f214f:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f2152:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5f2155:	85 c9                	test   %ecx,%ecx
5f2157:	78 50                	js     0x5f21a9
5f2159:	39 18                	cmp    %ebx,(%eax)
5f215b:	74 4c                	je     0x5f21a9
5f215d:	ff 34 88             	push   (%eax,%ecx,4)
5f2160:	e8 bd 90 ff ff       	call   0x5eb222
5f2165:	8b 55 f8             	mov    -0x8(%ebp),%edx
5f2168:	59                   	pop    %ecx
5f2169:	66 39 5d f4          	cmp    %bx,-0xc(%ebp)
5f216d:	75 30                	jne    0x5f219f
5f216f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5f2172:	eb 08                	jmp    0x5f217c
5f2174:	8b 44 91 04          	mov    0x4(%ecx,%edx,4),%eax
5f2178:	89 04 91             	mov    %eax,(%ecx,%edx,4)
5f217b:	42                   	inc    %edx
5f217c:	39 1c 91             	cmp    %ebx,(%ecx,%edx,4)
5f217f:	75 f3                	jne    0x5f2174
5f2181:	6a 04                	push   $0x4
5f2183:	52                   	push   %edx
5f2184:	51                   	push   %ecx
5f2185:	e8 a3 03 00 00       	call   0x5f252d
5f218a:	53                   	push   %ebx
5f218b:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f218e:	e8 8f 90 ff ff       	call   0x5eb222
5f2193:	8b 45 f4             	mov    -0xc(%ebp),%eax
5f2196:	83 c4 10             	add    $0x10,%esp
5f2199:	85 c0                	test   %eax,%eax
5f219b:	74 63                	je     0x5f2200
5f219d:	eb 5c                	jmp    0x5f21fb
5f219f:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f21a2:	8b fb                	mov    %ebx,%edi
5f21a4:	89 34 90             	mov    %esi,(%eax,%edx,4)
5f21a7:	eb 57                	jmp    0x5f2200
5f21a9:	66 39 5d f4          	cmp    %bx,-0xc(%ebp)
5f21ad:	0f 84 16 ff ff ff    	je     0x5f20c9
5f21b3:	f7 d9                	neg    %ecx
5f21b5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5f21b8:	8d 51 02             	lea    0x2(%ecx),%edx
5f21bb:	3b d1                	cmp    %ecx,%edx
5f21bd:	0f 82 03 ff ff ff    	jb     0x5f20c6
5f21c3:	81 fa ff ff ff 3f    	cmp    $0x3fffffff,%edx
5f21c9:	0f 83 f7 fe ff ff    	jae    0x5f20c6
5f21cf:	6a 04                	push   $0x4
5f21d1:	52                   	push   %edx
5f21d2:	50                   	push   %eax
5f21d3:	e8 55 03 00 00       	call   0x5f252d
5f21d8:	53                   	push   %ebx
5f21d9:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f21dc:	e8 41 90 ff ff       	call   0x5eb222
5f21e1:	8b 45 f4             	mov    -0xc(%ebp),%eax
5f21e4:	83 c4 10             	add    $0x10,%esp
5f21e7:	85 c0                	test   %eax,%eax
5f21e9:	0f 84 d7 fe ff ff    	je     0x5f20c6
5f21ef:	8b 55 f8             	mov    -0x8(%ebp),%edx
5f21f2:	8b fb                	mov    %ebx,%edi
5f21f4:	89 34 90             	mov    %esi,(%eax,%edx,4)
5f21f7:	89 5c 90 04          	mov    %ebx,0x4(%eax,%edx,4)
5f21fb:	a3 6c 6f 71 00       	mov    %eax,0x716f6c
5f2200:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
5f2203:	0f 84 90 00 00 00    	je     0x5f2299
5f2209:	8d 4e 02             	lea    0x2(%esi),%ecx
5f220c:	66 8b 06             	mov    (%esi),%ax
5f220f:	83 c6 02             	add    $0x2,%esi
5f2212:	66 3b c3             	cmp    %bx,%ax
5f2215:	75 f5                	jne    0x5f220c
5f2217:	2b f1                	sub    %ecx,%esi
5f2219:	d1 fe                	sar    $1,%esi
5f221b:	6a 02                	push   $0x2
5f221d:	8d 46 02             	lea    0x2(%esi),%eax
5f2220:	50                   	push   %eax
5f2221:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f2224:	e8 1a a3 ff ff       	call   0x5ec543
5f2229:	8b f0                	mov    %eax,%esi
5f222b:	59                   	pop    %ecx
5f222c:	59                   	pop    %ecx
5f222d:	85 f6                	test   %esi,%esi
5f222f:	75 08                	jne    0x5f2239
5f2231:	53                   	push   %ebx
5f2232:	e8 eb 8f ff ff       	call   0x5eb222
5f2237:	eb 4e                	jmp    0x5f2287
5f2239:	ff 75 08             	push   0x8(%ebp)
5f223c:	ff 75 f4             	push   -0xc(%ebp)
5f223f:	56                   	push   %esi
5f2240:	e8 af a3 ff ff       	call   0x5ec5f4
5f2245:	83 c4 0c             	add    $0xc,%esp
5f2248:	85 c0                	test   %eax,%eax
5f224a:	75 71                	jne    0x5f22bd
5f224c:	8b 45 f0             	mov    -0x10(%ebp),%eax
5f224f:	33 d2                	xor    %edx,%edx
5f2251:	8d 48 01             	lea    0x1(%eax),%ecx
5f2254:	66 89 14 46          	mov    %dx,(%esi,%eax,2)
5f2258:	8b 45 ec             	mov    -0x14(%ebp),%eax
5f225b:	8d 0c 4e             	lea    (%esi,%ecx,2),%ecx
5f225e:	0f b7 c0             	movzwl %ax,%eax
5f2261:	f7 d8                	neg    %eax
5f2263:	1b c0                	sbb    %eax,%eax
5f2265:	23 c1                	and    %ecx,%eax
5f2267:	50                   	push   %eax
5f2268:	56                   	push   %esi
5f2269:	ff 15 7c 22 60 00    	call   *0x60227c
5f226f:	85 c0                	test   %eax,%eax
5f2271:	75 1f                	jne    0x5f2292
5f2273:	e8 10 8a fe ff       	call   0x5dac88
5f2278:	56                   	push   %esi
5f2279:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
5f227f:	e8 9e 8f ff ff       	call   0x5eb222
5f2284:	83 cb ff             	or     $0xffffffff,%ebx
5f2287:	59                   	pop    %ecx
5f2288:	57                   	push   %edi
5f2289:	e8 94 8f ff ff       	call   0x5eb222
5f228e:	8b c3                	mov    %ebx,%eax
5f2290:	eb 25                	jmp    0x5f22b7
5f2292:	56                   	push   %esi
5f2293:	e8 8a 8f ff ff       	call   0x5eb222
5f2298:	59                   	pop    %ecx
5f2299:	57                   	push   %edi
5f229a:	e8 83 8f ff ff       	call   0x5eb222
5f229f:	33 c0                	xor    %eax,%eax
5f22a1:	eb 14                	jmp    0x5f22b7
5f22a3:	e8 e0 89 fe ff       	call   0x5dac88
5f22a8:	56                   	push   %esi
5f22a9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f22af:	e8 6e 8f ff ff       	call   0x5eb222
5f22b4:	83 c8 ff             	or     $0xffffffff,%eax
5f22b7:	59                   	pop    %ecx
5f22b8:	5f                   	pop    %edi
5f22b9:	5e                   	pop    %esi
5f22ba:	5b                   	pop    %ebx
5f22bb:	c9                   	leave
5f22bc:	c3                   	ret
5f22bd:	53                   	push   %ebx
5f22be:	53                   	push   %ebx
5f22bf:	53                   	push   %ebx
5f22c0:	53                   	push   %ebx
5f22c1:	53                   	push   %ebx
5f22c2:	e8 46 3f fe ff       	call   0x5d620d
5f22c7:	cc                   	int3
5f22c8:	8b ff                	mov    %edi,%edi
5f22ca:	55                   	push   %ebp
5f22cb:	8b ec                	mov    %esp,%ebp
5f22cd:	51                   	push   %ecx
5f22ce:	57                   	push   %edi
5f22cf:	8b 7d 08             	mov    0x8(%ebp),%edi
5f22d2:	85 ff                	test   %edi,%edi
5f22d4:	75 05                	jne    0x5f22db
5f22d6:	33 c0                	xor    %eax,%eax
5f22d8:	5f                   	pop    %edi
5f22d9:	c9                   	leave
5f22da:	c3                   	ret
5f22db:	33 c9                	xor    %ecx,%ecx
5f22dd:	8b c7                	mov    %edi,%eax
5f22df:	39 0f                	cmp    %ecx,(%edi)
5f22e1:	74 09                	je     0x5f22ec
5f22e3:	8d 40 04             	lea    0x4(%eax),%eax
5f22e6:	41                   	inc    %ecx
5f22e7:	83 38 00             	cmpl   $0x0,(%eax)
5f22ea:	75 f7                	jne    0x5f22e3
5f22ec:	56                   	push   %esi
5f22ed:	8d 41 01             	lea    0x1(%ecx),%eax
5f22f0:	6a 04                	push   $0x4
5f22f2:	50                   	push   %eax
5f22f3:	e8 4b a2 ff ff       	call   0x5ec543
5f22f8:	8b f0                	mov    %eax,%esi
5f22fa:	59                   	pop    %ecx
5f22fb:	59                   	pop    %ecx
5f22fc:	85 f6                	test   %esi,%esi
5f22fe:	74 66                	je     0x5f2366
5f2300:	8b 0f                	mov    (%edi),%ecx
5f2302:	85 c9                	test   %ecx,%ecx
5f2304:	74 50                	je     0x5f2356
5f2306:	53                   	push   %ebx
5f2307:	8b de                	mov    %esi,%ebx
5f2309:	2b df                	sub    %edi,%ebx
5f230b:	8d 51 01             	lea    0x1(%ecx),%edx
5f230e:	8a 01                	mov    (%ecx),%al
5f2310:	41                   	inc    %ecx
5f2311:	84 c0                	test   %al,%al
5f2313:	75 f9                	jne    0x5f230e
5f2315:	2b ca                	sub    %edx,%ecx
5f2317:	6a 01                	push   $0x1
5f2319:	8d 41 01             	lea    0x1(%ecx),%eax
5f231c:	50                   	push   %eax
5f231d:	89 45 fc             	mov    %eax,-0x4(%ebp)
5f2320:	e8 1e a2 ff ff       	call   0x5ec543
5f2325:	6a 00                	push   $0x0
5f2327:	89 04 3b             	mov    %eax,(%ebx,%edi,1)
5f232a:	e8 f3 8e ff ff       	call   0x5eb222
5f232f:	83 c4 0c             	add    $0xc,%esp
5f2332:	83 3c 3b 00          	cmpl   $0x0,(%ebx,%edi,1)
5f2336:	74 2e                	je     0x5f2366
5f2338:	ff 37                	push   (%edi)
5f233a:	ff 75 fc             	push   -0x4(%ebp)
5f233d:	ff 34 3b             	push   (%ebx,%edi,1)
5f2340:	e8 bd 7e ff ff       	call   0x5ea202
5f2345:	83 c4 0c             	add    $0xc,%esp
5f2348:	85 c0                	test   %eax,%eax
5f234a:	75 1f                	jne    0x5f236b
5f234c:	83 c7 04             	add    $0x4,%edi
5f234f:	8b 0f                	mov    (%edi),%ecx
5f2351:	85 c9                	test   %ecx,%ecx
5f2353:	75 b6                	jne    0x5f230b
5f2355:	5b                   	pop    %ebx
5f2356:	6a 00                	push   $0x0
5f2358:	e8 c5 8e ff ff       	call   0x5eb222
5f235d:	59                   	pop    %ecx
5f235e:	8b c6                	mov    %esi,%eax
5f2360:	5e                   	pop    %esi
5f2361:	e9 72 ff ff ff       	jmp    0x5f22d8
5f2366:	e8 7e db fe ff       	call   0x5dfee9
5f236b:	33 c0                	xor    %eax,%eax
5f236d:	50                   	push   %eax
5f236e:	50                   	push   %eax