40fff0:	55                   	push   %ebp
40fff1:	8b ec                	mov    %esp,%ebp
40fff3:	51                   	push   %ecx
40fff4:	51                   	push   %ecx
40fff5:	8b 01                	mov    (%ecx),%eax
40fff7:	ff 75 0c             	push   0xc(%ebp)
40fffa:	89 45 f8             	mov    %eax,-0x8(%ebp)
40fffd:	8b 41 04             	mov    0x4(%ecx),%eax
410000:	8d 4d f8             	lea    -0x8(%ebp),%ecx
410003:	89 45 fc             	mov    %eax,-0x4(%ebp)
410006:	e8 29 02 00 00       	call   0x410234
41000b:	8b 45 08             	mov    0x8(%ebp),%eax
41000e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
410011:	89 08                	mov    %ecx,(%eax)
410013:	8b 4d fc             	mov    -0x4(%ebp),%ecx
410016:	89 48 04             	mov    %ecx,0x4(%eax)
410019:	c9                   	leave
41001a:	c2 08 00             	ret    $0x8
41001d:	55                   	push   %ebp
41001e:	8b ec                	mov    %esp,%ebp
410020:	53                   	push   %ebx
410021:	8b 5d 08             	mov    0x8(%ebp),%ebx
410024:	56                   	push   %esi
410025:	57                   	push   %edi
410026:	8b 7d 10             	mov    0x10(%ebp),%edi
410029:	03 ff                	add    %edi,%edi
41002b:	57                   	push   %edi
41002c:	ff 75 0c             	push   0xc(%ebp)
41002f:	53                   	push   %ebx
410030:	e8 2b 33 03 00       	call   0x443360
410035:	8b 75 18             	mov    0x18(%ebp),%esi
410038:	8d 04 36             	lea    (%esi,%esi,1),%eax
41003b:	50                   	push   %eax
41003c:	ff 75 14             	push   0x14(%ebp)
41003f:	8d 04 1f             	lea    (%edi,%ebx,1),%eax
410042:	50                   	push   %eax
410043:	e8 18 33 03 00       	call   0x443360
410048:	8b 45 10             	mov    0x10(%ebp),%eax
41004b:	83 c4 18             	add    $0x18,%esp
41004e:	03 c6                	add    %esi,%eax
410050:	33 c9                	xor    %ecx,%ecx
410052:	5f                   	pop    %edi
410053:	5e                   	pop    %esi
410054:	66 89 0c 43          	mov    %cx,(%ebx,%eax,2)
410058:	5b                   	pop    %ebx
410059:	5d                   	pop    %ebp
41005a:	c2 14 00             	ret    $0x14
41005d:	55                   	push   %ebp
41005e:	8b ec                	mov    %esp,%ebp
410060:	8b 45 10             	mov    0x10(%ebp),%eax
410063:	56                   	push   %esi
410064:	8b 75 08             	mov    0x8(%ebp),%esi
410067:	57                   	push   %edi
410068:	8d 3c 00             	lea    (%eax,%eax,1),%edi
41006b:	57                   	push   %edi
41006c:	ff 75 0c             	push   0xc(%ebp)
41006f:	56                   	push   %esi
410070:	e8 eb 32 03 00       	call   0x443360
410075:	66 8b 45 14          	mov    0x14(%ebp),%ax
410079:	83 c4 0c             	add    $0xc,%esp
41007c:	66 89 04 37          	mov    %ax,(%edi,%esi,1)
410080:	33 c0                	xor    %eax,%eax
410082:	66 89 44 37 02       	mov    %ax,0x2(%edi,%esi,1)
410087:	5f                   	pop    %edi
410088:	5e                   	pop    %esi
410089:	5d                   	pop    %ebp
41008a:	c2 10 00             	ret    $0x10
41008d:	55                   	push   %ebp
41008e:	8b ec                	mov    %esp,%ebp
410090:	56                   	push   %esi
410091:	8b 75 08             	mov    0x8(%ebp),%esi
410094:	57                   	push   %edi
410095:	8b 7d 10             	mov    0x10(%ebp),%edi
410098:	57                   	push   %edi
410099:	ff 75 0c             	push   0xc(%ebp)
41009c:	56                   	push   %esi
41009d:	e8 be 32 03 00       	call   0x443360
4100a2:	03 fe                	add    %esi,%edi
4100a4:	8b 75 18             	mov    0x18(%ebp),%esi
4100a7:	56                   	push   %esi
4100a8:	ff 75 14             	push   0x14(%ebp)
4100ab:	57                   	push   %edi
4100ac:	e8 af 32 03 00       	call   0x443360
4100b1:	83 c4 18             	add    $0x18,%esp
4100b4:	c6 04 37 00          	movb   $0x0,(%edi,%esi,1)
4100b8:	5f                   	pop    %edi
4100b9:	5e                   	pop    %esi
4100ba:	5d                   	pop    %ebp
4100bb:	c2 14 00             	ret    $0x14
4100be:	55                   	push   %ebp
4100bf:	8b ec                	mov    %esp,%ebp
4100c1:	56                   	push   %esi
4100c2:	8b 75 08             	mov    0x8(%ebp),%esi
4100c5:	57                   	push   %edi
4100c6:	8b 7d 10             	mov    0x10(%ebp),%edi
4100c9:	57                   	push   %edi
4100ca:	ff 75 0c             	push   0xc(%ebp)
4100cd:	56                   	push   %esi
4100ce:	e8 8d 32 03 00       	call   0x443360
4100d3:	0f be 45 18          	movsbl 0x18(%ebp),%eax
4100d7:	03 fe                	add    %esi,%edi
4100d9:	8b 75 14             	mov    0x14(%ebp),%esi
4100dc:	56                   	push   %esi
4100dd:	50                   	push   %eax
4100de:	57                   	push   %edi
4100df:	e8 7c 3d 03 00       	call   0x443e60
4100e4:	83 c4 18             	add    $0x18,%esp
4100e7:	c6 04 37 00          	movb   $0x0,(%edi,%esi,1)
4100eb:	5f                   	pop    %edi
4100ec:	5e                   	pop    %esi
4100ed:	5d                   	pop    %ebp
4100ee:	c2 14 00             	ret    $0x14
4100f1:	55                   	push   %ebp
4100f2:	8b ec                	mov    %esp,%ebp
4100f4:	53                   	push   %ebx
4100f5:	8b 5d 08             	mov    0x8(%ebp),%ebx
4100f8:	56                   	push   %esi
4100f9:	57                   	push   %edi
4100fa:	8b 7d 10             	mov    0x10(%ebp),%edi
4100fd:	03 ff                	add    %edi,%edi
4100ff:	57                   	push   %edi
410100:	ff 75 0c             	push   0xc(%ebp)
410103:	53                   	push   %ebx
410104:	e8 57 32 03 00       	call   0x443360
410109:	8b 75 14             	mov    0x14(%ebp),%esi
41010c:	8d 04 1f             	lea    (%edi,%ebx,1),%eax
41010f:	56                   	push   %esi
410110:	ff 75 18             	push   0x18(%ebp)
410113:	50                   	push   %eax
410114:	e8 e8 3c 01 00       	call   0x423e01
410119:	8b 45 10             	mov    0x10(%ebp),%eax
41011c:	83 c4 18             	add    $0x18,%esp
41011f:	03 c6                	add    %esi,%eax
410121:	33 c9                	xor    %ecx,%ecx
410123:	5f                   	pop    %edi
410124:	5e                   	pop    %esi
410125:	66 89 0c 43          	mov    %cx,(%ebx,%eax,2)
410129:	5b                   	pop    %ebx
41012a:	5d                   	pop    %ebp
41012b:	c2 14 00             	ret    $0x14
41012e:	55                   	push   %ebp
41012f:	8b ec                	mov    %esp,%ebp
410131:	53                   	push   %ebx
410132:	56                   	push   %esi
410133:	8b 31                	mov    (%ecx),%esi
410135:	8b ce                	mov    %esi,%ecx
410137:	ff 75 0c             	push   0xc(%ebp)
41013a:	e8 b5 31 01 00       	call   0x4232f4
41013f:	ff 75 08             	push   0x8(%ebp)
410142:	8b ce                	mov    %esi,%ecx
410144:	8a d8                	mov    %al,%bl
410146:	e8 a9 31 01 00       	call   0x4232f4
41014b:	3a c3                	cmp    %bl,%al
41014d:	5e                   	pop    %esi
41014e:	0f 94 c0             	sete   %al
410151:	5b                   	pop    %ebx
410152:	5d                   	pop    %ebp
410153:	c2 08 00             	ret    $0x8
410156:	55                   	push   %ebp
410157:	8b ec                	mov    %esp,%ebp
410159:	56                   	push   %esi
41015a:	57                   	push   %edi
41015b:	8b 39                	mov    (%ecx),%edi
41015d:	8b cf                	mov    %edi,%ecx
41015f:	ff 75 0c             	push   0xc(%ebp)
410162:	e8 de 31 01 00       	call   0x423345
410167:	ff 75 08             	push   0x8(%ebp)
41016a:	8b cf                	mov    %edi,%ecx
41016c:	66 8b f0             	mov    %ax,%si
41016f:	e8 d1 31 01 00       	call   0x423345
410174:	66 3b c6             	cmp    %si,%ax
410177:	5f                   	pop    %edi
410178:	0f 94 c0             	sete   %al
41017b:	5e                   	pop    %esi
41017c:	5d                   	pop    %ebp
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