52a672:	c1 e3 06             	shl    $0x6,%ebx
52a675:	0b ca                	or     %edx,%ecx
52a677:	0b d8                	or     %eax,%ebx
52a679:	89 4c 24 28          	mov    %ecx,0x28(%esp)
52a67d:	0f b6 46 34          	movzbl 0x34(%esi),%eax
52a681:	24 0f                	and    $0xf,%al
52a683:	89 5c 24 40          	mov    %ebx,0x40(%esp)
52a687:	0f b6 c0             	movzbl %al,%eax
52a68a:	99                   	cltd
52a68b:	8b d8                	mov    %eax,%ebx
52a68d:	8b ca                	mov    %edx,%ecx
52a68f:	0f b6 46 33          	movzbl 0x33(%esi),%eax
52a693:	0f a4 d9 08          	shld   $0x8,%ebx,%ecx
52a697:	99                   	cltd
52a698:	c1 e3 08             	shl    $0x8,%ebx
52a69b:	0b ca                	or     %edx,%ecx
52a69d:	0b d8                	or     %eax,%ebx
52a69f:	0f b6 46 32          	movzbl 0x32(%esi),%eax
52a6a3:	0f a4 d9 08          	shld   $0x8,%ebx,%ecx
52a6a7:	99                   	cltd
52a6a8:	c1 e3 08             	shl    $0x8,%ebx
52a6ab:	0b ca                	or     %edx,%ecx
52a6ad:	0b d8                	or     %eax,%ebx
52a6af:	0f b6 46 31          	movzbl 0x31(%esi),%eax
52a6b3:	0f a4 d9 01          	shld   $0x1,%ebx,%ecx
52a6b7:	c0 e8 07             	shr    $0x7,%al
52a6ba:	0f b6 c0             	movzbl %al,%eax
52a6bd:	03 db                	add    %ebx,%ebx
52a6bf:	99                   	cltd
52a6c0:	0b d8                	or     %eax,%ebx
52a6c2:	0b ca                	or     %edx,%ecx
52a6c4:	0f b6 46 37          	movzbl 0x37(%esi),%eax
52a6c8:	24 01                	and    $0x1,%al
52a6ca:	89 9c 24 88 00 00 00 	mov    %ebx,0x88(%esp)
52a6d1:	0f b6 c0             	movzbl %al,%eax
52a6d4:	99                   	cltd
52a6d5:	8b d8                	mov    %eax,%ebx
52a6d7:	89 4c 24 64          	mov    %ecx,0x64(%esp)
52a6db:	0f b6 46 36          	movzbl 0x36(%esi),%eax
52a6df:	8b ca                	mov    %edx,%ecx
52a6e1:	0f a4 d9 08          	shld   $0x8,%ebx,%ecx
52a6e5:	99                   	cltd
52a6e6:	c1 e3 08             	shl    $0x8,%ebx
52a6e9:	0b ca                	or     %edx,%ecx
52a6eb:	0b d8                	or     %eax,%ebx
52a6ed:	0f b6 46 35          	movzbl 0x35(%esi),%eax
52a6f1:	0f a4 d9 08          	shld   $0x8,%ebx,%ecx
52a6f5:	99                   	cltd
52a6f6:	c1 e3 08             	shl    $0x8,%ebx
52a6f9:	0b ca                	or     %edx,%ecx
52a6fb:	0b d8                	or     %eax,%ebx
52a6fd:	0f b6 46 34          	movzbl 0x34(%esi),%eax
52a701:	0f a4 d9 04          	shld   $0x4,%ebx,%ecx
52a705:	c1 e3 04             	shl    $0x4,%ebx
52a708:	c0 e8 04             	shr    $0x4,%al
52a70b:	0f b6 c0             	movzbl %al,%eax
52a70e:	99                   	cltd
52a70f:	0b d8                	or     %eax,%ebx
52a711:	0b ca                	or     %edx,%ecx
52a713:	0f b6 46 39          	movzbl 0x39(%esi),%eax
52a717:	24 3f                	and    $0x3f,%al
52a719:	89 5c 24 70          	mov    %ebx,0x70(%esp)
52a71d:	0f b6 c0             	movzbl %al,%eax
52a720:	99                   	cltd
52a721:	8b e8                	mov    %eax,%ebp
52a723:	89 4c 24 4c          	mov    %ecx,0x4c(%esp)
52a727:	0f b6 46 38          	movzbl 0x38(%esi),%eax
52a72b:	8b da                	mov    %edx,%ebx
52a72d:	99                   	cltd
52a72e:	0f a4 eb 08          	shld   $0x8,%ebp,%ebx
52a732:	0b da                	or     %edx,%ebx
52a734:	c1 e5 08             	shl    $0x8,%ebp
52a737:	0b e8                	or     %eax,%ebp
52a739:	0f b6 46 37          	movzbl 0x37(%esi),%eax
52a73d:	d0 e8                	shr    $1,%al
52a73f:	0f b6 c0             	movzbl %al,%eax
52a742:	99                   	cltd
52a743:	0f a4 eb 07          	shld   $0x7,%ebp,%ebx
52a747:	0b da                	or     %edx,%ebx
52a749:	c1 e5 07             	shl    $0x7,%ebp
52a74c:	0b e8                	or     %eax,%ebp
52a74e:	89 9c 24 9c 00 00 00 	mov    %ebx,0x9c(%esp)
52a755:	0f b6 46 3c          	movzbl 0x3c(%esi),%eax
52a759:	24 07                	and    $0x7,%al
52a75b:	89 ac 24 80 00 00 00 	mov    %ebp,0x80(%esp)
52a762:	0f b6 c0             	movzbl %al,%eax
52a765:	99                   	cltd
52a766:	8b c8                	mov    %eax,%ecx
52a768:	8b fa                	mov    %edx,%edi
52a76a:	0f b6 46 3b          	movzbl 0x3b(%esi),%eax
52a76e:	0f a4 cf 08          	shld   $0x8,%ecx,%edi
52a772:	99                   	cltd
52a773:	0b fa                	or     %edx,%edi
52a775:	c1 e1 08             	shl    $0x8,%ecx
52a778:	0b c8                	or     %eax,%ecx
52a77a:	0f b6 46 3a          	movzbl 0x3a(%esi),%eax
52a77e:	99                   	cltd
52a77f:	8b f0                	mov    %eax,%esi
52a781:	8b 84 24 e0 00 00 00 	mov    0xe0(%esp),%eax
52a788:	0f a4 cf 0a          	shld   $0xa,%ecx,%edi
52a78c:	0f a4 f2 02          	shld   $0x2,%esi,%edx
52a790:	c1 e1 0a             	shl    $0xa,%ecx
52a793:	c1 e6 02             	shl    $0x2,%esi
52a796:	89 4c 24 7c          	mov    %ecx,0x7c(%esp)
52a79a:	8a 48 39             	mov    0x39(%eax),%cl
52a79d:	c0 e9 06             	shr    $0x6,%cl
52a7a0:	0f b6 c1             	movzbl %cl,%eax
52a7a3:	8b 8c 24 e0 00 00 00 	mov    0xe0(%esp),%ecx
52a7aa:	99                   	cltd
52a7ab:	0b f0                	or     %eax,%esi
52a7ad:	89 7c 24 3c          	mov    %edi,0x3c(%esp)
52a7b1:	81 e6 ff ff 1f 00    	and    $0x1fffff,%esi
52a7b7:	09 74 24 7c          	or     %esi,0x7c(%esp)
52a7bb:	0f b6 41 3f          	movzbl 0x3f(%ecx),%eax
52a7bf:	99                   	cltd
52a7c0:	8b f0                	mov    %eax,%esi
52a7c2:	8b fa                	mov    %edx,%edi
52a7c4:	0f b6 41 3e          	movzbl 0x3e(%ecx),%eax
52a7c8:	0f a4 f7 08          	shld   $0x8,%esi,%edi
52a7cc:	99                   	cltd
52a7cd:	c1 e6 08             	shl    $0x8,%esi
52a7d0:	0b fa                	or     %edx,%edi
52a7d2:	0b f0                	or     %eax,%esi
52a7d4:	0f b6 41 3d          	movzbl 0x3d(%ecx),%eax
52a7d8:	0f a4 f7 08          	shld   $0x8,%esi,%edi
52a7dc:	99                   	cltd
52a7dd:	c1 e6 08             	shl    $0x8,%esi
52a7e0:	0b fa                	or     %edx,%edi
52a7e2:	0b f0                	or     %eax,%esi
52a7e4:	0f b6 41 3c          	movzbl 0x3c(%ecx),%eax
52a7e8:	c0 e8 03             	shr    $0x3,%al
52a7eb:	0f a4 f7 05          	shld   $0x5,%esi,%edi
52a7ef:	0f b6 c0             	movzbl %al,%eax
52a7f2:	c1 e6 05             	shl    $0x5,%esi
52a7f5:	99                   	cltd
52a7f6:	0b f0                	or     %eax,%esi
52a7f8:	0b fa                	or     %edx,%edi
52a7fa:	89 74 24 68          	mov    %esi,0x68(%esp)
52a7fe:	0f b6 41 2c          	movzbl 0x2c(%ecx),%eax
52a802:	99                   	cltd
52a803:	8b c8                	mov    %eax,%ecx
52a805:	8b 84 24 e0 00 00 00 	mov    0xe0(%esp),%eax
52a80c:	0f a4 ca 10          	shld   $0x10,%ecx,%edx
52a810:	6a 00                	push   $0x0
52a812:	c1 e1 10             	shl    $0x10,%ecx
52a815:	0f b6 40 2a          	movzbl 0x2a(%eax),%eax
52a819:	99                   	cltd
52a81a:	0b c8                	or     %eax,%ecx
52a81c:	8b 84 24 e4 00 00 00 	mov    0xe4(%esp),%eax
52a823:	81 e1 ff ff 1f 00    	and    $0x1fffff,%ecx
52a829:	89 8c 24 94 00 00 00 	mov    %ecx,0x94(%esp)
52a830:	33 c9                	xor    %ecx,%ecx
52a832:	68 7d 6f 0a 00       	push   $0xa6f7d
52a837:	0f b6 40 2b          	movzbl 0x2b(%eax),%eax
52a83b:	99                   	cltd
52a83c:	0f a4 c2 08          	shld   $0x8,%eax,%edx
52a840:	57                   	push   %edi
52a841:	c1 e0 08             	shl    $0x8,%eax
52a844:	0b ca                	or     %edx,%ecx
52a846:	09 84 24 9c 00 00 00 	or     %eax,0x9c(%esp)
52a84d:	56                   	push   %esi
52a84e:	89 4c 24 6c          	mov    %ecx,0x6c(%esp)
52a852:	e8 29 76 0a 00       	call   0x5d1e80
52a857:	29 84 24 90 00 00 00 	sub    %eax,0x90(%esp)
52a85e:	8b 84 24 e0 00 00 00 	mov    0xe0(%esp),%eax
52a865:	19 54 24 5c          	sbb    %edx,0x5c(%esp)
52a869:	6a 00                	push   $0x0
52a86b:	68 7d 6f 0a 00       	push   $0xa6f7d
52a870:	0f b6 40 27          	movzbl 0x27(%eax),%eax
52a874:	24 07                	and    $0x7,%al
52a876:	0f b6 c0             	movzbl %al,%eax
52a879:	99                   	cltd
52a87a:	8b ca                	mov    %edx,%ecx
52a87c:	0f a4 c1 08          	shld   $0x8,%eax,%ecx
52a880:	53                   	push   %ebx
52a881:	c1 e0 08             	shl    $0x8,%eax
52a884:	89 44 24 38          	mov    %eax,0x38(%esp)
52a888:	8b 84 24 ec 00 00 00 	mov    0xec(%esp),%eax
52a88f:	55                   	push   %ebp
52a890:	0f b6 40 26          	movzbl 0x26(%eax),%eax
52a894:	99                   	cltd
52a895:	09 44 24 3c          	or     %eax,0x3c(%esp)
52a899:	0b ca                	or     %edx,%ecx
52a89b:	8b 44 24 3c          	mov    0x3c(%esp),%eax
52a89f:	0f a4 c1 08          	shld   $0x8,%eax,%ecx
52a8a3:	c1 e0 08             	shl    $0x8,%eax
52a8a6:	89 44 24 3c          	mov    %eax,0x3c(%esp)
52a8aa:	8b 84 24 f0 00 00 00 	mov    0xf0(%esp),%eax
52a8b1:	0f b6 40 25          	movzbl 0x25(%eax),%eax
52a8b5:	99                   	cltd
52a8b6:	09 44 24 3c          	or     %eax,0x3c(%esp)
52a8ba:	0b ca                	or     %edx,%ecx
52a8bc:	8b 44 24 3c          	mov    0x3c(%esp),%eax
52a8c0:	0f a4 c1 02          	shld   $0x2,%eax,%ecx
52a8c4:	c1 e0 02             	shl    $0x2,%eax
52a8c7:	89 44 24 3c          	mov    %eax,0x3c(%esp)
52a8cb:	8b 84 24 f0 00 00 00 	mov    0xf0(%esp),%eax
52a8d2:	0f b6 40 24          	movzbl 0x24(%eax),%eax
52a8d6:	c0 e8 06             	shr    $0x6,%al
52a8d9:	0f b6 c0             	movzbl %al,%eax
52a8dc:	99                   	cltd
52a8dd:	09 44 24 3c          	or     %eax,0x3c(%esp)
52a8e1:	0b ca                	or     %edx,%ecx
52a8e3:	89 4c 24 7c          	mov    %ecx,0x7c(%esp)
52a8e7:	e8 94 75 0a 00       	call   0x5d1e80
52a8ec:	29 44 24 2c          	sub    %eax,0x2c(%esp)
52a8f0:	6a 00                	push   $0x0
52a8f2:	19 54 24 70          	sbb    %edx,0x70(%esp)
52a8f6:	68 ad 39 0f 00       	push   $0xf39ad
52a8fb:	57                   	push   %edi
52a8fc:	56                   	push   %esi
52a8fd:	e8 7e 75 0a 00       	call   0x5d1e80
52a902:	29 44 24 2c          	sub    %eax,0x2c(%esp)
52a906:	6a 00                	push   $0x0
52a908:	19 54 24 70          	sbb    %edx,0x70(%esp)
52a90c:	68 d1 15 02 00       	push   $0x215d1
52a911:	ff 74 24 44          	push   0x44(%esp)
52a915:	ff b4 24 88 00 00 00 	push   0x88(%esp)
52a91c:	e8 5f 75 0a 00       	call   0x5d1e80
52a921:	01 44 24 2c          	add    %eax,0x2c(%esp)
52a925:	8b 84 24 e0 00 00 00 	mov    0xe0(%esp),%eax
52a92c:	11 54 24 6c          	adc    %edx,0x6c(%esp)
52a930:	6a 00                	push   $0x0
52a932:	68 67 fb 09 00       	push   $0x9fb67
52a937:	0f b6 40 22          	movzbl 0x22(%eax),%eax
52a93b:	24 01                	and    $0x1,%al
52a93d:	0f b6 c0             	movzbl %al,%eax
52a940:	99                   	cltd
52a941:	8b ca                	mov    %edx,%ecx
52a943:	0f a4 c1 08          	shld   $0x8,%eax,%ecx
52a947:	ff 74 24 44          	push   0x44(%esp)
52a94b:	c1 e0 08             	shl    $0x8,%eax
52a94e:	89 44 24 24          	mov    %eax,0x24(%esp)
52a952:	8b 84 24 ec 00 00 00 	mov    0xec(%esp),%eax
52a959:	ff b4 24 88 00 00 00 	push   0x88(%esp)
52a960:	0f b6 40 21          	movzbl 0x21(%eax),%eax
52a964:	99                   	cltd
52a965:	09 44 24 28          	or     %eax,0x28(%esp)
52a969:	0b ca                	or     %edx,%ecx
52a96b:	8b 44 24 28          	mov    0x28(%esp),%eax
52a96f:	0f a4 c1 08          	shld   $0x8,%eax,%ecx
52a973:	c1 e0 08             	shl    $0x8,%eax
52a976:	89 44 24 28          	mov    %eax,0x28(%esp)
52a97a:	8b 84 24 f0 00 00 00 	mov    0xf0(%esp),%eax
52a981:	0f b6 40 20          	movzbl 0x20(%eax),%eax
52a985:	99                   	cltd
52a986:	09 44 24 28          	or     %eax,0x28(%esp)
52a98a:	0b ca                	or     %edx,%ecx
52a98c:	8b 44 24 28          	mov    0x28(%esp),%eax
52a990:	0f a4 c1 04          	shld   $0x4,%eax,%ecx
52a994:	c1 e0 04             	shl    $0x4,%eax
52a997:	89 44 24 28          	mov    %eax,0x28(%esp)
52a99b:	8b 84 24 f0 00 00 00 	mov    0xf0(%esp),%eax
52a9a2:	0f b6 40 1f          	movzbl 0x1f(%eax),%eax
52a9a6:	c0 e8 04             	shr    $0x4,%al
52a9a9:	0f b6 c0             	movzbl %al,%eax
52a9ac:	99                   	cltd
52a9ad:	09 44 24 28          	or     %eax,0x28(%esp)
52a9b1:	0b ca                	or     %edx,%ecx
52a9b3:	89 4c 24 54          	mov    %ecx,0x54(%esp)
52a9b7:	e8 c4 74 0a 00       	call   0x5d1e80
52a9bc:	01 44 24 18          	add    %eax,0x18(%esp)
52a9c0:	6a 00                	push   $0x0
52a9c2:	11 54 24 48          	adc    %edx,0x48(%esp)
52a9c6:	68 7d 6f 0a 00       	push   $0xa6f7d
52a9cb:	ff 74 24 6c          	push   0x6c(%esp)
52a9cf:	ff b4 24 94 00 00 00 	push   0x94(%esp)
52a9d6:	e8 a5 74 0a 00       	call   0x5d1e80
52a9db:	29 44 24 18          	sub    %eax,0x18(%esp)
52a9df:	6a 00                	push   $0x0
52a9e1:	19 54 24 48          	sbb    %edx,0x48(%esp)
52a9e5:	68 ad 39 0f 00       	push   $0xf39ad
52a9ea:	53                   	push   %ebx
52a9eb:	55                   	push   %ebp
52a9ec:	e8 8f 74 0a 00       	call   0x5d1e80
52a9f1:	29 44 24 18          	sub    %eax,0x18(%esp)
52a9f5:	6a 00                	push   $0x0
52a9f7:	19 54 24 48          	sbb    %edx,0x48(%esp)
52a9fb:	68 18 2d 07 00       	push   $0x72d18
52aa00:	57                   	push   %edi
52aa01:	56                   	push   %esi
52aa02:	e8 79 74 0a 00       	call   0x5d1e80
52aa07:	01 44 24 18          	add    %eax,0x18(%esp)
52aa0b:	6a 00                	push   $0x0
52aa0d:	11 54 24 48          	adc    %edx,0x48(%esp)
52aa11:	68 d1 15 02 00       	push   $0x215d1
52aa16:	ff 74 24 54          	push   0x54(%esp)
52aa1a:	ff 74 24 7c          	push   0x7c(%esp)
52aa1e:	e8 5d 74 0a 00       	call   0x5d1e80
52aa23:	01 44 24 18          	add    %eax,0x18(%esp)
52aa27:	8b 84 24 e0 00 00 00 	mov    0xe0(%esp),%eax
52aa2e:	11 54 24 44          	adc    %edx,0x44(%esp)
52aa32:	0f b6 40 12          	movzbl 0x12(%eax),%eax
52aa36:	24 07                	and    $0x7,%al
52aa38:	0f b6 c0             	movzbl %al,%eax
52aa3b:	99                   	cltd
52aa3c:	8b ca                	mov    %edx,%ecx
52aa3e:	0f a4 c1 08          	shld   $0x8,%eax,%ecx
52aa42:	c1 e0 08             	shl    $0x8,%eax
52aa45:	89 44 24 1c          	mov    %eax,0x1c(%esp)
52aa49:	8b 84 24 e0 00 00 00 	mov    0xe0(%esp),%eax
52aa50:	6a 00                	push   $0x0
52aa52:	68 13 2c 0a 00       	push   $0xa2c13
52aa57:	ff 74 24 30          	push   0x30(%esp)
52aa5b:	0f b6 40 11          	movzbl 0x11(%eax),%eax
52aa5f:	99                   	cltd
52aa60:	09 44 24 28          	or     %eax,0x28(%esp)
52aa64:	0b ca                	or     %edx,%ecx
52aa66:	8b 44 24 28          	mov    0x28(%esp),%eax
52aa6a:	0f a4 c1 08          	shld   $0x8,%eax,%ecx
52aa6e:	ff 74 24 4c          	push   0x4c(%esp)
52aa72:	c1 e0 08             	shl    $0x8,%eax
52aa75:	89 44 24 2c          	mov    %eax,0x2c(%esp)
52aa79:	8b 84 24 f0 00 00 00 	mov    0xf0(%esp),%eax
52aa80:	0f b6 40 10          	movzbl 0x10(%eax),%eax
52aa84:	99                   	cltd
52aa85:	09 44 24 2c          	or     %eax,0x2c(%esp)
52aa89:	0b ca                	or     %edx,%ecx
52aa8b:	8b 44 24 2c          	mov    0x2c(%esp),%eax
52aa8f:	0f a4 c1 02          	shld   $0x2,%eax,%ecx
52aa93:	c1 e0 02             	shl    $0x2,%eax
52aa96:	89 44 24 2c          	mov    %eax,0x2c(%esp)
52aa9a:	8b 84 24 f0 00 00 00 	mov    0xf0(%esp),%eax
52aaa1:	0f b6 40 0f          	movzbl 0xf(%eax),%eax
52aaa5:	c0 e8 06             	shr    $0x6,%al
52aaa8:	0f b6 c0             	movzbl %al,%eax
52aaab:	99                   	cltd
52aaac:	09 44 24 2c          	or     %eax,0x2c(%esp)
52aab0:	0b ca                	or     %edx,%ecx
52aab2:	89 8c 24 a4 00 00 00 	mov    %ecx,0xa4(%esp)
52aab9:	e8 c2 73 0a 00       	call   0x5d1e80
52aabe:	01 44 24 1c          	add    %eax,0x1c(%esp)
52aac2:	8b 84 24 e0 00 00 00 	mov    0xe0(%esp),%eax
52aac9:	11 94 24 94 00 00 00 	adc    %edx,0x94(%esp)
52aad0:	6a 00                	push   $0x0
52aad2:	68 67 fb 09 00       	push   $0x9fb67
52aad7:	0f b6 40 17          	movzbl 0x17(%eax),%eax
52aadb:	ff 74 24 30          	push   0x30(%esp)
52aadf:	99                   	cltd
52aae0:	8b c8                	mov    %eax,%ecx
52aae2:	8b 84 24 ec 00 00 00 	mov    0xec(%esp),%eax
52aae9:	ff 74 24 4c          	push   0x4c(%esp)
52aaed:	0f a4 ca 10          	shld   $0x10,%ecx,%edx
52aaf1:	0f b6 40 15          	movzbl 0x15(%eax),%eax
52aaf5:	99                   	cltd
52aaf6:	c1 e1 10             	shl    $0x10,%ecx
52aaf9:	0b c8                	or     %eax,%ecx
52aafb:	8b 84 24 f0 00 00 00 	mov    0xf0(%esp),%eax
52ab02:	81 e1 ff ff 1f 00    	and    $0x1fffff,%ecx
52ab08:	89 4c 24 40          	mov    %ecx,0x40(%esp)