41ff3c:	ff 75 08             	push   0x8(%ebp)
41ff3f:	e8 b3 fc ff ff       	call   0x41fbf7
41ff44:	8b c8                	mov    %eax,%ecx
41ff46:	83 c4 1c             	add    $0x1c,%esp
41ff49:	33 c0                	xor    %eax,%eax
41ff4b:	85 c9                	test   %ecx,%ecx
41ff4d:	79 02                	jns    0x41ff51
41ff4f:	88 06                	mov    %al,(%esi)
41ff51:	83 f9 fe             	cmp    $0xfffffffe,%ecx
41ff54:	75 0e                	jne    0x41ff64
41ff56:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
41ff5a:	c7 47 18 22 00 00 00 	movl   $0x22,0x18(%edi)
41ff61:	57                   	push   %edi
41ff62:	eb 15                	jmp    0x41ff79
41ff64:	8b c1                	mov    %ecx,%eax
41ff66:	eb 21                	jmp    0x41ff89
41ff68:	8b 45 1c             	mov    0x1c(%ebp),%eax
41ff6b:	50                   	push   %eax
41ff6c:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41ff70:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
41ff77:	33 c0                	xor    %eax,%eax
41ff79:	50                   	push   %eax
41ff7a:	50                   	push   %eax
41ff7b:	50                   	push   %eax
41ff7c:	50                   	push   %eax
41ff7d:	50                   	push   %eax
41ff7e:	e8 83 f9 ff ff       	call   0x41f906
41ff83:	83 c4 18             	add    $0x18,%esp
41ff86:	83 c8 ff             	or     $0xffffffff,%eax
41ff89:	5e                   	pop    %esi
41ff8a:	5f                   	pop    %edi
41ff8b:	5d                   	pop    %ebp
41ff8c:	c3                   	ret
41ff8d:	8b ff                	mov    %edi,%edi
41ff8f:	55                   	push   %ebp
41ff90:	8b ec                	mov    %esp,%ebp
41ff92:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
41ff96:	57                   	push   %edi
41ff97:	75 23                	jne    0x41ffbc
41ff99:	8b 45 1c             	mov    0x1c(%ebp),%eax
41ff9c:	50                   	push   %eax
41ff9d:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41ffa1:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
41ffa8:	33 c0                	xor    %eax,%eax
41ffaa:	50                   	push   %eax
41ffab:	50                   	push   %eax
41ffac:	50                   	push   %eax
41ffad:	50                   	push   %eax
41ffae:	50                   	push   %eax
41ffaf:	e8 52 f9 ff ff       	call   0x41f906
41ffb4:	83 c4 18             	add    $0x18,%esp
41ffb7:	83 c8 ff             	or     $0xffffffff,%eax
41ffba:	eb 68                	jmp    0x420024
41ffbc:	56                   	push   %esi
41ffbd:	8b 75 10             	mov    0x10(%ebp),%esi
41ffc0:	85 f6                	test   %esi,%esi
41ffc2:	74 3e                	je     0x420002
41ffc4:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
41ffc8:	76 38                	jbe    0x420002
41ffca:	ff 75 20             	push   0x20(%ebp)
41ffcd:	8b 7d 1c             	mov    0x1c(%ebp),%edi
41ffd0:	57                   	push   %edi
41ffd1:	ff 75 18             	push   0x18(%ebp)
41ffd4:	ff 75 14             	push   0x14(%ebp)
41ffd7:	56                   	push   %esi
41ffd8:	ff 75 0c             	push   0xc(%ebp)
41ffdb:	ff 75 08             	push   0x8(%ebp)
41ffde:	e8 88 fd ff ff       	call   0x41fd6b
41ffe3:	83 c4 1c             	add    $0x1c,%esp
41ffe6:	85 c0                	test   %eax,%eax
41ffe8:	79 05                	jns    0x41ffef
41ffea:	33 c9                	xor    %ecx,%ecx
41ffec:	66 89 0e             	mov    %cx,(%esi)
41ffef:	83 f8 fe             	cmp    $0xfffffffe,%eax
41fff2:	75 2f                	jne    0x420023
41fff4:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
41fff8:	c7 47 18 22 00 00 00 	movl   $0x22,0x18(%edi)
41ffff:	57                   	push   %edi
420000:	eb 0f                	jmp    0x420011
420002:	8b 45 1c             	mov    0x1c(%ebp),%eax
420005:	50                   	push   %eax
420006:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
42000a:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
420011:	33 c0                	xor    %eax,%eax
420013:	50                   	push   %eax
420014:	50                   	push   %eax
420015:	50                   	push   %eax
420016:	50                   	push   %eax
420017:	50                   	push   %eax
420018:	e8 e9 f8 ff ff       	call   0x41f906
42001d:	83 c4 18             	add    $0x18,%esp
420020:	83 c8 ff             	or     $0xffffffff,%eax
420023:	5e                   	pop    %esi
420024:	5f                   	pop    %edi
420025:	5d                   	pop    %ebp
420026:	c3                   	ret
420027:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
42002e:	75 06                	jne    0x420036
420030:	b8 00 02 00 00       	mov    $0x200,%eax
420035:	c3                   	ret
420036:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
42003c:	d1 e8                	shr    $1,%eax
42003e:	c3                   	ret
42003f:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
420046:	75 06                	jne    0x42004e
420048:	b8 00 01 00 00       	mov    $0x100,%eax
42004d:	c3                   	ret
42004e:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
420054:	c1 e8 02             	shr    $0x2,%eax
420057:	c3                   	ret
420058:	8b ff                	mov    %edi,%edi
42005a:	55                   	push   %ebp
42005b:	8b ec                	mov    %esp,%ebp
42005d:	51                   	push   %ecx
42005e:	56                   	push   %esi
42005f:	8b 75 08             	mov    0x8(%ebp),%esi
420062:	57                   	push   %edi
420063:	8b f9                	mov    %ecx,%edi
420065:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
42006b:	76 12                	jbe    0x42007f
42006d:	8b 45 0c             	mov    0xc(%ebp),%eax
420070:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
420074:	c7 40 18 0c 00 00 00 	movl   $0xc,0x18(%eax)
42007b:	32 c0                	xor    %al,%al
42007d:	eb 54                	jmp    0x4200d3
42007f:	53                   	push   %ebx
420080:	8d 9f 04 04 00 00    	lea    0x404(%edi),%ebx
420086:	03 f6                	add    %esi,%esi
420088:	83 3b 00             	cmpl   $0x0,(%ebx)
42008b:	75 08                	jne    0x420095
42008d:	81 fe 00 04 00 00    	cmp    $0x400,%esi
420093:	76 3b                	jbe    0x4200d0
420095:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
42009b:	76 33                	jbe    0x4200d0
42009d:	56                   	push   %esi
42009e:	e8 51 a8 00 00       	call   0x42a8f4
4200a3:	89 45 fc             	mov    %eax,-0x4(%ebp)
4200a6:	59                   	pop    %ecx
4200a7:	85 c0                	test   %eax,%eax
4200a9:	75 0b                	jne    0x4200b6
4200ab:	50                   	push   %eax
4200ac:	e8 09 a8 00 00       	call   0x42a8ba
4200b1:	59                   	pop    %ecx
4200b2:	32 c0                	xor    %al,%al
4200b4:	eb 1c                	jmp    0x4200d2
4200b6:	8d 45 fc             	lea    -0x4(%ebp),%eax
4200b9:	8b cb                	mov    %ebx,%ecx
4200bb:	50                   	push   %eax
4200bc:	e8 e6 19 00 00       	call   0x421aa7
4200c1:	ff 75 fc             	push   -0x4(%ebp)
4200c4:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
4200ca:	e8 eb a7 00 00       	call   0x42a8ba
4200cf:	59                   	pop    %ecx
4200d0:	b0 01                	mov    $0x1,%al
4200d2:	5b                   	pop    %ebx
4200d3:	5f                   	pop    %edi
4200d4:	5e                   	pop    %esi
4200d5:	c9                   	leave
4200d6:	c2 08 00             	ret    $0x8
4200d9:	8b ff                	mov    %edi,%edi
4200db:	55                   	push   %ebp
4200dc:	8b ec                	mov    %esp,%ebp
4200de:	51                   	push   %ecx
4200df:	56                   	push   %esi
4200e0:	8b 75 08             	mov    0x8(%ebp),%esi
4200e3:	57                   	push   %edi
4200e4:	8b f9                	mov    %ecx,%edi
4200e6:	81 fe ff ff ff 3f    	cmp    $0x3fffffff,%esi
4200ec:	76 12                	jbe    0x420100
4200ee:	8b 45 0c             	mov    0xc(%ebp),%eax
4200f1:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
4200f5:	c7 40 18 0c 00 00 00 	movl   $0xc,0x18(%eax)
4200fc:	32 c0                	xor    %al,%al
4200fe:	eb 55                	jmp    0x420155
420100:	53                   	push   %ebx
420101:	8d 9f 04 04 00 00    	lea    0x404(%edi),%ebx
420107:	c1 e6 02             	shl    $0x2,%esi
42010a:	83 3b 00             	cmpl   $0x0,(%ebx)
42010d:	75 08                	jne    0x420117
42010f:	81 fe 00 04 00 00    	cmp    $0x400,%esi
420115:	76 3b                	jbe    0x420152
420117:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
42011d:	76 33                	jbe    0x420152
42011f:	56                   	push   %esi
420120:	e8 cf a7 00 00       	call   0x42a8f4
420125:	89 45 fc             	mov    %eax,-0x4(%ebp)
420128:	59                   	pop    %ecx
420129:	85 c0                	test   %eax,%eax
42012b:	75 0b                	jne    0x420138
42012d:	50                   	push   %eax
42012e:	e8 87 a7 00 00       	call   0x42a8ba
420133:	59                   	pop    %ecx
420134:	32 c0                	xor    %al,%al
420136:	eb 1c                	jmp    0x420154
420138:	8d 45 fc             	lea    -0x4(%ebp),%eax
42013b:	8b cb                	mov    %ebx,%ecx
42013d:	50                   	push   %eax
42013e:	e8 64 19 00 00       	call   0x421aa7
420143:	ff 75 fc             	push   -0x4(%ebp)
420146:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
42014c:	e8 69 a7 00 00       	call   0x42a8ba
420151:	59                   	pop    %ecx
420152:	b0 01                	mov    $0x1,%al
420154:	5b                   	pop    %ebx
420155:	5f                   	pop    %edi
420156:	5e                   	pop    %esi
420157:	c9                   	leave
420158:	c2 08 00             	ret    $0x8
42015b:	8b ff                	mov    %edi,%edi
42015d:	55                   	push   %ebp
42015e:	8b ec                	mov    %esp,%ebp
420160:	8b 45 14             	mov    0x14(%ebp),%eax
420163:	48                   	dec    %eax
420164:	83 e8 01             	sub    $0x1,%eax
420167:	74 1f                	je     0x420188
420169:	83 e8 01             	sub    $0x1,%eax
42016c:	74 16                	je     0x420184
42016e:	83 e8 09             	sub    $0x9,%eax
420171:	74 11                	je     0x420184
420173:	83 7d 14 0d          	cmpl   $0xd,0x14(%ebp)
420177:	74 0f                	je     0x420188
420179:	8a 45 10             	mov    0x10(%ebp),%al
42017c:	3c 63                	cmp    $0x63,%al
42017e:	74 08                	je     0x420188
420180:	3c 73                	cmp    $0x73,%al
420182:	74 04                	je     0x420188
420184:	b0 01                	mov    $0x1,%al
420186:	5d                   	pop    %ebp
420187:	c3                   	ret
420188:	32 c0                	xor    %al,%al
42018a:	5d                   	pop    %ebp
42018b:	c3                   	ret
42018c:	8b ff                	mov    %edi,%edi
42018e:	55                   	push   %ebp
42018f:	8b ec                	mov    %esp,%ebp
420191:	8b 45 14             	mov    0x14(%ebp),%eax
420194:	48                   	dec    %eax
420195:	83 e8 01             	sub    $0x1,%eax
420198:	74 3c                	je     0x4201d6
42019a:	83 e8 01             	sub    $0x1,%eax
42019d:	74 33                	je     0x4201d2
42019f:	83 e8 09             	sub    $0x9,%eax
4201a2:	74 2e                	je     0x4201d2
4201a4:	83 7d 14 0d          	cmpl   $0xd,0x14(%ebp)
4201a8:	74 28                	je     0x4201d2
4201aa:	8b 45 08             	mov    0x8(%ebp),%eax
4201ad:	83 e0 04             	and    $0x4,%eax
4201b0:	83 c8 00             	or     $0x0,%eax
4201b3:	6a 01                	push   $0x1
4201b5:	58                   	pop    %eax
4201b6:	74 04                	je     0x4201bc
4201b8:	8a c8                	mov    %al,%cl
4201ba:	eb 02                	jmp    0x4201be
4201bc:	32 c9                	xor    %cl,%cl
4201be:	66 83 7d 10 63       	cmpw   $0x63,0x10(%ebp)
4201c3:	74 07                	je     0x4201cc
4201c5:	66 83 7d 10 73       	cmpw   $0x73,0x10(%ebp)
4201ca:	75 02                	jne    0x4201ce
4201cc:	32 c0                	xor    %al,%al
4201ce:	32 c1                	xor    %cl,%al
4201d0:	5d                   	pop    %ebp
4201d1:	c3                   	ret
4201d2:	b0 01                	mov    $0x1,%al
4201d4:	5d                   	pop    %ebp
4201d5:	c3                   	ret
4201d6:	32 c0                	xor    %al,%al
4201d8:	5d                   	pop    %ebp
4201d9:	c3                   	ret
4201da:	8b ff                	mov    %edi,%edi
4201dc:	55                   	push   %ebp
4201dd:	8b ec                	mov    %esp,%ebp
4201df:	83 ec 14             	sub    $0x14,%esp
4201e2:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4201e5:	53                   	push   %ebx
4201e6:	56                   	push   %esi
4201e7:	e8 ef f4 ff ff       	call   0x41f6db
4201ec:	84 c0                	test   %al,%al
4201ee:	74 2f                	je     0x42021f
4201f0:	8b 75 14             	mov    0x14(%ebp),%esi
4201f3:	85 f6                	test   %esi,%esi
4201f5:	74 3d                	je     0x420234
4201f7:	83 fe 02             	cmp    $0x2,%esi
4201fa:	7c 05                	jl     0x420201
4201fc:	83 fe 24             	cmp    $0x24,%esi
4201ff:	7e 33                	jle    0x420234
420201:	8b 45 08             	mov    0x8(%ebp),%eax
420204:	50                   	push   %eax
420205:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
420209:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
420210:	33 c0                	xor    %eax,%eax
420212:	50                   	push   %eax
420213:	50                   	push   %eax
420214:	50                   	push   %eax
420215:	50                   	push   %eax
420216:	50                   	push   %eax
420217:	e8 ea f6 ff ff       	call   0x41f906
42021c:	83 c4 18             	add    $0x18,%esp
42021f:	8b 4d 10             	mov    0x10(%ebp),%ecx
420222:	85 c9                	test   %ecx,%ecx
420224:	0f 84 52 01 00 00    	je     0x42037c
42022a:	8b 45 0c             	mov    0xc(%ebp),%eax
42022d:	89 01                	mov    %eax,(%ecx)
42022f:	e9 48 01 00 00       	jmp    0x42037c
420234:	8b 45 0c             	mov    0xc(%ebp),%eax
420237:	33 c9                	xor    %ecx,%ecx
420239:	57                   	push   %edi
42023a:	89 45 ec             	mov    %eax,-0x14(%ebp)
42023d:	89 4d f4             	mov    %ecx,-0xc(%ebp)
420240:	8a 18                	mov    (%eax),%bl
420242:	8d 78 01             	lea    0x1(%eax),%edi
420245:	0f b6 45 18          	movzbl 0x18(%ebp),%eax
420249:	88 5d fc             	mov    %bl,-0x4(%ebp)
42024c:	89 7d 0c             	mov    %edi,0xc(%ebp)
42024f:	89 45 f8             	mov    %eax,-0x8(%ebp)
420252:	80 fb 2d             	cmp    $0x2d,%bl
420255:	75 08                	jne    0x42025f
420257:	83 c8 02             	or     $0x2,%eax
42025a:	89 45 f8             	mov    %eax,-0x8(%ebp)
42025d:	eb 05                	jmp    0x420264
42025f:	80 fb 2b             	cmp    $0x2b,%bl
420262:	75 09                	jne    0x42026d
420264:	8a 1f                	mov    (%edi),%bl
420266:	47                   	inc    %edi
420267:	88 5d fc             	mov    %bl,-0x4(%ebp)
42026a:	89 7d 0c             	mov    %edi,0xc(%ebp)
42026d:	85 f6                	test   %esi,%esi
42026f:	74 05                	je     0x420276
420271:	83 fe 10             	cmp    $0x10,%esi
420274:	75 75                	jne    0x4202eb
420276:	8a c3                	mov    %bl,%al
420278:	2c 30                	sub    $0x30,%al
42027a:	3c 09                	cmp    $0x9,%al
42027c:	77 08                	ja     0x420286
42027e:	0f be c3             	movsbl %bl,%eax
420281:	83 c0 d0             	add    $0xffffffd0,%eax
420284:	eb 1e                	jmp    0x4202a4
420286:	8a c3                	mov    %bl,%al
420288:	2c 61                	sub    $0x61,%al
42028a:	3c 19                	cmp    $0x19,%al
42028c:	77 08                	ja     0x420296
42028e:	0f be c3             	movsbl %bl,%eax
420291:	83 c0 a9             	add    $0xffffffa9,%eax
420294:	eb 0e                	jmp    0x4202a4
420296:	8a c3                	mov    %bl,%al
420298:	2c 41                	sub    $0x41,%al
42029a:	3c 19                	cmp    $0x19,%al
42029c:	77 46                	ja     0x4202e4
42029e:	0f be c3             	movsbl %bl,%eax
4202a1:	83 c0 c9             	add    $0xffffffc9,%eax
4202a4:	85 c0                	test   %eax,%eax