40fb59:	eb 82                	jmp    0x40fadd
40fb5b:	8b ff                	mov    %edi,%edi
40fb5d:	55                   	push   %ebp
40fb5e:	8b ec                	mov    %esp,%ebp
40fb60:	33 c0                	xor    %eax,%eax
40fb62:	53                   	push   %ebx
40fb63:	33 db                	xor    %ebx,%ebx
40fb65:	40                   	inc    %eax
40fb66:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
40fb69:	7c 46                	jl     0x40fbb1
40fb6b:	56                   	push   %esi
40fb6c:	57                   	push   %edi
40fb6d:	85 c0                	test   %eax,%eax
40fb6f:	74 3e                	je     0x40fbaf
40fb71:	8b 45 0c             	mov    0xc(%ebp),%eax
40fb74:	03 c3                	add    %ebx,%eax
40fb76:	99                   	cltd
40fb77:	2b c2                	sub    %edx,%eax
40fb79:	8b f0                	mov    %eax,%esi
40fb7b:	8b 45 08             	mov    0x8(%ebp),%eax
40fb7e:	d1 fe                	sar    $1,%esi
40fb80:	8d 3c f0             	lea    (%eax,%esi,8),%edi
40fb83:	ff 37                	push   (%edi)
40fb85:	8b 45 10             	mov    0x10(%ebp),%eax
40fb88:	ff 30                	push   (%eax)
40fb8a:	e8 e9 5e 00 00       	call   0x415a78
40fb8f:	59                   	pop    %ecx
40fb90:	59                   	pop    %ecx
40fb91:	85 c0                	test   %eax,%eax
40fb93:	75 0a                	jne    0x40fb9f
40fb95:	8b 4d 10             	mov    0x10(%ebp),%ecx
40fb98:	83 c7 04             	add    $0x4,%edi
40fb9b:	89 39                	mov    %edi,(%ecx)
40fb9d:	eb 0b                	jmp    0x40fbaa
40fb9f:	7d 06                	jge    0x40fba7
40fba1:	4e                   	dec    %esi
40fba2:	89 75 0c             	mov    %esi,0xc(%ebp)
40fba5:	eb 03                	jmp    0x40fbaa
40fba7:	8d 5e 01             	lea    0x1(%esi),%ebx
40fbaa:	3b 5d 0c             	cmp    0xc(%ebp),%ebx
40fbad:	7e be                	jle    0x40fb6d
40fbaf:	5f                   	pop    %edi
40fbb0:	5e                   	pop    %esi
40fbb1:	33 c9                	xor    %ecx,%ecx
40fbb3:	85 c0                	test   %eax,%eax
40fbb5:	0f 94 c1             	sete   %cl
40fbb8:	5b                   	pop    %ebx
40fbb9:	8b c1                	mov    %ecx,%eax
40fbbb:	5d                   	pop    %ebp
40fbbc:	c3                   	ret
40fbbd:	8b ff                	mov    %edi,%edi
40fbbf:	55                   	push   %ebp
40fbc0:	8b ec                	mov    %esp,%ebp
40fbc2:	83 ec 0c             	sub    $0xc,%esp
40fbc5:	a1 68 b2 42 00       	mov    0x42b268,%eax
40fbca:	33 c5                	xor    %ebp,%eax
40fbcc:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fbcf:	56                   	push   %esi
40fbd0:	8b f1                	mov    %ecx,%esi
40fbd2:	85 f6                	test   %esi,%esi
40fbd4:	74 53                	je     0x40fc29
40fbd6:	80 3e 00             	cmpb   $0x0,(%esi)
40fbd9:	74 4e                	je     0x40fc29
40fbdb:	68 14 d5 41 00       	push   $0x41d514
40fbe0:	56                   	push   %esi
40fbe1:	e8 4a c6 ff ff       	call   0x40c230
40fbe6:	59                   	pop    %ecx
40fbe7:	59                   	pop    %ecx
40fbe8:	85 c0                	test   %eax,%eax
40fbea:	74 3d                	je     0x40fc29
40fbec:	68 10 d5 41 00       	push   $0x41d510
40fbf1:	56                   	push   %esi
40fbf2:	e8 39 c6 ff ff       	call   0x40c230
40fbf7:	59                   	pop    %ecx
40fbf8:	59                   	pop    %ecx
40fbf9:	85 c0                	test   %eax,%eax
40fbfb:	75 18                	jne    0x40fc15
40fbfd:	6a 08                	push   $0x8
40fbff:	8d 45 f4             	lea    -0xc(%ebp),%eax
40fc02:	50                   	push   %eax
40fc03:	6a 0b                	push   $0xb
40fc05:	ff 77 1c             	push   0x1c(%edi)
40fc08:	ff 15 50 a1 41 00    	call   *0x41a150
40fc0e:	85 c0                	test   %eax,%eax
40fc10:	74 2f                	je     0x40fc41
40fc12:	8d 75 f4             	lea    -0xc(%ebp),%esi
40fc15:	56                   	push   %esi
40fc16:	e8 af 5e 00 00       	call   0x415aca
40fc1b:	59                   	pop    %ecx
40fc1c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40fc1f:	33 cd                	xor    %ebp,%ecx
40fc21:	5e                   	pop    %esi
40fc22:	e8 ff 69 ff ff       	call   0x406626
40fc27:	c9                   	leave
40fc28:	c3                   	ret
40fc29:	6a 08                	push   $0x8
40fc2b:	8d 45 f4             	lea    -0xc(%ebp),%eax
40fc2e:	50                   	push   %eax
40fc2f:	68 04 10 00 00       	push   $0x1004
40fc34:	ff 77 1c             	push   0x1c(%edi)
40fc37:	ff 15 50 a1 41 00    	call   *0x41a150
40fc3d:	85 c0                	test   %eax,%eax
40fc3f:	75 04                	jne    0x40fc45
40fc41:	33 c0                	xor    %eax,%eax
40fc43:	eb d7                	jmp    0x40fc1c
40fc45:	8d 45 f4             	lea    -0xc(%ebp),%eax
40fc48:	68 0c d5 41 00       	push   $0x41d50c
40fc4d:	50                   	push   %eax
40fc4e:	e8 dd c5 ff ff       	call   0x40c230
40fc53:	59                   	pop    %ecx
40fc54:	59                   	pop    %ecx
40fc55:	85 c0                	test   %eax,%eax
40fc57:	75 b9                	jne    0x40fc12
40fc59:	ff 15 3c a0 41 00    	call   *0x41a03c
40fc5f:	eb bb                	jmp    0x40fc1c
40fc61:	8b ff                	mov    %edi,%edi
40fc63:	55                   	push   %ebp
40fc64:	8b ec                	mov    %esp,%ebp
40fc66:	33 c0                	xor    %eax,%eax
40fc68:	66 8b 4d 08          	mov    0x8(%ebp),%cx
40fc6c:	66 3b 88 f8 d4 41 00 	cmp    0x41d4f8(%eax),%cx
40fc73:	74 0c                	je     0x40fc81
40fc75:	40                   	inc    %eax
40fc76:	40                   	inc    %eax
40fc77:	83 f8 14             	cmp    $0x14,%eax
40fc7a:	72 ec                	jb     0x40fc68
40fc7c:	33 c0                	xor    %eax,%eax
40fc7e:	40                   	inc    %eax
40fc7f:	5d                   	pop    %ebp
40fc80:	c3                   	ret
40fc81:	33 c0                	xor    %eax,%eax
40fc83:	5d                   	pop    %ebp
40fc84:	c3                   	ret
40fc85:	8b ff                	mov    %edi,%edi
40fc87:	56                   	push   %esi
40fc88:	33 f6                	xor    %esi,%esi
40fc8a:	eb 23                	jmp    0x40fcaf
40fc8c:	8a c1                	mov    %cl,%al
40fc8e:	2c 61                	sub    $0x61,%al
40fc90:	42                   	inc    %edx
40fc91:	3c 05                	cmp    $0x5,%al
40fc93:	77 05                	ja     0x40fc9a
40fc95:	80 c1 d9             	add    $0xd9,%cl
40fc98:	eb 0b                	jmp    0x40fca5
40fc9a:	8a c1                	mov    %cl,%al
40fc9c:	2c 41                	sub    $0x41,%al
40fc9e:	3c 05                	cmp    $0x5,%al
40fca0:	77 03                	ja     0x40fca5
40fca2:	80 c1 f9             	add    $0xf9,%cl
40fca5:	0f be c1             	movsbl %cl,%eax
40fca8:	c1 e6 04             	shl    $0x4,%esi
40fcab:	8d 74 06 d0          	lea    -0x30(%esi,%eax,1),%esi
40fcaf:	8a 0a                	mov    (%edx),%cl
40fcb1:	84 c9                	test   %cl,%cl
40fcb3:	75 d7                	jne    0x40fc8c
40fcb5:	8b c6                	mov    %esi,%eax
40fcb7:	5e                   	pop    %esi
40fcb8:	c3                   	ret
40fcb9:	33 c0                	xor    %eax,%eax
40fcbb:	8a 0a                	mov    (%edx),%cl
40fcbd:	42                   	inc    %edx
40fcbe:	80 f9 41             	cmp    $0x41,%cl
40fcc1:	7c 05                	jl     0x40fcc8
40fcc3:	80 f9 5a             	cmp    $0x5a,%cl
40fcc6:	7e 08                	jle    0x40fcd0
40fcc8:	80 e9 61             	sub    $0x61,%cl
40fccb:	80 f9 19             	cmp    $0x19,%cl
40fcce:	77 03                	ja     0x40fcd3
40fcd0:	40                   	inc    %eax
40fcd1:	eb e8                	jmp    0x40fcbb
40fcd3:	c3                   	ret
40fcd4:	8b ff                	mov    %edi,%edi
40fcd6:	55                   	push   %ebp
40fcd7:	8b ec                	mov    %esp,%ebp
40fcd9:	83 ec 7c             	sub    $0x7c,%esp
40fcdc:	a1 68 b2 42 00       	mov    0x42b268,%eax
40fce1:	33 c5                	xor    %ebp,%eax
40fce3:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fce6:	56                   	push   %esi
40fce7:	57                   	push   %edi
40fce8:	8b 7d 08             	mov    0x8(%ebp),%edi
40fceb:	e8 51 ad ff ff       	call   0x40aa41
40fcf0:	8b f0                	mov    %eax,%esi
40fcf2:	8b d7                	mov    %edi,%edx
40fcf4:	81 c6 9c 00 00 00    	add    $0x9c,%esi
40fcfa:	e8 86 ff ff ff       	call   0x40fc85
40fcff:	8b f8                	mov    %eax,%edi
40fd01:	6a 78                	push   $0x78
40fd03:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fd06:	50                   	push   %eax
40fd07:	8b 46 14             	mov    0x14(%esi),%eax
40fd0a:	f7 d8                	neg    %eax
40fd0c:	1b c0                	sbb    %eax,%eax
40fd0e:	25 05 f0 ff ff       	and    $0xfffff005,%eax
40fd13:	05 02 10 00 00       	add    $0x1002,%eax
40fd18:	50                   	push   %eax
40fd19:	57                   	push   %edi
40fd1a:	ff 15 50 a1 41 00    	call   *0x41a150
40fd20:	85 c0                	test   %eax,%eax
40fd22:	75 06                	jne    0x40fd2a
40fd24:	21 46 08             	and    %eax,0x8(%esi)
40fd27:	40                   	inc    %eax
40fd28:	eb 32                	jmp    0x40fd5c
40fd2a:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fd2d:	50                   	push   %eax
40fd2e:	ff 76 04             	push   0x4(%esi)
40fd31:	e8 42 5d 00 00       	call   0x415a78
40fd36:	59                   	pop    %ecx
40fd37:	59                   	pop    %ecx
40fd38:	85 c0                	test   %eax,%eax
40fd3a:	75 15                	jne    0x40fd51
40fd3c:	57                   	push   %edi
40fd3d:	e8 1f ff ff ff       	call   0x40fc61
40fd42:	59                   	pop    %ecx
40fd43:	85 c0                	test   %eax,%eax
40fd45:	74 0a                	je     0x40fd51
40fd47:	83 4e 08 04          	orl    $0x4,0x8(%esi)
40fd4b:	89 7e 1c             	mov    %edi,0x1c(%esi)
40fd4e:	89 7e 18             	mov    %edi,0x18(%esi)
40fd51:	8b 46 08             	mov    0x8(%esi),%eax
40fd54:	c1 e8 02             	shr    $0x2,%eax
40fd57:	f7 d0                	not    %eax
40fd59:	83 e0 01             	and    $0x1,%eax
40fd5c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40fd5f:	5f                   	pop    %edi
40fd60:	33 cd                	xor    %ebp,%ecx
40fd62:	5e                   	pop    %esi
40fd63:	e8 be 68 ff ff       	call   0x406626
40fd68:	c9                   	leave
40fd69:	c2 04 00             	ret    $0x4
40fd6c:	8b ff                	mov    %edi,%edi
40fd6e:	55                   	push   %ebp
40fd6f:	8b ec                	mov    %esp,%ebp
40fd71:	83 ec 7c             	sub    $0x7c,%esp
40fd74:	a1 68 b2 42 00       	mov    0x42b268,%eax
40fd79:	33 c5                	xor    %ebp,%eax
40fd7b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fd7e:	56                   	push   %esi
40fd7f:	6a 78                	push   $0x78
40fd81:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fd84:	50                   	push   %eax
40fd85:	8b 45 08             	mov    0x8(%ebp),%eax
40fd88:	25 ff 03 00 00       	and    $0x3ff,%eax
40fd8d:	6a 01                	push   $0x1
40fd8f:	0d 00 04 00 00       	or     $0x400,%eax
40fd94:	50                   	push   %eax
40fd95:	8b f1                	mov    %ecx,%esi
40fd97:	ff 15 50 a1 41 00    	call   *0x41a150
40fd9d:	85 c0                	test   %eax,%eax
40fd9f:	75 04                	jne    0x40fda5
40fda1:	33 c0                	xor    %eax,%eax
40fda3:	eb 2e                	jmp    0x40fdd3
40fda5:	8d 55 84             	lea    -0x7c(%ebp),%edx
40fda8:	e8 d8 fe ff ff       	call   0x40fc85
40fdad:	39 45 08             	cmp    %eax,0x8(%ebp)
40fdb0:	74 1e                	je     0x40fdd0
40fdb2:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40fdb6:	74 18                	je     0x40fdd0
40fdb8:	8b 36                	mov    (%esi),%esi
40fdba:	57                   	push   %edi
40fdbb:	8b d6                	mov    %esi,%edx
40fdbd:	e8 f7 fe ff ff       	call   0x40fcb9
40fdc2:	56                   	push   %esi
40fdc3:	8b f8                	mov    %eax,%edi
40fdc5:	e8 96 61 ff ff       	call   0x405f60
40fdca:	59                   	pop    %ecx
40fdcb:	3b f8                	cmp    %eax,%edi
40fdcd:	5f                   	pop    %edi
40fdce:	74 d1                	je     0x40fda1
40fdd0:	33 c0                	xor    %eax,%eax
40fdd2:	40                   	inc    %eax
40fdd3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40fdd6:	33 cd                	xor    %ebp,%ecx
40fdd8:	5e                   	pop    %esi
40fdd9:	e8 48 68 ff ff       	call   0x406626
40fdde:	c9                   	leave
40fddf:	c3                   	ret
40fde0:	8b ff                	mov    %edi,%edi
40fde2:	55                   	push   %ebp
40fde3:	8b ec                	mov    %esp,%ebp
40fde5:	83 ec 7c             	sub    $0x7c,%esp
40fde8:	a1 68 b2 42 00       	mov    0x42b268,%eax
40fded:	33 c5                	xor    %ebp,%eax
40fdef:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fdf2:	53                   	push   %ebx
40fdf3:	56                   	push   %esi
40fdf4:	57                   	push   %edi
40fdf5:	8b 7d 08             	mov    0x8(%ebp),%edi
40fdf8:	e8 44 ac ff ff       	call   0x40aa41
40fdfd:	8b f0                	mov    %eax,%esi
40fdff:	8b d7                	mov    %edi,%edx
40fe01:	81 c6 9c 00 00 00    	add    $0x9c,%esi
40fe07:	e8 79 fe ff ff       	call   0x40fc85
40fe0c:	8b 1d 50 a1 41 00    	mov    0x41a150,%ebx
40fe12:	8b f8                	mov    %eax,%edi
40fe14:	6a 78                	push   $0x78
40fe16:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fe19:	50                   	push   %eax
40fe1a:	8b 46 14             	mov    0x14(%esi),%eax
40fe1d:	f7 d8                	neg    %eax
40fe1f:	1b c0                	sbb    %eax,%eax
40fe21:	25 05 f0 ff ff       	and    $0xfffff005,%eax
40fe26:	05 02 10 00 00       	add    $0x1002,%eax
40fe2b:	50                   	push   %eax
40fe2c:	57                   	push   %edi
40fe2d:	ff d3                	call   *%ebx
40fe2f:	85 c0                	test   %eax,%eax
40fe31:	75 0c                	jne    0x40fe3f
40fe33:	83 66 08 00          	andl   $0x0,0x8(%esi)
40fe37:	33 c0                	xor    %eax,%eax
40fe39:	40                   	inc    %eax
40fe3a:	e9 62 01 00 00       	jmp    0x40ffa1
40fe3f:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fe42:	50                   	push   %eax
40fe43:	ff 76 04             	push   0x4(%esi)
40fe46:	e8 2d 5c 00 00       	call   0x415a78
40fe4b:	59                   	pop    %ecx
40fe4c:	59                   	pop    %ecx
40fe4d:	85 c0                	test   %eax,%eax
40fe4f:	0f 85 91 00 00 00    	jne    0x40fee6
40fe55:	6a 78                	push   $0x78
40fe57:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fe5a:	50                   	push   %eax
40fe5b:	8b 46 10             	mov    0x10(%esi),%eax
40fe5e:	f7 d8                	neg    %eax
40fe60:	1b c0                	sbb    %eax,%eax
40fe62:	25 02 f0 ff ff       	and    $0xfffff002,%eax
40fe67:	05 01 10 00 00       	add    $0x1001,%eax
40fe6c:	50                   	push   %eax
40fe6d:	57                   	push   %edi
40fe6e:	ff d3                	call   *%ebx
40fe70:	85 c0                	test   %eax,%eax
40fe72:	74 bf                	je     0x40fe33
40fe74:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fe77:	50                   	push   %eax
40fe78:	ff 36                	push   (%esi)
40fe7a:	e8 f9 5b 00 00       	call   0x415a78
40fe7f:	59                   	pop    %ecx
40fe80:	59                   	pop    %ecx
40fe81:	85 c0                	test   %eax,%eax
40fe83:	75 0c                	jne    0x40fe91
40fe85:	81 4e 08 04 03 00 00 	orl    $0x304,0x8(%esi)
40fe8c:	89 7e 18             	mov    %edi,0x18(%esi)
40fe8f:	eb 52                	jmp    0x40fee3
40fe91:	f6 46 08 02          	testb  $0x2,0x8(%esi)
40fe95:	75 4f                	jne    0x40fee6
40fe97:	8b 46 0c             	mov    0xc(%esi),%eax
40fe9a:	85 c0                	test   %eax,%eax
40fe9c:	74 2c                	je     0x40feca
40fe9e:	50                   	push   %eax