58f189:	68 49 02 00 00       	push   $0x249
58f18e:	68 58 70 6c 00       	push   $0x6c7058
58f193:	6a 41                	push   $0x41
58f195:	68 bb 00 00 00       	push   $0xbb
58f19a:	6a 10                	push   $0x10
58f19c:	e8 ff 22 f1 ff       	call   0x4a14a0
58f1a1:	8b 5c 24 24          	mov    0x24(%esp),%ebx
58f1a5:	83 c4 14             	add    $0x14,%esp
58f1a8:	33 f6                	xor    %esi,%esi
58f1aa:	eb 2c                	jmp    0x58f1d8
58f1ac:	68 35 02 00 00       	push   $0x235
58f1b1:	68 58 70 6c 00       	push   $0x6c7058
58f1b6:	6a 44                	push   $0x44
58f1b8:	68 bb 00 00 00       	push   $0xbb
58f1bd:	6a 10                	push   $0x10
58f1bf:	e8 dc 22 f1 ff       	call   0x4a14a0
58f1c4:	ff 74 24 28          	push   0x28(%esp)
58f1c8:	e8 63 0f f1 ff       	call   0x4a0130
58f1cd:	83 c4 18             	add    $0x18,%esp
58f1d0:	8b 5c 24 10          	mov    0x10(%esp),%ebx
58f1d4:	33 f6                	xor    %esi,%esi
58f1d6:	33 ff                	xor    %edi,%edi
58f1d8:	8b 44 24 50          	mov    0x50(%esp),%eax
58f1dc:	85 c0                	test   %eax,%eax
58f1de:	74 09                	je     0x58f1e9
58f1e0:	50                   	push   %eax
58f1e1:	e8 aa 8b f4 ff       	call   0x4d7d90
58f1e6:	83 c4 04             	add    $0x4,%esp
58f1e9:	85 f6                	test   %esi,%esi
58f1eb:	74 09                	je     0x58f1f6
58f1ed:	56                   	push   %esi
58f1ee:	e8 ed cd fe ff       	call   0x57bfe0
58f1f3:	83 c4 04             	add    $0x4,%esp
58f1f6:	8b 44 24 2c          	mov    0x2c(%esp),%eax
58f1fa:	85 c0                	test   %eax,%eax
58f1fc:	74 09                	je     0x58f207
58f1fe:	50                   	push   %eax
58f1ff:	e8 2c 0f f1 ff       	call   0x4a0130
58f204:	83 c4 04             	add    $0x4,%esp
58f207:	8b 44 24 20          	mov    0x20(%esp),%eax
58f20b:	85 c0                	test   %eax,%eax
58f20d:	74 09                	je     0x58f218
58f20f:	50                   	push   %eax
58f210:	e8 1b 0f f1 ff       	call   0x4a0130
58f215:	83 c4 04             	add    $0x4,%esp
58f218:	85 db                	test   %ebx,%ebx
58f21a:	74 24                	je     0x58f240
58f21c:	8b 03                	mov    (%ebx),%eax
58f21e:	8b f3                	mov    %ebx,%esi
58f220:	85 c0                	test   %eax,%eax
58f222:	74 13                	je     0x58f237
58f224:	50                   	push   %eax
58f225:	e8 06 0f f1 ff       	call   0x4a0130
58f22a:	8b 46 04             	mov    0x4(%esi),%eax
58f22d:	8d 76 04             	lea    0x4(%esi),%esi
58f230:	83 c4 04             	add    $0x4,%esp
58f233:	85 c0                	test   %eax,%eax
58f235:	75 ed                	jne    0x58f224
58f237:	53                   	push   %ebx
58f238:	e8 f3 0e f1 ff       	call   0x4a0130
58f23d:	83 c4 04             	add    $0x4,%esp
58f240:	85 ff                	test   %edi,%edi
58f242:	74 28                	je     0x58f26c
58f244:	8b 07                	mov    (%edi),%eax
58f246:	8b f7                	mov    %edi,%esi
58f248:	85 c0                	test   %eax,%eax
58f24a:	74 17                	je     0x58f263
58f24c:	0f 1f 40 00          	nopl   0x0(%eax)
58f250:	50                   	push   %eax
58f251:	e8 aa cb fe ff       	call   0x57be00
58f256:	8b 46 04             	mov    0x4(%esi),%eax
58f259:	8d 76 04             	lea    0x4(%esi),%esi
58f25c:	83 c4 04             	add    $0x4,%esp
58f25f:	85 c0                	test   %eax,%eax
58f261:	75 ed                	jne    0x58f250
58f263:	57                   	push   %edi
58f264:	e8 c7 0e f1 ff       	call   0x4a0130
58f269:	83 c4 04             	add    $0x4,%esp
58f26c:	8b 44 24 1c          	mov    0x1c(%esp),%eax
58f270:	85 c0                	test   %eax,%eax
58f272:	74 09                	je     0x58f27d
58f274:	50                   	push   %eax
58f275:	e8 b6 0e f1 ff       	call   0x4a0130
58f27a:	83 c4 04             	add    $0x4,%esp
58f27d:	8b 44 24 54          	mov    0x54(%esp),%eax
58f281:	5f                   	pop    %edi
58f282:	5e                   	pop    %esi
58f283:	5d                   	pop    %ebp
58f284:	5b                   	pop    %ebx
58f285:	83 c4 4c             	add    $0x4c,%esp
58f288:	c3                   	ret
58f289:	68 2c 02 00 00       	push   $0x22c
58f28e:	68 58 70 6c 00       	push   $0x6c7058
58f293:	6a 41                	push   $0x41
58f295:	e9 1e ff ff ff       	jmp    0x58f1b8
58f29a:	8d 04 9f             	lea    (%edi,%ebx,4),%eax
58f29d:	8b f7                	mov    %edi,%esi
58f29f:	33 ed                	xor    %ebp,%ebp
58f2a1:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
58f2a7:	8b 7c 24 34          	mov    0x34(%esp),%edi
58f2ab:	89 44 24 48          	mov    %eax,0x48(%esp)
58f2af:	85 ff                	test   %edi,%edi
58f2b1:	74 5d                	je     0x58f310
58f2b3:	8b 44 24 1c          	mov    0x1c(%esp),%eax
58f2b7:	8b 5c 24 2c          	mov    0x2c(%esp),%ebx
58f2bb:	2b c3                	sub    %ebx,%eax
58f2bd:	89 44 24 58          	mov    %eax,0x58(%esp)
58f2c1:	89 34 18             	mov    %esi,(%eax,%ebx,1)
58f2c4:	33 ff                	xor    %edi,%edi
58f2c6:	8b 0b                	mov    (%ebx),%ecx
58f2c8:	b8 01 00 00 00       	mov    $0x1,%eax
58f2cd:	49                   	dec    %ecx
58f2ce:	d3 e0                	shl    %cl,%eax
58f2d0:	85 c0                	test   %eax,%eax
58f2d2:	74 28                	je     0x58f2fc
58f2d4:	ff 74 24 60          	push   0x60(%esp)
58f2d8:	e8 13 d0 fe ff       	call   0x57c2f0
58f2dd:	83 c4 04             	add    $0x4,%esp
58f2e0:	89 06                	mov    %eax,(%esi)
58f2e2:	85 c0                	test   %eax,%eax
58f2e4:	0f 84 12 03 00 00    	je     0x58f5fc
58f2ea:	8b 0b                	mov    (%ebx),%ecx
58f2ec:	b8 01 00 00 00       	mov    $0x1,%eax
58f2f1:	49                   	dec    %ecx
58f2f2:	47                   	inc    %edi
58f2f3:	d3 e0                	shl    %cl,%eax
58f2f5:	83 c6 04             	add    $0x4,%esi
58f2f8:	3b f8                	cmp    %eax,%edi
58f2fa:	72 d8                	jb     0x58f2d4
58f2fc:	8b 7c 24 34          	mov    0x34(%esp),%edi
58f300:	45                   	inc    %ebp
58f301:	8b 44 24 58          	mov    0x58(%esp),%eax
58f305:	83 c3 04             	add    $0x4,%ebx
58f308:	3b ef                	cmp    %edi,%ebp
58f30a:	72 b5                	jb     0x58f2c1
58f30c:	8b 44 24 48          	mov    0x48(%esp),%eax
58f310:	3b f0                	cmp    %eax,%esi
58f312:	74 2a                	je     0x58f33e
58f314:	68 5a 02 00 00       	push   $0x25a
58f319:	68 58 70 6c 00       	push   $0x6c7058
58f31e:	6a 44                	push   $0x44
58f320:	68 bb 00 00 00       	push   $0xbb
58f325:	6a 10                	push   $0x10
58f327:	e8 74 21 f1 ff       	call   0x4a14a0
58f32c:	8b 5c 24 24          	mov    0x24(%esp),%ebx
58f330:	83 c4 14             	add    $0x14,%esp
58f333:	8b 7c 24 14          	mov    0x14(%esp),%edi
58f337:	33 f6                	xor    %esi,%esi
58f339:	e9 9a fe ff ff       	jmp    0x58f1d8
58f33e:	8b 6c 24 60          	mov    0x60(%esp),%ebp
58f342:	55                   	push   %ebp
58f343:	e8 a8 cf fe ff       	call   0x57c2f0
58f348:	83 c4 04             	add    $0x4,%esp
58f34b:	89 44 24 18          	mov    %eax,0x18(%esp)
58f34f:	85 c0                	test   %eax,%eax
58f351:	0f 84 b4 02 00 00    	je     0x58f60b
58f357:	33 db                	xor    %ebx,%ebx
58f359:	85 ff                	test   %edi,%edi
58f35b:	0f 84 cb 00 00 00    	je     0x58f42c
58f361:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
58f365:	8b f9                	mov    %ecx,%edi
58f367:	8b 44 24 70          	mov    0x70(%esp),%eax
58f36b:	8b 74 24 2c          	mov    0x2c(%esp),%esi
58f36f:	2b c1                	sub    %ecx,%eax
58f371:	2b f1                	sub    %ecx,%esi
58f373:	89 44 24 70          	mov    %eax,0x70(%esp)
58f377:	89 74 24 30          	mov    %esi,0x30(%esp)
58f37b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
58f380:	3b 5c 24 6c          	cmp    0x6c(%esp),%ebx
58f384:	73 05                	jae    0x58f38b
58f386:	ff 34 38             	push   (%eax,%edi,1)
58f389:	eb 04                	jmp    0x58f38f
58f38b:	ff 74 24 4c          	push   0x4c(%esp)
58f38f:	8b 07                	mov    (%edi),%eax
58f391:	ff 30                	push   (%eax)
58f393:	e8 18 cb fe ff       	call   0x57beb0
58f398:	83 c4 08             	add    $0x8,%esp
58f39b:	85 c0                	test   %eax,%eax
58f39d:	0f 84 1b 02 00 00    	je     0x58f5be
58f3a3:	83 3c 3e 01          	cmpl   $0x1,(%esi,%edi,1)
58f3a7:	76 71                	jbe    0x58f41a
58f3a9:	8b 07                	mov    (%edi),%eax
58f3ab:	ff 74 24 78          	push   0x78(%esp)
58f3af:	8b 74 24 1c          	mov    0x1c(%esp),%esi
58f3b3:	ff 30                	push   (%eax)
58f3b5:	56                   	push   %esi
58f3b6:	55                   	push   %ebp
58f3b7:	e8 64 cb fe ff       	call   0x57bf20
58f3bc:	83 c4 10             	add    $0x10,%esp
58f3bf:	85 c0                	test   %eax,%eax
58f3c1:	0f 84 28 02 00 00    	je     0x58f5ef
58f3c7:	8b 4c 24 30          	mov    0x30(%esp),%ecx
58f3cb:	be 01 00 00 00       	mov    $0x1,%esi
58f3d0:	8b c6                	mov    %esi,%eax
58f3d2:	8b 0c 39             	mov    (%ecx,%edi,1),%ecx
58f3d5:	49                   	dec    %ecx
58f3d6:	d3 e0                	shl    %cl,%eax
58f3d8:	3b c6                	cmp    %esi,%eax
58f3da:	76 3a                	jbe    0x58f416
58f3dc:	0f 1f 40 00          	nopl   0x0(%eax)
58f3e0:	ff 74 24 78          	push   0x78(%esp)
58f3e4:	8b 07                	mov    (%edi),%eax
58f3e6:	ff 74 24 1c          	push   0x1c(%esp)
58f3ea:	ff 74 b0 fc          	push   -0x4(%eax,%esi,4)
58f3ee:	ff 34 b0             	push   (%eax,%esi,4)
58f3f1:	55                   	push   %ebp
58f3f2:	e8 89 c9 fe ff       	call   0x57bd80
58f3f7:	83 c4 14             	add    $0x14,%esp
58f3fa:	85 c0                	test   %eax,%eax
58f3fc:	0f 84 bc 01 00 00    	je     0x58f5be
58f402:	8b 44 24 30          	mov    0x30(%esp),%eax
58f406:	46                   	inc    %esi
58f407:	8b 0c 38             	mov    (%eax,%edi,1),%ecx
58f40a:	b8 01 00 00 00       	mov    $0x1,%eax
58f40f:	49                   	dec    %ecx
58f410:	d3 e0                	shl    %cl,%eax
58f412:	3b f0                	cmp    %eax,%esi
58f414:	72 ca                	jb     0x58f3e0
58f416:	8b 74 24 30          	mov    0x30(%esp),%esi
58f41a:	8b 44 24 70          	mov    0x70(%esp),%eax
58f41e:	43                   	inc    %ebx
58f41f:	83 c7 04             	add    $0x4,%edi
58f422:	3b 5c 24 34          	cmp    0x34(%esp),%ebx
58f426:	0f 82 54 ff ff ff    	jb     0x58f380
58f42c:	8b 7c 24 78          	mov    0x78(%esp),%edi
58f430:	8b 44 24 14          	mov    0x14(%esp),%eax
58f434:	57                   	push   %edi
58f435:	50                   	push   %eax
58f436:	ff 74 24 40          	push   0x40(%esp)
58f43a:	55                   	push   %ebp
58f43b:	e8 10 d1 fe ff       	call   0x57c550
58f440:	83 c4 10             	add    $0x10,%esp
58f443:	85 c0                	test   %eax,%eax
58f445:	0f 84 73 01 00 00    	je     0x58f5be
58f44b:	8b 4c 24 24          	mov    0x24(%esp),%ecx
58f44f:	bb 01 00 00 00       	mov    $0x1,%ebx
58f454:	2b cb                	sub    %ebx,%ecx
58f456:	89 4c 24 38          	mov    %ecx,0x38(%esp)
58f45a:	0f 88 45 01 00 00    	js     0x58f5a5
58f460:	eb 04                	jmp    0x58f466
58f462:	8b 6c 24 60          	mov    0x60(%esp),%ebp
58f466:	8b 74 24 64          	mov    0x64(%esp),%esi
58f46a:	85 db                	test   %ebx,%ebx
58f46c:	75 18                	jne    0x58f486
58f46e:	57                   	push   %edi
58f46f:	56                   	push   %esi
58f470:	56                   	push   %esi
58f471:	55                   	push   %ebp
58f472:	e8 a9 ca fe ff       	call   0x57bf20
58f477:	83 c4 10             	add    $0x10,%esp
58f47a:	85 c0                	test   %eax,%eax
58f47c:	0f 84 3c 01 00 00    	je     0x58f5be
58f482:	8b 4c 24 38          	mov    0x38(%esp),%ecx
58f486:	33 ed                	xor    %ebp,%ebp
58f488:	39 6c 24 28          	cmp    %ebp,0x28(%esp)
58f48c:	0f 86 e8 00 00 00    	jbe    0x58f57a
58f492:	8b 54 24 20          	mov    0x20(%esp),%edx
58f496:	8b 44 24 10          	mov    0x10(%esp),%eax
58f49a:	2b d0                	sub    %eax,%edx
58f49c:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
58f4a0:	2b c7                	sub    %edi,%eax
58f4a2:	89 54 24 4c          	mov    %edx,0x4c(%esp)
58f4a6:	89 44 24 58          	mov    %eax,0x58(%esp)
58f4aa:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
58f4b0:	03 c7                	add    %edi,%eax
58f4b2:	39 0c 10             	cmp    %ecx,(%eax,%edx,1)
58f4b5:	0f 86 a9 00 00 00    	jbe    0x58f564
58f4bb:	8b 00                	mov    (%eax),%eax
58f4bd:	0f be 34 08          	movsbl (%eax,%ecx,1),%esi
58f4c1:	85 f6                	test   %esi,%esi
58f4c3:	0f 84 97 00 00 00    	je     0x58f560
58f4c9:	33 c0                	xor    %eax,%eax
58f4cb:	85 f6                	test   %esi,%esi
58f4cd:	0f 98 c0             	sets   %al
58f4d0:	85 c0                	test   %eax,%eax
58f4d2:	74 02                	je     0x58f4d6
58f4d4:	f7 de                	neg    %esi
58f4d6:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
58f4da:	3b c1                	cmp    %ecx,%eax
58f4dc:	74 2f                	je     0x58f50d
58f4de:	85 db                	test   %ebx,%ebx
58f4e0:	75 20                	jne    0x58f502
58f4e2:	ff 74 24 78          	push   0x78(%esp)
58f4e6:	ff 74 24 68          	push   0x68(%esp)
58f4ea:	ff 74 24 68          	push   0x68(%esp)
58f4ee:	e8 fd cb fe ff       	call   0x57c0f0
58f4f3:	83 c4 0c             	add    $0xc,%esp
58f4f6:	85 c0                	test   %eax,%eax
58f4f8:	0f 84 c0 00 00 00    	je     0x58f5be
58f4fe:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
58f502:	33 c0                	xor    %eax,%eax
58f504:	85 c9                	test   %ecx,%ecx
58f506:	0f 94 c0             	sete   %al
58f509:	89 44 24 3c          	mov    %eax,0x3c(%esp)
58f50d:	8b 07                	mov    (%edi),%eax
58f50f:	d1 fe                	sar    $1,%esi
58f511:	85 db                	test   %ebx,%ebx
58f513:	74 24                	je     0x58f539
58f515:	ff 34 b0             	push   (%eax,%esi,4)
58f518:	8b 74 24 68          	mov    0x68(%esp),%esi
58f51c:	56                   	push   %esi
58f51d:	e8 8e c9 fe ff       	call   0x57beb0
58f522:	83 c4 08             	add    $0x8,%esp
58f525:	85 c0                	test   %eax,%eax
58f527:	0f 84 91 00 00 00    	je     0x58f5be
58f52d:	8b 4c 24 38          	mov    0x38(%esp),%ecx
58f531:	33 db                	xor    %ebx,%ebx
58f533:	8b 54 24 4c          	mov    0x4c(%esp),%edx
58f537:	eb 2b                	jmp    0x58f564
58f539:	ff 74 24 78          	push   0x78(%esp)
58f53d:	ff 34 b0             	push   (%eax,%esi,4)
58f540:	8b 74 24 6c          	mov    0x6c(%esp),%esi
58f544:	56                   	push   %esi
58f545:	56                   	push   %esi
58f546:	ff 74 24 70          	push   0x70(%esp)
58f54a:	e8 31 c8 fe ff       	call   0x57bd80
58f54f:	83 c4 14             	add    $0x14,%esp
58f552:	85 c0                	test   %eax,%eax
58f554:	74 68                	je     0x58f5be
58f556:	8b 4c 24 38          	mov    0x38(%esp),%ecx
58f55a:	8b 54 24 4c          	mov    0x4c(%esp),%edx
58f55e:	eb 04                	jmp    0x58f564
58f560:	8b 74 24 64          	mov    0x64(%esp),%esi
58f564:	8b 44 24 58          	mov    0x58(%esp),%eax
58f568:	45                   	inc    %ebp
58f569:	83 c7 04             	add    $0x4,%edi
58f56c:	3b 6c 24 28          	cmp    0x28(%esp),%ebp
58f570:	0f 82 3a ff ff ff    	jb     0x58f4b0
58f576:	8b 7c 24 78          	mov    0x78(%esp),%edi
58f57a:	83 e9 01             	sub    $0x1,%ecx
58f57d:	89 4c 24 38          	mov    %ecx,0x38(%esp)
58f581:	0f 89 db fe ff ff    	jns    0x58f462
58f587:	85 db                	test   %ebx,%ebx
58f589:	75 16                	jne    0x58f5a1
58f58b:	39 5c 24 3c          	cmp    %ebx,0x3c(%esp)
58f58f:	74 25                	je     0x58f5b6
58f591:	57                   	push   %edi
58f592:	56                   	push   %esi
58f593:	ff 74 24 68          	push   0x68(%esp)
58f597:	e8 54 cb fe ff       	call   0x57c0f0
58f59c:	83 c4 0c             	add    $0xc,%esp
58f59f:	eb 11                	jmp    0x58f5b2
58f5a1:	8b 6c 24 60          	mov    0x60(%esp),%ebp
58f5a5:	ff 74 24 64          	push   0x64(%esp)
58f5a9:	55                   	push   %ebp
58f5aa:	e8 41 cf fe ff       	call   0x57c4f0
58f5af:	83 c4 08             	add    $0x8,%esp
58f5b2:	85 c0                	test   %eax,%eax
58f5b4:	74 08                	je     0x58f5be
58f5b6:	c7 44 24 54 01 00 00 	movl   $0x1,0x54(%esp)