41a00c:	57                   	push   %edi
41a00d:	ff 15 34 a1 44 00    	call   *0x44a134
41a013:	50                   	push   %eax
41a014:	ff 15 3c a1 44 00    	call   *0x44a13c
41a01a:	57                   	push   %edi
41a01b:	ff 35 dc 65 43 00    	push   0x4365dc
41a021:	eb 06                	jmp    0x41a029
41a023:	57                   	push   %edi
41a024:	68 28 27 00 40       	push   $0x40002728
41a029:	e8 b6 d8 fe ff       	call   0x4078e4
41a02e:	59                   	pop    %ecx
41a02f:	c7 05 dc 65 43 00 01 	movl   $0x1,0x4365dc
41a036:	00 00 00
41a039:	59                   	pop    %ecx
41a03a:	e9 5d c2 fe ff       	jmp    0x40629c
41a03f:	b9 f0 8b 44 00       	mov    $0x448bf0,%ecx
41a044:	e9 93 c2 fe ff       	jmp    0x4062dc
41a049:	56                   	push   %esi
41a04a:	6a 00                	push   $0x0
41a04c:	ff 15 34 a1 44 00    	call   *0x44a134
41a052:	50                   	push   %eax
41a053:	ff 15 3c a1 44 00    	call   *0x44a13c
41a059:	e9 f7 c2 fe ff       	jmp    0x406355
41a05e:	8d 51 e0             	lea    -0x20(%ecx),%edx
41a061:	c1 ea 05             	shr    $0x5,%edx
41a064:	42                   	inc    %edx
41a065:	6b c2 e0             	imul   $0xffffffe0,%edx,%eax
41a068:	03 c8                	add    %eax,%ecx
41a06a:	e9 e7 c3 fe ff       	jmp    0x406456
41a06f:	83 f8 02             	cmp    $0x2,%eax
41a072:	74 09                	je     0x41a07d
41a074:	83 f8 03             	cmp    $0x3,%eax
41a077:	0f 85 8a c4 fe ff    	jne    0x406507
41a07d:	8b 75 fc             	mov    -0x4(%ebp),%esi
41a080:	83 e6 01             	and    $0x1,%esi
41a083:	0f 84 7e c4 fe ff    	je     0x406507
41a089:	e9 5c c4 fe ff       	jmp    0x4064ea
41a08e:	6a 30                	push   $0x30
41a090:	33 f6                	xor    %esi,%esi
41a092:	8d 45 b8             	lea    -0x48(%ebp),%eax
41a095:	56                   	push   %esi
41a096:	50                   	push   %eax
41a097:	e8 21 df ff ff       	call   0x417fbd
41a09c:	8b 4b 04             	mov    0x4(%ebx),%ecx
41a09f:	83 c4 0c             	add    $0xc,%esp
41a0a2:	e8 a4 64 ff ff       	call   0x41054b
41a0a7:	6a 10                	push   $0x10
41a0a9:	59                   	pop    %ecx
41a0aa:	89 45 bc             	mov    %eax,-0x44(%ebp)
41a0ad:	e8 1e 3c ff ff       	call   0x40dcd0
41a0b2:	8b c8                	mov    %eax,%ecx
41a0b4:	85 c9                	test   %ecx,%ecx
41a0b6:	0f 84 93 02 00 00    	je     0x41a34f
41a0bc:	8a 43 10             	mov    0x10(%ebx),%al
41a0bf:	88 45 c8             	mov    %al,-0x38(%ebp)
41a0c2:	84 c0                	test   %al,%al
41a0c4:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
41a0c7:	b8 68 26 40 00       	mov    $0x402668,%eax
41a0cc:	c7 45 c0 01 00 00 00 	movl   $0x1,-0x40(%ebp)
41a0d3:	89 75 b8             	mov    %esi,-0x48(%ebp)
41a0d6:	75 05                	jne    0x41a0dd
41a0d8:	b8 70 26 40 00       	mov    $0x402670,%eax
41a0dd:	89 01                	mov    %eax,(%ecx)
41a0df:	8b 4d bc             	mov    -0x44(%ebp),%ecx
41a0e2:	e8 64 64 ff ff       	call   0x41054b
41a0e7:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
41a0ea:	8b 55 f0             	mov    -0x10(%ebp),%edx
41a0ed:	56                   	push   %esi
41a0ee:	56                   	push   %esi
41a0ef:	56                   	push   %esi
41a0f0:	51                   	push   %ecx
41a0f1:	56                   	push   %esi
41a0f2:	89 41 04             	mov    %eax,0x4(%ecx)
41a0f5:	8d 4d b8             	lea    -0x48(%ebp),%ecx
41a0f8:	8b 45 c4             	mov    -0x3c(%ebp),%eax
41a0fb:	57                   	push   %edi
41a0fc:	6a 10                	push   $0x10
41a0fe:	6a 10                	push   $0x10
41a100:	89 70 0c             	mov    %esi,0xc(%eax)
41a103:	e8 0b c4 fe ff       	call   0x406513
41a108:	8b f0                	mov    %eax,%esi
41a10a:	33 c0                	xor    %eax,%eax
41a10c:	85 f6                	test   %esi,%esi
41a10e:	74 05                	je     0x41a115
41a110:	89 45 cc             	mov    %eax,-0x34(%ebp)
41a113:	8b f0                	mov    %eax,%esi
41a115:	83 3d 9c 25 43 00 00 	cmpl   $0x0,0x43259c
41a11c:	0f 85 ec c3 fe ff    	jne    0x40650e
41a122:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
41a126:	89 45 f8             	mov    %eax,-0x8(%ebp)
41a129:	0f 86 c6 01 00 00    	jbe    0x41a2f5
41a12f:	8b 45 d4             	mov    -0x2c(%ebp),%eax
41a132:	b9 34 24 40 00       	mov    $0x402434,%ecx
41a137:	8b 7d f8             	mov    -0x8(%ebp),%edi
41a13a:	8b 3c b8             	mov    (%eax,%edi,4),%edi
41a13d:	8d 47 30             	lea    0x30(%edi),%eax
41a140:	89 45 ec             	mov    %eax,-0x14(%ebp)
41a143:	66 8b 10             	mov    (%eax),%dx
41a146:	66 3b 11             	cmp    (%ecx),%dx
41a149:	75 1e                	jne    0x41a169
41a14b:	66 85 d2             	test   %dx,%dx
41a14e:	74 15                	je     0x41a165
41a150:	66 8b 50 02          	mov    0x2(%eax),%dx
41a154:	66 3b 51 02          	cmp    0x2(%ecx),%dx
41a158:	75 0f                	jne    0x41a169
41a15a:	83 c0 04             	add    $0x4,%eax
41a15d:	83 c1 04             	add    $0x4,%ecx
41a160:	66 85 d2             	test   %dx,%dx
41a163:	75 de                	jne    0x41a143
41a165:	33 c0                	xor    %eax,%eax
41a167:	eb 05                	jmp    0x41a16e
41a169:	1b c0                	sbb    %eax,%eax
41a16b:	83 c8 01             	or     $0x1,%eax
41a16e:	85 c0                	test   %eax,%eax
41a170:	0f 84 6f 01 00 00    	je     0x41a2e5
41a176:	b9 10 25 40 00       	mov    $0x402510,%ecx
41a17b:	8d 47 30             	lea    0x30(%edi),%eax
41a17e:	66 8b 10             	mov    (%eax),%dx
41a181:	66 3b 11             	cmp    (%ecx),%dx
41a184:	75 1e                	jne    0x41a1a4
41a186:	66 85 d2             	test   %dx,%dx
41a189:	74 15                	je     0x41a1a0
41a18b:	66 8b 50 02          	mov    0x2(%eax),%dx
41a18f:	66 3b 51 02          	cmp    0x2(%ecx),%dx
41a193:	75 0f                	jne    0x41a1a4
41a195:	83 c0 04             	add    $0x4,%eax
41a198:	83 c1 04             	add    $0x4,%ecx
41a19b:	66 85 d2             	test   %dx,%dx
41a19e:	75 de                	jne    0x41a17e
41a1a0:	33 c0                	xor    %eax,%eax
41a1a2:	eb 05                	jmp    0x41a1a9
41a1a4:	1b c0                	sbb    %eax,%eax
41a1a6:	83 c8 01             	or     $0x1,%eax
41a1a9:	85 c0                	test   %eax,%eax
41a1ab:	0f 84 34 01 00 00    	je     0x41a2e5
41a1b1:	f6 45 fc 02          	testb  $0x2,-0x4(%ebp)
41a1b5:	75 23                	jne    0x41a1da
41a1b7:	f7 47 04 00 04 00 00 	testl  $0x400,0x4(%edi)
41a1be:	74 1a                	je     0x41a1da
41a1c0:	f7 47 28 00 00 00 20 	testl  $0x20000000,0x28(%edi)
41a1c7:	0f 85 18 01 00 00    	jne    0x41a2e5
41a1cd:	81 7f 28 0a 00 00 80 	cmpl   $0x8000000a,0x28(%edi)
41a1d4:	0f 84 0b 01 00 00    	je     0x41a2e5
41a1da:	8b 53 04             	mov    0x4(%ebx),%edx
41a1dd:	33 f6                	xor    %esi,%esi
41a1df:	8d 4a 02             	lea    0x2(%edx),%ecx
41a1e2:	66 8b 02             	mov    (%edx),%ax
41a1e5:	83 c2 02             	add    $0x2,%edx
41a1e8:	66 3b c6             	cmp    %si,%ax
41a1eb:	75 f5                	jne    0x41a1e2
41a1ed:	8b 7d ec             	mov    -0x14(%ebp),%edi
41a1f0:	2b d1                	sub    %ecx,%edx
41a1f2:	8b cf                	mov    %edi,%ecx
41a1f4:	d1 fa                	sar    $1,%edx
41a1f6:	8d 71 02             	lea    0x2(%ecx),%esi
41a1f9:	66 8b 01             	mov    (%ecx),%ax
41a1fc:	83 c1 02             	add    $0x2,%ecx
41a1ff:	66 3b 45 e8          	cmp    -0x18(%ebp),%ax
41a203:	75 f4                	jne    0x41a1f9
41a205:	2b ce                	sub    %esi,%ecx
41a207:	8d 72 02             	lea    0x2(%edx),%esi
41a20a:	d1 f9                	sar    $1,%ecx
41a20c:	03 f1                	add    %ecx,%esi
41a20e:	81 fe e7 7f 00 00    	cmp    $0x7fe7,%esi
41a214:	0f 87 16 01 00 00    	ja     0x41a330
41a21a:	33 c0                	xor    %eax,%eax
41a21c:	6a 30                	push   $0x30
41a21e:	50                   	push   %eax
41a21f:	8d 45 88             	lea    -0x78(%ebp),%eax
41a222:	50                   	push   %eax
41a223:	e8 95 dd ff ff       	call   0x417fbd
41a228:	83 c4 0c             	add    $0xc,%esp
41a22b:	8d 0c 36             	lea    (%esi,%esi,1),%ecx
41a22e:	e8 9d 3a ff ff       	call   0x40dcd0
41a233:	85 c0                	test   %eax,%eax
41a235:	0f 84 14 01 00 00    	je     0x41a34f
41a23b:	57                   	push   %edi
41a23c:	ff 73 04             	push   0x4(%ebx)
41a23f:	8b d6                	mov    %esi,%edx
41a241:	89 45 8c             	mov    %eax,-0x74(%ebp)
41a244:	8b c8                	mov    %eax,%ecx
41a246:	e8 6d 92 ff ff       	call   0x4134b8
41a24b:	ff 75 24             	push   0x24(%ebp)
41a24e:	8b 43 0c             	mov    0xc(%ebx),%eax
41a251:	8d 4d 88             	lea    -0x78(%ebp),%ecx
41a254:	ff 75 20             	push   0x20(%ebp)
41a257:	8b 55 f0             	mov    -0x10(%ebp),%edx
41a25a:	33 ff                	xor    %edi,%edi
41a25c:	ff 75 1c             	push   0x1c(%ebp)
41a25f:	89 45 94             	mov    %eax,-0x6c(%ebp)
41a262:	8b 43 08             	mov    0x8(%ebx),%eax
41a265:	57                   	push   %edi
41a266:	ff 75 14             	push   0x14(%ebp)
41a269:	89 45 90             	mov    %eax,-0x70(%ebp)
41a26c:	ff 75 fc             	push   -0x4(%ebp)
41a26f:	8a 43 10             	mov    0x10(%ebx),%al
41a272:	ff 75 0c             	push   0xc(%ebp)
41a275:	88 45 98             	mov    %al,-0x68(%ebp)
41a278:	ff 75 08             	push   0x8(%ebp)
41a27b:	e8 08 c2 fe ff       	call   0x406488
41a280:	8b 4d a0             	mov    -0x60(%ebp),%ecx
41a283:	8b f0                	mov    %eax,%esi
41a285:	e8 d6 39 ff ff       	call   0x40dc60
41a28a:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
41a28d:	89 7d a0             	mov    %edi,-0x60(%ebp)
41a290:	e8 cb 39 ff ff       	call   0x40dc60
41a295:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
41a298:	89 7d a4             	mov    %edi,-0x5c(%ebp)
41a29b:	e8 c0 39 ff ff       	call   0x40dc60
41a2a0:	89 7d 8c             	mov    %edi,-0x74(%ebp)
41a2a3:	85 f6                	test   %esi,%esi
41a2a5:	75 09                	jne    0x41a2b0
41a2a7:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
41a2ae:	eb 35                	jmp    0x41a2e5
41a2b0:	83 fe 6f             	cmp    $0x6f,%esi
41a2b3:	74 2e                	je     0x41a2e3
41a2b5:	83 fe 02             	cmp    $0x2,%esi
41a2b8:	74 29                	je     0x41a2e3
41a2ba:	83 fe 03             	cmp    $0x3,%esi
41a2bd:	74 24                	je     0x41a2e3
41a2bf:	8b 45 d4             	mov    -0x2c(%ebp),%eax
41a2c2:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41a2c5:	8b 04 88             	mov    (%eax,%ecx,4),%eax
41a2c8:	f7 40 04 00 04 00 00 	testl  $0x400,0x4(%eax)
41a2cf:	74 24                	je     0x41a2f5
41a2d1:	f7 40 28 00 00 00 20 	testl  $0x20000000,0x28(%eax)
41a2d8:	75 09                	jne    0x41a2e3
41a2da:	81 78 28 0a 00 00 80 	cmpl   $0x8000000a,0x28(%eax)
41a2e1:	75 12                	jne    0x41a2f5
41a2e3:	8b f7                	mov    %edi,%esi
41a2e5:	8b 45 f8             	mov    -0x8(%ebp),%eax
41a2e8:	40                   	inc    %eax
41a2e9:	89 45 f8             	mov    %eax,-0x8(%ebp)
41a2ec:	3b 45 cc             	cmp    -0x34(%ebp),%eax
41a2ef:	0f 82 3a fe ff ff    	jb     0x41a12f
41a2f5:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
41a2f8:	e8 63 39 ff ff       	call   0x40dc60
41a2fd:	8b 4d d0             	mov    -0x30(%ebp),%ecx
41a300:	e8 5b 39 ff ff       	call   0x40dc60
41a305:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
41a308:	8b 49 04             	mov    0x4(%ecx),%ecx
41a30b:	e8 50 39 ff ff       	call   0x40dc60
41a310:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
41a313:	e8 48 39 ff ff       	call   0x40dc60
41a318:	8b 4d bc             	mov    -0x44(%ebp),%ecx
41a31b:	e8 40 39 ff ff       	call   0x40dc60
41a320:	85 f6                	test   %esi,%esi
41a322:	75 05                	jne    0x41a329
41a324:	39 75 f4             	cmp    %esi,-0xc(%ebp)
41a327:	74 1e                	je     0x41a347
41a329:	8b c6                	mov    %esi,%eax
41a32b:	e9 d7 c1 fe ff       	jmp    0x406507
41a330:	57                   	push   %edi
41a331:	ff 73 04             	push   0x4(%ebx)
41a334:	6a 02                	push   $0x2
41a336:	68 d8 23 00 40       	push   $0x400023d8
41a33b:	e8 a4 d5 fe ff       	call   0x4078e4
41a340:	83 c4 10             	add    $0x10,%esp
41a343:	6a 6f                	push   $0x6f
41a345:	eb 02                	jmp    0x41a349
41a347:	6a 02                	push   $0x2
41a349:	58                   	pop    %eax
41a34a:	e9 b8 c1 fe ff       	jmp    0x406507
41a34f:	e8 ce f5 00 00       	call   0x429922
41a354:	6a 01                	push   $0x1
41a356:	68 30 0a 44 00       	push   $0x440a30
41a35b:	ff 15 30 a4 44 00    	call   *0x44a430
41a361:	cc                   	int3
41a362:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
41a368:	e9 9e c2 fe ff       	jmp    0x40660b
41a36d:	8d 95 e0 fd ff ff    	lea    -0x220(%ebp),%edx
41a373:	e9 c1 c2 fe ff       	jmp    0x406639
41a378:	8b 3d a8 67 43 00    	mov    0x4367a8,%edi
41a37e:	85 ff                	test   %edi,%edi
41a380:	0f 84 fd c3 fe ff    	je     0x406783
41a386:	83 ff 12             	cmp    $0x12,%edi
41a389:	74 09                	je     0x41a394
41a38b:	83 ff 05             	cmp    $0x5,%edi
41a38e:	0f 85 e2 c3 fe ff    	jne    0x406776
41a394:	6a 02                	push   $0x2
41a396:	5f                   	pop    %edi
41a397:	89 3d a8 67 43 00    	mov    %edi,0x4367a8
41a39d:	e9 d4 c3 fe ff       	jmp    0x406776
41a3a2:	ff 46 14             	incl   0x14(%esi)
41a3a5:	0f b7 03             	movzwl (%ebx),%eax
41a3a8:	8b 8d d8 fd ff ff    	mov    -0x228(%ebp),%ecx
41a3ae:	03 d8                	add    %eax,%ebx
41a3b0:	03 c8                	add    %eax,%ecx
41a3b2:	89 8d d8 fd ff ff    	mov    %ecx,-0x228(%ebp)
41a3b8:	8d 81 54 02 00 00    	lea    0x254(%ecx),%eax
41a3be:	8b 8d c8 fd ff ff    	mov    -0x238(%ebp),%ecx
41a3c4:	3b c1                	cmp    %ecx,%eax
41a3c6:	0f 82 79 c3 fe ff    	jb     0x406745
41a3cc:	8b 7e 18             	mov    0x18(%esi),%edi
41a3cf:	81 c1 00 00 01 00    	add    $0x10000,%ecx
41a3d5:	89 8d c8 fd ff ff    	mov    %ecx,-0x238(%ebp)
41a3db:	8b d1                	mov    %ecx,%edx
41a3dd:	8b cf                	mov    %edi,%ecx
41a3df:	e8 3c 39 ff ff       	call   0x40dd20
41a3e4:	85 c0                	test   %eax,%eax
41a3e6:	75 0b                	jne    0x41a3f3
41a3e8:	8b cf                	mov    %edi,%ecx
41a3ea:	e8 71 38 ff ff       	call   0x40dc60
41a3ef:	33 c9                	xor    %ecx,%ecx
41a3f1:	8b c1                	mov    %ecx,%eax
41a3f3:	89 46 18             	mov    %eax,0x18(%esi)
41a3f6:	85 c0                	test   %eax,%eax
41a3f8:	74 2c                	je     0x41a426
41a3fa:	8b 9d d8 fd ff ff    	mov    -0x228(%ebp),%ebx
41a400:	03 d8                	add    %eax,%ebx
41a402:	e9 3e c3 fe ff       	jmp    0x406745
41a407:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
41a40b:	0f 86 0e c4 fe ff    	jbe    0x40681f
41a411:	e9 6d c3 fe ff       	jmp    0x406783
41a416:	8b 8d dc fd ff ff    	mov    -0x224(%ebp),%ecx
41a41c:	e8 2c e7 fe ff       	call   0x408b4d
41a421:	e9 f9 c3 fe ff       	jmp    0x40681f
41a426:	bf 74 23 00 00       	mov    $0x2374,%edi
41a42b:	e9 ef c3 fe ff       	jmp    0x40681f
41a430:	8b 8d dc fd ff ff    	mov    -0x224(%ebp),%ecx
41a436:	e8 12 e7 fe ff       	call   0x408b4d
41a43b:	33 ff                	xor    %edi,%edi
41a43d:	47                   	inc    %edi
41a43e:	e9 dc c3 fe ff       	jmp    0x40681f
41a443:	6a 6f                	push   $0x6f
41a445:	5f                   	pop    %edi
41a446:	e9 d4 c3 fe ff       	jmp    0x40681f
41a44b:	8b 4e 14             	mov    0x14(%esi),%ecx
41a44e:	85 c9                	test   %ecx,%ecx
41a450:	0f 84 61 c3 fe ff    	je     0x4067b7
41a456:	c1 e1 02             	shl    $0x2,%ecx
41a459:	e8 72 38 ff ff       	call   0x40dcd0
41a45e:	85 c0                	test   %eax,%eax
41a460:	74 31                	je     0x41a493
41a462:	8b d7                	mov    %edi,%edx
41a464:	8b 4e 18             	mov    0x18(%esi),%ecx
41a467:	89 46 1c             	mov    %eax,0x1c(%esi)
41a46a:	39 7e 14             	cmp    %edi,0x14(%esi)
41a46d:	0f 86 44 c3 fe ff    	jbe    0x4067b7
41a473:	8b 46 1c             	mov    0x1c(%esi),%eax
41a476:	89 0c 90             	mov    %ecx,(%eax,%edx,4)
41a479:	0f b7 01             	movzwl (%ecx),%eax
41a47c:	03 c8                	add    %eax,%ecx
41a47e:	42                   	inc    %edx
41a47f:	3b 56 14             	cmp    0x14(%esi),%edx
41a482:	72 ef                	jb     0x41a473
41a484:	e9 2e c3 fe ff       	jmp    0x4067b7
41a489:	6a 02                	push   $0x2
41a48b:	58                   	pop    %eax
41a48c:	8b f8                	mov    %eax,%edi