4100d1:	89 45 f4             	mov    %eax,-0xc(%ebp)
4100d4:	80 fb 2d             	cmp    $0x2d,%bl
4100d7:	75 08                	jne    0x4100e1
4100d9:	83 c8 02             	or     $0x2,%eax
4100dc:	89 45 f4             	mov    %eax,-0xc(%ebp)
4100df:	eb 05                	jmp    0x4100e6
4100e1:	80 fb 2b             	cmp    $0x2b,%bl
4100e4:	75 0d                	jne    0x4100f3
4100e6:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4100e9:	e8 60 31 00 00       	call   0x41324e
4100ee:	8a d8                	mov    %al,%bl
4100f0:	88 5d fc             	mov    %bl,-0x4(%ebp)
4100f3:	83 c9 ff             	or     $0xffffffff,%ecx
4100f6:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4100f9:	85 ff                	test   %edi,%edi
4100fb:	74 05                	je     0x410102
4100fd:	83 ff 10             	cmp    $0x10,%edi
410100:	75 7b                	jne    0x41017d
410102:	8a c3                	mov    %bl,%al
410104:	2c 30                	sub    $0x30,%al
410106:	3c 09                	cmp    $0x9,%al
410108:	77 08                	ja     0x410112
41010a:	0f be c3             	movsbl %bl,%eax
41010d:	83 c0 d0             	add    $0xffffffd0,%eax
410110:	eb 22                	jmp    0x410134
410112:	8a c3                	mov    %bl,%al
410114:	2c 61                	sub    $0x61,%al
410116:	3c 19                	cmp    $0x19,%al
410118:	77 08                	ja     0x410122
41011a:	0f be c3             	movsbl %bl,%eax
41011d:	83 c0 a9             	add    $0xffffffa9,%eax
410120:	eb 12                	jmp    0x410134
410122:	8a c3                	mov    %bl,%al
410124:	2c 41                	sub    $0x41,%al
410126:	3c 19                	cmp    $0x19,%al
410128:	77 08                	ja     0x410132
41012a:	0f be c3             	movsbl %bl,%eax
41012d:	83 c0 c9             	add    $0xffffffc9,%eax
410130:	eb 02                	jmp    0x410134
410132:	8b c1                	mov    %ecx,%eax
410134:	85 c0                	test   %eax,%eax
410136:	74 09                	je     0x410141
410138:	85 ff                	test   %edi,%edi
41013a:	75 41                	jne    0x41017d
41013c:	6a 0a                	push   $0xa
41013e:	5f                   	pop    %edi
41013f:	eb 3c                	jmp    0x41017d
410141:	8d 4d 0c             	lea    0xc(%ebp),%ecx
410144:	e8 05 31 00 00       	call   0x41324e
410149:	88 45 e8             	mov    %al,-0x18(%ebp)
41014c:	3c 78                	cmp    $0x78,%al
41014e:	74 18                	je     0x410168
410150:	3c 58                	cmp    $0x58,%al
410152:	74 14                	je     0x410168
410154:	85 ff                	test   %edi,%edi
410156:	75 03                	jne    0x41015b
410158:	6a 08                	push   $0x8
41015a:	5f                   	pop    %edi
41015b:	ff 75 e8             	push   -0x18(%ebp)
41015e:	8d 4d 0c             	lea    0xc(%ebp),%ecx
410161:	e8 84 3a 00 00       	call   0x413bea
410166:	eb 12                	jmp    0x41017a
410168:	85 ff                	test   %edi,%edi
41016a:	75 03                	jne    0x41016f
41016c:	6a 10                	push   $0x10
41016e:	5f                   	pop    %edi
41016f:	8d 4d 0c             	lea    0xc(%ebp),%ecx
410172:	e8 d7 30 00 00       	call   0x41324e
410177:	88 45 fc             	mov    %al,-0x4(%ebp)
41017a:	83 c9 ff             	or     $0xffffffff,%ecx
41017d:	8b c7                	mov    %edi,%eax
41017f:	99                   	cltd
410180:	52                   	push   %edx
410181:	50                   	push   %eax
410182:	51                   	push   %ecx
410183:	51                   	push   %ecx
410184:	89 45 d8             	mov    %eax,-0x28(%ebp)
410187:	89 55 dc             	mov    %edx,-0x24(%ebp)
41018a:	e8 a1 61 01 00       	call   0x426330
41018f:	89 4d e0             	mov    %ecx,-0x20(%ebp)
410192:	8a 4d fc             	mov    -0x4(%ebp),%cl
410195:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
410198:	8b 5d f4             	mov    -0xc(%ebp),%ebx
41019b:	89 45 ec             	mov    %eax,-0x14(%ebp)
41019e:	89 55 e8             	mov    %edx,-0x18(%ebp)
4101a1:	8a c1                	mov    %cl,%al
4101a3:	2c 30                	sub    $0x30,%al
4101a5:	3c 09                	cmp    $0x9,%al
4101a7:	77 08                	ja     0x4101b1
4101a9:	0f be d1             	movsbl %cl,%edx
4101ac:	83 c2 d0             	add    $0xffffffd0,%edx
4101af:	eb 23                	jmp    0x4101d4
4101b1:	8a c1                	mov    %cl,%al
4101b3:	2c 61                	sub    $0x61,%al
4101b5:	3c 19                	cmp    $0x19,%al
4101b7:	77 08                	ja     0x4101c1
4101b9:	0f be d1             	movsbl %cl,%edx
4101bc:	83 c2 a9             	add    $0xffffffa9,%edx
4101bf:	eb 13                	jmp    0x4101d4
4101c1:	8a c1                	mov    %cl,%al
4101c3:	2c 41                	sub    $0x41,%al
4101c5:	3c 19                	cmp    $0x19,%al
4101c7:	77 08                	ja     0x4101d1
4101c9:	0f be d1             	movsbl %cl,%edx
4101cc:	83 c2 c9             	add    $0xffffffc9,%edx
4101cf:	eb 03                	jmp    0x4101d4
4101d1:	83 ca ff             	or     $0xffffffff,%edx
4101d4:	89 55 f4             	mov    %edx,-0xc(%ebp)
4101d7:	83 fa ff             	cmp    $0xffffffff,%edx
4101da:	74 5e                	je     0x41023a
4101dc:	3b d7                	cmp    %edi,%edx
4101de:	73 5a                	jae    0x41023a
4101e0:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4101e3:	83 cb 08             	or     $0x8,%ebx
4101e6:	3b 75 e8             	cmp    -0x18(%ebp),%esi
4101e9:	72 25                	jb     0x410210
4101eb:	8b 45 ec             	mov    -0x14(%ebp),%eax
4101ee:	77 04                	ja     0x4101f4
4101f0:	3b c8                	cmp    %eax,%ecx
4101f2:	72 1c                	jb     0x410210
4101f4:	3b c8                	cmp    %eax,%ecx
4101f6:	75 13                	jne    0x41020b
4101f8:	3b 75 e8             	cmp    -0x18(%ebp),%esi
4101fb:	75 0e                	jne    0x41020b
4101fd:	33 c0                	xor    %eax,%eax
4101ff:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
410202:	72 0c                	jb     0x410210
410204:	77 05                	ja     0x41020b
410206:	3b 55 e0             	cmp    -0x20(%ebp),%edx
410209:	76 05                	jbe    0x410210
41020b:	83 cb 04             	or     $0x4,%ebx
41020e:	eb 18                	jmp    0x410228
410210:	56                   	push   %esi
410211:	51                   	push   %ecx
410212:	ff 75 dc             	push   -0x24(%ebp)
410215:	ff 75 d8             	push   -0x28(%ebp)
410218:	e8 13 6f ff ff       	call   0x407130
41021d:	03 45 f4             	add    -0xc(%ebp),%eax
410220:	8b f2                	mov    %edx,%esi
410222:	89 45 f8             	mov    %eax,-0x8(%ebp)
410225:	83 d6 00             	adc    $0x0,%esi
410228:	8d 4d 0c             	lea    0xc(%ebp),%ecx
41022b:	e8 1e 30 00 00       	call   0x41324e
410230:	8a c8                	mov    %al,%cl
410232:	88 4d fc             	mov    %cl,-0x4(%ebp)
410235:	e9 67 ff ff ff       	jmp    0x4101a1
41023a:	ff 75 fc             	push   -0x4(%ebp)
41023d:	8d 4d 0c             	lea    0xc(%ebp),%ecx
410240:	e8 a5 39 00 00       	call   0x413bea
410245:	f6 c3 08             	test   $0x8,%bl
410248:	75 17                	jne    0x410261
41024a:	ff 75 d4             	push   -0x2c(%ebp)
41024d:	8d 4d 0c             	lea    0xc(%ebp),%ecx
410250:	ff 75 d0             	push   -0x30(%ebp)
410253:	e8 d2 33 00 00       	call   0x41362a
410258:	33 c0                	xor    %eax,%eax
41025a:	89 45 f0             	mov    %eax,-0x10(%ebp)
41025d:	8b f0                	mov    %eax,%esi
41025f:	eb 40                	jmp    0x4102a1
410261:	8b 7d f8             	mov    -0x8(%ebp),%edi
410264:	56                   	push   %esi
410265:	57                   	push   %edi
410266:	53                   	push   %ebx
410267:	e8 ac f3 ff ff       	call   0x40f618
41026c:	83 c4 0c             	add    $0xc,%esp
41026f:	84 c0                	test   %al,%al
410271:	74 33                	je     0x4102a6
410273:	e8 f3 47 00 00       	call   0x414a6b
410278:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
41027e:	f6 c3 01             	test   $0x1,%bl
410281:	75 09                	jne    0x41028c
410283:	83 c8 ff             	or     $0xffffffff,%eax
410286:	8b f8                	mov    %eax,%edi
410288:	8b f0                	mov    %eax,%esi
41028a:	eb 26                	jmp    0x4102b2
41028c:	f6 c3 02             	test   $0x2,%bl
41028f:	74 0b                	je     0x41029c
410291:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
410295:	be 00 00 00 80       	mov    $0x80000000,%esi
41029a:	eb 05                	jmp    0x4102a1
41029c:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
4102a1:	8b 55 f0             	mov    -0x10(%ebp),%edx
4102a4:	eb 0e                	jmp    0x4102b4
4102a6:	f6 c3 02             	test   $0x2,%bl
4102a9:	74 07                	je     0x4102b2
4102ab:	f7 df                	neg    %edi
4102ad:	83 d6 00             	adc    $0x0,%esi
4102b0:	f7 de                	neg    %esi
4102b2:	8b d7                	mov    %edi,%edx
4102b4:	80 7d cc 00          	cmpb   $0x0,-0x34(%ebp)
4102b8:	5b                   	pop    %ebx
4102b9:	74 0a                	je     0x4102c5
4102bb:	8b 45 c0             	mov    -0x40(%ebp),%eax
4102be:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
4102c5:	33 c0                	xor    %eax,%eax
4102c7:	8b 7d 24             	mov    0x24(%ebp),%edi
4102ca:	85 ff                	test   %edi,%edi
4102cc:	74 0a                	je     0x4102d8
4102ce:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
4102d1:	0b 4d 20             	or     0x20(%ebp),%ecx
4102d4:	75 02                	jne    0x4102d8
4102d6:	88 07                	mov    %al,(%edi)
4102d8:	8b c2                	mov    %edx,%eax
4102da:	8b d6                	mov    %esi,%edx
4102dc:	5f                   	pop    %edi
4102dd:	5e                   	pop    %esi
4102de:	8b e5                	mov    %ebp,%esp
4102e0:	5d                   	pop    %ebp
4102e1:	c3                   	ret
4102e2:	8b ff                	mov    %edi,%edi
4102e4:	55                   	push   %ebp
4102e5:	8b ec                	mov    %esp,%ebp
4102e7:	83 ec 0c             	sub    $0xc,%esp
4102ea:	d9 ee                	fldz
4102ec:	8d 45 f8             	lea    -0x8(%ebp),%eax
4102ef:	56                   	push   %esi
4102f0:	50                   	push   %eax
4102f1:	83 ec 20             	sub    $0x20,%esp
4102f4:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
4102f8:	8b f1                	mov    %ecx,%esi
4102fa:	8d 45 ff             	lea    -0x1(%ebp),%eax
4102fd:	8b cc                	mov    %esp,%ecx
4102ff:	d9 5d f8             	fstps  -0x8(%ebp)
410302:	50                   	push   %eax
410303:	ff 76 34             	push   0x34(%esi)
410306:	8d 46 08             	lea    0x8(%esi),%eax
410309:	ff 76 30             	push   0x30(%esi)
41030c:	50                   	push   %eax
41030d:	51                   	push   %ecx
41030e:	e8 48 f3 ff ff       	call   0x40f65b
410313:	83 c4 14             	add    $0x14,%esp
410316:	ff 76 68             	push   0x68(%esi)
410319:	e8 5b f3 ff ff       	call   0x40f679
41031e:	83 c4 28             	add    $0x28,%esp
410321:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
410325:	74 1c                	je     0x410343
410327:	83 f8 01             	cmp    $0x1,%eax
41032a:	74 17                	je     0x410343
41032c:	80 7e 2e 00          	cmpb   $0x0,0x2e(%esi)
410330:	74 04                	je     0x410336
410332:	b0 01                	mov    $0x1,%al
410334:	eb 0f                	jmp    0x410345
410336:	8d 45 f8             	lea    -0x8(%ebp),%eax
410339:	8b ce                	mov    %esi,%ecx
41033b:	50                   	push   %eax
41033c:	e8 6e 03 00 00       	call   0x4106af
410341:	eb 02                	jmp    0x410345
410343:	32 c0                	xor    %al,%al
410345:	5e                   	pop    %esi
410346:	8b e5                	mov    %ebp,%esp
410348:	5d                   	pop    %ebp
410349:	c3                   	ret
41034a:	8b ff                	mov    %edi,%edi
41034c:	55                   	push   %ebp
41034d:	8b ec                	mov    %esp,%ebp
41034f:	83 ec 10             	sub    $0x10,%esp
410352:	d9 ee                	fldz
410354:	8d 45 f0             	lea    -0x10(%ebp),%eax
410357:	56                   	push   %esi
410358:	50                   	push   %eax
410359:	83 ec 20             	sub    $0x20,%esp
41035c:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
410360:	8b f1                	mov    %ecx,%esi
410362:	8d 45 ff             	lea    -0x1(%ebp),%eax
410365:	8b cc                	mov    %esp,%ecx
410367:	dd 5d f0             	fstpl  -0x10(%ebp)
41036a:	50                   	push   %eax
41036b:	ff 76 34             	push   0x34(%esi)
41036e:	8d 46 08             	lea    0x8(%esi),%eax
410371:	ff 76 30             	push   0x30(%esi)
410374:	50                   	push   %eax
410375:	51                   	push   %ecx
410376:	e8 e0 f2 ff ff       	call   0x40f65b
41037b:	83 c4 14             	add    $0x14,%esp
41037e:	ff 76 68             	push   0x68(%esi)
410381:	e8 6e f3 ff ff       	call   0x40f6f4
410386:	83 c4 28             	add    $0x28,%esp
410389:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
41038d:	74 1c                	je     0x4103ab
41038f:	83 f8 01             	cmp    $0x1,%eax
410392:	74 17                	je     0x4103ab
410394:	80 7e 2e 00          	cmpb   $0x0,0x2e(%esi)
410398:	74 04                	je     0x41039e
41039a:	b0 01                	mov    $0x1,%al
41039c:	eb 0f                	jmp    0x4103ad
41039e:	8d 45 f0             	lea    -0x10(%ebp),%eax
4103a1:	8b ce                	mov    %esi,%ecx
4103a3:	50                   	push   %eax
4103a4:	e8 3d 03 00 00       	call   0x4106e6
4103a9:	eb 02                	jmp    0x4103ad
4103ab:	32 c0                	xor    %al,%al
4103ad:	5e                   	pop    %esi
4103ae:	8b e5                	mov    %ebp,%esp
4103b0:	5d                   	pop    %ebp
4103b1:	c3                   	ret
4103b2:	8b ff                	mov    %edi,%edi
4103b4:	55                   	push   %ebp
4103b5:	8b ec                	mov    %esp,%ebp
4103b7:	83 ec 1c             	sub    $0x1c,%esp
4103ba:	53                   	push   %ebx
4103bb:	56                   	push   %esi
4103bc:	8b f1                	mov    %ecx,%esi
4103be:	33 db                	xor    %ebx,%ebx
4103c0:	57                   	push   %edi
4103c1:	38 5e 2e             	cmp    %bl,0x2e(%esi)
4103c4:	75 3a                	jne    0x410400
4103c6:	83 46 6c 04          	addl   $0x4,0x6c(%esi)
4103ca:	8b 4e 6c             	mov    0x6c(%esi),%ecx
4103cd:	8b 59 fc             	mov    -0x4(%ecx),%ebx
4103d0:	85 db                	test   %ebx,%ebx
4103d2:	75 17                	jne    0x4103eb
4103d4:	e8 92 46 00 00       	call   0x414a6b
4103d9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4103df:	e8 fe b8 ff ff       	call   0x40bce2
4103e4:	32 c0                	xor    %al,%al
4103e6:	e9 20 01 00 00       	jmp    0x41050b
4103eb:	8b 06                	mov    (%esi),%eax
4103ed:	83 e0 01             	and    $0x1,%eax
4103f0:	83 c8 00             	or     $0x0,%eax
4103f3:	74 0b                	je     0x410400
4103f5:	8d 41 04             	lea    0x4(%ecx),%eax
4103f8:	89 46 6c             	mov    %eax,0x6c(%esi)
4103fb:	8b 78 fc             	mov    -0x4(%eax),%edi
4103fe:	eb 03                	jmp    0x410403
410400:	83 cf ff             	or     $0xffffffff,%edi
410403:	85 ff                	test   %edi,%edi
410405:	75 21                	jne    0x410428
410407:	8b 06                	mov    (%esi),%eax
410409:	83 e0 04             	and    $0x4,%eax
41040c:	0b c7                	or     %edi,%eax
41040e:	74 0b                	je     0x41041b
410410:	8d 4e 08             	lea    0x8(%esi),%ecx
410413:	e8 70 2e 00 00       	call   0x413288
410418:	c6 03 00             	movb   $0x0,(%ebx)
41041b:	e8 4b 46 00 00       	call   0x414a6b
410420:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
410426:	eb bc                	jmp    0x4103e4
410428:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
41042c:	8b 46 30             	mov    0x30(%esi),%eax
41042f:	89 45 f0             	mov    %eax,-0x10(%ebp)
410432:	8b 46 34             	mov    0x34(%esi),%eax
410435:	89 45 ec             	mov    %eax,-0x14(%ebp)
410438:	89 5d e8             	mov    %ebx,-0x18(%ebp)
41043b:	89 7d fc             	mov    %edi,-0x4(%ebp)
41043e:	74 0b                	je     0x41044b
410440:	83 ff ff             	cmp    $0xffffffff,%edi
410443:	74 06                	je     0x41044b
410445:	8d 47 ff             	lea    -0x1(%edi),%eax
410448:	89 45 fc             	mov    %eax,-0x4(%ebp)
41044b:	33 d2                	xor    %edx,%edx