40fb28:	66 89 06             	mov    %ax,(%esi)
40fb2b:	e8 4d 86 ff ff       	call   0x40817d
40fb30:	6a 22                	push   $0x22
40fb32:	eb c9                	jmp    0x40fafd
40fb34:	55                   	push   %ebp
40fb35:	8b ec                	mov    %esp,%ebp
40fb37:	6a 00                	push   $0x0
40fb39:	ff 75 10             	push   0x10(%ebp)
40fb3c:	ff 75 0c             	push   0xc(%ebp)
40fb3f:	ff 75 08             	push   0x8(%ebp)
40fb42:	ff 15 2c 91 41 00    	call   *0x41912c
40fb48:	5d                   	pop    %ebp
40fb49:	c3                   	ret
40fb4a:	55                   	push   %ebp
40fb4b:	8b ec                	mov    %esp,%ebp
40fb4d:	ff 75 14             	push   0x14(%ebp)
40fb50:	ff 75 10             	push   0x10(%ebp)
40fb53:	ff 75 0c             	push   0xc(%ebp)
40fb56:	ff 75 08             	push   0x8(%ebp)
40fb59:	ff 15 70 90 41 00    	call   *0x419070
40fb5f:	5d                   	pop    %ebp
40fb60:	c3                   	ret
40fb61:	55                   	push   %ebp
40fb62:	8b ec                	mov    %esp,%ebp
40fb64:	ff 75 0c             	push   0xc(%ebp)
40fb67:	ff 75 08             	push   0x8(%ebp)
40fb6a:	ff 15 20 91 41 00    	call   *0x419120
40fb70:	5d                   	pop    %ebp
40fb71:	c3                   	ret
40fb72:	55                   	push   %ebp
40fb73:	8b ec                	mov    %esp,%ebp
40fb75:	ff 75 08             	push   0x8(%ebp)
40fb78:	ff 15 28 91 41 00    	call   *0x419128
40fb7e:	5d                   	pop    %ebp
40fb7f:	c3                   	ret
40fb80:	55                   	push   %ebp
40fb81:	8b ec                	mov    %esp,%ebp
40fb83:	33 c0                	xor    %eax,%eax
40fb85:	50                   	push   %eax
40fb86:	50                   	push   %eax
40fb87:	50                   	push   %eax
40fb88:	ff 75 1c             	push   0x1c(%ebp)
40fb8b:	ff 75 18             	push   0x18(%ebp)
40fb8e:	ff 75 14             	push   0x14(%ebp)
40fb91:	ff 75 10             	push   0x10(%ebp)
40fb94:	ff 75 0c             	push   0xc(%ebp)
40fb97:	ff 75 08             	push   0x8(%ebp)
40fb9a:	ff 15 24 91 41 00    	call   *0x419124
40fba0:	5d                   	pop    %ebp
40fba1:	c3                   	ret
40fba2:	cc                   	int3
40fba3:	cc                   	int3
40fba4:	cc                   	int3
40fba5:	cc                   	int3
40fba6:	cc                   	int3
40fba7:	cc                   	int3
40fba8:	cc                   	int3
40fba9:	cc                   	int3
40fbaa:	cc                   	int3
40fbab:	cc                   	int3
40fbac:	cc                   	int3
40fbad:	cc                   	int3
40fbae:	cc                   	int3
40fbaf:	cc                   	int3
40fbb0:	51                   	push   %ecx
40fbb1:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40fbb5:	2b c8                	sub    %eax,%ecx
40fbb7:	83 e1 0f             	and    $0xf,%ecx
40fbba:	03 c1                	add    %ecx,%eax
40fbbc:	1b c9                	sbb    %ecx,%ecx
40fbbe:	0b c1                	or     %ecx,%eax
40fbc0:	59                   	pop    %ecx
40fbc1:	e9 ca 42 00 00       	jmp    0x413e90
40fbc6:	51                   	push   %ecx
40fbc7:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40fbcb:	2b c8                	sub    %eax,%ecx
40fbcd:	83 e1 07             	and    $0x7,%ecx
40fbd0:	03 c1                	add    %ecx,%eax
40fbd2:	1b c9                	sbb    %ecx,%ecx
40fbd4:	0b c1                	or     %ecx,%eax
40fbd6:	59                   	pop    %ecx
40fbd7:	e9 b4 42 00 00       	jmp    0x413e90
40fbdc:	55                   	push   %ebp
40fbdd:	8b ec                	mov    %esp,%ebp
40fbdf:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40fbe3:	75 0b                	jne    0x40fbf0
40fbe5:	ff 75 0c             	push   0xc(%ebp)
40fbe8:	e8 50 86 ff ff       	call   0x40823d
40fbed:	59                   	pop    %ecx
40fbee:	5d                   	pop    %ebp
40fbef:	c3                   	ret
40fbf0:	56                   	push   %esi
40fbf1:	8b 75 0c             	mov    0xc(%ebp),%esi
40fbf4:	85 f6                	test   %esi,%esi
40fbf6:	75 0d                	jne    0x40fc05
40fbf8:	ff 75 08             	push   0x8(%ebp)
40fbfb:	e8 18 55 ff ff       	call   0x405118
40fc00:	59                   	pop    %ecx
40fc01:	33 c0                	xor    %eax,%eax
40fc03:	eb 4d                	jmp    0x40fc52
40fc05:	53                   	push   %ebx
40fc06:	eb 30                	jmp    0x40fc38
40fc08:	85 f6                	test   %esi,%esi
40fc0a:	75 01                	jne    0x40fc0d
40fc0c:	46                   	inc    %esi
40fc0d:	56                   	push   %esi
40fc0e:	ff 75 08             	push   0x8(%ebp)
40fc11:	6a 00                	push   $0x0
40fc13:	ff 35 54 27 42 00    	push   0x422754
40fc19:	ff 15 30 91 41 00    	call   *0x419130
40fc1f:	8b d8                	mov    %eax,%ebx
40fc21:	85 db                	test   %ebx,%ebx
40fc23:	75 5e                	jne    0x40fc83
40fc25:	39 05 90 28 42 00    	cmp    %eax,0x422890
40fc2b:	74 40                	je     0x40fc6d
40fc2d:	56                   	push   %esi
40fc2e:	e8 df b7 ff ff       	call   0x40b412
40fc33:	59                   	pop    %ecx
40fc34:	85 c0                	test   %eax,%eax
40fc36:	74 1d                	je     0x40fc55
40fc38:	83 fe e0             	cmp    $0xffffffe0,%esi
40fc3b:	76 cb                	jbe    0x40fc08
40fc3d:	56                   	push   %esi
40fc3e:	e8 cf b7 ff ff       	call   0x40b412
40fc43:	59                   	pop    %ecx
40fc44:	e8 34 85 ff ff       	call   0x40817d
40fc49:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40fc4f:	33 c0                	xor    %eax,%eax
40fc51:	5b                   	pop    %ebx
40fc52:	5e                   	pop    %esi
40fc53:	5d                   	pop    %ebp
40fc54:	c3                   	ret
40fc55:	e8 23 85 ff ff       	call   0x40817d
40fc5a:	8b f0                	mov    %eax,%esi
40fc5c:	ff 15 18 90 41 00    	call   *0x419018
40fc62:	50                   	push   %eax
40fc63:	e8 28 85 ff ff       	call   0x408190
40fc68:	59                   	pop    %ecx
40fc69:	89 06                	mov    %eax,(%esi)
40fc6b:	eb e2                	jmp    0x40fc4f
40fc6d:	e8 0b 85 ff ff       	call   0x40817d
40fc72:	8b f0                	mov    %eax,%esi
40fc74:	ff 15 18 90 41 00    	call   *0x419018
40fc7a:	50                   	push   %eax
40fc7b:	e8 10 85 ff ff       	call   0x408190
40fc80:	59                   	pop    %ecx
40fc81:	89 06                	mov    %eax,(%esi)
40fc83:	8b c3                	mov    %ebx,%eax
40fc85:	eb ca                	jmp    0x40fc51
40fc87:	55                   	push   %ebp
40fc88:	8b ec                	mov    %esp,%ebp
40fc8a:	56                   	push   %esi
40fc8b:	8b 75 08             	mov    0x8(%ebp),%esi
40fc8e:	85 f6                	test   %esi,%esi
40fc90:	74 1b                	je     0x40fcad
40fc92:	6a e0                	push   $0xffffffe0
40fc94:	33 d2                	xor    %edx,%edx
40fc96:	58                   	pop    %eax
40fc97:	f7 f6                	div    %esi
40fc99:	3b 45 0c             	cmp    0xc(%ebp),%eax
40fc9c:	73 0f                	jae    0x40fcad
40fc9e:	e8 da 84 ff ff       	call   0x40817d
40fca3:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40fca9:	33 c0                	xor    %eax,%eax
40fcab:	eb 51                	jmp    0x40fcfe
40fcad:	0f af 75 0c          	imul   0xc(%ebp),%esi
40fcb1:	85 f6                	test   %esi,%esi
40fcb3:	75 01                	jne    0x40fcb6
40fcb5:	46                   	inc    %esi
40fcb6:	33 c9                	xor    %ecx,%ecx
40fcb8:	83 fe e0             	cmp    $0xffffffe0,%esi
40fcbb:	77 15                	ja     0x40fcd2
40fcbd:	56                   	push   %esi
40fcbe:	6a 08                	push   $0x8
40fcc0:	ff 35 54 27 42 00    	push   0x422754
40fcc6:	ff 15 90 90 41 00    	call   *0x419090
40fccc:	8b c8                	mov    %eax,%ecx
40fcce:	85 c9                	test   %ecx,%ecx
40fcd0:	75 2a                	jne    0x40fcfc
40fcd2:	83 3d 90 28 42 00 00 	cmpl   $0x0,0x422890
40fcd9:	74 14                	je     0x40fcef
40fcdb:	56                   	push   %esi
40fcdc:	e8 31 b7 ff ff       	call   0x40b412
40fce1:	59                   	pop    %ecx
40fce2:	85 c0                	test   %eax,%eax
40fce4:	75 d0                	jne    0x40fcb6
40fce6:	8b 45 10             	mov    0x10(%ebp),%eax
40fce9:	85 c0                	test   %eax,%eax
40fceb:	74 bc                	je     0x40fca9
40fced:	eb b4                	jmp    0x40fca3
40fcef:	8b 45 10             	mov    0x10(%ebp),%eax
40fcf2:	85 c0                	test   %eax,%eax
40fcf4:	74 06                	je     0x40fcfc
40fcf6:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40fcfc:	8b c1                	mov    %ecx,%eax
40fcfe:	5e                   	pop    %esi
40fcff:	5d                   	pop    %ebp
40fd00:	c3                   	ret
40fd01:	ff 35 9c 28 42 00    	push   0x42289c
40fd07:	ff 15 5c 90 41 00    	call   *0x41905c
40fd0d:	c3                   	ret
40fd0e:	55                   	push   %ebp
40fd0f:	8b ec                	mov    %esp,%ebp
40fd11:	8b 45 08             	mov    0x8(%ebp),%eax
40fd14:	a3 94 28 42 00       	mov    %eax,0x422894
40fd19:	a3 98 28 42 00       	mov    %eax,0x422898
40fd1e:	a3 9c 28 42 00       	mov    %eax,0x42289c
40fd23:	a3 a0 28 42 00       	mov    %eax,0x4228a0
40fd28:	5d                   	pop    %ebp
40fd29:	c3                   	ret
40fd2a:	6a 24                	push   $0x24
40fd2c:	68 18 e7 41 00       	push   $0x41e718
40fd31:	e8 7a b0 ff ff       	call   0x40adb0
40fd36:	33 db                	xor    %ebx,%ebx
40fd38:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40fd3b:	33 ff                	xor    %edi,%edi
40fd3d:	89 7d d8             	mov    %edi,-0x28(%ebp)
40fd40:	8b 75 08             	mov    0x8(%ebp),%esi
40fd43:	83 fe 0b             	cmp    $0xb,%esi
40fd46:	7f 50                	jg     0x40fd98
40fd48:	74 15                	je     0x40fd5f
40fd4a:	8b c6                	mov    %esi,%eax
40fd4c:	6a 02                	push   $0x2
40fd4e:	59                   	pop    %ecx
40fd4f:	2b c1                	sub    %ecx,%eax
40fd51:	74 22                	je     0x40fd75
40fd53:	2b c1                	sub    %ecx,%eax
40fd55:	74 08                	je     0x40fd5f
40fd57:	2b c1                	sub    %ecx,%eax
40fd59:	74 5e                	je     0x40fdb9
40fd5b:	2b c1                	sub    %ecx,%eax
40fd5d:	75 48                	jne    0x40fda7
40fd5f:	e8 8a c6 ff ff       	call   0x40c3ee
40fd64:	8b f8                	mov    %eax,%edi
40fd66:	89 7d d8             	mov    %edi,-0x28(%ebp)
40fd69:	85 ff                	test   %edi,%edi
40fd6b:	75 16                	jne    0x40fd83
40fd6d:	83 c8 ff             	or     $0xffffffff,%eax
40fd70:	e9 64 01 00 00       	jmp    0x40fed9
40fd75:	c7 45 e4 94 28 42 00 	movl   $0x422894,-0x1c(%ebp)
40fd7c:	a1 94 28 42 00       	mov    0x422894,%eax
40fd81:	eb 5e                	jmp    0x40fde1
40fd83:	ff 77 5c             	push   0x5c(%edi)
40fd86:	56                   	push   %esi
40fd87:	e8 53 01 00 00       	call   0x40fedf
40fd8c:	59                   	pop    %ecx
40fd8d:	59                   	pop    %ecx
40fd8e:	83 c0 08             	add    $0x8,%eax
40fd91:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40fd94:	8b 00                	mov    (%eax),%eax
40fd96:	eb 56                	jmp    0x40fdee
40fd98:	8b c6                	mov    %esi,%eax
40fd9a:	83 e8 0f             	sub    $0xf,%eax
40fd9d:	74 36                	je     0x40fdd5
40fd9f:	83 e8 06             	sub    $0x6,%eax
40fda2:	74 23                	je     0x40fdc7
40fda4:	48                   	dec    %eax
40fda5:	74 12                	je     0x40fdb9
40fda7:	e8 d1 83 ff ff       	call   0x40817d
40fdac:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40fdb2:	e8 3e b8 ff ff       	call   0x40b5f5
40fdb7:	eb b4                	jmp    0x40fd6d
40fdb9:	c7 45 e4 9c 28 42 00 	movl   $0x42289c,-0x1c(%ebp)
40fdc0:	a1 9c 28 42 00       	mov    0x42289c,%eax
40fdc5:	eb 1a                	jmp    0x40fde1
40fdc7:	c7 45 e4 98 28 42 00 	movl   $0x422898,-0x1c(%ebp)
40fdce:	a1 98 28 42 00       	mov    0x422898,%eax
40fdd3:	eb 0c                	jmp    0x40fde1
40fdd5:	c7 45 e4 a0 28 42 00 	movl   $0x4228a0,-0x1c(%ebp)
40fddc:	a1 a0 28 42 00       	mov    0x4228a0,%eax
40fde1:	33 db                	xor    %ebx,%ebx
40fde3:	43                   	inc    %ebx
40fde4:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40fde7:	50                   	push   %eax
40fde8:	ff 15 5c 90 41 00    	call   *0x41905c
40fdee:	89 45 dc             	mov    %eax,-0x24(%ebp)
40fdf1:	83 f8 01             	cmp    $0x1,%eax
40fdf4:	0f 84 dd 00 00 00    	je     0x40fed7
40fdfa:	85 c0                	test   %eax,%eax
40fdfc:	75 07                	jne    0x40fe05
40fdfe:	6a 03                	push   $0x3
40fe00:	e8 91 ad ff ff       	call   0x40ab96
40fe05:	85 db                	test   %ebx,%ebx
40fe07:	74 08                	je     0x40fe11
40fe09:	6a 00                	push   $0x0
40fe0b:	e8 97 86 ff ff       	call   0x4084a7
40fe10:	59                   	pop    %ecx
40fe11:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40fe15:	83 fe 08             	cmp    $0x8,%esi
40fe18:	74 0a                	je     0x40fe24
40fe1a:	83 fe 0b             	cmp    $0xb,%esi
40fe1d:	74 05                	je     0x40fe24
40fe1f:	83 fe 04             	cmp    $0x4,%esi
40fe22:	75 1c                	jne    0x40fe40
40fe24:	8b 47 60             	mov    0x60(%edi),%eax
40fe27:	89 45 d0             	mov    %eax,-0x30(%ebp)
40fe2a:	83 67 60 00          	andl   $0x0,0x60(%edi)
40fe2e:	83 fe 08             	cmp    $0x8,%esi
40fe31:	75 41                	jne    0x40fe74
40fe33:	8b 47 64             	mov    0x64(%edi),%eax
40fe36:	89 45 cc             	mov    %eax,-0x34(%ebp)
40fe39:	c7 47 64 8c 00 00 00 	movl   $0x8c,0x64(%edi)
40fe40:	83 fe 08             	cmp    $0x8,%esi
40fe43:	75 2f                	jne    0x40fe74
40fe45:	8b 0d 00 bc 41 00    	mov    0x41bc00,%ecx
40fe4b:	8b d1                	mov    %ecx,%edx
40fe4d:	89 55 d4             	mov    %edx,-0x2c(%ebp)
40fe50:	a1 04 bc 41 00       	mov    0x41bc04,%eax
40fe55:	03 c1                	add    %ecx,%eax
40fe57:	3b d0                	cmp    %eax,%edx
40fe59:	7d 26                	jge    0x40fe81
40fe5b:	8b ca                	mov    %edx,%ecx
40fe5d:	6b c9 0c             	imul   $0xc,%ecx,%ecx
40fe60:	8b 47 5c             	mov    0x5c(%edi),%eax
40fe63:	83 64 01 08 00       	andl   $0x0,0x8(%ecx,%eax,1)
40fe68:	42                   	inc    %edx
40fe69:	89 55 d4             	mov    %edx,-0x2c(%ebp)
40fe6c:	8b 0d 00 bc 41 00    	mov    0x41bc00,%ecx
40fe72:	eb dc                	jmp    0x40fe50
40fe74:	6a 00                	push   $0x0
40fe76:	ff 15 58 90 41 00    	call   *0x419058
40fe7c:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40fe7f:	89 01                	mov    %eax,(%ecx)
40fe81:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40fe88:	e8 18 00 00 00       	call   0x40fea5
40fe8d:	83 fe 08             	cmp    $0x8,%esi
40fe90:	75 20                	jne    0x40feb2
40fe92:	ff 77 64             	push   0x64(%edi)
40fe95:	56                   	push   %esi
40fe96:	ff 55 dc             	call   *-0x24(%ebp)
40fe99:	59                   	pop    %ecx
40fe9a:	eb 1a                	jmp    0x40feb6
40fe9c:	8b 75 08             	mov    0x8(%ebp),%esi
40fe9f:	8b 5d e0             	mov    -0x20(%ebp),%ebx
40fea2:	8b 7d d8             	mov    -0x28(%ebp),%edi
40fea5:	85 db                	test   %ebx,%ebx
40fea7:	74 08                	je     0x40feb1
40fea9:	6a 00                	push   $0x0
40feab:	e8 5b 87 ff ff       	call   0x40860b
40feb0:	59                   	pop    %ecx
40feb1:	c3                   	ret
40feb2:	56                   	push   %esi
40feb3:	ff 55 dc             	call   *-0x24(%ebp)
40feb6:	59                   	pop    %ecx
40feb7:	83 fe 08             	cmp    $0x8,%esi
40feba:	74 0a                	je     0x40fec6
40febc:	83 fe 0b             	cmp    $0xb,%esi
40febf:	74 05                	je     0x40fec6
40fec1:	83 fe 04             	cmp    $0x4,%esi
40fec4:	75 11                	jne    0x40fed7