63f798:	83 c4 08             	add    $0x8,%esp
63f79b:	52                   	push   %edx
63f79c:	50                   	push   %eax
63f79d:	8b 45 08             	mov    0x8(%ebp),%eax
63f7a0:	8b 55 0c             	mov    0xc(%ebp),%edx
63f7a3:	33 c0                	xor    %eax,%eax
63f7a5:	81 e2 00 ff 00 00    	and    $0xff00,%edx
63f7ab:	0f ac d0 18          	shrd   $0x18,%edx,%eax
63f7af:	c1 ea 18             	shr    $0x18,%edx
63f7b2:	0b 04 24             	or     (%esp),%eax
63f7b5:	0b 54 24 04          	or     0x4(%esp),%edx
63f7b9:	83 c4 08             	add    $0x8,%esp
63f7bc:	52                   	push   %edx
63f7bd:	50                   	push   %eax
63f7be:	8b 45 08             	mov    0x8(%ebp),%eax
63f7c1:	8b 55 0c             	mov    0xc(%ebp),%edx
63f7c4:	33 c0                	xor    %eax,%eax
63f7c6:	81 e2 00 00 ff 00    	and    $0xff0000,%edx
63f7cc:	8b c2                	mov    %edx,%eax
63f7ce:	c1 e8 08             	shr    $0x8,%eax
63f7d1:	33 d2                	xor    %edx,%edx
63f7d3:	0b 04 24             	or     (%esp),%eax
63f7d6:	0b 54 24 04          	or     0x4(%esp),%edx
63f7da:	83 c4 08             	add    $0x8,%esp
63f7dd:	52                   	push   %edx
63f7de:	50                   	push   %eax
63f7df:	8b 45 08             	mov    0x8(%ebp),%eax
63f7e2:	8b 55 0c             	mov    0xc(%ebp),%edx
63f7e5:	33 c0                	xor    %eax,%eax
63f7e7:	81 e2 00 00 00 ff    	and    $0xff000000,%edx
63f7ed:	8b c2                	mov    %edx,%eax
63f7ef:	c1 e8 18             	shr    $0x18,%eax
63f7f2:	33 d2                	xor    %edx,%edx
63f7f4:	0b 04 24             	or     (%esp),%eax
63f7f7:	0b 54 24 04          	or     0x4(%esp),%edx
63f7fb:	83 c4 08             	add    $0x8,%esp
63f7fe:	89 45 f8             	mov    %eax,-0x8(%ebp)
63f801:	89 55 fc             	mov    %edx,-0x4(%ebp)
63f804:	8b 45 f8             	mov    -0x8(%ebp),%eax
63f807:	8b 55 fc             	mov    -0x4(%ebp),%edx
63f80a:	59                   	pop    %ecx
63f80b:	59                   	pop    %ecx
63f80c:	5d                   	pop    %ebp
63f80d:	c2 08 00             	ret    $0x8
63f810:	53                   	push   %ebx
63f811:	56                   	push   %esi
63f812:	57                   	push   %edi
63f813:	81 c4 30 fd ff ff    	add    $0xfffffd30,%esp
63f819:	8b f0                	mov    %eax,%esi
63f81b:	33 c0                	xor    %eax,%eax
63f81d:	89 46 48             	mov    %eax,0x48(%esi)
63f820:	8b 46 50             	mov    0x50(%esi),%eax
63f823:	89 04 24             	mov    %eax,(%esp)
63f826:	8b 46 54             	mov    0x54(%esi),%eax
63f829:	89 44 24 04          	mov    %eax,0x4(%esp)
63f82d:	8b 46 58             	mov    0x58(%esi),%eax
63f830:	89 44 24 08          	mov    %eax,0x8(%esp)
63f834:	8b 46 5c             	mov    0x5c(%esi),%eax
63f837:	89 44 24 0c          	mov    %eax,0xc(%esp)
63f83b:	8b 46 60             	mov    0x60(%esi),%eax
63f83e:	89 44 24 10          	mov    %eax,0x10(%esp)
63f842:	8b 46 64             	mov    0x64(%esi),%eax
63f845:	89 44 24 14          	mov    %eax,0x14(%esp)
63f849:	8b 46 68             	mov    0x68(%esi),%eax
63f84c:	89 44 24 18          	mov    %eax,0x18(%esp)
63f850:	8b 46 6c             	mov    0x6c(%esi),%eax
63f853:	89 44 24 1c          	mov    %eax,0x1c(%esp)
63f857:	8b 46 70             	mov    0x70(%esi),%eax
63f85a:	89 44 24 20          	mov    %eax,0x20(%esp)
63f85e:	8b 46 74             	mov    0x74(%esi),%eax
63f861:	89 44 24 24          	mov    %eax,0x24(%esp)
63f865:	8b 46 78             	mov    0x78(%esi),%eax
63f868:	89 44 24 28          	mov    %eax,0x28(%esp)
63f86c:	8b 46 7c             	mov    0x7c(%esi),%eax
63f86f:	89 44 24 2c          	mov    %eax,0x2c(%esp)
63f873:	8b 86 80 00 00 00    	mov    0x80(%esi),%eax
63f879:	89 44 24 30          	mov    %eax,0x30(%esp)
63f87d:	8b 86 84 00 00 00    	mov    0x84(%esi),%eax
63f883:	89 44 24 34          	mov    %eax,0x34(%esp)
63f887:	8b 86 88 00 00 00    	mov    0x88(%esi),%eax
63f88d:	89 44 24 38          	mov    %eax,0x38(%esp)
63f891:	8b 86 8c 00 00 00    	mov    0x8c(%esi),%eax
63f897:	89 44 24 3c          	mov    %eax,0x3c(%esp)
63f89b:	8d 54 24 50          	lea    0x50(%esp),%edx
63f89f:	8d 86 90 00 00 00    	lea    0x90(%esi),%eax
63f8a5:	b9 80 00 00 00       	mov    $0x80,%ecx
63f8aa:	e8 71 31 dc ff       	call   0x402a20
63f8af:	bf 10 00 00 00       	mov    $0x10,%edi
63f8b4:	8d 5c 24 50          	lea    0x50(%esp),%ebx
63f8b8:	ff 73 04             	push   0x4(%ebx)
63f8bb:	ff 33                	push   (%ebx)
63f8bd:	e8 3a fe ff ff       	call   0x63f6fc
63f8c2:	89 03                	mov    %eax,(%ebx)
63f8c4:	89 53 04             	mov    %edx,0x4(%ebx)
63f8c7:	83 c3 08             	add    $0x8,%ebx
63f8ca:	4f                   	dec    %edi
63f8cb:	75 eb                	jne    0x63f8b8
63f8cd:	bf 40 00 00 00       	mov    $0x40,%edi
63f8d2:	8d 8c 24 c0 00 00 00 	lea    0xc0(%esp),%ecx
63f8d9:	8b 01                	mov    (%ecx),%eax
63f8db:	8b 51 04             	mov    0x4(%ecx),%edx
63f8de:	0f ac d0 13          	shrd   $0x13,%edx,%eax
63f8e2:	c1 ea 13             	shr    $0x13,%edx
63f8e5:	52                   	push   %edx
63f8e6:	50                   	push   %eax
63f8e7:	8b 11                	mov    (%ecx),%edx
63f8e9:	c1 e2 0d             	shl    $0xd,%edx
63f8ec:	33 c0                	xor    %eax,%eax
63f8ee:	0b 04 24             	or     (%esp),%eax
63f8f1:	0b 54 24 04          	or     0x4(%esp),%edx
63f8f5:	83 c4 08             	add    $0x8,%esp
63f8f8:	52                   	push   %edx
63f8f9:	50                   	push   %eax
63f8fa:	8b 41 04             	mov    0x4(%ecx),%eax
63f8fd:	c1 e8 1d             	shr    $0x1d,%eax
63f900:	33 d2                	xor    %edx,%edx
63f902:	52                   	push   %edx
63f903:	50                   	push   %eax
63f904:	8b 01                	mov    (%ecx),%eax
63f906:	8b 51 04             	mov    0x4(%ecx),%edx
63f909:	0f a4 c2 03          	shld   $0x3,%eax,%edx
63f90d:	c1 e0 03             	shl    $0x3,%eax
63f910:	0b 04 24             	or     (%esp),%eax
63f913:	0b 54 24 04          	or     0x4(%esp),%edx
63f917:	83 c4 08             	add    $0x8,%esp
63f91a:	33 04 24             	xor    (%esp),%eax
63f91d:	33 54 24 04          	xor    0x4(%esp),%edx
63f921:	83 c4 08             	add    $0x8,%esp
63f924:	52                   	push   %edx
63f925:	50                   	push   %eax
63f926:	8b 01                	mov    (%ecx),%eax
63f928:	8b 51 04             	mov    0x4(%ecx),%edx
63f92b:	0f ac d0 06          	shrd   $0x6,%edx,%eax
63f92f:	c1 ea 06             	shr    $0x6,%edx
63f932:	33 04 24             	xor    (%esp),%eax
63f935:	33 54 24 04          	xor    0x4(%esp),%edx
63f939:	83 c4 08             	add    $0x8,%esp
63f93c:	03 41 d8             	add    -0x28(%ecx),%eax
63f93f:	13 51 dc             	adc    -0x24(%ecx),%edx
63f942:	52                   	push   %edx
63f943:	50                   	push   %eax
63f944:	8b 41 98             	mov    -0x68(%ecx),%eax
63f947:	8b 51 9c             	mov    -0x64(%ecx),%edx
63f94a:	0f ac d0 01          	shrd   $0x1,%edx,%eax
63f94e:	d1 ea                	shr    $1,%edx
63f950:	52                   	push   %edx
63f951:	50                   	push   %eax
63f952:	8b 51 98             	mov    -0x68(%ecx),%edx
63f955:	c1 e2 1f             	shl    $0x1f,%edx
63f958:	33 c0                	xor    %eax,%eax
63f95a:	0b 04 24             	or     (%esp),%eax
63f95d:	0b 54 24 04          	or     0x4(%esp),%edx
63f961:	83 c4 08             	add    $0x8,%esp
63f964:	52                   	push   %edx
63f965:	50                   	push   %eax
63f966:	8b 41 98             	mov    -0x68(%ecx),%eax
63f969:	8b 51 9c             	mov    -0x64(%ecx),%edx
63f96c:	0f ac d0 08          	shrd   $0x8,%edx,%eax
63f970:	c1 ea 08             	shr    $0x8,%edx
63f973:	52                   	push   %edx
63f974:	50                   	push   %eax
63f975:	8b 51 98             	mov    -0x68(%ecx),%edx
63f978:	c1 e2 18             	shl    $0x18,%edx
63f97b:	33 c0                	xor    %eax,%eax
63f97d:	0b 04 24             	or     (%esp),%eax
63f980:	0b 54 24 04          	or     0x4(%esp),%edx
63f984:	83 c4 08             	add    $0x8,%esp
63f987:	33 04 24             	xor    (%esp),%eax
63f98a:	33 54 24 04          	xor    0x4(%esp),%edx
63f98e:	83 c4 08             	add    $0x8,%esp
63f991:	52                   	push   %edx
63f992:	50                   	push   %eax
63f993:	8b 41 98             	mov    -0x68(%ecx),%eax
63f996:	8b 51 9c             	mov    -0x64(%ecx),%edx
63f999:	0f ac d0 07          	shrd   $0x7,%edx,%eax
63f99d:	c1 ea 07             	shr    $0x7,%edx
63f9a0:	33 04 24             	xor    (%esp),%eax
63f9a3:	33 54 24 04          	xor    0x4(%esp),%edx
63f9a7:	83 c4 08             	add    $0x8,%esp
63f9aa:	03 04 24             	add    (%esp),%eax
63f9ad:	13 54 24 04          	adc    0x4(%esp),%edx
63f9b1:	83 c4 08             	add    $0x8,%esp
63f9b4:	03 41 90             	add    -0x70(%ecx),%eax
63f9b7:	13 51 94             	adc    -0x6c(%ecx),%edx
63f9ba:	89 41 10             	mov    %eax,0x10(%ecx)
63f9bd:	89 51 14             	mov    %edx,0x14(%ecx)
63f9c0:	83 c1 08             	add    $0x8,%ecx
63f9c3:	4f                   	dec    %edi
63f9c4:	0f 85 0f ff ff ff    	jne    0x63f8d9
63f9ca:	8b 44 24 20          	mov    0x20(%esp),%eax
63f9ce:	8b 54 24 24          	mov    0x24(%esp),%edx
63f9d2:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
63f9d6:	c1 ea 0e             	shr    $0xe,%edx
63f9d9:	52                   	push   %edx
63f9da:	50                   	push   %eax
63f9db:	8b 54 24 28          	mov    0x28(%esp),%edx
63f9df:	c1 e2 12             	shl    $0x12,%edx
63f9e2:	33 c0                	xor    %eax,%eax
63f9e4:	0b 04 24             	or     (%esp),%eax
63f9e7:	0b 54 24 04          	or     0x4(%esp),%edx
63f9eb:	83 c4 08             	add    $0x8,%esp
63f9ee:	52                   	push   %edx
63f9ef:	50                   	push   %eax
63f9f0:	8b 44 24 28          	mov    0x28(%esp),%eax
63f9f4:	8b 54 24 2c          	mov    0x2c(%esp),%edx
63f9f8:	0f ac d0 12          	shrd   $0x12,%edx,%eax
63f9fc:	c1 ea 12             	shr    $0x12,%edx
63f9ff:	52                   	push   %edx
63fa00:	50                   	push   %eax
63fa01:	8b 54 24 30          	mov    0x30(%esp),%edx
63fa05:	c1 e2 0e             	shl    $0xe,%edx
63fa08:	33 c0                	xor    %eax,%eax
63fa0a:	0b 04 24             	or     (%esp),%eax
63fa0d:	0b 54 24 04          	or     0x4(%esp),%edx
63fa11:	83 c4 08             	add    $0x8,%esp
63fa14:	33 04 24             	xor    (%esp),%eax
63fa17:	33 54 24 04          	xor    0x4(%esp),%edx
63fa1b:	83 c4 08             	add    $0x8,%esp
63fa1e:	52                   	push   %edx
63fa1f:	50                   	push   %eax
63fa20:	8b 44 24 2c          	mov    0x2c(%esp),%eax
63fa24:	c1 e8 09             	shr    $0x9,%eax
63fa27:	33 d2                	xor    %edx,%edx
63fa29:	52                   	push   %edx
63fa2a:	50                   	push   %eax
63fa2b:	8b 44 24 30          	mov    0x30(%esp),%eax
63fa2f:	8b 54 24 34          	mov    0x34(%esp),%edx
63fa33:	0f a4 c2 17          	shld   $0x17,%eax,%edx
63fa37:	c1 e0 17             	shl    $0x17,%eax
63fa3a:	0b 04 24             	or     (%esp),%eax
63fa3d:	0b 54 24 04          	or     0x4(%esp),%edx
63fa41:	83 c4 08             	add    $0x8,%esp
63fa44:	33 04 24             	xor    (%esp),%eax
63fa47:	33 54 24 04          	xor    0x4(%esp),%edx
63fa4b:	83 c4 08             	add    $0x8,%esp
63fa4e:	03 44 24 38          	add    0x38(%esp),%eax
63fa52:	13 54 24 3c          	adc    0x3c(%esp),%edx
63fa56:	52                   	push   %edx
63fa57:	50                   	push   %eax
63fa58:	8b 44 24 28          	mov    0x28(%esp),%eax
63fa5c:	8b 54 24 2c          	mov    0x2c(%esp),%edx
63fa60:	23 44 24 30          	and    0x30(%esp),%eax
63fa64:	23 54 24 34          	and    0x34(%esp),%edx
63fa68:	52                   	push   %edx
63fa69:	50                   	push   %eax
63fa6a:	8b 44 24 30          	mov    0x30(%esp),%eax
63fa6e:	8b 54 24 34          	mov    0x34(%esp),%edx
63fa72:	f7 d0                	not    %eax
63fa74:	f7 d2                	not    %edx
63fa76:	23 44 24 40          	and    0x40(%esp),%eax
63fa7a:	23 54 24 44          	and    0x44(%esp),%edx
63fa7e:	33 04 24             	xor    (%esp),%eax
63fa81:	33 54 24 04          	xor    0x4(%esp),%edx
63fa85:	83 c4 08             	add    $0x8,%esp
63fa88:	03 04 24             	add    (%esp),%eax
63fa8b:	13 54 24 04          	adc    0x4(%esp),%edx
63fa8f:	83 c4 08             	add    $0x8,%esp
63fa92:	05 22 ae 28 d7       	add    $0xd728ae22,%eax
63fa97:	81 d2 98 2f 8a 42    	adc    $0x428a2f98,%edx
63fa9d:	03 44 24 50          	add    0x50(%esp),%eax
63faa1:	13 54 24 54          	adc    0x54(%esp),%edx
63faa5:	89 44 24 40          	mov    %eax,0x40(%esp)
63faa9:	89 54 24 44          	mov    %edx,0x44(%esp)
63faad:	8b 04 24             	mov    (%esp),%eax
63fab0:	8b 54 24 04          	mov    0x4(%esp),%edx
63fab4:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
63fab8:	c1 ea 1c             	shr    $0x1c,%edx
63fabb:	52                   	push   %edx
63fabc:	50                   	push   %eax
63fabd:	8b 54 24 08          	mov    0x8(%esp),%edx
63fac1:	c1 e2 04             	shl    $0x4,%edx
63fac4:	33 c0                	xor    %eax,%eax
63fac6:	0b 04 24             	or     (%esp),%eax
63fac9:	0b 54 24 04          	or     0x4(%esp),%edx
63facd:	83 c4 08             	add    $0x8,%esp
63fad0:	52                   	push   %edx
63fad1:	50                   	push   %eax
63fad2:	8b 44 24 0c          	mov    0xc(%esp),%eax
63fad6:	c1 e8 02             	shr    $0x2,%eax
63fad9:	33 d2                	xor    %edx,%edx
63fadb:	52                   	push   %edx
63fadc:	50                   	push   %eax
63fadd:	8b 44 24 10          	mov    0x10(%esp),%eax
63fae1:	8b 54 24 14          	mov    0x14(%esp),%edx
63fae5:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
63fae9:	c1 e0 1e             	shl    $0x1e,%eax
63faec:	0b 04 24             	or     (%esp),%eax
63faef:	0b 54 24 04          	or     0x4(%esp),%edx
63faf3:	83 c4 08             	add    $0x8,%esp
63faf6:	33 04 24             	xor    (%esp),%eax
63faf9:	33 54 24 04          	xor    0x4(%esp),%edx
63fafd:	83 c4 08             	add    $0x8,%esp
63fb00:	52                   	push   %edx
63fb01:	50                   	push   %eax
63fb02:	8b 44 24 0c          	mov    0xc(%esp),%eax
63fb06:	c1 e8 07             	shr    $0x7,%eax
63fb09:	33 d2                	xor    %edx,%edx
63fb0b:	52                   	push   %edx
63fb0c:	50                   	push   %eax
63fb0d:	8b 44 24 10          	mov    0x10(%esp),%eax
63fb11:	8b 54 24 14          	mov    0x14(%esp),%edx
63fb15:	0f a4 c2 19          	shld   $0x19,%eax,%edx
63fb19:	c1 e0 19             	shl    $0x19,%eax
63fb1c:	0b 04 24             	or     (%esp),%eax
63fb1f:	0b 54 24 04          	or     0x4(%esp),%edx
63fb23:	83 c4 08             	add    $0x8,%esp
63fb26:	33 04 24             	xor    (%esp),%eax
63fb29:	33 54 24 04          	xor    0x4(%esp),%edx
63fb2d:	83 c4 08             	add    $0x8,%esp
63fb30:	52                   	push   %edx
63fb31:	50                   	push   %eax
63fb32:	8b 44 24 08          	mov    0x8(%esp),%eax
63fb36:	8b 54 24 0c          	mov    0xc(%esp),%edx
63fb3a:	23 44 24 10          	and    0x10(%esp),%eax
63fb3e:	23 54 24 14          	and    0x14(%esp),%edx
63fb42:	52                   	push   %edx
63fb43:	50                   	push   %eax
63fb44:	8b 44 24 10          	mov    0x10(%esp),%eax
63fb48:	8b 54 24 14          	mov    0x14(%esp),%edx
63fb4c:	23 44 24 20          	and    0x20(%esp),%eax
63fb50:	23 54 24 24          	and    0x24(%esp),%edx
63fb54:	33 04 24             	xor    (%esp),%eax
63fb57:	33 54 24 04          	xor    0x4(%esp),%edx
63fb5b:	83 c4 08             	add    $0x8,%esp
63fb5e:	52                   	push   %edx
63fb5f:	50                   	push   %eax
63fb60:	8b 44 24 18          	mov    0x18(%esp),%eax
63fb64:	8b 54 24 1c          	mov    0x1c(%esp),%edx
63fb68:	23 44 24 20          	and    0x20(%esp),%eax
63fb6c:	23 54 24 24          	and    0x24(%esp),%edx
63fb70:	33 04 24             	xor    (%esp),%eax
63fb73:	33 54 24 04          	xor    0x4(%esp),%edx
63fb77:	83 c4 08             	add    $0x8,%esp
63fb7a:	03 04 24             	add    (%esp),%eax
63fb7d:	13 54 24 04          	adc    0x4(%esp),%edx
63fb81:	83 c4 08             	add    $0x8,%esp
63fb84:	89 44 24 48          	mov    %eax,0x48(%esp)
63fb88:	89 54 24 4c          	mov    %edx,0x4c(%esp)
63fb8c:	8b 44 24 18          	mov    0x18(%esp),%eax
63fb90:	8b 54 24 1c          	mov    0x1c(%esp),%edx
63fb94:	03 44 24 40          	add    0x40(%esp),%eax
63fb98:	13 54 24 44          	adc    0x44(%esp),%edx
63fb9c:	89 44 24 18          	mov    %eax,0x18(%esp)
63fba0:	89 54 24 1c          	mov    %edx,0x1c(%esp)
63fba4:	8b 44 24 40          	mov    0x40(%esp),%eax
63fba8:	8b 54 24 44          	mov    0x44(%esp),%edx
63fbac:	03 44 24 48          	add    0x48(%esp),%eax
63fbb0:	13 54 24 4c          	adc    0x4c(%esp),%edx
63fbb4:	89 44 24 38          	mov    %eax,0x38(%esp)
63fbb8:	89 54 24 3c          	mov    %edx,0x3c(%esp)