40303b:	66 8b 01             	mov    (%ecx),%ax
40303e:	83 c1 02             	add    $0x2,%ecx
403041:	66 3b c6             	cmp    %si,%ax
403044:	75 f5                	jne    0x40303b
403046:	2b ca                	sub    %edx,%ecx
403048:	33 d2                	xor    %edx,%edx
40304a:	52                   	push   %edx
40304b:	52                   	push   %edx
40304c:	53                   	push   %ebx
40304d:	ff 37                	push   (%edi)
40304f:	d1 f9                	sar    $1,%ecx
403051:	8d 41 01             	lea    0x1(%ecx),%eax
403054:	50                   	push   %eax
403055:	ff 75 f4             	push   -0xc(%ebp)
403058:	68 00 04 00 00       	push   $0x400
40305d:	52                   	push   %edx
40305e:	ff 15 60 f1 40 00    	call   *0x40f160
403064:	85 c0                	test   %eax,%eax
403066:	75 18                	jne    0x403080
403068:	ff 15 e0 f0 40 00    	call   *0x40f0e0
40306e:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
403072:	8b f0                	mov    %eax,%esi
403074:	74 0c                	je     0x403082
403076:	ff 37                	push   (%edi)
403078:	ff 15 b0 f0 40 00    	call   *0x40f0b0
40307e:	eb 02                	jmp    0x403082
403080:	33 c0                	xor    %eax,%eax
403082:	8b c6                	mov    %esi,%eax
403084:	5e                   	pop    %esi
403085:	5f                   	pop    %edi
403086:	5b                   	pop    %ebx
403087:	c9                   	leave
403088:	c2 04 00             	ret    $0x4
40308b:	8b ff                	mov    %edi,%edi
40308d:	55                   	push   %ebp
40308e:	8b ec                	mov    %esp,%ebp
403090:	81 ec 0c 04 00 00    	sub    $0x40c,%esp
403096:	a1 04 a0 40 00       	mov    0x40a004,%eax
40309b:	33 c5                	xor    %ebp,%eax
40309d:	89 45 fc             	mov    %eax,-0x4(%ebp)
4030a0:	53                   	push   %ebx
4030a1:	56                   	push   %esi
4030a2:	57                   	push   %edi
4030a3:	68 00 04 00 00       	push   $0x400
4030a8:	33 ff                	xor    %edi,%edi
4030aa:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
4030b0:	57                   	push   %edi
4030b1:	50                   	push   %eax
4030b2:	e8 2d 60 00 00       	call   0x4090e4
4030b7:	83 c4 0c             	add    $0xc,%esp
4030ba:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
4030c0:	bb 00 02 00 00       	mov    $0x200,%ebx
4030c5:	53                   	push   %ebx
4030c6:	50                   	push   %eax
4030c7:	68 1d 04 00 00       	push   $0x41d
4030cc:	57                   	push   %edi
4030cd:	ff 15 20 f1 40 00    	call   *0x40f120
4030d3:	85 c0                	test   %eax,%eax
4030d5:	75 07                	jne    0x4030de
4030d7:	66 89 85 f8 fb ff ff 	mov    %ax,-0x408(%ebp)
4030de:	ff 75 0c             	push   0xc(%ebp)
4030e1:	8b 75 08             	mov    0x8(%ebp),%esi
4030e4:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
4030ea:	56                   	push   %esi
4030eb:	50                   	push   %eax
4030ec:	68 04 14 40 00       	push   $0x401404
4030f1:	68 14 12 40 00       	push   $0x401214
4030f6:	e8 bf f7 ff ff       	call   0x4028ba
4030fb:	8b c6                	mov    %esi,%eax
4030fd:	83 c4 14             	add    $0x14,%esp
403100:	83 e0 40             	and    $0x40,%eax
403103:	0b c7                	or     %edi,%eax
403105:	74 38                	je     0x40313f
403107:	53                   	push   %ebx
403108:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
40310e:	50                   	push   %eax
40310f:	68 1e 04 00 00       	push   $0x41e
403114:	57                   	push   %edi
403115:	ff 15 20 f1 40 00    	call   *0x40f120
40311b:	85 c0                	test   %eax,%eax
40311d:	75 07                	jne    0x403126
40311f:	66 89 85 f8 fb ff ff 	mov    %ax,-0x408(%ebp)
403126:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
40312c:	50                   	push   %eax
40312d:	68 04 14 40 00       	push   $0x401404
403132:	68 48 12 40 00       	push   $0x401248
403137:	e8 7e f7 ff ff       	call   0x4028ba
40313c:	83 c4 0c             	add    $0xc,%esp
40313f:	8b c6                	mov    %esi,%eax
403141:	83 e0 20             	and    $0x20,%eax
403144:	0b c7                	or     %edi,%eax
403146:	74 38                	je     0x403180
403148:	53                   	push   %ebx
403149:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
40314f:	50                   	push   %eax
403150:	68 1f 04 00 00       	push   $0x41f
403155:	57                   	push   %edi
403156:	ff 15 20 f1 40 00    	call   *0x40f120
40315c:	85 c0                	test   %eax,%eax
40315e:	75 07                	jne    0x403167
403160:	66 89 85 f8 fb ff ff 	mov    %ax,-0x408(%ebp)
403167:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
40316d:	50                   	push   %eax
40316e:	68 04 14 40 00       	push   $0x401404
403173:	68 48 12 40 00       	push   $0x401248
403178:	e8 3d f7 ff ff       	call   0x4028ba
40317d:	83 c4 0c             	add    $0xc,%esp
403180:	8b c6                	mov    %esi,%eax
403182:	83 e0 10             	and    $0x10,%eax
403185:	0b c7                	or     %edi,%eax
403187:	74 38                	je     0x4031c1
403189:	53                   	push   %ebx
40318a:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
403190:	50                   	push   %eax
403191:	68 20 04 00 00       	push   $0x420
403196:	57                   	push   %edi
403197:	ff 15 20 f1 40 00    	call   *0x40f120
40319d:	85 c0                	test   %eax,%eax
40319f:	75 07                	jne    0x4031a8
4031a1:	66 89 85 f8 fb ff ff 	mov    %ax,-0x408(%ebp)
4031a8:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
4031ae:	50                   	push   %eax
4031af:	68 04 14 40 00       	push   $0x401404
4031b4:	68 48 12 40 00       	push   $0x401248
4031b9:	e8 fc f6 ff ff       	call   0x4028ba
4031be:	83 c4 0c             	add    $0xc,%esp
4031c1:	8b c6                	mov    %esi,%eax
4031c3:	83 e0 08             	and    $0x8,%eax
4031c6:	0b c7                	or     %edi,%eax
4031c8:	74 35                	je     0x4031ff
4031ca:	53                   	push   %ebx
4031cb:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
4031d1:	50                   	push   %eax
4031d2:	6a 08                	push   $0x8
4031d4:	57                   	push   %edi
4031d5:	ff 15 20 f1 40 00    	call   *0x40f120
4031db:	85 c0                	test   %eax,%eax
4031dd:	75 07                	jne    0x4031e6
4031df:	66 89 85 f8 fb ff ff 	mov    %ax,-0x408(%ebp)
4031e6:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
4031ec:	50                   	push   %eax
4031ed:	68 04 14 40 00       	push   $0x401404
4031f2:	68 48 12 40 00       	push   $0x401248
4031f7:	e8 be f6 ff ff       	call   0x4028ba
4031fc:	83 c4 0c             	add    $0xc,%esp
4031ff:	8b c6                	mov    %esi,%eax
403201:	83 e0 02             	and    $0x2,%eax
403204:	0b c7                	or     %edi,%eax
403206:	74 38                	je     0x403240
403208:	53                   	push   %ebx
403209:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
40320f:	50                   	push   %eax
403210:	68 22 04 00 00       	push   $0x422
403215:	57                   	push   %edi
403216:	ff 15 20 f1 40 00    	call   *0x40f120
40321c:	85 c0                	test   %eax,%eax
40321e:	75 07                	jne    0x403227
403220:	66 89 85 f8 fb ff ff 	mov    %ax,-0x408(%ebp)
403227:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
40322d:	50                   	push   %eax
40322e:	68 04 14 40 00       	push   $0x401404
403233:	68 48 12 40 00       	push   $0x401248
403238:	e8 7d f6 ff ff       	call   0x4028ba
40323d:	83 c4 0c             	add    $0xc,%esp
403240:	83 e6 01             	and    $0x1,%esi
403243:	0b f7                	or     %edi,%esi
403245:	74 38                	je     0x40327f
403247:	53                   	push   %ebx
403248:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
40324e:	50                   	push   %eax
40324f:	68 23 04 00 00       	push   $0x423
403254:	57                   	push   %edi
403255:	ff 15 20 f1 40 00    	call   *0x40f120
40325b:	85 c0                	test   %eax,%eax
40325d:	75 07                	jne    0x403266
40325f:	66 89 85 f8 fb ff ff 	mov    %ax,-0x408(%ebp)
403266:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
40326c:	50                   	push   %eax
40326d:	68 04 14 40 00       	push   $0x401404
403272:	68 48 12 40 00       	push   $0x401248
403277:	e8 3e f6 ff ff       	call   0x4028ba
40327c:	83 c4 0c             	add    $0xc,%esp
40327f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
403282:	5f                   	pop    %edi
403283:	5e                   	pop    %esi
403284:	33 cd                	xor    %ebp,%ecx
403286:	5b                   	pop    %ebx
403287:	e8 44 58 00 00       	call   0x408ad0
40328c:	c9                   	leave
40328d:	c2 08 00             	ret    $0x8
403290:	8b ff                	mov    %edi,%edi
403292:	55                   	push   %ebp
403293:	8b ec                	mov    %esp,%ebp
403295:	81 ec 0c 02 00 00    	sub    $0x20c,%esp
40329b:	a1 04 a0 40 00       	mov    0x40a004,%eax
4032a0:	33 c5                	xor    %ebp,%eax
4032a2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4032a5:	53                   	push   %ebx
4032a6:	56                   	push   %esi
4032a7:	57                   	push   %edi
4032a8:	6a 40                	push   $0x40
4032aa:	5f                   	pop    %edi
4032ab:	57                   	push   %edi
4032ac:	33 db                	xor    %ebx,%ebx
4032ae:	8d 85 78 fe ff ff    	lea    -0x188(%ebp),%eax
4032b4:	53                   	push   %ebx
4032b5:	50                   	push   %eax
4032b6:	8b f1                	mov    %ecx,%esi
4032b8:	e8 27 5e 00 00       	call   0x4090e4
4032bd:	57                   	push   %edi
4032be:	8d 85 b8 fe ff ff    	lea    -0x148(%ebp),%eax
4032c4:	53                   	push   %ebx
4032c5:	50                   	push   %eax
4032c6:	e8 19 5e 00 00       	call   0x4090e4
4032cb:	57                   	push   %edi
4032cc:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
4032d2:	53                   	push   %ebx
4032d3:	50                   	push   %eax
4032d4:	e8 0b 5e 00 00       	call   0x4090e4
4032d9:	57                   	push   %edi
4032da:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
4032e0:	53                   	push   %ebx
4032e1:	50                   	push   %eax
4032e2:	e8 fd 5d 00 00       	call   0x4090e4
4032e7:	57                   	push   %edi
4032e8:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
4032ee:	53                   	push   %ebx
4032ef:	50                   	push   %eax
4032f0:	e8 ef 5d 00 00       	call   0x4090e4
4032f5:	57                   	push   %edi
4032f6:	8d 45 b8             	lea    -0x48(%ebp),%eax
4032f9:	53                   	push   %ebx
4032fa:	50                   	push   %eax
4032fb:	e8 e4 5d 00 00       	call   0x4090e4
403300:	83 c4 48             	add    $0x48,%esp
403303:	8d 85 f8 fd ff ff    	lea    -0x208(%ebp),%eax
403309:	57                   	push   %edi
40330a:	53                   	push   %ebx
40330b:	50                   	push   %eax
40330c:	e8 d3 5d 00 00       	call   0x4090e4
403311:	57                   	push   %edi
403312:	8d 85 38 fe ff ff    	lea    -0x1c8(%ebp),%eax
403318:	53                   	push   %ebx
403319:	50                   	push   %eax
40331a:	e8 c5 5d 00 00       	call   0x4090e4
40331f:	83 c4 18             	add    $0x18,%esp
403322:	8d 45 b8             	lea    -0x48(%ebp),%eax
403325:	6a 20                	push   $0x20
403327:	5f                   	pop    %edi
403328:	57                   	push   %edi
403329:	50                   	push   %eax
40332a:	68 29 04 00 00       	push   $0x429
40332f:	53                   	push   %ebx
403330:	ff 15 20 f1 40 00    	call   *0x40f120
403336:	85 c0                	test   %eax,%eax
403338:	75 04                	jne    0x40333e
40333a:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
40333e:	57                   	push   %edi
40333f:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
403345:	50                   	push   %eax
403346:	68 28 04 00 00       	push   $0x428
40334b:	53                   	push   %ebx
40334c:	ff 15 20 f1 40 00    	call   *0x40f120
403352:	85 c0                	test   %eax,%eax
403354:	75 07                	jne    0x40335d
403356:	66 89 85 78 ff ff ff 	mov    %ax,-0x88(%ebp)
40335d:	57                   	push   %edi
40335e:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
403364:	50                   	push   %eax
403365:	68 27 04 00 00       	push   $0x427
40336a:	53                   	push   %ebx
40336b:	ff 15 20 f1 40 00    	call   *0x40f120
403371:	85 c0                	test   %eax,%eax
403373:	75 07                	jne    0x40337c
403375:	66 89 85 38 ff ff ff 	mov    %ax,-0xc8(%ebp)
40337c:	57                   	push   %edi
40337d:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
403383:	50                   	push   %eax
403384:	68 26 04 00 00       	push   $0x426
403389:	53                   	push   %ebx
40338a:	ff 15 20 f1 40 00    	call   *0x40f120
403390:	85 c0                	test   %eax,%eax
403392:	75 07                	jne    0x40339b
403394:	66 89 85 f8 fe ff ff 	mov    %ax,-0x108(%ebp)
40339b:	57                   	push   %edi
40339c:	8d 85 b8 fe ff ff    	lea    -0x148(%ebp),%eax
4033a2:	50                   	push   %eax
4033a3:	68 25 04 00 00       	push   $0x425
4033a8:	53                   	push   %ebx
4033a9:	ff 15 20 f1 40 00    	call   *0x40f120
4033af:	85 c0                	test   %eax,%eax
4033b1:	75 07                	jne    0x4033ba
4033b3:	66 89 85 b8 fe ff ff 	mov    %ax,-0x148(%ebp)
4033ba:	57                   	push   %edi
4033bb:	8d 85 78 fe ff ff    	lea    -0x188(%ebp),%eax
4033c1:	50                   	push   %eax
4033c2:	68 24 04 00 00       	push   $0x424
4033c7:	53                   	push   %ebx
4033c8:	ff 15 20 f1 40 00    	call   *0x40f120
4033ce:	85 c0                	test   %eax,%eax
4033d0:	75 07                	jne    0x4033d9
4033d2:	66 89 85 78 fe ff ff 	mov    %ax,-0x188(%ebp)
4033d9:	ff b6 dc 05 00 00    	push   0x5dc(%esi)
4033df:	8d 45 b8             	lea    -0x48(%ebp),%eax
4033e2:	50                   	push   %eax
4033e3:	ff b6 d8 05 00 00    	push   0x5d8(%esi)
4033e9:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
4033ef:	50                   	push   %eax
4033f0:	8d 86 c0 03 00 00    	lea    0x3c0(%esi),%eax
4033f6:	50                   	push   %eax
4033f7:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
4033fd:	50                   	push   %eax
4033fe:	56                   	push   %esi
4033ff:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
403405:	50                   	push   %eax
403406:	8d 86 00 02 00 00    	lea    0x200(%esi),%eax
40340c:	50                   	push   %eax
40340d:	8d 85 b8 fe ff ff    	lea    -0x148(%ebp),%eax
403413:	50                   	push   %eax
403414:	ff b6 d4 05 00 00    	push   0x5d4(%esi)
40341a:	8d 85 78 fe ff ff    	lea    -0x188(%ebp),%eax
403420:	ff b6 d0 05 00 00    	push   0x5d0(%esi)
403426:	ff b6 cc 05 00 00    	push   0x5cc(%esi)
40342c:	ff b6 c8 05 00 00    	push   0x5c8(%esi)
403432:	50                   	push   %eax
403433:	68 60 12 40 00       	push   $0x401260
403438:	e8 7d f4 ff ff       	call   0x4028ba
40343d:	83 c4 40             	add    $0x40,%esp
403440:	39 9e e0 05 00 00    	cmp    %ebx,0x5e0(%esi)
403446:	76 7c                	jbe    0x4034c4
403448:	33 ff                	xor    %edi,%edi
40344a:	6a 20                	push   $0x20
40344c:	8d 85 38 fe ff ff    	lea    -0x1c8(%ebp),%eax
403452:	50                   	push   %eax
403453:	68 2b 04 00 00       	push   $0x42b
403458:	6a 00                	push   $0x0
40345a:	ff 15 20 f1 40 00    	call   *0x40f120
403460:	85 c0                	test   %eax,%eax
403462:	75 07                	jne    0x40346b
403464:	66 89 85 38 fe ff ff 	mov    %ax,-0x1c8(%ebp)
40346b:	6a 20                	push   $0x20
40346d:	8d 85 f8 fd ff ff    	lea    -0x208(%ebp),%eax
403473:	50                   	push   %eax
403474:	68 2a 04 00 00       	push   $0x42a
403479:	6a 00                	push   $0x0
40347b:	ff 15 20 f1 40 00    	call   *0x40f120
403481:	85 c0                	test   %eax,%eax
403483:	75 07                	jne    0x40348c
403485:	66 89 85 f8 fd ff ff 	mov    %ax,-0x208(%ebp)
40348c:	8b 86 e4 05 00 00    	mov    0x5e4(%esi),%eax