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
5f236f:	50                   	push   %eax
5f2370:	50                   	push   %eax
5f2371:	50                   	push   %eax
5f2372:	e8 96 3e fe ff       	call   0x5d620d
5f2377:	cc                   	int3
5f2378:	8b ff                	mov    %edi,%edi
5f237a:	55                   	push   %ebp
5f237b:	8b ec                	mov    %esp,%ebp
5f237d:	51                   	push   %ecx
5f237e:	51                   	push   %ecx
5f237f:	57                   	push   %edi
5f2380:	8b 7d 08             	mov    0x8(%ebp),%edi
5f2383:	85 ff                	test   %edi,%edi
5f2385:	75 05                	jne    0x5f238c
5f2387:	33 c0                	xor    %eax,%eax
5f2389:	5f                   	pop    %edi
5f238a:	c9                   	leave
5f238b:	c3                   	ret
5f238c:	33 d2                	xor    %edx,%edx
5f238e:	8b c7                	mov    %edi,%eax
5f2390:	8b ca                	mov    %edx,%ecx
5f2392:	89 55 fc             	mov    %edx,-0x4(%ebp)
5f2395:	39 17                	cmp    %edx,(%edi)
5f2397:	74 08                	je     0x5f23a1
5f2399:	8d 40 04             	lea    0x4(%eax),%eax
5f239c:	41                   	inc    %ecx
5f239d:	39 10                	cmp    %edx,(%eax)
5f239f:	75 f8                	jne    0x5f2399
5f23a1:	56                   	push   %esi
5f23a2:	8d 41 01             	lea    0x1(%ecx),%eax
5f23a5:	6a 04                	push   $0x4
5f23a7:	50                   	push   %eax
5f23a8:	e8 96 a1 ff ff       	call   0x5ec543
5f23ad:	8b f0                	mov    %eax,%esi
5f23af:	59                   	pop    %ecx
5f23b0:	59                   	pop    %ecx
5f23b1:	85 f6                	test   %esi,%esi
5f23b3:	74 6f                	je     0x5f2424
5f23b5:	8b 0f                	mov    (%edi),%ecx
5f23b7:	85 c9                	test   %ecx,%ecx
5f23b9:	74 58                	je     0x5f2413
5f23bb:	53                   	push   %ebx
5f23bc:	8b de                	mov    %esi,%ebx
5f23be:	2b df                	sub    %edi,%ebx
5f23c0:	8d 51 02             	lea    0x2(%ecx),%edx
5f23c3:	66 8b 01             	mov    (%ecx),%ax
5f23c6:	83 c1 02             	add    $0x2,%ecx
5f23c9:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
5f23cd:	75 f4                	jne    0x5f23c3
5f23cf:	2b ca                	sub    %edx,%ecx
5f23d1:	d1 f9                	sar    $1,%ecx
5f23d3:	6a 02                	push   $0x2
5f23d5:	8d 41 01             	lea    0x1(%ecx),%eax
5f23d8:	50                   	push   %eax
5f23d9:	89 45 f8             	mov    %eax,-0x8(%ebp)
5f23dc:	e8 62 a1 ff ff       	call   0x5ec543
5f23e1:	89 04 3b             	mov    %eax,(%ebx,%edi,1)
5f23e4:	33 c0                	xor    %eax,%eax
5f23e6:	50                   	push   %eax
5f23e7:	e8 36 8e ff ff       	call   0x5eb222
5f23ec:	83 c4 0c             	add    $0xc,%esp
5f23ef:	83 3c 3b 00          	cmpl   $0x0,(%ebx,%edi,1)
5f23f3:	74 2f                	je     0x5f2424
5f23f5:	ff 37                	push   (%edi)
5f23f7:	ff 75 f8             	push   -0x8(%ebp)
5f23fa:	ff 34 3b             	push   (%ebx,%edi,1)
5f23fd:	e8 f2 a1 ff ff       	call   0x5ec5f4
5f2402:	83 c4 0c             	add    $0xc,%esp
5f2405:	85 c0                	test   %eax,%eax
5f2407:	75 20                	jne    0x5f2429
5f2409:	83 c7 04             	add    $0x4,%edi
5f240c:	8b 0f                	mov    (%edi),%ecx
5f240e:	85 c9                	test   %ecx,%ecx
5f2410:	75 ae                	jne    0x5f23c0
5f2412:	5b                   	pop    %ebx
5f2413:	33 c0                	xor    %eax,%eax
5f2415:	50                   	push   %eax
5f2416:	e8 07 8e ff ff       	call   0x5eb222
5f241b:	59                   	pop    %ecx
5f241c:	8b c6                	mov    %esi,%eax
5f241e:	5e                   	pop    %esi
5f241f:	e9 65 ff ff ff       	jmp    0x5f2389
5f2424:	e8 c0 da fe ff       	call   0x5dfee9
5f2429:	33 c0                	xor    %eax,%eax
5f242b:	50                   	push   %eax
5f242c:	50                   	push   %eax
5f242d:	50                   	push   %eax
5f242e:	50                   	push   %eax
5f242f:	50                   	push   %eax
5f2430:	e8 d8 3d fe ff       	call   0x5d620d
5f2435:	cc                   	int3
5f2436:	a1 68 6f 71 00       	mov    0x716f68,%eax
5f243b:	3b 05 74 6f 71 00    	cmp    0x716f74,%eax
5f2441:	75 0c                	jne    0x5f244f
5f2443:	50                   	push   %eax
5f2444:	e8 7f fe ff ff       	call   0x5f22c8
5f2449:	59                   	pop    %ecx
5f244a:	a3 68 6f 71 00       	mov    %eax,0x716f68
5f244f:	c3                   	ret
5f2450:	a1 6c 6f 71 00       	mov    0x716f6c,%eax
5f2455:	3b 05 70 6f 71 00    	cmp    0x716f70,%eax
5f245b:	75 0c                	jne    0x5f2469
5f245d:	50                   	push   %eax
5f245e:	e8 15 ff ff ff       	call   0x5f2378
5f2463:	59                   	pop    %ecx
5f2464:	a3 6c 6f 71 00       	mov    %eax,0x716f6c
5f2469:	c3                   	ret
5f246a:	8b ff                	mov    %edi,%edi
5f246c:	55                   	push   %ebp
5f246d:	8b ec                	mov    %esp,%ebp
5f246f:	53                   	push   %ebx
5f2470:	56                   	push   %esi
5f2471:	57                   	push   %edi
5f2472:	8b 3d 68 6f 71 00    	mov    0x716f68,%edi
5f2478:	8b f7                	mov    %edi,%esi
5f247a:	8b 07                	mov    (%edi),%eax
5f247c:	85 c0                	test   %eax,%eax
5f247e:	74 2a                	je     0x5f24aa
5f2480:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5f2483:	53                   	push   %ebx
5f2484:	50                   	push   %eax
5f2485:	ff 75 08             	push   0x8(%ebp)
5f2488:	e8 f8 a2 ff ff       	call   0x5ec785
5f248d:	83 c4 0c             	add    $0xc,%esp
5f2490:	85 c0                	test   %eax,%eax
5f2492:	75 0d                	jne    0x5f24a1
5f2494:	8b 06                	mov    (%esi),%eax
5f2496:	8a 04 03             	mov    (%ebx,%eax,1),%al
5f2499:	3c 3d                	cmp    $0x3d,%al
5f249b:	74 1b                	je     0x5f24b8
5f249d:	84 c0                	test   %al,%al
5f249f:	74 17                	je     0x5f24b8
5f24a1:	83 c6 04             	add    $0x4,%esi
5f24a4:	8b 06                	mov    (%esi),%eax
5f24a6:	85 c0                	test   %eax,%eax
5f24a8:	75 d9                	jne    0x5f2483
5f24aa:	2b f7                	sub    %edi,%esi
5f24ac:	c1 fe 02             	sar    $0x2,%esi
5f24af:	f7 de                	neg    %esi
5f24b1:	5f                   	pop    %edi
5f24b2:	8b c6                	mov    %esi,%eax
5f24b4:	5e                   	pop    %esi
5f24b5:	5b                   	pop    %ebx
5f24b6:	5d                   	pop    %ebp
5f24b7:	c3                   	ret
5f24b8:	2b f7                	sub    %edi,%esi
5f24ba:	c1 fe 02             	sar    $0x2,%esi
5f24bd:	eb f2                	jmp    0x5f24b1
5f24bf:	8b ff                	mov    %edi,%edi
5f24c1:	55                   	push   %ebp
5f24c2:	8b ec                	mov    %esp,%ebp
5f24c4:	53                   	push   %ebx
5f24c5:	56                   	push   %esi
5f24c6:	57                   	push   %edi
5f24c7:	8b 3d 6c 6f 71 00    	mov    0x716f6c,%edi
5f24cd:	8b f7                	mov    %edi,%esi
5f24cf:	8b 07                	mov    (%edi),%eax
5f24d1:	85 c0                	test   %eax,%eax
5f24d3:	74 2d                	je     0x5f2502
5f24d5:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5f24d8:	53                   	push   %ebx
5f24d9:	50                   	push   %eax
5f24da:	ff 75 08             	push   0x8(%ebp)
5f24dd:	e8 76 a1 ff ff       	call   0x5ec658
5f24e2:	83 c4 0c             	add    $0xc,%esp
5f24e5:	85 c0                	test   %eax,%eax
5f24e7:	75 10                	jne    0x5f24f9
5f24e9:	8b 06                	mov    (%esi),%eax
5f24eb:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
5f24ef:	83 f8 3d             	cmp    $0x3d,%eax
5f24f2:	74 1c                	je     0x5f2510
5f24f4:	66 85 c0             	test   %ax,%ax
5f24f7:	74 17                	je     0x5f2510
5f24f9:	83 c6 04             	add    $0x4,%esi
5f24fc:	8b 06                	mov    (%esi),%eax