4167d7:	e8 59 62 ff ff       	call   0x40ca35
4167dc:	8b f8                	mov    %eax,%edi
4167de:	eb 02                	jmp    0x4167e2
4167e0:	8b fe                	mov    %esi,%edi
4167e2:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4167e6:	8b cb                	mov    %ebx,%ecx
4167e8:	57                   	push   %edi
4167e9:	e8 98 4e 00 00       	call   0x41b686
4167ee:	6a 1c                	push   $0x1c
4167f0:	e8 ae 8a 02 00       	call   0x43f2a3
4167f5:	59                   	pop    %ecx
4167f6:	89 45 f0             	mov    %eax,-0x10(%ebp)
4167f9:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
416800:	85 c0                	test   %eax,%eax
416802:	74 0a                	je     0x41680e
416804:	57                   	push   %edi
416805:	8b c8                	mov    %eax,%ecx
416807:	e8 65 62 ff ff       	call   0x40ca71
41680c:	8b f0                	mov    %eax,%esi
41680e:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
416812:	8b 45 08             	mov    0x8(%ebp),%eax
416815:	8b 48 0c             	mov    0xc(%eax),%ecx
416818:	8b 41 10             	mov    0x10(%ecx),%eax
41681b:	89 70 0c             	mov    %esi,0xc(%eax)
41681e:	8b 41 10             	mov    0x10(%ecx),%eax
416821:	89 46 10             	mov    %eax,0x10(%esi)
416824:	8b c7                	mov    %edi,%eax
416826:	89 71 10             	mov    %esi,0x10(%ecx)
416829:	89 4e 0c             	mov    %ecx,0xc(%esi)
41682c:	e8 e2 91 02 00       	call   0x43fa13
416831:	c2 04 00             	ret    $0x4
416834:	55                   	push   %ebp
416835:	8b ec                	mov    %esp,%ebp
416837:	51                   	push   %ecx
416838:	53                   	push   %ebx
416839:	56                   	push   %esi
41683a:	8b f1                	mov    %ecx,%esi
41683c:	33 d2                	xor    %edx,%edx
41683e:	57                   	push   %edi
41683f:	39 56 68             	cmp    %edx,0x68(%esi)
416842:	76 4d                	jbe    0x416891
416844:	8b fa                	mov    %edx,%edi
416846:	33 c0                	xor    %eax,%eax
416848:	8b ca                	mov    %edx,%ecx
41684a:	83 e1 1f             	and    $0x1f,%ecx
41684d:	40                   	inc    %eax
41684e:	d3 e0                	shl    %cl,%eax
416850:	8b da                	mov    %edx,%ebx
416852:	8b 4e 24             	mov    0x24(%esi),%ecx
416855:	c1 eb 05             	shr    $0x5,%ebx
416858:	89 45 fc             	mov    %eax,-0x4(%ebp)
41685b:	85 04 99             	test   %eax,(%ecx,%ebx,4)
41685e:	74 28                	je     0x416888
416860:	8b 46 04             	mov    0x4(%esi),%eax
416863:	8b 4d fc             	mov    -0x4(%ebp),%ecx
416866:	85 0c 98             	test   %ecx,(%eax,%ebx,4)
416869:	74 1d                	je     0x416888
41686b:	8b 5e 34             	mov    0x34(%esi),%ebx
41686e:	8b 46 14             	mov    0x14(%esi),%eax
416871:	8b 0c 1f             	mov    (%edi,%ebx,1),%ecx
416874:	8b 04 07             	mov    (%edi,%eax,1),%eax
416877:	3b c8                	cmp    %eax,%ecx
416879:	75 36                	jne    0x4168b1
41687b:	8b 4e 14             	mov    0x14(%esi),%ecx
41687e:	8b 44 1f 04          	mov    0x4(%edi,%ebx,1),%eax
416882:	3b 44 0f 04          	cmp    0x4(%edi,%ecx,1),%eax
416886:	75 10                	jne    0x416898
416888:	42                   	inc    %edx
416889:	83 c7 08             	add    $0x8,%edi
41688c:	3b 56 68             	cmp    0x68(%esi),%edx
41688f:	72 b5                	jb     0x416846
416891:	32 c0                	xor    %al,%al
416893:	5f                   	pop    %edi
416894:	5e                   	pop    %esi
416895:	5b                   	pop    %ebx
416896:	c9                   	leave
416897:	c3                   	ret
416898:	8b 46 14             	mov    0x14(%esi),%eax
41689b:	8b 4c d3 04          	mov    0x4(%ebx,%edx,8),%ecx
41689f:	2b 4e 4c             	sub    0x4c(%esi),%ecx
4168a2:	83 e1 fe             	and    $0xfffffffe,%ecx
4168a5:	8b 44 d0 04          	mov    0x4(%eax,%edx,8),%eax
4168a9:	2b 46 4c             	sub    0x4c(%esi),%eax
4168ac:	83 e0 fe             	and    $0xfffffffe,%eax
4168af:	eb 0c                	jmp    0x4168bd
4168b1:	2b 46 4c             	sub    0x4c(%esi),%eax
4168b4:	2b 4e 4c             	sub    0x4c(%esi),%ecx
4168b7:	83 e0 fe             	and    $0xfffffffe,%eax
4168ba:	83 e1 fe             	and    $0xfffffffe,%ecx
4168bd:	3b c8                	cmp    %eax,%ecx
4168bf:	0f 9c c0             	setl   %al
4168c2:	eb cf                	jmp    0x416893
4168c4:	55                   	push   %ebp
4168c5:	8b ec                	mov    %esp,%ebp
4168c7:	51                   	push   %ecx
4168c8:	53                   	push   %ebx
4168c9:	56                   	push   %esi
4168ca:	8b f1                	mov    %ecx,%esi
4168cc:	33 d2                	xor    %edx,%edx
4168ce:	57                   	push   %edi
4168cf:	39 56 68             	cmp    %edx,0x68(%esi)
4168d2:	76 4d                	jbe    0x416921
4168d4:	8b fa                	mov    %edx,%edi
4168d6:	33 c0                	xor    %eax,%eax
4168d8:	8b ca                	mov    %edx,%ecx
4168da:	83 e1 1f             	and    $0x1f,%ecx
4168dd:	40                   	inc    %eax
4168de:	d3 e0                	shl    %cl,%eax
4168e0:	8b da                	mov    %edx,%ebx
4168e2:	8b 4e 24             	mov    0x24(%esi),%ecx
4168e5:	c1 eb 05             	shr    $0x5,%ebx
4168e8:	89 45 fc             	mov    %eax,-0x4(%ebp)
4168eb:	85 04 99             	test   %eax,(%ecx,%ebx,4)
4168ee:	74 28                	je     0x416918
4168f0:	8b 46 04             	mov    0x4(%esi),%eax
4168f3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4168f6:	85 0c 98             	test   %ecx,(%eax,%ebx,4)
4168f9:	74 1d                	je     0x416918
4168fb:	8b 46 34             	mov    0x34(%esi),%eax
4168fe:	8b 5e 14             	mov    0x14(%esi),%ebx
416901:	8b 0c 07             	mov    (%edi,%eax,1),%ecx
416904:	8b 04 1f             	mov    (%edi,%ebx,1),%eax
416907:	3b c8                	cmp    %eax,%ecx
416909:	75 32                	jne    0x41693d
41690b:	8b 46 34             	mov    0x34(%esi),%eax
41690e:	8b 44 07 04          	mov    0x4(%edi,%eax,1),%eax
416912:	3b 44 1f 04          	cmp    0x4(%edi,%ebx,1),%eax
416916:	75 10                	jne    0x416928
416918:	42                   	inc    %edx
416919:	83 c7 08             	add    $0x8,%edi
41691c:	3b 56 68             	cmp    0x68(%esi),%edx
41691f:	72 b5                	jb     0x4168d6
416921:	32 c0                	xor    %al,%al
416923:	5f                   	pop    %edi
416924:	5e                   	pop    %esi
416925:	5b                   	pop    %ebx
416926:	c9                   	leave
416927:	c3                   	ret
416928:	8b 46 34             	mov    0x34(%esi),%eax
41692b:	8b 4c d3 04          	mov    0x4(%ebx,%edx,8),%ecx
41692f:	2b 4e 4c             	sub    0x4c(%esi),%ecx
416932:	8b 44 d0 04          	mov    0x4(%eax,%edx,8),%eax
416936:	2b 46 4c             	sub    0x4c(%esi),%eax
416939:	3b c1                	cmp    %ecx,%eax
41693b:	eb 08                	jmp    0x416945
41693d:	2b 46 4c             	sub    0x4c(%esi),%eax
416940:	2b 4e 4c             	sub    0x4c(%esi),%ecx
416943:	3b c8                	cmp    %eax,%ecx
416945:	0f 9c c0             	setl   %al
416948:	eb d9                	jmp    0x416923
41694a:	55                   	push   %ebp
41694b:	8b ec                	mov    %esp,%ebp
41694d:	51                   	push   %ecx
41694e:	53                   	push   %ebx
41694f:	56                   	push   %esi
416950:	8b f1                	mov    %ecx,%esi
416952:	33 d2                	xor    %edx,%edx
416954:	57                   	push   %edi
416955:	39 56 68             	cmp    %edx,0x68(%esi)
416958:	76 4d                	jbe    0x4169a7
41695a:	8b fa                	mov    %edx,%edi
41695c:	33 c0                	xor    %eax,%eax
41695e:	8b ca                	mov    %edx,%ecx
416960:	83 e1 1f             	and    $0x1f,%ecx
416963:	40                   	inc    %eax
416964:	d3 e0                	shl    %cl,%eax
416966:	8b da                	mov    %edx,%ebx
416968:	8b 4e 24             	mov    0x24(%esi),%ecx
41696b:	c1 eb 05             	shr    $0x5,%ebx
41696e:	89 45 fc             	mov    %eax,-0x4(%ebp)
416971:	85 04 99             	test   %eax,(%ecx,%ebx,4)
416974:	74 28                	je     0x41699e
416976:	8b 46 04             	mov    0x4(%esi),%eax
416979:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41697c:	85 0c 98             	test   %ecx,(%eax,%ebx,4)
41697f:	74 1d                	je     0x41699e
416981:	8b 46 34             	mov    0x34(%esi),%eax
416984:	8b 5e 14             	mov    0x14(%esi),%ebx
416987:	8b 0c 07             	mov    (%edi,%eax,1),%ecx
41698a:	8b 04 1f             	mov    (%edi,%ebx,1),%eax
41698d:	3b c8                	cmp    %eax,%ecx
41698f:	75 38                	jne    0x4169c9
416991:	8b 46 34             	mov    0x34(%esi),%eax
416994:	8b 44 07 04          	mov    0x4(%edi,%eax,1),%eax
416998:	3b 44 1f 04          	cmp    0x4(%edi,%ebx,1),%eax
41699c:	75 10                	jne    0x4169ae
41699e:	42                   	inc    %edx
41699f:	83 c7 08             	add    $0x8,%edi
4169a2:	3b 56 68             	cmp    0x68(%esi),%edx
4169a5:	72 b5                	jb     0x41695c
4169a7:	32 c0                	xor    %al,%al
4169a9:	5f                   	pop    %edi
4169aa:	5e                   	pop    %esi
4169ab:	5b                   	pop    %ebx
4169ac:	c9                   	leave
4169ad:	c3                   	ret
4169ae:	8b 46 34             	mov    0x34(%esi),%eax
4169b1:	8b 4c d3 04          	mov    0x4(%ebx,%edx,8),%ecx
4169b5:	2b 4e 4c             	sub    0x4c(%esi),%ecx
4169b8:	83 e1 fe             	and    $0xfffffffe,%ecx
4169bb:	8b 44 d0 04          	mov    0x4(%eax,%edx,8),%eax
4169bf:	2b 46 4c             	sub    0x4c(%esi),%eax
4169c2:	83 e0 fe             	and    $0xfffffffe,%eax
4169c5:	3b c1                	cmp    %ecx,%eax
4169c7:	eb 0e                	jmp    0x4169d7
4169c9:	2b 46 4c             	sub    0x4c(%esi),%eax
4169cc:	2b 4e 4c             	sub    0x4c(%esi),%ecx
4169cf:	83 e0 fe             	and    $0xfffffffe,%eax
4169d2:	83 e1 fe             	and    $0xfffffffe,%ecx
4169d5:	3b c8                	cmp    %eax,%ecx
4169d7:	0f 9c c0             	setl   %al
4169da:	eb cd                	jmp    0x4169a9
4169dc:	55                   	push   %ebp
4169dd:	8b ec                	mov    %esp,%ebp
4169df:	56                   	push   %esi
4169e0:	8b f1                	mov    %ecx,%esi
4169e2:	33 c0                	xor    %eax,%eax
4169e4:	57                   	push   %edi
4169e5:	8b 7d 08             	mov    0x8(%ebp),%edi
4169e8:	89 06                	mov    %eax,(%esi)
4169ea:	89 46 04             	mov    %eax,0x4(%esi)
4169ed:	89 46 08             	mov    %eax,0x8(%esi)
4169f0:	85 ff                	test   %edi,%edi
4169f2:	75 04                	jne    0x4169f8
4169f4:	32 c0                	xor    %al,%al
4169f6:	eb 1b                	jmp    0x416a13
4169f8:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
4169fe:	77 19                	ja     0x416a19
416a00:	57                   	push   %edi
416a01:	e8 82 bc fe ff       	call   0x402688
416a06:	89 06                	mov    %eax,(%esi)
416a08:	89 46 04             	mov    %eax,0x4(%esi)
416a0b:	03 c7                	add    %edi,%eax
416a0d:	89 46 08             	mov    %eax,0x8(%esi)
416a10:	b0 01                	mov    $0x1,%al
416a12:	59                   	pop    %ecx
416a13:	5f                   	pop    %edi
416a14:	5e                   	pop    %esi
416a15:	5d                   	pop    %ebp
416a16:	c2 04 00             	ret    $0x4
416a19:	e8 04 6d 00 00       	call   0x41d722
416a1e:	cc                   	int3
416a1f:	55                   	push   %ebp
416a20:	8b ec                	mov    %esp,%ebp
416a22:	56                   	push   %esi
416a23:	8b f1                	mov    %ecx,%esi
416a25:	33 c0                	xor    %eax,%eax
416a27:	57                   	push   %edi
416a28:	8b 7d 08             	mov    0x8(%ebp),%edi
416a2b:	89 06                	mov    %eax,(%esi)
416a2d:	89 46 04             	mov    %eax,0x4(%esi)
416a30:	89 46 08             	mov    %eax,0x8(%esi)
416a33:	85 ff                	test   %edi,%edi
416a35:	75 04                	jne    0x416a3b
416a37:	32 c0                	xor    %al,%al
416a39:	eb 1b                	jmp    0x416a56
416a3b:	81 ff ff ff ff 3f    	cmp    $0x3fffffff,%edi
416a41:	77 19                	ja     0x416a5c
416a43:	57                   	push   %edi
416a44:	e8 0b 89 00 00       	call   0x41f354
416a49:	89 06                	mov    %eax,(%esi)
416a4b:	89 46 04             	mov    %eax,0x4(%esi)
416a4e:	8d 04 b8             	lea    (%eax,%edi,4),%eax
416a51:	89 46 08             	mov    %eax,0x8(%esi)
416a54:	b0 01                	mov    $0x1,%al
416a56:	5f                   	pop    %edi
416a57:	5e                   	pop    %esi
416a58:	5d                   	pop    %ebp
416a59:	c2 04 00             	ret    $0x4
416a5c:	e8 cc 6c 00 00       	call   0x41d72d
416a61:	cc                   	int3
416a62:	55                   	push   %ebp
416a63:	8b ec                	mov    %esp,%ebp
416a65:	56                   	push   %esi
416a66:	8b f1                	mov    %ecx,%esi
416a68:	33 c0                	xor    %eax,%eax
416a6a:	57                   	push   %edi
416a6b:	8b 7d 08             	mov    0x8(%ebp),%edi
416a6e:	89 06                	mov    %eax,(%esi)
416a70:	89 46 04             	mov    %eax,0x4(%esi)
416a73:	89 46 08             	mov    %eax,0x8(%esi)
416a76:	85 ff                	test   %edi,%edi
416a78:	75 04                	jne    0x416a7e
416a7a:	32 c0                	xor    %al,%al
416a7c:	eb 1b                	jmp    0x416a99
416a7e:	81 ff ff ff ff 3f    	cmp    $0x3fffffff,%edi
416a84:	77 19                	ja     0x416a9f
416a86:	57                   	push   %edi
416a87:	e8 e9 88 00 00       	call   0x41f375
416a8c:	89 06                	mov    %eax,(%esi)
416a8e:	89 46 04             	mov    %eax,0x4(%esi)
416a91:	8d 04 b8             	lea    (%eax,%edi,4),%eax
416a94:	89 46 08             	mov    %eax,0x8(%esi)
416a97:	b0 01                	mov    $0x1,%al
416a99:	5f                   	pop    %edi
416a9a:	5e                   	pop    %esi
416a9b:	5d                   	pop    %ebp
416a9c:	c2 04 00             	ret    $0x4
416a9f:	e8 94 6c 00 00       	call   0x41d738
416aa4:	cc                   	int3
416aa5:	55                   	push   %ebp
416aa6:	8b ec                	mov    %esp,%ebp
416aa8:	56                   	push   %esi
416aa9:	8b f1                	mov    %ecx,%esi
416aab:	33 c0                	xor    %eax,%eax
416aad:	57                   	push   %edi
416aae:	8b 7d 08             	mov    0x8(%ebp),%edi
416ab1:	89 06                	mov    %eax,(%esi)
416ab3:	89 46 04             	mov    %eax,0x4(%esi)
416ab6:	89 46 08             	mov    %eax,0x8(%esi)
416ab9:	85 ff                	test   %edi,%edi
416abb:	75 04                	jne    0x416ac1
416abd:	32 c0                	xor    %al,%al
416abf:	eb 1b                	jmp    0x416adc
416ac1:	81 ff ff ff ff 1f    	cmp    $0x1fffffff,%edi
416ac7:	77 19                	ja     0x416ae2
416ac9:	57                   	push   %edi
416aca:	e8 e6 88 00 00       	call   0x41f3b5
416acf:	89 06                	mov    %eax,(%esi)
416ad1:	89 46 04             	mov    %eax,0x4(%esi)
416ad4:	8d 04 f8             	lea    (%eax,%edi,8),%eax
416ad7:	89 46 08             	mov    %eax,0x8(%esi)
416ada:	b0 01                	mov    $0x1,%al
416adc:	5f                   	pop    %edi
416add:	5e                   	pop    %esi
416ade:	5d                   	pop    %ebp
416adf:	c2 04 00             	ret    $0x4
416ae2:	e8 67 6c 00 00       	call   0x41d74e
416ae7:	cc                   	int3
416ae8:	55                   	push   %ebp
416ae9:	8b ec                	mov    %esp,%ebp
416aeb:	56                   	push   %esi
416aec:	8b f1                	mov    %ecx,%esi
416aee:	33 c0                	xor    %eax,%eax
416af0:	57                   	push   %edi
416af1:	8b 7d 08             	mov    0x8(%ebp),%edi
416af4:	89 06                	mov    %eax,(%esi)
416af6:	89 46 04             	mov    %eax,0x4(%esi)
416af9:	89 46 08             	mov    %eax,0x8(%esi)
416afc:	85 ff                	test   %edi,%edi
416afe:	75 04                	jne    0x416b04
416b00:	32 c0                	xor    %al,%al
416b02:	eb 1b                	jmp    0x416b1f
416b04:	81 ff ff ff ff 1f    	cmp    $0x1fffffff,%edi
416b0a:	77 19                	ja     0x416b25
416b0c:	57                   	push   %edi
416b0d:	e8 c4 88 00 00       	call   0x41f3d6
416b12:	89 06                	mov    %eax,(%esi)
416b14:	89 46 04             	mov    %eax,0x4(%esi)
416b17:	8d 04 f8             	lea    (%eax,%edi,8),%eax