412c21:	8b f1                	mov    %ecx,%esi
412c23:	57                   	push   %edi
412c24:	8b 7e 08             	mov    0x8(%esi),%edi
412c27:	85 ff                	test   %edi,%edi
412c29:	75 18                	jne    0x412c43
412c2b:	8b 46 0c             	mov    0xc(%esi),%eax
412c2e:	83 f8 05             	cmp    $0x5,%eax
412c31:	7d 35                	jge    0x412c68
412c33:	5f                   	pop    %edi
412c34:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
412c3b:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
412c41:	5e                   	pop    %esi
412c42:	c3                   	ret
412c43:	8b 47 0c             	mov    0xc(%edi),%eax
412c46:	ff 08                	decl   (%eax)
412c48:	8b 47 0c             	mov    0xc(%edi),%eax
412c4b:	83 38 00             	cmpl   $0x0,(%eax)
412c4e:	74 3e                	je     0x412c8e
412c50:	57                   	push   %edi
412c51:	e8 08 c9 00 00       	call   0x41f55e
412c56:	8b 46 0c             	mov    0xc(%esi),%eax
412c59:	83 c4 04             	add    $0x4,%esp
412c5c:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
412c63:	83 f8 05             	cmp    $0x5,%eax
412c66:	7c cb                	jl     0x412c33
412c68:	83 e8 05             	sub    $0x5,%eax
412c6b:	83 f8 0a             	cmp    $0xa,%eax
412c6e:	77 c3                	ja     0x412c33
412c70:	ff 24 85 a4 2c 41 00 	jmp    *0x412ca4(,%eax,4)
412c77:	8b ce                	mov    %esi,%ecx
412c79:	e8 40 b0 00 00       	call   0x41dcbe
412c7e:	5f                   	pop    %edi
412c7f:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
412c86:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
412c8c:	5e                   	pop    %esi
412c8d:	c3                   	ret
412c8e:	ff 37                	push   (%edi)
412c90:	e8 c9 c8 00 00       	call   0x41f55e
412c95:	ff 77 0c             	push   0xc(%edi)
412c98:	e8 c1 c8 00 00       	call   0x41f55e
412c9d:	83 c4 08             	add    $0x8,%esp
412ca0:	eb ae                	jmp    0x412c50
412ca2:	8b ff                	mov    %edi,%edi
412ca4:	77 2c                	ja     0x412cd2
412ca6:	41                   	inc    %ecx
412ca7:	00 33                	add    %dh,(%ebx)
412ca9:	2c 41                	sub    $0x41,%al
412cab:	00 33                	add    %dh,(%ebx)
412cad:	2c 41                	sub    $0x41,%al
412caf:	00 d5                	add    %dl,%ch
412cb1:	4c                   	dec    %esp
412cb2:	47                   	inc    %edi
412cb3:	00 33                	add    %dh,(%ebx)
412cb5:	2c 41                	sub    $0x41,%al
412cb7:	00 f5                	add    %dh,%ch
412cb9:	4c                   	dec    %esp
412cba:	47                   	inc    %edi
412cbb:	00 0a                	add    %cl,(%edx)
412cbd:	4d                   	dec    %ebp
412cbe:	47                   	inc    %edi
412cbf:	00 23                	add    %ah,(%ebx)
412cc1:	4d                   	dec    %ebp
412cc2:	47                   	inc    %edi
412cc3:	00 4d 4d             	add    %cl,0x4d(%ebp)
412cc6:	47                   	inc    %edi
412cc7:	00 4d 4d             	add    %cl,0x4d(%ebp)
412cca:	47                   	inc    %edi
412ccb:	00 38                	add    %bh,(%eax)
412ccd:	4d                   	dec    %ebp
412cce:	47                   	inc    %edi
412ccf:	00 55 8b             	add    %dl,-0x75(%ebp)
412cd2:	ec                   	in     (%dx),%al
412cd3:	8b 51 0c             	mov    0xc(%ecx),%edx
412cd6:	8b c2                	mov    %edx,%eax
412cd8:	83 ec 10             	sub    $0x10,%esp
412cdb:	83 f8 03             	cmp    $0x3,%eax
412cde:	75 06                	jne    0x412ce6
412ce0:	dd 01                	fldl   (%ecx)
412ce2:	8b e5                	mov    %ebp,%esp
412ce4:	5d                   	pop    %ebp
412ce5:	c3                   	ret
412ce6:	83 f8 01             	cmp    $0x1,%eax
412ce9:	75 0c                	jne    0x412cf7
412ceb:	db 01                	fildl  (%ecx)
412ced:	dd 5d f0             	fstpl  -0x10(%ebp)
412cf0:	dd 45 f0             	fldl   -0x10(%ebp)
412cf3:	8b e5                	mov    %ebp,%esp
412cf5:	5d                   	pop    %ebp
412cf6:	c3                   	ret
412cf7:	83 e8 02             	sub    $0x2,%eax
412cfa:	83 f8 08             	cmp    $0x8,%eax
412cfd:	77 3b                	ja     0x412d3a
412cff:	ff 24 85 40 2d 41 00 	jmp    *0x412d40(,%eax,4)
412d06:	8b 49 08             	mov    0x8(%ecx),%ecx
412d09:	8b 01                	mov    (%ecx),%eax
412d0b:	83 fa 04             	cmp    $0x4,%edx
412d0e:	75 06                	jne    0x412d16
412d10:	66 83 38 30          	cmpw   $0x30,(%eax)
412d14:	74 0d                	je     0x412d23
412d16:	50                   	push   %eax
412d17:	e8 1f f3 00 00       	call   0x42203b
412d1c:	83 c4 04             	add    $0x4,%esp
412d1f:	8b e5                	mov    %ebp,%esp
412d21:	5d                   	pop    %ebp
412d22:	c3                   	ret
412d23:	0f b7 50 02          	movzwl 0x2(%eax),%edx
412d27:	83 fa 78             	cmp    $0x78,%edx
412d2a:	0f 84 50 20 06 00    	je     0x474d80
412d30:	83 fa 58             	cmp    $0x58,%edx
412d33:	75 e1                	jne    0x412d16
412d35:	e9 46 20 06 00       	jmp    0x474d80
412d3a:	d9 ee                	fldz
412d3c:	8b e5                	mov    %ebp,%esp
412d3e:	5d                   	pop    %ebp
412d3f:	c3                   	ret
412d40:	a7                   	cmpsl  %es:(%edi),%ds:(%esi)
412d41:	4d                   	dec    %ebp
412d42:	47                   	inc    %edi
412d43:	00 3a                	add    %bh,(%edx)
412d45:	2d 41 00 06 2d       	sub    $0x2d060041,%eax
412d4a:	41                   	inc    %ecx
412d4b:	00 3a                	add    %bh,(%edx)
412d4d:	2d 41 00 3a 2d       	sub    $0x2d3a0041,%eax
412d52:	41                   	inc    %ecx
412d53:	00 b3 4d 47 00 3a    	add    %dh,0x3a00474d(%ebx)
412d59:	2d 41 00 ce 4d       	sub    $0x4dce0041,%eax
412d5e:	47                   	inc    %edi
412d5f:	00 bf 4d 47 00 cc    	add    %bh,-0x33ffb8b3(%edi)
412d65:	cc                   	int3
412d66:	cc                   	int3
412d67:	cc                   	int3
412d68:	cc                   	int3
412d69:	cc                   	int3
412d6a:	cc                   	int3
412d6b:	cc                   	int3
412d6c:	cc                   	int3
412d6d:	cc                   	int3
412d6e:	cc                   	int3
412d6f:	cc                   	int3
412d70:	55                   	push   %ebp
412d71:	8b ec                	mov    %esp,%ebp
412d73:	83 ec 7c             	sub    $0x7c,%esp
412d76:	53                   	push   %ebx
412d77:	56                   	push   %esi
412d78:	8b 75 0c             	mov    0xc(%ebp),%esi
412d7b:	33 db                	xor    %ebx,%ebx
412d7d:	8b 06                	mov    (%esi),%eax
412d7f:	48                   	dec    %eax
412d80:	57                   	push   %edi
412d81:	8b 7d 08             	mov    0x8(%ebp),%edi
412d84:	89 45 8c             	mov    %eax,-0x74(%ebp)
412d87:	8b 47 04             	mov    0x4(%edi),%eax
412d8a:	8b d1                	mov    %ecx,%edx
412d8c:	89 5d d8             	mov    %ebx,-0x28(%ebp)
412d8f:	89 5d e0             	mov    %ebx,-0x20(%ebp)
412d92:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
412d99:	89 5d c8             	mov    %ebx,-0x38(%ebp)
412d9c:	89 5d d0             	mov    %ebx,-0x30(%ebp)
412d9f:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
412da6:	8b 48 04             	mov    0x4(%eax),%ecx
412da9:	89 55 fc             	mov    %edx,-0x4(%ebp)
412dac:	66 83 79 08 33       	cmpw   $0x33,0x8(%ecx)
412db1:	c7 45 98 00 00 00 00 	movl   $0x0,-0x68(%ebp)
412db8:	c7 45 a0 00 00 00 00 	movl   $0x0,-0x60(%ebp)
412dbf:	c7 45 a4 01 00 00 00 	movl   $0x1,-0x5c(%ebp)
412dc6:	c7 45 a8 00 00 00 00 	movl   $0x0,-0x58(%ebp)
412dcd:	c7 45 b0 00 00 00 00 	movl   $0x0,-0x50(%ebp)
412dd4:	c7 45 b4 01 00 00 00 	movl   $0x1,-0x4c(%ebp)
412ddb:	89 5d f4             	mov    %ebx,-0xc(%ebp)
412dde:	c7 45 88 03 00 00 00 	movl   $0x3,-0x78(%ebp)
412de5:	0f 85 54 46 06 00    	jne    0x47743f
412deb:	8b 09                	mov    (%ecx),%ecx
412ded:	c7 45 0c 02 00 00 00 	movl   $0x2,0xc(%ebp)
412df4:	8b 01                	mov    (%ecx),%eax
412df6:	89 45 ec             	mov    %eax,-0x14(%ebp)
412df9:	89 45 b8             	mov    %eax,-0x48(%ebp)
412dfc:	8b 41 04             	mov    0x4(%ecx),%eax
412dff:	89 45 bc             	mov    %eax,-0x44(%ebp)
412e02:	8b 41 08             	mov    0x8(%ecx),%eax
412e05:	89 45 c0             	mov    %eax,-0x40(%ebp)
412e08:	8b 41 0c             	mov    0xc(%ecx),%eax
412e0b:	89 45 f0             	mov    %eax,-0x10(%ebp)
412e0e:	ff 00                	incl   (%eax)
412e10:	89 45 c4             	mov    %eax,-0x3c(%ebp)
412e13:	33 c0                	xor    %eax,%eax
412e15:	89 45 08             	mov    %eax,0x8(%ebp)
412e18:	38 05 fc 20 4c 00    	cmp    %al,0x4c20fc
412e1e:	75 54                	jne    0x412e74
412e20:	39 05 f0 20 4c 00    	cmp    %eax,0x4c20f0
412e26:	0f 84 6f 03 00 00    	je     0x41319b
412e2c:	38 05 f9 20 4c 00    	cmp    %al,0x4c20f9
412e32:	a1 f4 20 4c 00       	mov    0x4c20f4,%eax
412e37:	0f 85 9f 03 00 00    	jne    0x4131dc
412e3d:	50                   	push   %eax
412e3e:	89 45 08             	mov    %eax,0x8(%ebp)
412e41:	8d 45 b8             	lea    -0x48(%ebp),%eax
412e44:	50                   	push   %eax
412e45:	e8 56 ab ff ff       	call   0x40d9a0
412e4a:	84 c0                	test   %al,%al
412e4c:	0f 84 27 03 00 00    	je     0x413179
412e52:	8b 45 08             	mov    0x8(%ebp),%eax
412e55:	8b 00                	mov    (%eax),%eax
412e57:	85 c0                	test   %eax,%eax
412e59:	0f 84 1a 03 00 00    	je     0x413179
412e5f:	8b 58 10             	mov    0x10(%eax),%ebx
412e62:	8b 40 14             	mov    0x14(%eax),%eax
412e65:	81 e3 00 ff 00 00    	and    $0xff00,%ebx
412e6b:	89 5d f4             	mov    %ebx,-0xc(%ebp)
412e6e:	8b 55 fc             	mov    -0x4(%ebp),%edx
412e71:	89 45 08             	mov    %eax,0x8(%ebp)
412e74:	89 45 f8             	mov    %eax,-0x8(%ebp)
412e77:	85 c0                	test   %eax,%eax
412e79:	0f 84 b5 02 00 00    	je     0x413134
412e7f:	f7 c3 00 01 00 00    	test   $0x100,%ebx
412e85:	0f 85 ca 45 06 00    	jne    0x477455
412e8b:	8b 5d 08             	mov    0x8(%ebp),%ebx
412e8e:	8b 47 04             	mov    0x4(%edi),%eax
412e91:	8b 40 08             	mov    0x8(%eax),%eax
412e94:	66 83 78 08 4e       	cmpw   $0x4e,0x8(%eax)
412e99:	0f 84 d2 45 06 00    	je     0x477471
412e9f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
412ea2:	8b 47 04             	mov    0x4(%edi),%eax
412ea5:	89 5d 94             	mov    %ebx,-0x6c(%ebp)
412ea8:	8b 04 88             	mov    (%eax,%ecx,4),%eax
412eab:	66 83 78 08 00       	cmpw   $0x0,0x8(%eax)
412eb0:	0f 84 2a 46 06 00    	je     0x4774e0
412eb6:	6a ff                	push   $0xffffffff
412eb8:	8d 45 d8             	lea    -0x28(%ebp),%eax
412ebb:	50                   	push   %eax
412ebc:	41                   	inc    %ecx
412ebd:	8d 45 0c             	lea    0xc(%ebp),%eax
412ec0:	50                   	push   %eax
412ec1:	89 4d 0c             	mov    %ecx,0xc(%ebp)
412ec4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
412ec7:	57                   	push   %edi
412ec8:	e8 63 cf ff ff       	call   0x40fe30
412ecd:	85 c0                	test   %eax,%eax
412ecf:	0f 88 2b 02 00 00    	js     0x413100
412ed5:	8d 45 d8             	lea    -0x28(%ebp),%eax
412ed8:	3b d8                	cmp    %eax,%ebx
412eda:	74 1c                	je     0x412ef8
412edc:	83 7b 0c 04          	cmpl   $0x4,0xc(%ebx)
412ee0:	0f 84 a6 02 00 00    	je     0x41318c
412ee6:	8b cb                	mov    %ebx,%ecx
412ee8:	e8 33 fd ff ff       	call   0x412c20
412eed:	8d 45 d8             	lea    -0x28(%ebp),%eax
412ef0:	50                   	push   %eax
412ef1:	8b cb                	mov    %ebx,%ecx
412ef3:	e8 28 e8 ff ff       	call   0x411720
412ef8:	8b 47 04             	mov    0x4(%edi),%eax
412efb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
412efe:	8b 04 88             	mov    (%eax,%ecx,4),%eax
412f01:	66 83 78 08 00       	cmpw   $0x0,0x8(%eax)
412f06:	0f 85 ce 49 06 00    	jne    0x4778da
412f0c:	83 38 0f             	cmpl   $0xf,(%eax)
412f0f:	0f 85 c5 49 06 00    	jne    0x4778da
412f15:	6a ff                	push   $0xffffffff
412f17:	8d 45 d8             	lea    -0x28(%ebp),%eax
412f1a:	50                   	push   %eax
412f1b:	41                   	inc    %ecx
412f1c:	8d 45 0c             	lea    0xc(%ebp),%eax
412f1f:	50                   	push   %eax
412f20:	89 4d 0c             	mov    %ecx,0xc(%ebp)
412f23:	8b 4d fc             	mov    -0x4(%ebp),%ecx
412f26:	57                   	push   %edi
412f27:	e8 04 cf ff ff       	call   0x40fe30
412f2c:	85 c0                	test   %eax,%eax
412f2e:	0f 88 cc 01 00 00    	js     0x413100
412f34:	8d 4d 98             	lea    -0x68(%ebp),%ecx
412f37:	e8 e4 fc ff ff       	call   0x412c20
412f3c:	8d 45 d8             	lea    -0x28(%ebp),%eax
412f3f:	50                   	push   %eax
412f40:	8d 4d 98             	lea    -0x68(%ebp),%ecx
412f43:	e8 d8 e7 ff ff       	call   0x411720
412f48:	8b 4f 04             	mov    0x4(%edi),%ecx
412f4b:	8b 45 0c             	mov    0xc(%ebp),%eax
412f4e:	8b 04 81             	mov    (%ecx,%eax,4),%eax
412f51:	66 83 78 08 00       	cmpw   $0x0,0x8(%eax)
412f56:	0f 84 8c 47 06 00    	je     0x4776e8
412f5c:	8d 4d a8             	lea    -0x58(%ebp),%ecx
412f5f:	e8 bc fc ff ff       	call   0x412c20
412f64:	c7 45 b4 01 00 00 00 	movl   $0x1,-0x4c(%ebp)
412f6b:	c7 45 a8 01 00 00 00 	movl   $0x1,-0x58(%ebp)
412f72:	83 7b 0c 01          	cmpl   $0x1,0xc(%ebx)
412f76:	0f 85 39 02 00 00    	jne    0x4131b5
412f7c:	8b 45 a4             	mov    -0x5c(%ebp),%eax
412f7f:	83 f8 01             	cmp    $0x1,%eax
412f82:	74 22                	je     0x412fa6
412f84:	83 f8 03             	cmp    $0x3,%eax
412f87:	74 1d                	je     0x412fa6
412f89:	83 f8 02             	cmp    $0x2,%eax
412f8c:	74 18                	je     0x412fa6
412f8e:	8d 4d 98             	lea    -0x68(%ebp),%ecx
412f91:	e8 8e 97 00 00       	call   0x41c724
412f96:	8d 4d 98             	lea    -0x68(%ebp),%ecx
412f99:	84 c0                	test   %al,%al
412f9b:	0f 85 43 02 00 00    	jne    0x4131e4
412fa1:	e8 79 9f ff ff       	call   0x40cf1f
412fa6:	83 7d b4 01          	cmpl   $0x1,-0x4c(%ebp)
412faa:	0f 85 91 47 06 00    	jne    0x477741
412fb0:	8b 4f 04             	mov    0x4(%edi),%ecx
412fb3:	8b 45 0c             	mov    0xc(%ebp),%eax
412fb6:	8b 04 81             	mov    (%ecx,%eax,4),%eax
412fb9:	66 83 78 08 7f       	cmpw   $0x7f,0x8(%eax)
412fbe:	0f 85 c4 47 06 00    	jne    0x477788
412fc4:	33 ff                	xor    %edi,%edi
412fc6:	32 d2                	xor    %dl,%dl
412fc8:	8b 06                	mov    (%esi),%eax
412fca:	8d 48 01             	lea    0x1(%eax),%ecx
412fcd:	89 0e                	mov    %ecx,(%esi)
412fcf:	3b 05 10 21 4c 00    	cmp    0x4c2110,%eax
412fd5:	7f 3f                	jg     0x413016
412fd7:	85 c0                	test   %eax,%eax
412fd9:	7e 3b                	jle    0x413016
412fdb:	c1 e0 04             	shl    $0x4,%eax
412fde:	03 05 4c 21 4c 00    	add    0x4c214c,%eax
412fe4:	74 30                	je     0x413016
412fe6:	84 d2                	test   %dl,%dl
412fe8:	75 2c                	jne    0x413016
412fea:	8b 40 04             	mov    0x4(%eax),%eax
412fed:	8b 00                	mov    (%eax),%eax
412fef:	66 83 78 08 00       	cmpw   $0x0,0x8(%eax)
412ff4:	75 d2                	jne    0x412fc8
412ff6:	8b 00                	mov    (%eax),%eax
412ff8:	83 e8 0d             	sub    $0xd,%eax
412ffb:	0f 84 85 01 00 00    	je     0x413186
413001:	48                   	dec    %eax
413002:	75 c4                	jne    0x412fc8
413004:	85 ff                	test   %edi,%edi
413006:	0f 85 74 01 00 00    	jne    0x413180
41300c:	8d 59 ff             	lea    -0x1(%ecx),%ebx
41300f:	b2 01                	mov    $0x1,%dl
413011:	89 5d 90             	mov    %ebx,-0x70(%ebp)
413014:	eb b2                	jmp    0x412fc8
413016:	8d 4d c8             	lea    -0x38(%ebp),%ecx
413019:	e8 68 a2 ff ff       	call   0x40d286
41301e:	8b 5d 08             	mov    0x8(%ebp),%ebx
413021:	83 f8 01             	cmp    $0x1,%eax
413024:	0f 84 72 47 06 00    	je     0x47779c
41302a:	83 7b 0c 08          	cmpl   $0x8,0xc(%ebx)
41302e:	0f 84 73 47 06 00    	je     0x4777a7
413034:	8b 45 a4             	mov    -0x5c(%ebp),%eax
413037:	83 f8 05             	cmp    $0x5,%eax
41303a:	0f 84 69 48 06 00    	je     0x4778a9
413040:	83 f8 0f             	cmp    $0xf,%eax
413043:	0f 84 60 48 06 00    	je     0x4778a9
413049:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41304c:	e8 cf fb ff ff       	call   0x412c20
413051:	d9 ee                	fldz
413053:	8d 55 d8             	lea    -0x28(%ebp),%edx