41017d:	c2 08 00             	ret    $0x8
410180:	55                   	push   %ebp
410181:	8b ec                	mov    %esp,%ebp
410183:	53                   	push   %ebx
410184:	56                   	push   %esi
410185:	8b 31                	mov    (%ecx),%esi
410187:	ff 75 0c             	push   0xc(%ebp)
41018a:	8b 4e 04             	mov    0x4(%esi),%ecx
41018d:	8b 01                	mov    (%ecx),%eax
41018f:	8b 40 10             	mov    0x10(%eax),%eax
410192:	ff d0                	call   *%eax
410194:	8b 4e 04             	mov    0x4(%esi),%ecx
410197:	8a d8                	mov    %al,%bl
410199:	ff 75 08             	push   0x8(%ebp)
41019c:	8b 11                	mov    (%ecx),%edx
41019e:	8b 52 10             	mov    0x10(%edx),%edx
4101a1:	ff d2                	call   *%edx
4101a3:	3a c3                	cmp    %bl,%al
4101a5:	5e                   	pop    %esi
4101a6:	0f 94 c0             	sete   %al
4101a9:	5b                   	pop    %ebx
4101aa:	5d                   	pop    %ebp
4101ab:	c2 08 00             	ret    $0x8
4101ae:	55                   	push   %ebp
4101af:	8b ec                	mov    %esp,%ebp
4101b1:	56                   	push   %esi
4101b2:	57                   	push   %edi
4101b3:	8b 39                	mov    (%ecx),%edi
4101b5:	ff 75 0c             	push   0xc(%ebp)
4101b8:	8b 4f 04             	mov    0x4(%edi),%ecx
4101bb:	8b 01                	mov    (%ecx),%eax
4101bd:	ff 50 20             	call   *0x20(%eax)
4101c0:	8b 4f 04             	mov    0x4(%edi),%ecx
4101c3:	ff 75 08             	push   0x8(%ebp)
4101c6:	0f b7 f0             	movzwl %ax,%esi
4101c9:	8b 01                	mov    (%ecx),%eax
4101cb:	ff 50 20             	call   *0x20(%eax)
4101ce:	66 3b c6             	cmp    %si,%ax
4101d1:	5f                   	pop    %edi
4101d2:	0f 94 c0             	sete   %al
4101d5:	5e                   	pop    %esi
4101d6:	5d                   	pop    %ebp
4101d7:	c2 08 00             	ret    $0x8
4101da:	55                   	push   %ebp
4101db:	8b ec                	mov    %esp,%ebp
4101dd:	53                   	push   %ebx
4101de:	56                   	push   %esi
4101df:	8b 31                	mov    (%ecx),%esi
4101e1:	ff 75 0c             	push   0xc(%ebp)
4101e4:	8b 4e 04             	mov    0x4(%esi),%ecx
4101e7:	8b 01                	mov    (%ecx),%eax
4101e9:	8b 40 10             	mov    0x10(%eax),%eax
4101ec:	ff d0                	call   *%eax
4101ee:	8b 4e 04             	mov    0x4(%esi),%ecx
4101f1:	8a d8                	mov    %al,%bl
4101f3:	ff 75 08             	push   0x8(%ebp)
4101f6:	8b 11                	mov    (%ecx),%edx
4101f8:	8b 52 10             	mov    0x10(%edx),%edx
4101fb:	ff d2                	call   *%edx
4101fd:	3a c3                	cmp    %bl,%al
4101ff:	5e                   	pop    %esi
410200:	0f 94 c0             	sete   %al
410203:	5b                   	pop    %ebx
410204:	5d                   	pop    %ebp
410205:	c2 08 00             	ret    $0x8
410208:	55                   	push   %ebp
410209:	8b ec                	mov    %esp,%ebp
41020b:	56                   	push   %esi
41020c:	57                   	push   %edi
41020d:	8b 39                	mov    (%ecx),%edi
41020f:	ff 75 0c             	push   0xc(%ebp)
410212:	8b 4f 04             	mov    0x4(%edi),%ecx
410215:	8b 01                	mov    (%ecx),%eax
410217:	ff 50 20             	call   *0x20(%eax)
41021a:	8b 4f 04             	mov    0x4(%edi),%ecx
41021d:	ff 75 08             	push   0x8(%ebp)
410220:	0f b7 f0             	movzwl %ax,%esi
410223:	8b 01                	mov    (%ecx),%eax
410225:	ff 50 20             	call   *0x20(%eax)
410228:	66 3b c6             	cmp    %si,%ax
41022b:	5f                   	pop    %edi
41022c:	0f 94 c0             	sete   %al
41022f:	5e                   	pop    %esi
410230:	5d                   	pop    %ebp
410231:	c2 08 00             	ret    $0x8
410234:	55                   	push   %ebp
410235:	8b ec                	mov    %esp,%ebp
410237:	8b d1                	mov    %ecx,%edx
410239:	8b 4d 08             	mov    0x8(%ebp),%ecx
41023c:	56                   	push   %esi
41023d:	85 c9                	test   %ecx,%ecx
41023f:	79 1e                	jns    0x41025f
410241:	8b 72 04             	mov    0x4(%edx),%esi
410244:	8b c1                	mov    %ecx,%eax
410246:	f7 d8                	neg    %eax
410248:	3b f0                	cmp    %eax,%esi
41024a:	73 13                	jae    0x41025f
41024c:	03 f1                	add    %ecx,%esi
41024e:	8b ce                	mov    %esi,%ecx
410250:	f7 d1                	not    %ecx
410252:	c1 e9 05             	shr    $0x5,%ecx
410255:	6a fc                	push   $0xfffffffc
410257:	c1 e1 02             	shl    $0x2,%ecx
41025a:	58                   	pop    %eax
41025b:	2b c1                	sub    %ecx,%eax
41025d:	eb 0d                	jmp    0x41026c
41025f:	8b 72 04             	mov    0x4(%edx),%esi
410262:	03 f1                	add    %ecx,%esi
410264:	8b c6                	mov    %esi,%eax
410266:	c1 e8 05             	shr    $0x5,%eax
410269:	c1 e0 02             	shl    $0x2,%eax
41026c:	01 02                	add    %eax,(%edx)
41026e:	8b c2                	mov    %edx,%eax
410270:	89 72 04             	mov    %esi,0x4(%edx)
410273:	83 e6 1f             	and    $0x1f,%esi
410276:	89 72 04             	mov    %esi,0x4(%edx)
410279:	5e                   	pop    %esi
41027a:	5d                   	pop    %ebp
41027b:	c2 04 00             	ret    $0x4
41027e:	8b 01                	mov    (%ecx),%eax
410280:	83 c1 18             	add    $0x18,%ecx
410283:	8b 40 04             	mov    0x4(%eax),%eax
410286:	c7 44 08 e8 b8 59 49 	movl   $0x4959b8,-0x18(%eax,%ecx,1)
41028d:	00
41028e:	8b 41 e8             	mov    -0x18(%ecx),%eax
410291:	8b 50 04             	mov    0x4(%eax),%edx
410294:	8d 42 e8             	lea    -0x18(%edx),%eax
410297:	89 44 0a e4          	mov    %eax,-0x1c(%edx,%ecx,1)
41029b:	e9 4e d9 ff ff       	jmp    0x40dbee
4102a0:	56                   	push   %esi
4102a1:	8d 71 60             	lea    0x60(%ecx),%esi
4102a4:	8b ce                	mov    %esi,%ecx
4102a6:	e8 39 da ff ff       	call   0x40dce4
4102ab:	8b ce                	mov    %esi,%ecx
4102ad:	5e                   	pop    %esi
4102ae:	e9 3b d9 ff ff       	jmp    0x40dbee
4102b3:	8b 01                	mov    (%ecx),%eax
4102b5:	83 c1 08             	add    $0x8,%ecx
4102b8:	8b 40 04             	mov    0x4(%eax),%eax
4102bb:	c7 44 08 f8 4c 4a 49 	movl   $0x494a4c,-0x8(%eax,%ecx,1)
4102c2:	00
4102c3:	8b 41 f8             	mov    -0x8(%ecx),%eax
4102c6:	8b 50 04             	mov    0x4(%eax),%edx
4102c9:	8d 42 f8             	lea    -0x8(%edx),%eax
4102cc:	89 44 0a f4          	mov    %eax,-0xc(%edx,%ecx,1)
4102d0:	e9 19 d9 ff ff       	jmp    0x40dbee
4102d5:	56                   	push   %esi
4102d6:	8d 71 68             	lea    0x68(%ecx),%esi
4102d9:	8b ce                	mov    %esi,%ecx
4102db:	e8 23 dc ff ff       	call   0x40df03
4102e0:	8b ce                	mov    %esi,%ecx
4102e2:	5e                   	pop    %esi
4102e3:	e9 06 d9 ff ff       	jmp    0x40dbee
4102e8:	2b 49 fc             	sub    -0x4(%ecx),%ecx
4102eb:	e9 5e 03 00 00       	jmp    0x41064e
4102f0:	2b 49 fc             	sub    -0x4(%ecx),%ecx
4102f3:	e9 84 03 00 00       	jmp    0x41067c
4102f8:	2b 49 fc             	sub    -0x4(%ecx),%ecx
4102fb:	e9 a1 03 00 00       	jmp    0x4106a1
410300:	2b 49 fc             	sub    -0x4(%ecx),%ecx
410303:	e9 ca 03 00 00       	jmp    0x4106d2
410308:	2b 49 fc             	sub    -0x4(%ecx),%ecx
41030b:	e9 2b 04 00 00       	jmp    0x41073b
410310:	83 e9 04             	sub    $0x4,%ecx
410313:	e9 2d 06 00 00       	jmp    0x410945
410318:	55                   	push   %ebp
410319:	8b ec                	mov    %esp,%ebp
41031b:	56                   	push   %esi
41031c:	8b f1                	mov    %ecx,%esi
41031e:	e8 6c cf ff ff       	call   0x40d28f
410323:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
410327:	74 0d                	je     0x410336
410329:	68 0c 02 00 00       	push   $0x20c
41032e:	56                   	push   %esi
41032f:	e8 9f ef 02 00       	call   0x43f2d3
410334:	59                   	pop    %ecx
410335:	59                   	pop    %ecx
410336:	8b c6                	mov    %esi,%eax
410338:	5e                   	pop    %esi
410339:	5d                   	pop    %ebp
41033a:	c2 04 00             	ret    $0x4
41033d:	55                   	push   %ebp
41033e:	8b ec                	mov    %esp,%ebp
410340:	56                   	push   %esi
410341:	8b f1                	mov    %ecx,%esi
410343:	e8 94 cf ff ff       	call   0x40d2dc
410348:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
41034c:	74 0a                	je     0x410358
41034e:	6a 30                	push   $0x30
410350:	56                   	push   %esi
410351:	e8 7d ef 02 00       	call   0x43f2d3
410356:	59                   	pop    %ecx
410357:	59                   	pop    %ecx
410358:	8b c6                	mov    %esi,%eax
41035a:	5e                   	pop    %esi
41035b:	5d                   	pop    %ebp
41035c:	c2 04 00             	ret    $0x4
41035f:	55                   	push   %ebp
410360:	8b ec                	mov    %esp,%ebp
410362:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
410366:	56                   	push   %esi
410367:	8b f1                	mov    %ecx,%esi
410369:	c7 06 68 49 49 00    	movl   $0x494968,(%esi)
41036f:	74 0a                	je     0x41037b
410371:	6a 08                	push   $0x8
410373:	56                   	push   %esi
410374:	e8 5a ef 02 00       	call   0x43f2d3
410379:	59                   	pop    %ecx
41037a:	59                   	pop    %ecx
41037b:	8b c6                	mov    %esi,%eax
41037d:	5e                   	pop    %esi
41037e:	5d                   	pop    %ebp
41037f:	c2 04 00             	ret    $0x4
410382:	55                   	push   %ebp
410383:	8b ec                	mov    %esp,%ebp
410385:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
410389:	56                   	push   %esi
41038a:	8b f1                	mov    %ecx,%esi
41038c:	c7 06 d8 48 49 00    	movl   $0x4948d8,(%esi)
410392:	74 0a                	je     0x41039e
410394:	6a 10                	push   $0x10
410396:	56                   	push   %esi
410397:	e8 37 ef 02 00       	call   0x43f2d3
41039c:	59                   	pop    %ecx
41039d:	59                   	pop    %ecx
41039e:	8b c6                	mov    %esi,%eax
4103a0:	5e                   	pop    %esi
4103a1:	5d                   	pop    %ebp
4103a2:	c2 04 00             	ret    $0x4
4103a5:	55                   	push   %ebp
4103a6:	8b ec                	mov    %esp,%ebp
4103a8:	56                   	push   %esi
4103a9:	8b f1                	mov    %ecx,%esi
4103ab:	e8 87 cf ff ff       	call   0x40d337
4103b0:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
4103b4:	74 0d                	je     0x4103c3
4103b6:	68 04 02 00 00       	push   $0x204
4103bb:	56                   	push   %esi
4103bc:	e8 12 ef 02 00       	call   0x43f2d3
4103c1:	59                   	pop    %ecx
4103c2:	59                   	pop    %ecx
4103c3:	8b c6                	mov    %esi,%eax
4103c5:	5e                   	pop    %esi
4103c6:	5d                   	pop    %ebp
4103c7:	c2 04 00             	ret    $0x4
4103ca:	55                   	push   %ebp
4103cb:	8b ec                	mov    %esp,%ebp
4103cd:	56                   	push   %esi
4103ce:	8b f1                	mov    %ecx,%esi
4103d0:	e8 b2 cf ff ff       	call   0x40d387
4103d5:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
4103d9:	74 0a                	je     0x4103e5
4103db:	6a 28                	push   $0x28
4103dd:	56                   	push   %esi
4103de:	e8 f0 ee 02 00       	call   0x43f2d3
4103e3:	59                   	pop    %ecx
4103e4:	59                   	pop    %ecx
4103e5:	8b c6                	mov    %esi,%eax
4103e7:	5e                   	pop    %esi
4103e8:	5d                   	pop    %ebp
4103e9:	c2 04 00             	ret    $0x4
4103ec:	55                   	push   %ebp
4103ed:	8b ec                	mov    %esp,%ebp
4103ef:	56                   	push   %esi
4103f0:	8b f1                	mov    %ecx,%esi
4103f2:	e8 bd d2 ff ff       	call   0x40d6b4
4103f7:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
4103fb:	74 0a                	je     0x410407
4103fd:	6a 2c                	push   $0x2c
4103ff:	56                   	push   %esi
410400:	e8 ce ee 02 00       	call   0x43f2d3
410405:	59                   	pop    %ecx
410406:	59                   	pop    %ecx
410407:	8b c6                	mov    %esi,%eax
410409:	5e                   	pop    %esi
41040a:	5d                   	pop    %ebp
41040b:	c2 04 00             	ret    $0x4
41040e:	55                   	push   %ebp
41040f:	8b ec                	mov    %esp,%ebp
410411:	56                   	push   %esi
410412:	8b f1                	mov    %ecx,%esi
410414:	e8 3a d3 ff ff       	call   0x40d753
410419:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
41041d:	74 0a                	je     0x410429
41041f:	6a 2c                	push   $0x2c
410421:	56                   	push   %esi
410422:	e8 ac ee 02 00       	call   0x43f2d3
410427:	59                   	pop    %ecx
410428:	59                   	pop    %ecx
410429:	8b c6                	mov    %esi,%eax
41042b:	5e                   	pop    %esi
41042c:	5d                   	pop    %ebp
41042d:	c2 04 00             	ret    $0x4
410430:	55                   	push   %ebp
410431:	8b ec                	mov    %esp,%ebp
410433:	56                   	push   %esi
410434:	8b f1                	mov    %ecx,%esi
410436:	e8 b7 d3 ff ff       	call   0x40d7f2
41043b:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
41043f:	74 0a                	je     0x41044b
410441:	6a 20                	push   $0x20
410443:	56                   	push   %esi
410444:	e8 8a ee 02 00       	call   0x43f2d3
410449:	59                   	pop    %ecx
41044a:	59                   	pop    %ecx
41044b:	8b c6                	mov    %esi,%eax
41044d:	5e                   	pop    %esi
41044e:	5d                   	pop    %ebp
41044f:	c2 04 00             	ret    $0x4
410452:	55                   	push   %ebp
410453:	8b ec                	mov    %esp,%ebp
410455:	56                   	push   %esi
410456:	8b f1                	mov    %ecx,%esi
410458:	e8 e3 d3 ff ff       	call   0x40d840
41045d:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
410461:	74 0a                	je     0x41046d
410463:	6a 20                	push   $0x20
410465:	56                   	push   %esi
410466:	e8 68 ee 02 00       	call   0x43f2d3
41046b:	59                   	pop    %ecx
41046c:	59                   	pop    %ecx
41046d:	8b c6                	mov    %esi,%eax
41046f:	5e                   	pop    %esi
410470:	5d                   	pop    %ebp
410471:	c2 04 00             	ret    $0x4
410474:	55                   	push   %ebp
410475:	8b ec                	mov    %esp,%ebp
410477:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
41047b:	56                   	push   %esi
41047c:	8b f1                	mov    %ecx,%esi
41047e:	74 0a                	je     0x41048a
410480:	6a 58                	push   $0x58
410482:	56                   	push   %esi
410483:	e8 4b ee 02 00       	call   0x43f2d3
410488:	59                   	pop    %ecx
410489:	59                   	pop    %ecx
41048a:	8b c6                	mov    %esi,%eax
41048c:	5e                   	pop    %esi
41048d:	5d                   	pop    %ebp
41048e:	c2 04 00             	ret    $0x4
410491:	55                   	push   %ebp
410492:	8b ec                	mov    %esp,%ebp
410494:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
410498:	56                   	push   %esi
410499:	8b f1                	mov    %ecx,%esi
41049b:	74 0a                	je     0x4104a7
41049d:	6a 70                	push   $0x70
41049f:	56                   	push   %esi
4104a0:	e8 2e ee 02 00       	call   0x43f2d3
4104a5:	59                   	pop    %ecx