41b166:	ff 70 04             	push   0x4(%eax)
41b169:	ff 30                	push   (%eax)
41b16b:	ff 76 04             	push   0x4(%esi)
41b16e:	ff 36                	push   (%esi)
41b170:	e8 08 c2 fe ff       	call   0x40737d
41b175:	83 c4 14             	add    $0x14,%esp
41b178:	8b c6                	mov    %esi,%eax
41b17a:	5e                   	pop    %esi
41b17b:	c9                   	leave
41b17c:	c2 14 00             	ret    $0x14
41b17f:	55                   	push   %ebp
41b180:	8b ec                	mov    %esp,%ebp
41b182:	83 ec 24             	sub    $0x24,%esp
41b185:	56                   	push   %esi
41b186:	8b 75 08             	mov    0x8(%ebp),%esi
41b189:	57                   	push   %edi
41b18a:	8b f9                	mov    %ecx,%edi
41b18c:	8b 4d 10             	mov    0x10(%ebp),%ecx
41b18f:	89 7d f0             	mov    %edi,-0x10(%ebp)
41b192:	2b 37                	sub    (%edi),%esi
41b194:	c1 fe 02             	sar    $0x2,%esi
41b197:	c1 e6 05             	shl    $0x5,%esi
41b19a:	03 75 0c             	add    0xc(%ebp),%esi
41b19d:	89 75 fc             	mov    %esi,-0x4(%ebp)
41b1a0:	85 c9                	test   %ecx,%ecx
41b1a2:	0f 84 94 00 00 00    	je     0x41b23c
41b1a8:	8b 57 0c             	mov    0xc(%edi),%edx
41b1ab:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
41b1b0:	2b c2                	sub    %edx,%eax
41b1b2:	3b c1                	cmp    %ecx,%eax
41b1b4:	0f 82 8a 00 00 00    	jb     0x41b244
41b1ba:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
41b1be:	8d 45 f8             	lea    -0x8(%ebp),%eax
41b1c1:	50                   	push   %eax
41b1c2:	8d 41 1f             	lea    0x1f(%ecx),%eax
41b1c5:	8b cf                	mov    %edi,%ecx
41b1c7:	03 c2                	add    %edx,%eax
41b1c9:	57                   	push   %edi
41b1ca:	c1 e8 05             	shr    $0x5,%eax
41b1cd:	50                   	push   %eax
41b1ce:	e8 0a ac fe ff       	call   0x405ddd
41b1d3:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
41b1d7:	75 08                	jne    0x41b1e1
41b1d9:	8b 4d 10             	mov    0x10(%ebp),%ecx
41b1dc:	89 4f 0c             	mov    %ecx,0xc(%edi)
41b1df:	eb 5b                	jmp    0x41b23c
41b1e1:	8d 45 f4             	lea    -0xc(%ebp),%eax
41b1e4:	8b cf                	mov    %edi,%ecx
41b1e6:	50                   	push   %eax
41b1e7:	e8 e5 59 00 00       	call   0x420bd1
41b1ec:	8b 47 0c             	mov    0xc(%edi),%eax
41b1ef:	8b cf                	mov    %edi,%ecx
41b1f1:	03 45 10             	add    0x10(%ebp),%eax
41b1f4:	89 47 0c             	mov    %eax,0xc(%edi)
41b1f7:	8d 45 e4             	lea    -0x1c(%ebp),%eax
41b1fa:	50                   	push   %eax
41b1fb:	e8 d1 59 00 00       	call   0x420bd1
41b200:	ff 75 fc             	push   -0x4(%ebp)
41b203:	8d 4d ec             	lea    -0x14(%ebp),%ecx
41b206:	8b 38                	mov    (%eax),%edi
41b208:	8b 70 04             	mov    0x4(%eax),%esi
41b20b:	8b 45 f0             	mov    -0x10(%ebp),%eax
41b20e:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
41b212:	8b 00                	mov    (%eax),%eax
41b214:	89 45 ec             	mov    %eax,-0x14(%ebp)
41b217:	8d 45 dc             	lea    -0x24(%ebp),%eax
41b21a:	50                   	push   %eax
41b21b:	e8 d0 4d ff ff       	call   0x40fff0
41b220:	56                   	push   %esi
41b221:	57                   	push   %edi
41b222:	ff 75 f8             	push   -0x8(%ebp)
41b225:	ff 75 f4             	push   -0xc(%ebp)
41b228:	ff 70 04             	push   0x4(%eax)
41b22b:	ff 30                	push   (%eax)
41b22d:	8d 45 ec             	lea    -0x14(%ebp),%eax
41b230:	50                   	push   %eax
41b231:	e8 7a ba fe ff       	call   0x406cb0
41b236:	8b 75 fc             	mov    -0x4(%ebp),%esi
41b239:	83 c4 1c             	add    $0x1c,%esp
41b23c:	5f                   	pop    %edi
41b23d:	8b c6                	mov    %esi,%eax
41b23f:	5e                   	pop    %esi
41b240:	c9                   	leave
41b241:	c2 0c 00             	ret    $0xc
41b244:	8b cf                	mov    %edi,%ecx
41b246:	e8 cc 24 00 00       	call   0x41d717
41b24b:	cc                   	int3
41b24c:	6a 10                	push   $0x10
41b24e:	b8 fc f7 48 00       	mov    $0x48f7fc,%eax
41b253:	e8 5d 48 02 00       	call   0x43fab5
41b258:	8b f1                	mov    %ecx,%esi
41b25a:	89 75 ec             	mov    %esi,-0x14(%ebp)
41b25d:	8b 06                	mov    (%esi),%eax
41b25f:	8b 48 04             	mov    0x4(%eax),%ecx
41b262:	83 7c 31 0c 00       	cmpl   $0x0,0xc(%ecx,%esi,1)
41b267:	0f 85 f8 00 00 00    	jne    0x41b365
41b26d:	8b 4c 31 3c          	mov    0x3c(%ecx,%esi,1),%ecx
41b271:	85 c9                	test   %ecx,%ecx
41b273:	74 07                	je     0x41b27c
41b275:	e8 3b 5d 00 00       	call   0x420fb5
41b27a:	8b 06                	mov    (%esi),%eax
41b27c:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
41b280:	0f 85 cf 00 00 00    	jne    0x41b355
41b286:	8b 48 04             	mov    0x4(%eax),%ecx
41b289:	03 ce                	add    %esi,%ecx
41b28b:	f6 41 14 01          	testb  $0x1,0x14(%ecx)
41b28f:	0f 84 c0 00 00 00    	je     0x41b355
41b295:	8d 45 e4             	lea    -0x1c(%ebp),%eax
41b298:	50                   	push   %eax
41b299:	e8 78 6a 00 00       	call   0x421d16
41b29e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41b2a2:	50                   	push   %eax
41b2a3:	e8 ba da fe ff       	call   0x408d62
41b2a8:	59                   	pop    %ecx
41b2a9:	8b f8                	mov    %eax,%edi
41b2ab:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
41b2af:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
41b2b2:	e8 30 41 ff ff       	call   0x40f3e7
41b2b7:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
41b2be:	8b 06                	mov    (%esi),%eax
41b2c0:	8b 40 04             	mov    0x4(%eax),%eax
41b2c3:	8b 4c 30 38          	mov    0x38(%eax,%esi,1),%ecx
41b2c7:	e8 6c 79 00 00       	call   0x422c38
41b2cc:	0f b7 c8             	movzwl %ax,%ecx
41b2cf:	b8 ff ff 00 00       	mov    $0xffff,%eax
41b2d4:	66 3b c1             	cmp    %cx,%ax
41b2d7:	75 23                	jne    0x41b2fc
41b2d9:	8b 06                	mov    (%esi),%eax
41b2db:	8b 48 04             	mov    0x4(%eax),%ecx
41b2de:	03 ce                	add    %esi,%ecx
41b2e0:	8b 51 0c             	mov    0xc(%ecx),%edx
41b2e3:	83 ca 01             	or     $0x1,%edx
41b2e6:	6a 00                	push   $0x0
41b2e8:	8b c2                	mov    %edx,%eax
41b2ea:	83 c8 04             	or     $0x4,%eax
41b2ed:	83 79 38 00          	cmpl   $0x0,0x38(%ecx)
41b2f1:	0f 44 d0             	cmove  %eax,%edx
41b2f4:	52                   	push   %edx
41b2f5:	e8 4f 46 00 00       	call   0x41f949
41b2fa:	eb 10                	jmp    0x41b30c
41b2fc:	8b 07                	mov    (%edi),%eax
41b2fe:	8b 40 10             	mov    0x10(%eax),%eax
41b301:	51                   	push   %ecx
41b302:	6a 48                	push   $0x48
41b304:	8b cf                	mov    %edi,%ecx
41b306:	ff d0                	call   *%eax
41b308:	84 c0                	test   %al,%al
41b30a:	75 06                	jne    0x41b312
41b30c:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
41b310:	eb 43                	jmp    0x41b355
41b312:	8b 06                	mov    (%esi),%eax
41b314:	8b 40 04             	mov    0x4(%eax),%eax
41b317:	8b 4c 30 38          	mov    0x38(%eax,%esi,1),%ecx
41b31b:	e8 6f 79 00 00       	call   0x422c8f
41b320:	eb aa                	jmp    0x41b2cc
41b322:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41b325:	8b 01                	mov    (%ecx),%eax
41b327:	8b 70 04             	mov    0x4(%eax),%esi
41b32a:	03 f1                	add    %ecx,%esi
41b32c:	8b 56 0c             	mov    0xc(%esi),%edx
41b32f:	83 ca 04             	or     $0x4,%edx
41b332:	6a 01                	push   $0x1
41b334:	8b c2                	mov    %edx,%eax
41b336:	83 c8 04             	or     $0x4,%eax
41b339:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
41b33d:	0f 44 d0             	cmove  %eax,%edx
41b340:	52                   	push   %edx
41b341:	8b ce                	mov    %esi,%ecx
41b343:	e8 01 46 00 00       	call   0x41f949
41b348:	b8 4e b3 41 00       	mov    $0x41b34e,%eax
41b34d:	c3                   	ret
41b34e:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
41b352:	8b 75 ec             	mov    -0x14(%ebp),%esi
41b355:	8b 06                	mov    (%esi),%eax
41b357:	8b 48 04             	mov    0x4(%eax),%ecx
41b35a:	83 7c 31 0c 00       	cmpl   $0x0,0xc(%ecx,%esi,1)
41b35f:	75 04                	jne    0x41b365
41b361:	b0 01                	mov    $0x1,%al
41b363:	eb 21                	jmp    0x41b386
41b365:	8b 48 04             	mov    0x4(%eax),%ecx
41b368:	03 ce                	add    %esi,%ecx
41b36a:	8b 51 0c             	mov    0xc(%ecx),%edx
41b36d:	83 ca 02             	or     $0x2,%edx
41b370:	6a 00                	push   $0x0
41b372:	8b c2                	mov    %edx,%eax
41b374:	83 c8 04             	or     $0x4,%eax
41b377:	83 79 38 00          	cmpl   $0x0,0x38(%ecx)
41b37b:	0f 44 d0             	cmove  %eax,%edx
41b37e:	52                   	push   %edx
41b37f:	e8 c5 45 00 00       	call   0x41f949
41b384:	32 c0                	xor    %al,%al
41b386:	e8 88 46 02 00       	call   0x43fa13
41b38b:	c2 04 00             	ret    $0x4
41b38e:	8b 51 50             	mov    0x50(%ecx),%edx
41b391:	8a 41 48             	mov    0x48(%ecx),%al
41b394:	f7 c2 00 00 40 00    	test   $0x400000,%edx
41b39a:	74 1f                	je     0x41b3bb
41b39c:	3c 44                	cmp    $0x44,%al
41b39e:	74 18                	je     0x41b3b8
41b3a0:	3c 53                	cmp    $0x53,%al
41b3a2:	74 14                	je     0x41b3b8
41b3a4:	3c 57                	cmp    $0x57,%al
41b3a6:	74 10                	je     0x41b3b8
41b3a8:	3c 62                	cmp    $0x62,%al
41b3aa:	7e 31                	jle    0x41b3dd
41b3ac:	3c 64                	cmp    $0x64,%al
41b3ae:	7e 08                	jle    0x41b3b8
41b3b0:	3c 73                	cmp    $0x73,%al
41b3b2:	74 04                	je     0x41b3b8
41b3b4:	3c 77                	cmp    $0x77,%al
41b3b6:	75 25                	jne    0x41b3dd
41b3b8:	32 c0                	xor    %al,%al
41b3ba:	c3                   	ret
41b3bb:	3c 2f                	cmp    $0x2f,%al
41b3bd:	7f 26                	jg     0x41b3e5
41b3bf:	74 1f                	je     0x41b3e0
41b3c1:	3c 22                	cmp    $0x22,%al
41b3c3:	74 1b                	je     0x41b3e0
41b3c5:	3c 24                	cmp    $0x24,%al
41b3c7:	74 14                	je     0x41b3dd
41b3c9:	3c 27                	cmp    $0x27,%al
41b3cb:	7e eb                	jle    0x41b3b8
41b3cd:	3c 29                	cmp    $0x29,%al
41b3cf:	7e 30                	jle    0x41b401
41b3d1:	3c 2a                	cmp    $0x2a,%al
41b3d3:	74 08                	je     0x41b3dd
41b3d5:	3c 2b                	cmp    $0x2b,%al
41b3d7:	74 28                	je     0x41b401
41b3d9:	3c 2e                	cmp    $0x2e,%al
41b3db:	75 db                	jne    0x41b3b8
41b3dd:	b0 01                	mov    $0x1,%al
41b3df:	c3                   	ret
41b3e0:	c1 ea 18             	shr    $0x18,%edx
41b3e3:	eb 1f                	jmp    0x41b404
41b3e5:	3c 3f                	cmp    $0x3f,%al
41b3e7:	74 18                	je     0x41b401
41b3e9:	3c 5a                	cmp    $0x5a,%al
41b3eb:	7e cb                	jle    0x41b3b8
41b3ed:	3c 5c                	cmp    $0x5c,%al
41b3ef:	7e ec                	jle    0x41b3dd
41b3f1:	3c 5e                	cmp    $0x5e,%al
41b3f3:	74 e8                	je     0x41b3dd
41b3f5:	3c 7b                	cmp    $0x7b,%al
41b3f7:	74 08                	je     0x41b401
41b3f9:	3c 7c                	cmp    $0x7c,%al
41b3fb:	74 e0                	je     0x41b3dd
41b3fd:	3c 7d                	cmp    $0x7d,%al
41b3ff:	75 b7                	jne    0x41b3b8
41b401:	c1 ea 17             	shr    $0x17,%edx
41b404:	80 e2 01             	and    $0x1,%dl
41b407:	8a c2                	mov    %dl,%al
41b409:	c3                   	ret
41b40a:	8b 51 50             	mov    0x50(%ecx),%edx
41b40d:	0f b7 41 48          	movzwl 0x48(%ecx),%eax
41b411:	f7 c2 00 00 40 00    	test   $0x400000,%edx
41b417:	74 26                	je     0x41b43f
41b419:	83 f8 44             	cmp    $0x44,%eax
41b41c:	74 1e                	je     0x41b43c
41b41e:	83 f8 53             	cmp    $0x53,%eax
41b421:	74 19                	je     0x41b43c
41b423:	83 f8 57             	cmp    $0x57,%eax
41b426:	74 14                	je     0x41b43c
41b428:	83 f8 62             	cmp    $0x62,%eax
41b42b:	76 3f                	jbe    0x41b46c
41b42d:	83 f8 64             	cmp    $0x64,%eax
41b430:	76 0a                	jbe    0x41b43c
41b432:	83 f8 73             	cmp    $0x73,%eax
41b435:	74 05                	je     0x41b43c
41b437:	83 f8 77             	cmp    $0x77,%eax
41b43a:	75 30                	jne    0x41b46c
41b43c:	32 c0                	xor    %al,%al
41b43e:	c3                   	ret
41b43f:	6a 2f                	push   $0x2f
41b441:	59                   	pop    %ecx
41b442:	66 3b c1             	cmp    %cx,%ax
41b445:	77 2d                	ja     0x41b474
41b447:	74 26                	je     0x41b46f
41b449:	83 f8 22             	cmp    $0x22,%eax
41b44c:	74 21                	je     0x41b46f
41b44e:	83 f8 24             	cmp    $0x24,%eax
41b451:	74 19                	je     0x41b46c
41b453:	83 f8 27             	cmp    $0x27,%eax
41b456:	76 e4                	jbe    0x41b43c
41b458:	83 f8 29             	cmp    $0x29,%eax
41b45b:	76 3a                	jbe    0x41b497
41b45d:	83 f8 2a             	cmp    $0x2a,%eax
41b460:	74 0a                	je     0x41b46c
41b462:	83 f8 2b             	cmp    $0x2b,%eax
41b465:	74 30                	je     0x41b497
41b467:	83 f8 2e             	cmp    $0x2e,%eax
41b46a:	75 d0                	jne    0x41b43c
41b46c:	b0 01                	mov    $0x1,%al
41b46e:	c3                   	ret
41b46f:	c1 ea 18             	shr    $0x18,%edx
41b472:	eb 26                	jmp    0x41b49a
41b474:	83 f8 3f             	cmp    $0x3f,%eax
41b477:	74 1e                	je     0x41b497
41b479:	83 f8 5a             	cmp    $0x5a,%eax
41b47c:	76 be                	jbe    0x41b43c
41b47e:	83 f8 5c             	cmp    $0x5c,%eax
41b481:	76 e9                	jbe    0x41b46c
41b483:	83 f8 5e             	cmp    $0x5e,%eax
41b486:	74 e4                	je     0x41b46c
41b488:	83 f8 7b             	cmp    $0x7b,%eax
41b48b:	74 0a                	je     0x41b497
41b48d:	83 f8 7c             	cmp    $0x7c,%eax
41b490:	74 da                	je     0x41b46c
41b492:	83 f8 7d             	cmp    $0x7d,%eax
41b495:	75 a5                	jne    0x41b43c
41b497:	c1 ea 17             	shr    $0x17,%edx
41b49a:	80 e2 01             	and    $0x1,%dl
41b49d:	8a c2                	mov    %dl,%al
41b49f:	c3                   	ret
41b4a0:	8b 01                	mov    (%ecx),%eax
41b4a2:	40                   	inc    %eax
41b4a3:	3b 41 08             	cmp    0x8(%ecx),%eax
41b4a6:	74 25                	je     0x41b4cd
41b4a8:	f6 41 50 08          	testb  $0x8,0x50(%ecx)
41b4ac:	75 0c                	jne    0x41b4ba
41b4ae:	8a 10                	mov    (%eax),%dl
41b4b0:	80 fa 28             	cmp    $0x28,%dl
41b4b3:	74 15                	je     0x41b4ca
41b4b5:	80 fa 29             	cmp    $0x29,%dl
41b4b8:	74 10                	je     0x41b4ca
41b4ba:	f6 41 50 10          	testb  $0x10,0x50(%ecx)
41b4be:	75 0d                	jne    0x41b4cd
41b4c0:	8a 00                	mov    (%eax),%al
41b4c2:	3c 7b                	cmp    $0x7b,%al
41b4c4:	74 04                	je     0x41b4ca
41b4c6:	3c 7d                	cmp    $0x7d,%al
41b4c8:	75 03                	jne    0x41b4cd
41b4ca:	b0 01                	mov    $0x1,%al
41b4cc:	c3                   	ret
41b4cd:	32 c0                	xor    %al,%al
41b4cf:	c3                   	ret
41b4d0:	8b 01                	mov    (%ecx),%eax
41b4d2:	83 c0 02             	add    $0x2,%eax
41b4d5:	3b 41 08             	cmp    0x8(%ecx),%eax
41b4d8:	74 29                	je     0x41b503
41b4da:	f6 41 50 08          	testb  $0x8,0x50(%ecx)
41b4de:	75 0d                	jne    0x41b4ed
41b4e0:	0f b7 10             	movzwl (%eax),%edx
41b4e3:	83 fa 28             	cmp    $0x28,%edx
41b4e6:	74 18                	je     0x41b500
41b4e8:	83 fa 29             	cmp    $0x29,%edx
41b4eb:	74 13                	je     0x41b500
41b4ed:	f6 41 50 10          	testb  $0x10,0x50(%ecx)
41b4f1:	75 10                	jne    0x41b503
41b4f3:	0f b7 00             	movzwl (%eax),%eax
41b4f6:	83 f8 7b             	cmp    $0x7b,%eax