437d01:	33 c9                	xor    %ecx,%ecx
437d03:	83 c4 10             	add    $0x10,%esp
437d06:	2b c1                	sub    %ecx,%eax
437d08:	74 10                	je     0x437d1a
437d0a:	83 e8 01             	sub    $0x1,%eax
437d0d:	74 06                	je     0x437d15
437d0f:	88 0b                	mov    %cl,(%ebx)
437d11:	89 37                	mov    %esi,(%edi)
437d13:	eb 07                	jmp    0x437d1c
437d15:	c6 03 01             	movb   $0x1,(%ebx)
437d18:	eb 02                	jmp    0x437d1c
437d1a:	88 0b                	mov    %cl,(%ebx)
437d1c:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
437d20:	8d 4d a0             	lea    -0x60(%ebp),%ecx
437d23:	e8 63 ef ff ff       	call   0x436c8b
437d28:	8b 75 94             	mov    -0x6c(%ebp),%esi
437d2b:	e9 89 00 00 00       	jmp    0x437db9
437d30:	e8 07 11 ff ff       	call   0x428e3c
437d35:	8d 45 8c             	lea    -0x74(%ebp),%eax
437d38:	c7 45 fc 04 00 00 00 	movl   $0x4,-0x4(%ebp)
437d3f:	50                   	push   %eax
437d40:	8b 45 9c             	mov    -0x64(%ebp),%eax
437d43:	ff 70 14             	push   0x14(%eax)
437d46:	8d 45 14             	lea    0x14(%ebp),%eax
437d49:	50                   	push   %eax
437d4a:	8d 45 0c             	lea    0xc(%ebp),%eax
437d4d:	50                   	push   %eax
437d4e:	8d 45 d0             	lea    -0x30(%ebp),%eax
437d51:	50                   	push   %eax
437d52:	ff 75 98             	push   -0x68(%ebp)
437d55:	e8 ba af ff ff       	call   0x432d14
437d5a:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
437d5e:	8d 4d 8c             	lea    -0x74(%ebp),%ecx
437d61:	83 c4 18             	add    $0x18,%esp
437d64:	89 45 98             	mov    %eax,-0x68(%ebp)
437d67:	e8 7b 76 fd ff       	call   0x40f3e7
437d6c:	80 7d d0 00          	cmpb   $0x0,-0x30(%ebp)
437d70:	75 05                	jne    0x437d77
437d72:	c6 03 00             	movb   $0x0,(%ebx)
437d75:	eb 3c                	jmp    0x437db3
437d77:	8d 45 94             	lea    -0x6c(%ebp),%eax
437d7a:	50                   	push   %eax
437d7b:	ff 75 98             	push   -0x68(%ebp)
437d7e:	8d 45 98             	lea    -0x68(%ebp),%eax
437d81:	50                   	push   %eax
437d82:	8d 45 d0             	lea    -0x30(%ebp),%eax
437d85:	50                   	push   %eax
437d86:	e8 55 fa fe ff       	call   0x4277e0
437d8b:	8b c8                	mov    %eax,%ecx
437d8d:	83 c4 10             	add    $0x10,%esp
437d90:	8d 45 d0             	lea    -0x30(%ebp),%eax
437d93:	39 45 98             	cmp    %eax,-0x68(%ebp)
437d96:	74 18                	je     0x437db0
437d98:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
437d9c:	75 12                	jne    0x437db0
437d9e:	85 c9                	test   %ecx,%ecx
437da0:	0f 95 c0             	setne  %al
437da3:	88 03                	mov    %al,(%ebx)
437da5:	85 c9                	test   %ecx,%ecx
437da7:	74 10                	je     0x437db9
437da9:	83 f9 01             	cmp    $0x1,%ecx
437dac:	74 0b                	je     0x437db9
437dae:	eb 03                	jmp    0x437db3
437db0:	c6 03 01             	movb   $0x1,(%ebx)
437db3:	c7 07 02 00 00 00    	movl   $0x2,(%edi)
437db9:	8d 45 14             	lea    0x14(%ebp),%eax
437dbc:	50                   	push   %eax
437dbd:	8d 4d 0c             	lea    0xc(%ebp),%ecx
437dc0:	e8 7b 30 00 00       	call   0x43ae40
437dc5:	84 c0                	test   %al,%al
437dc7:	74 03                	je     0x437dcc
437dc9:	83 0f 01             	orl    $0x1,(%edi)
437dcc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
437dcf:	8b c6                	mov    %esi,%eax
437dd1:	89 0e                	mov    %ecx,(%esi)
437dd3:	8b 4d 10             	mov    0x10(%ebp),%ecx
437dd6:	89 4e 04             	mov    %ecx,0x4(%esi)
437dd9:	e8 4a 7c 00 00       	call   0x43fa28
437dde:	c2 20 00             	ret    $0x20
437de1:	6a 10                	push   $0x10
437de3:	b8 48 25 49 00       	mov    $0x492548,%eax
437de8:	e8 5d 7c 00 00       	call   0x43fa4a
437ded:	8b f9                	mov    %ecx,%edi
437def:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
437df2:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
437df5:	ff 73 30             	push   0x30(%ebx)
437df8:	e8 3f 10 ff ff       	call   0x428e3c
437dfd:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
437e01:	8d 45 e4             	lea    -0x1c(%ebp),%eax
437e04:	50                   	push   %eax
437e05:	e8 f3 6c ff ff       	call   0x42eafd
437e0a:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
437e0e:	59                   	pop    %ecx
437e0f:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
437e12:	89 45 f0             	mov    %eax,-0x10(%ebp)
437e15:	e8 cd 75 fd ff       	call   0x40f3e7
437e1a:	8b 75 20             	mov    0x20(%ebp),%esi
437e1d:	33 d2                	xor    %edx,%edx
437e1f:	0f be 4d 28          	movsbl 0x28(%ebp),%ecx
437e23:	83 c1 bf             	add    $0xffffffbf,%ecx
437e26:	89 55 e8             	mov    %edx,-0x18(%ebp)
437e29:	89 16                	mov    %edx,(%esi)
437e2b:	83 f9 38             	cmp    $0x38,%ecx
437e2e:	0f 87 8d 02 00 00    	ja     0x4380c1
437e34:	0f b6 81 4d 81 43 00 	movzbl 0x43814d(%ecx),%eax
437e3b:	ff 24 85 f1 80 43 00 	jmp    *0x4380f1(,%eax,4)
437e42:	ff 75 24             	push   0x24(%ebp)
437e45:	8d 45 e4             	lea    -0x1c(%ebp),%eax
437e48:	8b cf                	mov    %edi,%ecx
437e4a:	56                   	push   %esi
437e4b:	53                   	push   %ebx
437e4c:	ff 75 18             	push   0x18(%ebp)
437e4f:	ff 75 14             	push   0x14(%ebp)
437e52:	ff 75 10             	push   0x10(%ebp)
437e55:	ff 75 0c             	push   0xc(%ebp)
437e58:	50                   	push   %eax
437e59:	e8 29 31 00 00       	call   0x43af87
437e5e:	8b 08                	mov    (%eax),%ecx
437e60:	89 4d 0c             	mov    %ecx,0xc(%ebp)
437e63:	8b 40 04             	mov    0x4(%eax),%eax
437e66:	89 45 10             	mov    %eax,0x10(%ebp)
437e69:	e9 59 02 00 00       	jmp    0x4380c7
437e6e:	ff 75 24             	push   0x24(%ebp)
437e71:	8d 45 e4             	lea    -0x1c(%ebp),%eax
437e74:	8b cf                	mov    %edi,%ecx
437e76:	56                   	push   %esi
437e77:	53                   	push   %ebx
437e78:	ff 75 18             	push   0x18(%ebp)
437e7b:	ff 75 14             	push   0x14(%ebp)
437e7e:	ff 75 10             	push   0x10(%ebp)
437e81:	ff 75 0c             	push   0xc(%ebp)
437e84:	50                   	push   %eax
437e85:	e8 8d 30 00 00       	call   0x43af17
437e8a:	eb d2                	jmp    0x437e5e
437e8c:	68 d8 a9 49 00       	push   $0x49a9d8
437e91:	ff 75 24             	push   0x24(%ebp)
437e94:	8d 45 e4             	lea    -0x1c(%ebp),%eax
437e97:	8b cf                	mov    %edi,%ecx
437e99:	56                   	push   %esi
437e9a:	53                   	push   %ebx
437e9b:	ff 75 18             	push   0x18(%ebp)
437e9e:	ff 75 14             	push   0x14(%ebp)
437ea1:	ff 75 10             	push   0x10(%ebp)
437ea4:	ff 75 0c             	push   0xc(%ebp)
437ea7:	50                   	push   %eax
437ea8:	e8 bd ab ff ff       	call   0x432a6a
437ead:	eb af                	jmp    0x437e5e
437eaf:	ff 75 f0             	push   -0x10(%ebp)
437eb2:	8d 45 e8             	lea    -0x18(%ebp),%eax
437eb5:	50                   	push   %eax
437eb6:	6a 63                	push   $0x63
437eb8:	52                   	push   %edx
437eb9:	8d 45 14             	lea    0x14(%ebp),%eax
437ebc:	50                   	push   %eax
437ebd:	8d 45 0c             	lea    0xc(%ebp),%eax
437ec0:	50                   	push   %eax
437ec1:	57                   	push   %edi
437ec2:	e8 2b b2 ff ff       	call   0x4330f2
437ec7:	8b 0e                	mov    (%esi),%ecx
437ec9:	83 c4 1c             	add    $0x1c,%esp
437ecc:	0b c8                	or     %eax,%ecx
437ece:	89 0e                	mov    %ecx,(%esi)
437ed0:	f6 c1 02             	test   $0x2,%cl
437ed3:	0f 85 ee 01 00 00    	jne    0x4380c7
437ed9:	8b 45 e8             	mov    -0x18(%ebp),%eax
437edc:	83 c0 ed             	add    $0xffffffed,%eax
437edf:	6b c8 64             	imul   $0x64,%eax,%ecx
437ee2:	8b 45 24             	mov    0x24(%ebp),%eax
437ee5:	89 48 14             	mov    %ecx,0x14(%eax)
437ee8:	e9 da 01 00 00       	jmp    0x4380c7
437eed:	ff 75 f0             	push   -0x10(%ebp)
437ef0:	8b 45 24             	mov    0x24(%ebp),%eax
437ef3:	83 c0 0c             	add    $0xc,%eax
437ef6:	50                   	push   %eax
437ef7:	6a 1f                	push   $0x1f
437ef9:	6a 01                	push   $0x1
437efb:	8d 45 14             	lea    0x14(%ebp),%eax
437efe:	50                   	push   %eax
437eff:	8d 45 0c             	lea    0xc(%ebp),%eax
437f02:	50                   	push   %eax
437f03:	57                   	push   %edi
437f04:	e8 e9 b1 ff ff       	call   0x4330f2
437f09:	83 c4 1c             	add    $0x1c,%esp
437f0c:	09 06                	or     %eax,(%esi)
437f0e:	e9 b4 01 00 00       	jmp    0x4380c7
437f13:	68 f0 a9 49 00       	push   $0x49a9f0
437f18:	e9 74 ff ff ff       	jmp    0x437e91
437f1d:	ff 75 f0             	push   -0x10(%ebp)
437f20:	8b 45 24             	mov    0x24(%ebp),%eax
437f23:	83 c0 08             	add    $0x8,%eax
437f26:	50                   	push   %eax
437f27:	6a 17                	push   $0x17
437f29:	52                   	push   %edx
437f2a:	eb cf                	jmp    0x437efb
437f2c:	ff 75 f0             	push   -0x10(%ebp)
437f2f:	8d 45 e8             	lea    -0x18(%ebp),%eax
437f32:	50                   	push   %eax
437f33:	6a 0c                	push   $0xc
437f35:	6a 01                	push   $0x1
437f37:	8d 45 14             	lea    0x14(%ebp),%eax
437f3a:	50                   	push   %eax
437f3b:	8d 45 0c             	lea    0xc(%ebp),%eax
437f3e:	50                   	push   %eax
437f3f:	57                   	push   %edi
437f40:	e8 ad b1 ff ff       	call   0x4330f2
437f45:	8b 0e                	mov    (%esi),%ecx
437f47:	83 c4 1c             	add    $0x1c,%esp
437f4a:	0b c8                	or     %eax,%ecx
437f4c:	89 0e                	mov    %ecx,(%esi)
437f4e:	f6 c1 02             	test   $0x2,%cl
437f51:	0f 85 70 01 00 00    	jne    0x4380c7
437f57:	8b 4d e8             	mov    -0x18(%ebp),%ecx
437f5a:	8b 45 24             	mov    0x24(%ebp),%eax
437f5d:	83 e9 0c             	sub    $0xc,%ecx
437f60:	f7 d9                	neg    %ecx
437f62:	1b c9                	sbb    %ecx,%ecx
437f64:	23 4d e8             	and    -0x18(%ebp),%ecx
437f67:	89 48 08             	mov    %ecx,0x8(%eax)
437f6a:	e9 58 01 00 00       	jmp    0x4380c7
437f6f:	ff 75 f0             	push   -0x10(%ebp)
437f72:	8b 45 24             	mov    0x24(%ebp),%eax
437f75:	83 c0 1c             	add    $0x1c,%eax
437f78:	50                   	push   %eax
437f79:	68 6e 01 00 00       	push   $0x16e
437f7e:	e9 76 ff ff ff       	jmp    0x437ef9
437f83:	ff 75 f0             	push   -0x10(%ebp)
437f86:	8d 45 e8             	lea    -0x18(%ebp),%eax
437f89:	50                   	push   %eax
437f8a:	6a 0c                	push   $0xc
437f8c:	6a 01                	push   $0x1
437f8e:	8d 45 14             	lea    0x14(%ebp),%eax
437f91:	50                   	push   %eax
437f92:	8d 45 0c             	lea    0xc(%ebp),%eax
437f95:	50                   	push   %eax
437f96:	57                   	push   %edi
437f97:	e8 56 b1 ff ff       	call   0x4330f2
437f9c:	8b 0e                	mov    (%esi),%ecx
437f9e:	83 c4 1c             	add    $0x1c,%esp
437fa1:	0b c8                	or     %eax,%ecx
437fa3:	89 0e                	mov    %ecx,(%esi)
437fa5:	f6 c1 02             	test   $0x2,%cl
437fa8:	0f 85 19 01 00 00    	jne    0x4380c7
437fae:	8b 45 24             	mov    0x24(%ebp),%eax
437fb1:	8b 4d e8             	mov    -0x18(%ebp),%ecx
437fb4:	49                   	dec    %ecx
437fb5:	89 48 10             	mov    %ecx,0x10(%eax)
437fb8:	e9 0a 01 00 00       	jmp    0x4380c7
437fbd:	ff 75 f0             	push   -0x10(%ebp)
437fc0:	8b 45 24             	mov    0x24(%ebp),%eax
437fc3:	83 c0 04             	add    $0x4,%eax
437fc6:	50                   	push   %eax
437fc7:	6a 3b                	push   $0x3b
437fc9:	e9 5b ff ff ff       	jmp    0x437f29
437fce:	68 00 aa 49 00       	push   $0x49aa00
437fd3:	e9 b9 fe ff ff       	jmp    0x437e91
437fd8:	68 04 aa 49 00       	push   $0x49aa04
437fdd:	52                   	push   %edx
437fde:	8d 45 14             	lea    0x14(%ebp),%eax
437fe1:	50                   	push   %eax
437fe2:	8d 45 0c             	lea    0xc(%ebp),%eax
437fe5:	50                   	push   %eax
437fe6:	e8 82 56 ff ff       	call   0x42d66d
437feb:	83 c4 10             	add    $0x10,%esp
437fee:	85 c0                	test   %eax,%eax
437ff0:	79 08                	jns    0x437ffa
437ff2:	83 0e 02             	orl    $0x2,(%esi)
437ff5:	e9 cd 00 00 00       	jmp    0x4380c7
437ffa:	83 f8 01             	cmp    $0x1,%eax
437ffd:	0f 8e c4 00 00 00    	jle    0x4380c7
438003:	8b 45 24             	mov    0x24(%ebp),%eax
438006:	83 40 08 0c          	addl   $0xc,0x8(%eax)
43800a:	e9 b8 00 00 00       	jmp    0x4380c7
43800f:	68 14 aa 49 00       	push   $0x49aa14
438014:	e9 78 fe ff ff       	jmp    0x437e91
438019:	68 24 aa 49 00       	push   $0x49aa24
43801e:	e9 6e fe ff ff       	jmp    0x437e91
438023:	ff 75 f0             	push   -0x10(%ebp)
438026:	ff 75 24             	push   0x24(%ebp)
438029:	6a 3c                	push   $0x3c
43802b:	e9 f9 fe ff ff       	jmp    0x437f29
438030:	68 2c aa 49 00       	push   $0x49aa2c
438035:	e9 57 fe ff ff       	jmp    0x437e91
43803a:	ff 75 f0             	push   -0x10(%ebp)
43803d:	8b 45 24             	mov    0x24(%ebp),%eax
438040:	83 c0 1c             	add    $0x1c,%eax
438043:	50                   	push   %eax
438044:	6a 35                	push   $0x35
438046:	e9 de fe ff ff       	jmp    0x437f29
43804b:	ff 75 f0             	push   -0x10(%ebp)
43804e:	8b 45 24             	mov    0x24(%ebp),%eax
438051:	83 c0 18             	add    $0x18,%eax
438054:	50                   	push   %eax
438055:	6a 06                	push   $0x6
438057:	e9 cd fe ff ff       	jmp    0x437f29
43805c:	68 3c aa 49 00       	push   $0x49aa3c
438061:	e9 2b fe ff ff       	jmp    0x437e91
438066:	ff 75 f0             	push   -0x10(%ebp)
438069:	8d 45 e8             	lea    -0x18(%ebp),%eax
43806c:	50                   	push   %eax
43806d:	6a 63                	push   $0x63
43806f:	52                   	push   %edx
438070:	8d 45 14             	lea    0x14(%ebp),%eax
438073:	50                   	push   %eax
438074:	8d 45 0c             	lea    0xc(%ebp),%eax
438077:	50                   	push   %eax
438078:	57                   	push   %edi
438079:	e8 74 b0 ff ff       	call   0x4330f2
43807e:	8b 0e                	mov    (%esi),%ecx
438080:	83 c4 1c             	add    $0x1c,%esp
438083:	0b c8                	or     %eax,%ecx
438085:	89 0e                	mov    %ecx,(%esi)
438087:	f6 c1 02             	test   $0x2,%cl
43808a:	75 3b                	jne    0x4380c7
43808c:	8b 4d e8             	mov    -0x18(%ebp),%ecx
43808f:	83 f9 45             	cmp    $0x45,%ecx
438092:	0f 8d 4a fe ff ff    	jge    0x437ee2
438098:	83 c1 64             	add    $0x64,%ecx
43809b:	e9 42 fe ff ff       	jmp    0x437ee2
4380a0:	ff 75 24             	push   0x24(%ebp)
4380a3:	8d 45 ec             	lea    -0x14(%ebp),%eax
4380a6:	8b cf                	mov    %edi,%ecx
4380a8:	56                   	push   %esi
4380a9:	53                   	push   %ebx
4380aa:	ff 75 18             	push   0x18(%ebp)
4380ad:	ff 75 14             	push   0x14(%ebp)
4380b0:	ff 75 10             	push   0x10(%ebp)
4380b3:	ff 75 0c             	push   0xc(%ebp)
4380b6:	50                   	push   %eax
4380b7:	e8 3b 2f 00 00       	call   0x43aff7
4380bc:	e9 9d fd ff ff       	jmp    0x437e5e
4380c1:	c7 06 02 00 00 00    	movl   $0x2,(%esi)
4380c7:	8d 45 14             	lea    0x14(%ebp),%eax
4380ca:	50                   	push   %eax
4380cb:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4380ce:	e8 6d 2d 00 00       	call   0x43ae40
4380d3:	84 c0                	test   %al,%al
4380d5:	74 03                	je     0x4380da
4380d7:	83 0e 01             	orl    $0x1,(%esi)
4380da:	8b 45 08             	mov    0x8(%ebp),%eax
4380dd:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4380e0:	89 08                	mov    %ecx,(%eax)
4380e2:	8b 4d 10             	mov    0x10(%ebp),%ecx
4380e5:	89 48 04             	mov    %ecx,0x4(%eax)
4380e8:	e8 26 79 00 00       	call   0x43fa13
4380ed:	c2 28 00             	ret    $0x28
4380f0:	90                   	nop
4380f1:	42                   	inc    %edx
4380f2:	7e 43                	jle    0x438137
4380f4:	00 6e 7e             	add    %ch,0x7e(%esi)
4380f7:	43                   	inc    %ebx