41609a:	8b 46 20             	mov    0x20(%esi),%eax
41609d:	66 83 78 2a 00       	cmpw   $0x0,0x2a(%eax)
4160a2:	75 72                	jne    0x416116
4160a4:	8a 86 71 04 00 00    	mov    0x471(%esi),%al
4160aa:	3c 06                	cmp    $0x6,%al
4160ac:	74 04                	je     0x4160b2
4160ae:	3c 04                	cmp    $0x4,%al
4160b0:	75 22                	jne    0x4160d4
4160b2:	8b 46 20             	mov    0x20(%esi),%eax
4160b5:	e8 72 2f 00 00       	call   0x41902c
4160ba:	8b d8                	mov    %eax,%ebx
4160bc:	8b 46 20             	mov    0x20(%esi),%eax
4160bf:	e8 2c 2f 00 00       	call   0x418ff0
4160c4:	0f af d8             	imul   %eax,%ebx
4160c7:	8b c3                	mov    %ebx,%eax
4160c9:	e8 0e 49 ff ff       	call   0x40a9dc
4160ce:	89 86 64 04 00 00    	mov    %eax,0x464(%esi)
4160d4:	6a 00                	push   $0x0
4160d6:	e8 f5 e7 fe ff       	call   0x4048d0
4160db:	8b d8                	mov    %eax,%ebx
4160dd:	89 5e 2c             	mov    %ebx,0x2c(%esi)
4160e0:	6a 00                	push   $0x0
4160e2:	6a 00                	push   $0x0
4160e4:	8d 86 60 04 00 00    	lea    0x460(%esi),%eax
4160ea:	50                   	push   %eax
4160eb:	6a 00                	push   $0x0
4160ed:	8d 46 31             	lea    0x31(%esi),%eax
4160f0:	50                   	push   %eax
4160f1:	53                   	push   %ebx
4160f2:	e8 e1 e7 fe ff       	call   0x4048d8
4160f7:	89 46 28             	mov    %eax,0x28(%esi)
4160fa:	8b 46 20             	mov    0x20(%esi),%eax
4160fd:	e8 ee 2e 00 00       	call   0x418ff0
416102:	8b d0                	mov    %eax,%edx
416104:	0f af 96 5c 04 00 00 	imul   0x45c(%esi),%edx
41610b:	8b 86 60 04 00 00    	mov    0x460(%esi),%eax
416111:	e8 56 ea fe ff       	call   0x404b6c
416116:	5e                   	pop    %esi
416117:	5b                   	pop    %ebx
416118:	59                   	pop    %ecx
416119:	5d                   	pop    %ebp
41611a:	c3                   	ret
41611b:	90                   	nop
41611c:	53                   	push   %ebx
41611d:	56                   	push   %esi
41611e:	8b f2                	mov    %edx,%esi
416120:	8b d8                	mov    %eax,%ebx
416122:	8b 43 1c             	mov    0x1c(%ebx),%eax
416125:	3d 00 01 00 00       	cmp    $0x100,%eax
41612a:	77 0d                	ja     0x416139
41612c:	8d 53 29             	lea    0x29(%ebx),%edx
41612f:	8b c8                	mov    %eax,%ecx
416131:	8b 43 18             	mov    0x18(%ebx),%eax
416134:	e8 2b ea fe ff       	call   0x404b64
416139:	8b d6                	mov    %esi,%edx
41613b:	8b c3                	mov    %ebx,%eax
41613d:	e8 22 f9 ff ff       	call   0x415a64
416142:	5e                   	pop    %esi
416143:	5b                   	pop    %ebx
416144:	c3                   	ret
416145:	8d 40 00             	lea    0x0(%eax),%eax
416148:	55                   	push   %ebp
416149:	8b ec                	mov    %esp,%ebp
41614b:	83 c4 f4             	add    $0xfffffff4,%esp
41614e:	53                   	push   %ebx
41614f:	56                   	push   %esi
416150:	57                   	push   %edi
416151:	89 4d f8             	mov    %ecx,-0x8(%ebp)
416154:	89 55 fc             	mov    %edx,-0x4(%ebp)
416157:	8b d8                	mov    %eax,%ebx
416159:	8b 75 08             	mov    0x8(%ebp),%esi
41615c:	56                   	push   %esi
41615d:	8b fb                	mov    %ebx,%edi
41615f:	8b c7                	mov    %edi,%eax
416161:	8b 4d f8             	mov    -0x8(%ebp),%ecx
416164:	8b 55 fc             	mov    -0x4(%ebp),%edx
416167:	e8 9c f9 ff ff       	call   0x415b08
41616c:	88 45 f7             	mov    %al,-0x9(%ebp)
41616f:	80 7d f7 00          	cmpb   $0x0,-0x9(%ebp)
416173:	74 73                	je     0x4161e8
416175:	8b df                	mov    %edi,%ebx
416177:	81 fe 00 01 00 00    	cmp    $0x100,%esi
41617d:	7e 0d                	jle    0x41618c
41617f:	c6 45 f7 00          	movb   $0x0,-0x9(%ebp)
416183:	8b 43 20             	mov    0x20(%ebx),%eax
416186:	c6 40 30 06          	movb   $0x6,0x30(%eax)
41618a:	eb 5c                	jmp    0x4161e8
41618c:	8d 43 29             	lea    0x29(%ebx),%eax
41618f:	b1 ff                	mov    $0xff,%cl
416191:	ba 00 01 00 00       	mov    $0x100,%edx
416196:	e8 f9 c8 fe ff       	call   0x402a94
41619b:	8d 43 29             	lea    0x29(%ebx),%eax
41619e:	8b ce                	mov    %esi,%ecx
4161a0:	8b 53 18             	mov    0x18(%ebx),%edx
4161a3:	e8 bc e9 fe ff       	call   0x404b64
4161a8:	8b c3                	mov    %ebx,%eax
4161aa:	e8 45 f8 ff ff       	call   0x4159f4
4161af:	8a 80 71 04 00 00    	mov    0x471(%eax),%al
4161b5:	2c 01                	sub    $0x1,%al
4161b7:	72 0a                	jb     0x4161c3
4161b9:	fe c8                	dec    %al
4161bb:	74 06                	je     0x4161c3
4161bd:	fe c8                	dec    %al
4161bf:	74 08                	je     0x4161c9
4161c1:	eb 25                	jmp    0x4161e8
4161c3:	c6 43 28 01          	movb   $0x1,0x28(%ebx)
4161c7:	eb 1f                	jmp    0x4161e8
4161c9:	33 d2                	xor    %edx,%edx
4161cb:	8b c6                	mov    %esi,%eax
4161cd:	48                   	dec    %eax
4161ce:	85 c0                	test   %eax,%eax
4161d0:	7c 0f                	jl     0x4161e1
4161d2:	40                   	inc    %eax
4161d3:	33 c9                	xor    %ecx,%ecx
4161d5:	80 7c 0b 29 ff       	cmpb   $0xff,0x29(%ebx,%ecx,1)
4161da:	74 01                	je     0x4161dd
4161dc:	42                   	inc    %edx
4161dd:	41                   	inc    %ecx
4161de:	48                   	dec    %eax
4161df:	75 f4                	jne    0x4161d5
4161e1:	4a                   	dec    %edx
4161e2:	0f 94 c0             	sete   %al
4161e5:	88 43 28             	mov    %al,0x28(%ebx)
4161e8:	8a 45 f7             	mov    -0x9(%ebp),%al
4161eb:	5f                   	pop    %edi
4161ec:	5e                   	pop    %esi
4161ed:	5b                   	pop    %ebx
4161ee:	8b e5                	mov    %ebp,%esp
4161f0:	5d                   	pop    %ebp
4161f1:	c2 04 00             	ret    $0x4
4161f4:	53                   	push   %ebx
4161f5:	56                   	push   %esi
4161f6:	8b da                	mov    %edx,%ebx
4161f8:	8b f0                	mov    %eax,%esi
4161fa:	8b c3                	mov    %ebx,%eax
4161fc:	33 c9                	xor    %ecx,%ecx
4161fe:	ba 40 00 00 00       	mov    $0x40,%edx
416203:	e8 8c c8 fe ff       	call   0x402a94
416208:	b8 ff ff 00 00       	mov    $0xffff,%eax
41620d:	e8 1e c6 fe ff       	call   0x402830
416212:	89 43 38             	mov    %eax,0x38(%ebx)
416215:	89 73 3c             	mov    %esi,0x3c(%ebx)
416218:	ba 2c 62 41 00       	mov    $0x41622c,%edx
41621d:	8b c3                	mov    %ebx,%eax
41621f:	b9 38 00 00 00       	mov    $0x38,%ecx
416224:	e8 7f c6 ff ff       	call   0x4128a8
416229:	5e                   	pop    %esi
41622a:	5b                   	pop    %ebx
41622b:	c3                   	ret
41622c:	31 2e                	xor    %ebp,(%esi)
41622e:	31 2e                	xor    %ebp,(%esi)
416230:	34 00                	xor    $0x0,%al
416232:	00 00                	add    %al,(%eax)
416234:	55                   	push   %ebp
416235:	8b ec                	mov    %esp,%ebp
416237:	51                   	push   %ecx
416238:	53                   	push   %ebx
416239:	56                   	push   %esi
41623a:	57                   	push   %edi
41623b:	8b f1                	mov    %ecx,%esi
41623d:	88 55 ff             	mov    %dl,-0x1(%ebp)
416240:	8b f8                	mov    %eax,%edi
416242:	8b 5d 08             	mov    0x8(%ebp),%ebx
416245:	8b c3                	mov    %ebx,%eax
416247:	33 c9                	xor    %ecx,%ecx
416249:	ba 40 00 00 00       	mov    $0x40,%edx
41624e:	e8 41 c8 fe ff       	call   0x402a94
416253:	8b c6                	mov    %esi,%eax
416255:	e8 d6 c5 fe ff       	call   0x402830
41625a:	89 43 38             	mov    %eax,0x38(%ebx)
41625d:	89 7b 3c             	mov    %edi,0x3c(%ebx)
416260:	8b 43 38             	mov    0x38(%ebx),%eax
416263:	89 43 0c             	mov    %eax,0xc(%ebx)
416266:	89 73 10             	mov    %esi,0x10(%ebx)
416269:	6a 38                	push   $0x38
41626b:	b9 84 62 41 00       	mov    $0x416284,%ecx
416270:	33 d2                	xor    %edx,%edx
416272:	8a 55 ff             	mov    -0x1(%ebp),%dl
416275:	8b c3                	mov    %ebx,%eax
416277:	e8 50 91 ff ff       	call   0x40f3cc
41627c:	5f                   	pop    %edi
41627d:	5e                   	pop    %esi
41627e:	5b                   	pop    %ebx
41627f:	59                   	pop    %ecx
416280:	5d                   	pop    %ebp
416281:	c2 04 00             	ret    $0x4
416284:	31 2e                	xor    %ebp,(%esi)
416286:	31 2e                	xor    %ebp,(%esi)
416288:	34 00                	xor    $0x0,%al
41628a:	00 00                	add    %al,(%eax)
41628c:	53                   	push   %ebx
41628d:	8b d8                	mov    %eax,%ebx
41628f:	8b c3                	mov    %ebx,%eax
416291:	e8 92 98 ff ff       	call   0x40fb28
416296:	8b 43 38             	mov    0x38(%ebx),%eax
416299:	e8 c2 c5 fe ff       	call   0x402860
41629e:	5b                   	pop    %ebx
41629f:	c3                   	ret
4162a0:	53                   	push   %ebx
4162a1:	8b d8                	mov    %eax,%ebx
4162a3:	8b c3                	mov    %ebx,%eax
4162a5:	e8 b2 c4 ff ff       	call   0x41275c
4162aa:	8b 43 38             	mov    0x38(%ebx),%eax
4162ad:	e8 ae c5 fe ff       	call   0x402860
4162b2:	5b                   	pop    %ebx
4162b3:	c3                   	ret
4162b4:	53                   	push   %ebx
4162b5:	56                   	push   %esi
4162b6:	57                   	push   %edi
4162b7:	55                   	push   %ebp
4162b8:	51                   	push   %ecx
4162b9:	8b d8                	mov    %eax,%ebx
4162bb:	8b c3                	mov    %ebx,%eax
4162bd:	e8 32 f7 ff ff       	call   0x4159f4
4162c2:	8b f0                	mov    %eax,%esi
4162c4:	8a 86 71 04 00 00    	mov    0x471(%esi),%al
4162ca:	84 c0                	test   %al,%al
4162cc:	74 04                	je     0x4162d2
4162ce:	3c 04                	cmp    $0x4,%al
4162d0:	75 48                	jne    0x41631a
4162d2:	8a 4e 3f             	mov    0x3f(%esi),%cl
4162d5:	66 b8 01 00          	mov    $0x1,%ax
4162d9:	66 d3 e0             	shl    %cl,%ax
4162dc:	66 89 04 24          	mov    %ax,(%esp)
4162e0:	0f b7 2c 24          	movzwl (%esp),%ebp
4162e4:	4d                   	dec    %ebp
4162e5:	85 ed                	test   %ebp,%ebp
4162e7:	7c 31                	jl     0x41631a
4162e9:	45                   	inc    %ebp
4162ea:	33 ff                	xor    %edi,%edi
4162ec:	8d 5c be 59          	lea    0x59(%esi,%edi,4),%ebx
4162f0:	0f b7 0c 24          	movzwl (%esp),%ecx
4162f4:	49                   	dec    %ecx
4162f5:	ba ff 00 00 00       	mov    $0xff,%edx
4162fa:	8b c7                	mov    %edi,%eax
4162fc:	e8 7b f4 fe ff       	call   0x40577c
416301:	8b 56 20             	mov    0x20(%esi),%edx
416304:	8a 44 02 32          	mov    0x32(%edx,%eax,1),%al
416308:	88 43 02             	mov    %al,0x2(%ebx)
41630b:	8a 43 02             	mov    0x2(%ebx),%al
41630e:	88 43 01             	mov    %al,0x1(%ebx)
416311:	8a 43 02             	mov    0x2(%ebx),%al
416314:	88 03                	mov    %al,(%ebx)
416316:	47                   	inc    %edi
416317:	4d                   	dec    %ebp
416318:	75 d2                	jne    0x4162ec
41631a:	5a                   	pop    %edx
41631b:	5d                   	pop    %ebp
41631c:	5f                   	pop    %edi
41631d:	5e                   	pop    %esi
41631e:	5b                   	pop    %ebx
41631f:	c3                   	ret
416320:	55                   	push   %ebp
416321:	8b ec                	mov    %esp,%ebp
416323:	83 c4 e8             	add    $0xffffffe8,%esp
416326:	53                   	push   %ebx
416327:	56                   	push   %esi
416328:	57                   	push   %edi
416329:	33 db                	xor    %ebx,%ebx
41632b:	89 5d e8             	mov    %ebx,-0x18(%ebp)
41632e:	89 4d fc             	mov    %ecx,-0x4(%ebp)
416331:	8b da                	mov    %edx,%ebx
416333:	8b f8                	mov    %eax,%edi
416335:	8b 75 0c             	mov    0xc(%ebp),%esi
416338:	33 c0                	xor    %eax,%eax
41633a:	55                   	push   %ebp
41633b:	68 f0 64 41 00       	push   $0x4164f0
416340:	64 ff 30             	push   %fs:(%eax)
416343:	64 89 20             	mov    %esp,%fs:(%eax)
416346:	8b 45 fc             	mov    -0x4(%ebp),%eax
416349:	89 43 0c             	mov    %eax,0xc(%ebx)
41634c:	8b 45 10             	mov    0x10(%ebp),%eax
41634f:	89 43 10             	mov    %eax,0x10(%ebx)
416352:	e9 73 01 00 00       	jmp    0x4164ca
416357:	8b 43 3c             	mov    0x3c(%ebx),%eax
41635a:	e8 e1 06 ff ff       	call   0x406a40
41635f:	3b 06                	cmp    (%esi),%eax
416361:	0f 85 d0 00 00 00    	jne    0x416437
416367:	83 7b 10 00          	cmpl   $0x0,0x10(%ebx)
41636b:	0f 8e c6 00 00 00    	jle    0x416437
416371:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
416375:	0f 85 bc 00 00 00    	jne    0x416437
41637b:	8d 55 ec             	lea    -0x14(%ebp),%edx
41637e:	8b 43 3c             	mov    0x3c(%ebx),%eax
416381:	b9 04 00 00 00       	mov    $0x4,%ecx
416386:	e8 d5 06 ff ff       	call   0x406a60
41638b:	8b 47 20             	mov    0x20(%edi),%eax
41638e:	80 78 31 00          	cmpb   $0x0,0x31(%eax)
416392:	74 27                	je     0x4163bb
416394:	8b 45 ec             	mov    -0x14(%ebp),%eax
416397:	e8 a4 f5 ff ff       	call   0x415940
41639c:	8b 55 08             	mov    0x8(%ebp),%edx
41639f:	8b 12                	mov    (%edx),%edx
4163a1:	83 f2 ff             	xor    $0xffffffff,%edx
4163a4:	3b c2                	cmp    %edx,%eax
4163a6:	74 13                	je     0x4163bb
4163a8:	c7 45 f8 ff ff ff ff 	movl   $0xffffffff,-0x8(%ebp)
4163af:	8b 47 20             	mov    0x20(%edi),%eax
4163b2:	c6 40 30 01          	movb   $0x1,0x30(%eax)
4163b6:	e9 1f 01 00 00       	jmp    0x4164da
4163bb:	8b d6                	mov    %esi,%edx
4163bd:	8b 43 3c             	mov    0x3c(%ebx),%eax
4163c0:	b9 04 00 00 00       	mov    $0x4,%ecx
4163c5:	e8 96 06 ff ff       	call   0x406a60
4163ca:	8d 55 f0             	lea    -0x10(%ebp),%edx
4163cd:	8b 43 3c             	mov    0x3c(%ebx),%eax
4163d0:	b9 04 00 00 00       	mov    $0x4,%ecx
4163d5:	e8 86 06 ff ff       	call   0x406a60
4163da:	8d 45 e8             	lea    -0x18(%ebp),%eax
4163dd:	8d 55 f0             	lea    -0x10(%ebp),%edx
4163e0:	b9 04 00 00 00       	mov    $0x4,%ecx
4163e5:	e8 f2 d4 fe ff       	call   0x4038dc
4163ea:	8b 45 e8             	mov    -0x18(%ebp),%eax
4163ed:	ba 0c 65 41 00       	mov    $0x41650c,%edx
4163f2:	e8 49 d6 fe ff       	call   0x403a40
4163f7:	74 13                	je     0x41640c
4163f9:	8b 47 20             	mov    0x20(%edi),%eax
4163fc:	c6 40 30 07          	movb   $0x7,0x30(%eax)
416400:	c7 45 f8 ff ff ff ff 	movl   $0xffffffff,-0x8(%ebp)
416407:	e9 ce 00 00 00       	jmp    0x4164da
41640c:	8d 55 f0             	lea    -0x10(%ebp),%edx
41640f:	b9 04 00 00 00       	mov    $0x4,%ecx
416414:	83 c8 ff             	or     $0xffffffff,%eax
416417:	e8 7c f4 ff ff       	call   0x415898
41641c:	8b 55 08             	mov    0x8(%ebp),%edx
41641f:	89 02                	mov    %eax,(%edx)
416421:	8b 43 3c             	mov    0x3c(%ebx),%eax
416424:	e8 17 06 ff ff       	call   0x406a40
416429:	50                   	push   %eax
41642a:	8b 47 60             	mov    0x60(%edi),%eax
41642d:	e8 0e f5 ff ff       	call   0x415940
416432:	5a                   	pop    %edx
416433:	03 d0                	add    %eax,%edx
416435:	89 16                	mov    %edx,(%esi)
416437:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
41643b:	75 6b                	jne    0x4164a8
41643d:	8b 43 3c             	mov    0x3c(%ebx),%eax
416440:	e8 fb 05 ff ff       	call   0x406a40
416445:	05 ff ff 00 00       	add    $0xffff,%eax
41644a:	3b 06                	cmp    (%esi),%eax
41644c:	76 1c                	jbe    0x41646a
41644e:	8b 43 3c             	mov    0x3c(%ebx),%eax
416451:	e8 ea 05 ff ff       	call   0x406a40
416456:	8b 0e                	mov    (%esi),%ecx
416458:	2b c8                	sub    %eax,%ecx
41645a:	8b 53 38             	mov    0x38(%ebx),%edx
41645d:	8b 43 3c             	mov    0x3c(%ebx),%eax
416460:	e8 fb 05 ff ff       	call   0x406a60
416465:	89 43 04             	mov    %eax,0x4(%ebx)
416468:	eb 13                	jmp    0x41647d