40bba6:	50                   	push   %eax
40bba7:	0f b6 c2             	movzbl %dl,%eax
40bbaa:	50                   	push   %eax
40bbab:	89 75 bc             	mov    %esi,-0x44(%ebp)
40bbae:	e8 2f 2d 00 00       	call   0x40e8e2
40bbb3:	59                   	pop    %ecx
40bbb4:	85 c0                	test   %eax,%eax
40bbb6:	8a 45 e7             	mov    -0x19(%ebp),%al
40bbb9:	59                   	pop    %ecx
40bbba:	74 19                	je     0x40bbd5
40bbbc:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40bbbf:	8d 75 cc             	lea    -0x34(%ebp),%esi
40bbc2:	e8 f9 fb ff ff       	call   0x40b7c0
40bbc7:	8a 03                	mov    (%ebx),%al
40bbc9:	43                   	inc    %ebx
40bbca:	84 c0                	test   %al,%al
40bbcc:	89 5d b8             	mov    %ebx,-0x48(%ebp)
40bbcf:	0f 84 c2 05 00 00    	je     0x40c197
40bbd5:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40bbd8:	8d 75 cc             	lea    -0x34(%ebp),%esi
40bbdb:	e8 e0 fb ff ff       	call   0x40b7c0
40bbe0:	e9 99 05 00 00       	jmp    0x40c17e
40bbe5:	0f be c2             	movsbl %dl,%eax
40bbe8:	83 f8 64             	cmp    $0x64,%eax
40bbeb:	0f 8f 72 01 00 00    	jg     0x40bd63
40bbf1:	0f 84 eb 01 00 00    	je     0x40bde2
40bbf7:	83 f8 53             	cmp    $0x53,%eax
40bbfa:	0f 8f ab 00 00 00    	jg     0x40bcab
40bc00:	74 5a                	je     0x40bc5c
40bc02:	83 e8 41             	sub    $0x41,%eax
40bc05:	74 10                	je     0x40bc17
40bc07:	48                   	dec    %eax
40bc08:	48                   	dec    %eax
40bc09:	74 40                	je     0x40bc4b
40bc0b:	48                   	dec    %eax
40bc0c:	48                   	dec    %eax
40bc0d:	74 08                	je     0x40bc17
40bc0f:	48                   	dec    %eax
40bc10:	48                   	dec    %eax
40bc11:	0f 85 4f 04 00 00    	jne    0x40c066
40bc17:	80 c2 20             	add    $0x20,%dl
40bc1a:	c7 45 88 01 00 00 00 	movl   $0x1,-0x78(%ebp)
40bc21:	88 55 e7             	mov    %dl,-0x19(%ebp)
40bc24:	83 4d e8 40          	orl    $0x40,-0x18(%ebp)
40bc28:	39 75 e0             	cmp    %esi,-0x20(%ebp)
40bc2b:	8d 5d ec             	lea    -0x14(%ebp),%ebx
40bc2e:	b8 00 02 00 00       	mov    $0x200,%eax
40bc33:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40bc36:	89 45 98             	mov    %eax,-0x68(%ebp)
40bc39:	0f 8d c7 01 00 00    	jge    0x40be06
40bc3f:	c7 45 e0 06 00 00 00 	movl   $0x6,-0x20(%ebp)
40bc46:	e9 09 02 00 00       	jmp    0x40be54
40bc4b:	66 f7 45 e8 30 08    	testw  $0x830,-0x18(%ebp)
40bc51:	75 75                	jne    0x40bcc8
40bc53:	81 4d e8 00 08 00 00 	orl    $0x800,-0x18(%ebp)
40bc5a:	eb 6c                	jmp    0x40bcc8
40bc5c:	66 f7 45 e8 30 08    	testw  $0x830,-0x18(%ebp)
40bc62:	75 07                	jne    0x40bc6b
40bc64:	81 4d e8 00 08 00 00 	orl    $0x800,-0x18(%ebp)
40bc6b:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40bc6e:	83 f9 ff             	cmp    $0xffffffff,%ecx
40bc71:	75 05                	jne    0x40bc78
40bc73:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
40bc78:	83 c7 04             	add    $0x4,%edi
40bc7b:	66 f7 45 e8 10 08    	testw  $0x810,-0x18(%ebp)
40bc81:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40bc84:	8b 7f fc             	mov    -0x4(%edi),%edi
40bc87:	89 7d dc             	mov    %edi,-0x24(%ebp)
40bc8a:	0f 84 b4 03 00 00    	je     0x40c044
40bc90:	3b fe                	cmp    %esi,%edi
40bc92:	75 08                	jne    0x40bc9c
40bc94:	a1 74 c9 41 00       	mov    0x41c974,%eax
40bc99:	89 45 dc             	mov    %eax,-0x24(%ebp)
40bc9c:	8b 45 dc             	mov    -0x24(%ebp),%eax
40bc9f:	c7 45 bc 01 00 00 00 	movl   $0x1,-0x44(%ebp)
40bca6:	e9 8e 03 00 00       	jmp    0x40c039
40bcab:	83 e8 58             	sub    $0x58,%eax
40bcae:	0f 84 39 02 00 00    	je     0x40beed
40bcb4:	48                   	dec    %eax
40bcb5:	48                   	dec    %eax
40bcb6:	74 5d                	je     0x40bd15
40bcb8:	2b c1                	sub    %ecx,%eax
40bcba:	0f 84 64 ff ff ff    	je     0x40bc24
40bcc0:	48                   	dec    %eax
40bcc1:	48                   	dec    %eax
40bcc2:	0f 85 9e 03 00 00    	jne    0x40c066
40bcc8:	83 c7 04             	add    $0x4,%edi
40bccb:	66 f7 45 e8 10 08    	testw  $0x810,-0x18(%ebp)
40bcd1:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40bcd4:	74 27                	je     0x40bcfd
40bcd6:	0f b7 47 fc          	movzwl -0x4(%edi),%eax
40bcda:	50                   	push   %eax
40bcdb:	68 00 02 00 00       	push   $0x200
40bce0:	8d 45 ec             	lea    -0x14(%ebp),%eax
40bce3:	50                   	push   %eax
40bce4:	8d 45 d8             	lea    -0x28(%ebp),%eax
40bce7:	50                   	push   %eax
40bce8:	e8 55 30 00 00       	call   0x40ed42
40bced:	83 c4 10             	add    $0x10,%esp
40bcf0:	85 c0                	test   %eax,%eax
40bcf2:	74 16                	je     0x40bd0a
40bcf4:	c7 45 b0 01 00 00 00 	movl   $0x1,-0x50(%ebp)
40bcfb:	eb 0d                	jmp    0x40bd0a
40bcfd:	8a 47 fc             	mov    -0x4(%edi),%al
40bd00:	88 45 ec             	mov    %al,-0x14(%ebp)
40bd03:	c7 45 d8 01 00 00 00 	movl   $0x1,-0x28(%ebp)
40bd0a:	8d 45 ec             	lea    -0x14(%ebp),%eax
40bd0d:	89 45 dc             	mov    %eax,-0x24(%ebp)
40bd10:	e9 51 03 00 00       	jmp    0x40c066
40bd15:	8b 07                	mov    (%edi),%eax
40bd17:	83 c7 04             	add    $0x4,%edi
40bd1a:	3b c6                	cmp    %esi,%eax
40bd1c:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40bd1f:	74 2e                	je     0x40bd4f
40bd21:	8b 48 04             	mov    0x4(%eax),%ecx
40bd24:	3b ce                	cmp    %esi,%ecx
40bd26:	74 27                	je     0x40bd4f
40bd28:	66 f7 45 e8 00 08    	testw  $0x800,-0x18(%ebp)
40bd2e:	0f bf 00             	movswl (%eax),%eax
40bd31:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40bd34:	74 11                	je     0x40bd47
40bd36:	99                   	cltd
40bd37:	2b c2                	sub    %edx,%eax
40bd39:	d1 f8                	sar    $1,%eax
40bd3b:	c7 45 bc 01 00 00 00 	movl   $0x1,-0x44(%ebp)
40bd42:	e9 1c 03 00 00       	jmp    0x40c063
40bd47:	89 75 bc             	mov    %esi,-0x44(%ebp)
40bd4a:	e9 14 03 00 00       	jmp    0x40c063
40bd4f:	a1 70 c9 41 00       	mov    0x41c970,%eax
40bd54:	89 45 dc             	mov    %eax,-0x24(%ebp)
40bd57:	50                   	push   %eax
40bd58:	e8 03 aa ff ff       	call   0x406760
40bd5d:	59                   	pop    %ecx
40bd5e:	e9 00 03 00 00       	jmp    0x40c063
40bd63:	83 f8 70             	cmp    $0x70,%eax
40bd66:	0f 8f 86 01 00 00    	jg     0x40bef2
40bd6c:	0f 84 74 01 00 00    	je     0x40bee6
40bd72:	83 f8 65             	cmp    $0x65,%eax
40bd75:	0f 8c eb 02 00 00    	jl     0x40c066
40bd7b:	83 f8 67             	cmp    $0x67,%eax
40bd7e:	0f 8e a0 fe ff ff    	jle    0x40bc24
40bd84:	83 f8 69             	cmp    $0x69,%eax
40bd87:	74 59                	je     0x40bde2
40bd89:	83 f8 6e             	cmp    $0x6e,%eax
40bd8c:	74 1f                	je     0x40bdad
40bd8e:	83 f8 6f             	cmp    $0x6f,%eax
40bd91:	0f 85 cf 02 00 00    	jne    0x40c066
40bd97:	f6 45 e8 80          	testb  $0x80,-0x18(%ebp)
40bd9b:	c7 45 d8 08 00 00 00 	movl   $0x8,-0x28(%ebp)
40bda2:	74 49                	je     0x40bded
40bda4:	81 4d e8 00 02 00 00 	orl    $0x200,-0x18(%ebp)
40bdab:	eb 40                	jmp    0x40bded
40bdad:	8b 37                	mov    (%edi),%esi
40bdaf:	83 c7 04             	add    $0x4,%edi
40bdb2:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40bdb5:	e8 51 81 00 00       	call   0x413f0b
40bdba:	85 c0                	test   %eax,%eax
40bdbc:	0f 84 d5 03 00 00    	je     0x40c197
40bdc2:	f6 45 e8 20          	testb  $0x20,-0x18(%ebp)
40bdc6:	74 09                	je     0x40bdd1
40bdc8:	66 8b 45 cc          	mov    -0x34(%ebp),%ax
40bdcc:	66 89 06             	mov    %ax,(%esi)
40bdcf:	eb 05                	jmp    0x40bdd6
40bdd1:	8b 45 cc             	mov    -0x34(%ebp),%eax
40bdd4:	89 06                	mov    %eax,(%esi)
40bdd6:	c7 45 b0 01 00 00 00 	movl   $0x1,-0x50(%ebp)
40bddd:	e9 89 03 00 00       	jmp    0x40c16b
40bde2:	83 4d e8 40          	orl    $0x40,-0x18(%ebp)
40bde6:	c7 45 d8 0a 00 00 00 	movl   $0xa,-0x28(%ebp)
40bded:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40bdf0:	66 85 c9             	test   %cx,%cx
40bdf3:	0f 89 43 01 00 00    	jns    0x40bf3c
40bdf9:	8b 07                	mov    (%edi),%eax
40bdfb:	8b 57 04             	mov    0x4(%edi),%edx
40bdfe:	83 c7 08             	add    $0x8,%edi
40be01:	e9 6b 01 00 00       	jmp    0x40bf71
40be06:	75 0e                	jne    0x40be16
40be08:	80 fa 67             	cmp    $0x67,%dl
40be0b:	75 47                	jne    0x40be54
40be0d:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
40be14:	eb 3e                	jmp    0x40be54
40be16:	39 45 e0             	cmp    %eax,-0x20(%ebp)
40be19:	7e 03                	jle    0x40be1e
40be1b:	89 45 e0             	mov    %eax,-0x20(%ebp)
40be1e:	81 7d e0 a3 00 00 00 	cmpl   $0xa3,-0x20(%ebp)
40be25:	7e 2d                	jle    0x40be54
40be27:	8b 75 e0             	mov    -0x20(%ebp),%esi
40be2a:	81 c6 5d 01 00 00    	add    $0x15d,%esi
40be30:	56                   	push   %esi
40be31:	e8 b6 d4 ff ff       	call   0x4092ec
40be36:	85 c0                	test   %eax,%eax
40be38:	8a 55 e7             	mov    -0x19(%ebp),%dl
40be3b:	59                   	pop    %ecx
40be3c:	89 45 ac             	mov    %eax,-0x54(%ebp)
40be3f:	74 0a                	je     0x40be4b
40be41:	89 45 dc             	mov    %eax,-0x24(%ebp)
40be44:	89 75 98             	mov    %esi,-0x68(%ebp)
40be47:	8b d8                	mov    %eax,%ebx
40be49:	eb 07                	jmp    0x40be52
40be4b:	c7 45 e0 a3 00 00 00 	movl   $0xa3,-0x20(%ebp)
40be52:	33 f6                	xor    %esi,%esi
40be54:	8b 07                	mov    (%edi),%eax
40be56:	83 c7 08             	add    $0x8,%edi
40be59:	89 45 80             	mov    %eax,-0x80(%ebp)
40be5c:	8b 47 fc             	mov    -0x4(%edi),%eax
40be5f:	89 45 84             	mov    %eax,-0x7c(%ebp)
40be62:	8d 45 9c             	lea    -0x64(%ebp),%eax
40be65:	50                   	push   %eax
40be66:	ff 75 88             	push   -0x78(%ebp)
40be69:	0f be c2             	movsbl %dl,%eax
40be6c:	ff 75 e0             	push   -0x20(%ebp)
40be6f:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40be72:	50                   	push   %eax
40be73:	ff 75 98             	push   -0x68(%ebp)
40be76:	8d 45 80             	lea    -0x80(%ebp),%eax
40be79:	53                   	push   %ebx
40be7a:	50                   	push   %eax
40be7b:	ff 35 48 d3 41 00    	push   0x41d348
40be81:	e8 bc 04 00 00       	call   0x40c342
40be86:	59                   	pop    %ecx
40be87:	ff d0                	call   *%eax
40be89:	8b 7d e8             	mov    -0x18(%ebp),%edi
40be8c:	83 c4 1c             	add    $0x1c,%esp
40be8f:	81 e7 80 00 00 00    	and    $0x80,%edi
40be95:	74 1a                	je     0x40beb1
40be97:	39 75 e0             	cmp    %esi,-0x20(%ebp)
40be9a:	75 15                	jne    0x40beb1
40be9c:	8d 45 9c             	lea    -0x64(%ebp),%eax
40be9f:	50                   	push   %eax
40bea0:	53                   	push   %ebx
40bea1:	ff 35 54 d3 41 00    	push   0x41d354
40bea7:	e8 96 04 00 00       	call   0x40c342
40beac:	59                   	pop    %ecx
40bead:	ff d0                	call   *%eax
40beaf:	59                   	pop    %ecx
40beb0:	59                   	pop    %ecx
40beb1:	80 7d e7 67          	cmpb   $0x67,-0x19(%ebp)
40beb5:	75 19                	jne    0x40bed0
40beb7:	3b fe                	cmp    %esi,%edi
40beb9:	75 15                	jne    0x40bed0
40bebb:	8d 45 9c             	lea    -0x64(%ebp),%eax
40bebe:	50                   	push   %eax
40bebf:	53                   	push   %ebx
40bec0:	ff 35 50 d3 41 00    	push   0x41d350
40bec6:	e8 77 04 00 00       	call   0x40c342
40becb:	59                   	pop    %ecx
40becc:	ff d0                	call   *%eax
40bece:	59                   	pop    %ecx
40becf:	59                   	pop    %ecx
40bed0:	80 3b 2d             	cmpb   $0x2d,(%ebx)
40bed3:	75 0b                	jne    0x40bee0
40bed5:	81 4d e8 00 01 00 00 	orl    $0x100,-0x18(%ebp)
40bedc:	43                   	inc    %ebx
40bedd:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40bee0:	53                   	push   %ebx
40bee1:	e9 72 fe ff ff       	jmp    0x40bd58
40bee6:	c7 45 e0 08 00 00 00 	movl   $0x8,-0x20(%ebp)
40beed:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
40bef0:	eb 21                	jmp    0x40bf13
40bef2:	83 e8 73             	sub    $0x73,%eax
40bef5:	0f 84 70 fd ff ff    	je     0x40bc6b
40befb:	48                   	dec    %eax
40befc:	48                   	dec    %eax
40befd:	0f 84 e3 fe ff ff    	je     0x40bde6
40bf03:	83 e8 03             	sub    $0x3,%eax
40bf06:	0f 85 5a 01 00 00    	jne    0x40c066
40bf0c:	c7 45 b4 27 00 00 00 	movl   $0x27,-0x4c(%ebp)
40bf13:	f6 45 e8 80          	testb  $0x80,-0x18(%ebp)
40bf17:	c7 45 d8 10 00 00 00 	movl   $0x10,-0x28(%ebp)
40bf1e:	0f 84 c9 fe ff ff    	je     0x40bded
40bf24:	8a 45 b4             	mov    -0x4c(%ebp),%al
40bf27:	04 51                	add    $0x51,%al
40bf29:	c6 45 c8 30          	movb   $0x30,-0x38(%ebp)
40bf2d:	88 45 c9             	mov    %al,-0x37(%ebp)
40bf30:	c7 45 c4 02 00 00 00 	movl   $0x2,-0x3c(%ebp)
40bf37:	e9 b1 fe ff ff       	jmp    0x40bded
40bf3c:	66 f7 c1 00 10       	test   $0x1000,%cx
40bf41:	0f 85 b2 fe ff ff    	jne    0x40bdf9
40bf47:	83 c7 04             	add    $0x4,%edi
40bf4a:	f6 c1 20             	test   $0x20,%cl
40bf4d:	74 15                	je     0x40bf64
40bf4f:	f6 c1 40             	test   $0x40,%cl
40bf52:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40bf55:	74 06                	je     0x40bf5d
40bf57:	0f bf 47 fc          	movswl -0x4(%edi),%eax
40bf5b:	eb 04                	jmp    0x40bf61
40bf5d:	0f b7 47 fc          	movzwl -0x4(%edi),%eax
40bf61:	99                   	cltd
40bf62:	eb 10                	jmp    0x40bf74
40bf64:	f6 c1 40             	test   $0x40,%cl
40bf67:	8b 47 fc             	mov    -0x4(%edi),%eax
40bf6a:	74 03                	je     0x40bf6f
40bf6c:	99                   	cltd
40bf6d:	eb 02                	jmp    0x40bf71
40bf6f:	33 d2                	xor    %edx,%edx
40bf71:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40bf74:	f6 c1 40             	test   $0x40,%cl
40bf77:	74 18                	je     0x40bf91
40bf79:	3b d6                	cmp    %esi,%edx
40bf7b:	7f 14                	jg     0x40bf91
40bf7d:	7c 04                	jl     0x40bf83
40bf7f:	3b c6                	cmp    %esi,%eax
40bf81:	73 0e                	jae    0x40bf91
40bf83:	f7 d8                	neg    %eax
40bf85:	83 d2 00             	adc    $0x0,%edx
40bf88:	f7 da                	neg    %edx
40bf8a:	81 4d e8 00 01 00 00 	orl    $0x100,-0x18(%ebp)
40bf91:	66 f7 45 e8 00 90    	testw  $0x9000,-0x18(%ebp)
40bf97:	8b da                	mov    %edx,%ebx
40bf99:	8b f8                	mov    %eax,%edi
40bf9b:	75 02                	jne    0x40bf9f
40bf9d:	33 db                	xor    %ebx,%ebx
40bf9f:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
40bfa3:	7d 09                	jge    0x40bfae
40bfa5:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
40bfac:	eb 11                	jmp    0x40bfbf
40bfae:	83 65 e8 f7          	andl   $0xfffffff7,-0x18(%ebp)
40bfb2:	b8 00 02 00 00       	mov    $0x200,%eax
40bfb7:	39 45 e0             	cmp    %eax,-0x20(%ebp)
40bfba:	7e 03                	jle    0x40bfbf
40bfbc:	89 45 e0             	mov    %eax,-0x20(%ebp)
40bfbf:	8b c7                	mov    %edi,%eax
40bfc1:	0b c3                	or     %ebx,%eax
40bfc3:	75 04                	jne    0x40bfc9
40bfc5:	83 65 c4 00          	andl   $0x0,-0x3c(%ebp)
40bfc9:	8d b5 eb 01 00 00    	lea    0x1eb(%ebp),%esi
40bfcf:	8b 45 e0             	mov    -0x20(%ebp),%eax
40bfd2:	ff 4d e0             	decl   -0x20(%ebp)
40bfd5:	85 c0                	test   %eax,%eax
40bfd7:	7f 06                	jg     0x40bfdf
40bfd9:	8b c7                	mov    %edi,%eax
40bfdb:	0b c3                	or     %ebx,%eax
40bfdd:	74 24                	je     0x40c003
40bfdf:	8b 45 d8             	mov    -0x28(%ebp),%eax
40bfe2:	99                   	cltd
40bfe3:	52                   	push   %edx
40bfe4:	50                   	push   %eax
40bfe5:	53                   	push   %ebx
40bfe6:	57                   	push   %edi
40bfe7:	e8 b4 7b 00 00       	call   0x413ba0
40bfec:	83 c1 30             	add    $0x30,%ecx
40bfef:	83 f9 39             	cmp    $0x39,%ecx
40bff2:	89 5d 98             	mov    %ebx,-0x68(%ebp)
40bff5:	8b f8                	mov    %eax,%edi
40bff7:	8b da                	mov    %edx,%ebx
40bff9:	7e 03                	jle    0x40bffe
40bffb:	03 4d b4             	add    -0x4c(%ebp),%ecx
40bffe:	88 0e                	mov    %cl,(%esi)
40c000:	4e                   	dec    %esi
40c001:	eb cc                	jmp    0x40bfcf