413cb8:	39 35 f0 20 4c 00    	cmp    %esi,0x4c20f0
413cbe:	0f 84 20 04 00 00    	je     0x4140e4
413cc4:	80 3d f9 20 4c 00 00 	cmpb   $0x0,0x4c20f9
413ccb:	0f 85 96 33 06 00    	jne    0x477067
413cd1:	8b 35 f4 20 4c 00    	mov    0x4c20f4,%esi
413cd7:	56                   	push   %esi
413cd8:	8d 45 d4             	lea    -0x2c(%ebp),%eax
413cdb:	50                   	push   %eax
413cdc:	e8 bf 9c ff ff       	call   0x40d9a0
413ce1:	84 c0                	test   %al,%al
413ce3:	0f 84 57 03 00 00    	je     0x414040
413ce9:	8b 0e                	mov    (%esi),%ecx
413ceb:	85 c9                	test   %ecx,%ecx
413ced:	0f 84 4d 03 00 00    	je     0x414040
413cf3:	8b 41 10             	mov    0x10(%ecx),%eax
413cf6:	8b 71 14             	mov    0x14(%ecx),%esi
413cf9:	25 00 ff 00 00       	and    $0xff00,%eax
413cfe:	89 45 e4             	mov    %eax,-0x1c(%ebp)
413d01:	89 75 08             	mov    %esi,0x8(%ebp)
413d04:	89 75 e8             	mov    %esi,-0x18(%ebp)
413d07:	85 f6                	test   %esi,%esi
413d09:	0f 84 dd 02 00 00    	je     0x413fec
413d0f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
413d12:	a9 00 01 00 00       	test   $0x100,%eax
413d17:	0f 85 5d 36 06 00    	jne    0x47737a
413d1d:	a9 00 04 00 00       	test   $0x400,%eax
413d22:	0f 85 4c 33 06 00    	jne    0x477074
413d28:	c6 45 f3 01          	movb   $0x1,-0xd(%ebp)
413d2c:	8b 45 10             	mov    0x10(%ebp),%eax
413d2f:	a8 01                	test   $0x1,%al
413d31:	74 22                	je     0x413d55
413d33:	50                   	push   %eax
413d34:	8d 45 e4             	lea    -0x1c(%ebp),%eax
413d37:	50                   	push   %eax
413d38:	8d 45 d4             	lea    -0x2c(%ebp),%eax
413d3b:	50                   	push   %eax
413d3c:	e8 fc 9a ff ff       	call   0x40d83d
413d41:	84 c0                	test   %al,%al
413d43:	74 0d                	je     0x413d52
413d45:	f7 45 e4 00 02 00 00 	testl  $0x200,-0x1c(%ebp)
413d4c:	0f 85 61 35 06 00    	jne    0x4772b3
413d52:	8b 45 10             	mov    0x10(%ebp),%eax
413d55:	a8 02                	test   $0x2,%al
413d57:	0f 85 58 03 00 00    	jne    0x4140b5
413d5d:	8a 55 fb             	mov    -0x5(%ebp),%dl
413d60:	84 d2                	test   %dl,%dl
413d62:	0f 85 35 33 06 00    	jne    0x47709d
413d68:	8b 45 0c             	mov    0xc(%ebp),%eax
413d6b:	ff 00                	incl   (%eax)
413d6d:	8b 08                	mov    (%eax),%ecx
413d6f:	8b 43 04             	mov    0x4(%ebx),%eax
413d72:	8b 04 88             	mov    (%eax,%ecx,4),%eax
413d75:	66 83 78 08 4e       	cmpw   $0x4e,0x8(%eax)
413d7a:	0f 84 7d 03 00 00    	je     0x4140fd
413d80:	8b 7d 08             	mov    0x8(%ebp),%edi
413d83:	8b 75 0c             	mov    0xc(%ebp),%esi
413d86:	8b 53 04             	mov    0x4(%ebx),%edx
413d89:	8b 0e                	mov    (%esi),%ecx
413d8b:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
413d8e:	66 83 78 08 41       	cmpw   $0x41,0x8(%eax)
413d93:	0f 85 e4 01 00 00    	jne    0x413f7d
413d99:	80 7d fb 00          	cmpb   $0x0,-0x5(%ebp)
413d9d:	8d 41 01             	lea    0x1(%ecx),%eax
413da0:	89 06                	mov    %eax,(%esi)
413da2:	8b 04 82             	mov    (%edx,%eax,4),%eax
413da5:	0f bf 48 0a          	movswl 0xa(%eax),%ecx
413da9:	89 4d d0             	mov    %ecx,-0x30(%ebp)
413dac:	0f 85 9e 35 06 00    	jne    0x477350
413db2:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
413db6:	0f 84 c5 00 00 00    	je     0x413e81
413dbc:	83 7d c8 04          	cmpl   $0x4,-0x38(%ebp)
413dc0:	0f 84 59 33 06 00    	je     0x47711f
413dc6:	8d 4d bc             	lea    -0x44(%ebp),%ecx
413dc9:	e8 52 ee ff ff       	call   0x412c20
413dce:	6a 10                	push   $0x10
413dd0:	c7 45 c8 04 00 00 00 	movl   $0x4,-0x38(%ebp)
413dd7:	e8 0e b7 00 00       	call   0x41f4ea
413ddc:	8b f0                	mov    %eax,%esi
413dde:	83 c4 04             	add    $0x4,%esp
413de1:	85 f6                	test   %esi,%esi
413de3:	0f 84 e0 04 00 00    	je     0x4142c9
413de9:	68 00 dc 49 00       	push   $0x49dc00
413dee:	e8 e8 ce 00 00       	call   0x420cdb
413df3:	8d 78 01             	lea    0x1(%eax),%edi
413df6:	83 c4 04             	add    $0x4,%esp
413df9:	89 46 04             	mov    %eax,0x4(%esi)
413dfc:	85 ff                	test   %edi,%edi
413dfe:	0f 84 b4 04 00 00    	je     0x4142b8
413e04:	8d 47 07             	lea    0x7(%edi),%eax
413e07:	83 e0 f8             	and    $0xfffffff8,%eax
413e0a:	33 c9                	xor    %ecx,%ecx
413e0c:	89 46 08             	mov    %eax,0x8(%esi)
413e0f:	ba 02 00 00 00       	mov    $0x2,%edx
413e14:	f7 e2                	mul    %edx
413e16:	0f 90 c1             	seto   %cl
413e19:	f7 d9                	neg    %ecx
413e1b:	0b c8                	or     %eax,%ecx
413e1d:	51                   	push   %ecx
413e1e:	e8 52 b0 00 00       	call   0x41ee75
413e23:	83 c4 04             	add    $0x4,%esp
413e26:	8d 0c 3f             	lea    (%edi,%edi,1),%ecx
413e29:	51                   	push   %ecx
413e2a:	68 00 dc 49 00       	push   $0x49dc00
413e2f:	50                   	push   %eax
413e30:	89 06                	mov    %eax,(%esi)
413e32:	e8 49 b0 00 00       	call   0x41ee80
413e37:	83 c4 0c             	add    $0xc,%esp
413e3a:	6a 04                	push   $0x4
413e3c:	e8 a9 b6 00 00       	call   0x41f4ea
413e41:	83 c4 04             	add    $0x4,%esp
413e44:	85 c0                	test   %eax,%eax
413e46:	0f 84 76 04 00 00    	je     0x4142c2
413e4c:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
413e52:	8b 7d 08             	mov    0x8(%ebp),%edi
413e55:	89 46 0c             	mov    %eax,0xc(%esi)
413e58:	89 75 c4             	mov    %esi,-0x3c(%ebp)
413e5b:	8d 45 bc             	lea    -0x44(%ebp),%eax
413e5e:	3b f8                	cmp    %eax,%edi
413e60:	74 1c                	je     0x413e7e
413e62:	83 7f 0c 04          	cmpl   $0x4,0xc(%edi)
413e66:	0f 84 c8 32 06 00    	je     0x477134
413e6c:	8b cf                	mov    %edi,%ecx
413e6e:	e8 ad ed ff ff       	call   0x412c20
413e73:	8d 45 bc             	lea    -0x44(%ebp),%eax
413e76:	50                   	push   %eax
413e77:	8b cf                	mov    %edi,%ecx
413e79:	e8 a2 d8 ff ff       	call   0x411720
413e7e:	8b 4d d0             	mov    -0x30(%ebp),%ecx
413e81:	8b 45 0c             	mov    0xc(%ebp),%eax
413e84:	8b 30                	mov    (%eax),%esi
413e86:	8b 43 04             	mov    0x4(%ebx),%eax
413e89:	8b 04 b0             	mov    (%eax,%esi,4),%eax
413e8c:	66 83 78 08 4e       	cmpw   $0x4e,0x8(%eax)
413e91:	0f 84 b4 03 00 00    	je     0x41424b
413e97:	83 7f 0c 05          	cmpl   $0x5,0xc(%edi)
413e9b:	0f 84 49 04 00 00    	je     0x4142ea
413ea1:	33 d2                	xor    %edx,%edx
413ea3:	89 55 e8             	mov    %edx,-0x18(%ebp)
413ea6:	3b 73 08             	cmp    0x8(%ebx),%esi
413ea9:	0f 83 88 00 00 00    	jae    0x413f37
413eaf:	90                   	nop
413eb0:	8b 43 04             	mov    0x4(%ebx),%eax
413eb3:	8b 0c b0             	mov    (%eax,%esi,4),%ecx
413eb6:	0f b7 41 08          	movzwl 0x8(%ecx),%eax
413eba:	66 83 f8 33          	cmp    $0x33,%ax
413ebe:	74 35                	je     0x413ef5
413ec0:	66 83 f8 4e          	cmp    $0x4e,%ax
413ec4:	74 2c                	je     0x413ef2
413ec6:	66 83 f8 4f          	cmp    $0x4f,%ax
413eca:	74 1a                	je     0x413ee6
413ecc:	66 83 f8 47          	cmp    $0x47,%ax
413ed0:	74 20                	je     0x413ef2
413ed2:	66 83 f8 48          	cmp    $0x48,%ax
413ed6:	74 0e                	je     0x413ee6
413ed8:	66 83 f8 40          	cmp    $0x40,%ax
413edc:	74 52                	je     0x413f30
413ede:	66 83 f8 7f          	cmp    $0x7f,%ax
413ee2:	74 50                	je     0x413f34
413ee4:	eb 04                	jmp    0x413eea
413ee6:	4a                   	dec    %edx
413ee7:	89 55 e8             	mov    %edx,-0x18(%ebp)
413eea:	46                   	inc    %esi
413eeb:	3b 73 08             	cmp    0x8(%ebx),%esi
413eee:	72 c0                	jb     0x413eb0
413ef0:	eb 42                	jmp    0x413f34
413ef2:	42                   	inc    %edx
413ef3:	eb f2                	jmp    0x413ee7
413ef5:	8b 09                	mov    (%ecx),%ecx
413ef7:	8b 51 04             	mov    0x4(%ecx),%edx
413efa:	3b 55 d8             	cmp    -0x28(%ebp),%edx
413efd:	74 05                	je     0x413f04
413eff:	8b 55 e8             	mov    -0x18(%ebp),%edx
413f02:	eb bc                	jmp    0x413ec0
413f04:	8b 09                	mov    (%ecx),%ecx
413f06:	8b 7d d4             	mov    -0x2c(%ebp),%edi
413f09:	89 4d b8             	mov    %ecx,-0x48(%ebp)
413f0c:	85 d2                	test   %edx,%edx
413f0e:	0f 84 74 33 06 00    	je     0x477288
413f14:	66 8b 09             	mov    (%ecx),%cx
413f17:	66 3b 0f             	cmp    (%edi),%cx
413f1a:	75 e3                	jne    0x413eff
413f1c:	8b 4d b8             	mov    -0x48(%ebp),%ecx
413f1f:	83 c1 02             	add    $0x2,%ecx
413f22:	83 c7 02             	add    $0x2,%edi
413f25:	89 4d b8             	mov    %ecx,-0x48(%ebp)
413f28:	4a                   	dec    %edx
413f29:	75 e9                	jne    0x413f14
413f2b:	e9 58 33 06 00       	jmp    0x477288
413f30:	85 d2                	test   %edx,%edx
413f32:	75 aa                	jne    0x413ede
413f34:	8b 7d 08             	mov    0x8(%ebp),%edi
413f37:	8b 75 f4             	mov    -0xc(%ebp),%esi
413f3a:	6a ff                	push   $0xffffffff
413f3c:	8d 45 bc             	lea    -0x44(%ebp),%eax
413f3f:	50                   	push   %eax
413f40:	ff 75 0c             	push   0xc(%ebp)
413f43:	8b ce                	mov    %esi,%ecx
413f45:	53                   	push   %ebx
413f46:	e8 e5 be ff ff       	call   0x40fe30
413f4b:	85 c0                	test   %eax,%eax
413f4d:	0f 88 ec 33 06 00    	js     0x47733f
413f53:	8d 45 bc             	lea    -0x44(%ebp),%eax
413f56:	c6 05 fc 20 4c 00 00 	movb   $0x0,0x4c20fc
413f5d:	3b f8                	cmp    %eax,%edi
413f5f:	74 1c                	je     0x413f7d
413f61:	83 7d c8 04          	cmpl   $0x4,-0x38(%ebp)
413f65:	0f 84 c6 02 00 00    	je     0x414231
413f6b:	8b cf                	mov    %edi,%ecx
413f6d:	e8 ae ec ff ff       	call   0x412c20
413f72:	8d 45 bc             	lea    -0x44(%ebp),%eax
413f75:	50                   	push   %eax
413f76:	8b cf                	mov    %edi,%ecx
413f78:	e8 a3 d7 ff ff       	call   0x411720
413f7d:	8b 7d 0c             	mov    0xc(%ebp),%edi
413f80:	8b 53 04             	mov    0x4(%ebx),%edx
413f83:	8b 0f                	mov    (%edi),%ecx
413f85:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
413f88:	0f b7 40 08          	movzwl 0x8(%eax),%eax
413f8c:	66 83 f8 7f          	cmp    $0x7f,%ax
413f90:	74 25                	je     0x413fb7
413f92:	66 83 f8 40          	cmp    $0x40,%ax
413f96:	0f 85 c7 33 06 00    	jne    0x477363
413f9c:	8d 41 01             	lea    0x1(%ecx),%eax
413f9f:	89 07                	mov    %eax,(%edi)
413fa1:	8b 04 82             	mov    (%edx,%eax,4),%eax
413fa4:	66 83 78 08 33       	cmpw   $0x33,0x8(%eax)
413fa9:	0f 85 43 03 00 00    	jne    0x4142f2
413faf:	8b 55 b4             	mov    -0x4c(%ebp),%edx
413fb2:	e9 a9 fc ff ff       	jmp    0x413c60
413fb7:	8b 75 d4             	mov    -0x2c(%ebp),%esi
413fba:	8b 5d b4             	mov    -0x4c(%ebp),%ebx
413fbd:	ff 0b                	decl   (%ebx)
413fbf:	75 12                	jne    0x413fd3
413fc1:	56                   	push   %esi
413fc2:	e8 97 b5 00 00       	call   0x41f55e
413fc7:	83 c4 04             	add    $0x4,%esp
413fca:	53                   	push   %ebx
413fcb:	e8 8e b5 00 00       	call   0x41f55e
413fd0:	83 c4 04             	add    $0x4,%esp
413fd3:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
413fd6:	e8 45 ec ff ff       	call   0x412c20
413fdb:	8d 4d bc             	lea    -0x44(%ebp),%ecx
413fde:	e8 3d ec ff ff       	call   0x412c20
413fe3:	5f                   	pop    %edi
413fe4:	5e                   	pop    %esi
413fe5:	5b                   	pop    %ebx
413fe6:	8b e5                	mov    %ebp,%esp
413fe8:	5d                   	pop    %ebp
413fe9:	c2 0c 00             	ret    $0xc
413fec:	80 7d fb 00          	cmpb   $0x0,-0x5(%ebp)
413ff0:	0f 85 a1 32 06 00    	jne    0x477297
413ff6:	68 00 dc 49 00       	push   $0x49dc00
413ffb:	8d 4d bc             	lea    -0x44(%ebp),%ecx
413ffe:	e8 b6 8d ff ff       	call   0x40cdb9
414003:	ff 75 10             	push   0x10(%ebp)
414006:	8d 45 bc             	lea    -0x44(%ebp),%eax
414009:	6a 00                	push   $0x0
41400b:	50                   	push   %eax
41400c:	8d 45 d4             	lea    -0x2c(%ebp),%eax
41400f:	50                   	push   %eax
414010:	e8 d4 96 ff ff       	call   0x40d6e9
414015:	ff 75 10             	push   0x10(%ebp)
414018:	8d 45 e4             	lea    -0x1c(%ebp),%eax
41401b:	50                   	push   %eax
41401c:	8d 45 e8             	lea    -0x18(%ebp),%eax
41401f:	50                   	push   %eax
414020:	8d 45 d4             	lea    -0x2c(%ebp),%eax
414023:	50                   	push   %eax
414024:	e8 1c 96 ff ff       	call   0x40d645
414029:	8b 45 e8             	mov    -0x18(%ebp),%eax
41402c:	89 45 08             	mov    %eax,0x8(%ebp)
41402f:	8b f0                	mov    %eax,%esi
414031:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
414035:	0f 84 17 fd ff ff    	je     0x413d52
41403b:	e9 ec fc ff ff       	jmp    0x413d2c
414040:	33 f6                	xor    %esi,%esi
414042:	e9 ba fc ff ff       	jmp    0x413d01
414047:	50                   	push   %eax
414048:	e8 a9 2a ff ff       	call   0x406af6
41404d:	89 45 dc             	mov    %eax,-0x24(%ebp)
414050:	8b 45 d4             	mov    -0x2c(%ebp),%eax
414053:	85 c0                	test   %eax,%eax
414055:	74 09                	je     0x414060
414057:	50                   	push   %eax
414058:	e8 01 b5 00 00       	call   0x41f55e
41405d:	83 c4 04             	add    $0x4,%esp
414060:	8b 45 dc             	mov    -0x24(%ebp),%eax
414063:	33 c9                	xor    %ecx,%ecx
414065:	ba 02 00 00 00       	mov    $0x2,%edx
41406a:	f7 e2                	mul    %edx
41406c:	0f 90 c1             	seto   %cl
41406f:	f7 d9                	neg    %ecx
414071:	0b c8                	or     %eax,%ecx
414073:	51                   	push   %ecx
414074:	e8 71 b4 00 00       	call   0x41f4ea
414079:	83 c4 04             	add    $0x4,%esp
41407c:	33 c9                	xor    %ecx,%ecx
41407e:	89 45 d4             	mov    %eax,-0x2c(%ebp)
414081:	66 89 0c 78          	mov    %cx,(%eax,%edi,2)
414085:	e9 fc fb ff ff       	jmp    0x413c86
41408a:	83 e8 00             	sub    $0x0,%eax
41408d:	0f 84 9d 2f 06 00    	je     0x477030
414093:	83 e8 02             	sub    $0x2,%eax
414096:	0f 85 72 2f 06 00    	jne    0x47700e
41409c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
41409f:	50                   	push   %eax
4140a0:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4140a3:	50                   	push   %eax
4140a4:	b9 e0 20 4c 00       	mov    $0x4c20e0,%ecx
4140a9:	e8 32 9c 00 00       	call   0x41dce0
4140ae:	8b f0                	mov    %eax,%esi
4140b0:	e9 4c fc ff ff       	jmp    0x413d01
4140b5:	6a 01                	push   $0x1
4140b7:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4140ba:	50                   	push   %eax
4140bb:	8d 45 b0             	lea    -0x50(%ebp),%eax
4140be:	50                   	push   %eax
4140bf:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4140c2:	50                   	push   %eax
4140c3:	e8 7d 95 ff ff       	call   0x40d645
4140c8:	83 7d b0 00          	cmpl   $0x0,-0x50(%ebp)
4140cc:	0f 84 8b fc ff ff    	je     0x413d5d
4140d2:	f7 45 e4 00 02 00 00 	testl  $0x200,-0x1c(%ebp)
4140d9:	0f 84 7e fc ff ff    	je     0x413d5d
4140df:	e9 cf 31 06 00       	jmp    0x4772b3
4140e4:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4140e7:	50                   	push   %eax
4140e8:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4140eb:	50                   	push   %eax
4140ec:	b9 e0 20 4c 00       	mov    $0x4c20e0,%ecx
4140f1:	e8 ea 9b 00 00       	call   0x41dce0
4140f6:	8b f0                	mov    %eax,%esi
4140f8:	e9 04 fc ff ff       	jmp    0x413d01
4140fd:	84 d2                	test   %dl,%dl
4140ff:	0f 85 b1 2f 06 00    	jne    0x4770b6
414105:	88 55 f3             	mov    %dl,-0xd(%ebp)
414108:	8b 55 0c             	mov    0xc(%ebp),%edx
41410b:	8b 43 04             	mov    0x4(%ebx),%eax
41410e:	8b 0a                	mov    (%edx),%ecx
414110:	8b 75 f4             	mov    -0xc(%ebp),%esi
414113:	8b 04 88             	mov    (%eax,%ecx,4),%eax
414116:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
41411d:	66 83 78 08 4e       	cmpw   $0x4e,0x8(%eax)
414122:	0f bf 78 0a          	movswl 0xa(%eax),%edi
414126:	0f 85 95 00 00 00    	jne    0x4141c1
41412c:	8d 64 24 00          	lea    0x0(%esp),%esp
414130:	ff 02                	incl   (%edx)
414132:	8b 0a                	mov    (%edx),%ecx
414134:	8b 43 04             	mov    0x4(%ebx),%eax
414137:	8b 04 88             	mov    (%eax,%ecx,4),%eax