4187ff:	c3                   	ret
418800:	8b 4e 0c             	mov    0xc(%esi),%ecx
418803:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
41880a:	f7 d8                	neg    %eax
41880c:	1b c0                	sbb    %eax,%eax
41880e:	83 e0 10             	and    $0x10,%eax
418811:	83 c0 10             	add    $0x10,%eax
418814:	0b c8                	or     %eax,%ecx
418816:	89 4e 0c             	mov    %ecx,0xc(%esi)
418819:	5f                   	pop    %edi
41881a:	83 c8 ff             	or     $0xffffffff,%eax
41881d:	5e                   	pop    %esi
41881e:	c3                   	ret
41881f:	90                   	nop
418820:	53                   	push   %ebx
418821:	56                   	push   %esi
418822:	8b 74 24 0c          	mov    0xc(%esp),%esi
418826:	57                   	push   %edi
418827:	56                   	push   %esi
418828:	e8 b3 6c ff ff       	call   0x40f4e0
41882d:	83 c4 04             	add    $0x4,%esp
418830:	56                   	push   %esi
418831:	e8 1a 00 00 00       	call   0x418850
418836:	83 c4 04             	add    $0x4,%esp
418839:	8b f8                	mov    %eax,%edi
41883b:	8b da                	mov    %edx,%ebx
41883d:	56                   	push   %esi
41883e:	e8 0d 6d ff ff       	call   0x40f550
418843:	83 c4 04             	add    $0x4,%esp
418846:	8b c7                	mov    %edi,%eax
418848:	8b d3                	mov    %ebx,%edx
41884a:	5f                   	pop    %edi
41884b:	5e                   	pop    %esi
41884c:	5b                   	pop    %ebx
41884d:	c3                   	ret
41884e:	90                   	nop
41884f:	90                   	nop
418850:	83 ec 0c             	sub    $0xc,%esp
418853:	53                   	push   %ebx
418854:	55                   	push   %ebp
418855:	8b 6c 24 18          	mov    0x18(%esp),%ebp
418859:	56                   	push   %esi
41885a:	57                   	push   %edi
41885b:	8b 45 04             	mov    0x4(%ebp),%eax
41885e:	8b 5d 10             	mov    0x10(%ebp),%ebx
418861:	85 c0                	test   %eax,%eax
418863:	7d 07                	jge    0x41886c
418865:	c7 45 04 00 00 00 00 	movl   $0x0,0x4(%ebp)
41886c:	6a 01                	push   $0x1
41886e:	6a 00                	push   $0x0
418870:	6a 00                	push   $0x0
418872:	53                   	push   %ebx
418873:	e8 e8 0a 00 00       	call   0x419360
418878:	8b ca                	mov    %edx,%ecx
41887a:	83 c4 10             	add    $0x10,%esp
41887d:	8b f0                	mov    %eax,%esi
41887f:	89 4c 24 18          	mov    %ecx,0x18(%esp)
418883:	85 c9                	test   %ecx,%ecx
418885:	89 74 24 14          	mov    %esi,0x14(%esp)
418889:	7f 18                	jg     0x4188a3
41888b:	0f 8c 9c 01 00 00    	jl     0x418a2d
418891:	85 f6                	test   %esi,%esi
418893:	73 0e                	jae    0x4188a3
418895:	83 c8 ff             	or     $0xffffffff,%eax
418898:	83 ca ff             	or     $0xffffffff,%edx
41889b:	5f                   	pop    %edi
41889c:	5e                   	pop    %esi
41889d:	5d                   	pop    %ebp
41889e:	5b                   	pop    %ebx
41889f:	83 c4 0c             	add    $0xc,%esp
4188a2:	c3                   	ret
4188a3:	8b 45 0c             	mov    0xc(%ebp),%eax
4188a6:	a9 08 01 00 00       	test   $0x108,%eax
4188ab:	75 14                	jne    0x4188c1
4188ad:	8b 45 04             	mov    0x4(%ebp),%eax
4188b0:	99                   	cltd
4188b1:	2b f0                	sub    %eax,%esi
4188b3:	1b ca                	sbb    %edx,%ecx
4188b5:	8b c6                	mov    %esi,%eax
4188b7:	8b d1                	mov    %ecx,%edx
4188b9:	5f                   	pop    %edi
4188ba:	5e                   	pop    %esi
4188bb:	5d                   	pop    %ebp
4188bc:	5b                   	pop    %ebx
4188bd:	83 c4 0c             	add    $0xc,%esp
4188c0:	c3                   	ret
4188c1:	8b 4d 00             	mov    0x0(%ebp),%ecx
4188c4:	8b 7d 08             	mov    0x8(%ebp),%edi
4188c7:	8b f1                	mov    %ecx,%esi
4188c9:	2b f7                	sub    %edi,%esi
4188cb:	a8 03                	test   $0x3,%al
4188cd:	89 74 24 10          	mov    %esi,0x10(%esp)
4188d1:	0f 84 43 01 00 00    	je     0x418a1a
4188d7:	8b d3                	mov    %ebx,%edx
4188d9:	8b c3                	mov    %ebx,%eax
4188db:	c1 fa 05             	sar    $0x5,%edx
4188de:	83 e0 1f             	and    $0x1f,%eax
4188e1:	8b 14 95 a0 89 43 00 	mov    0x4389a0(,%edx,4),%edx
4188e8:	8d 04 c0             	lea    (%eax,%eax,8),%eax
4188eb:	f6 44 82 04 80       	testb  $0x80,0x4(%edx,%eax,4)
4188f0:	74 15                	je     0x418907
4188f2:	8b c7                	mov    %edi,%eax
4188f4:	3b c1                	cmp    %ecx,%eax
4188f6:	73 0f                	jae    0x418907
4188f8:	80 38 0a             	cmpb   $0xa,(%eax)
4188fb:	75 01                	jne    0x4188fe
4188fd:	46                   	inc    %esi
4188fe:	40                   	inc    %eax
4188ff:	3b c1                	cmp    %ecx,%eax
418901:	72 f5                	jb     0x4188f8
418903:	89 74 24 10          	mov    %esi,0x10(%esp)
418907:	8b 44 24 14          	mov    0x14(%esp),%eax
41890b:	8b 54 24 18          	mov    0x18(%esp),%edx
41890f:	0b c2                	or     %edx,%eax
418911:	75 0c                	jne    0x41891f
418913:	8b c6                	mov    %esi,%eax
418915:	33 d2                	xor    %edx,%edx
418917:	5f                   	pop    %edi
418918:	5e                   	pop    %esi
418919:	5d                   	pop    %ebp
41891a:	5b                   	pop    %ebx
41891b:	83 c4 0c             	add    $0xc,%esp
41891e:	c3                   	ret
41891f:	f6 45 0c 01          	testb  $0x1,0xc(%ebp)
418923:	0f 84 d9 00 00 00    	je     0x418a02
418929:	8b 45 04             	mov    0x4(%ebp),%eax
41892c:	85 c0                	test   %eax,%eax
41892e:	75 09                	jne    0x418939
418930:	89 44 24 10          	mov    %eax,0x10(%esp)
418934:	e9 c5 00 00 00       	jmp    0x4189fe
418939:	8d 34 01             	lea    (%ecx,%eax,1),%esi
41893c:	8b cb                	mov    %ebx,%ecx
41893e:	8b c3                	mov    %ebx,%eax
418940:	2b f7                	sub    %edi,%esi
418942:	c1 f9 05             	sar    $0x5,%ecx
418945:	83 e0 1f             	and    $0x1f,%eax
418948:	8b 14 8d a0 89 43 00 	mov    0x4389a0(,%ecx,4),%edx
41894f:	8d 2c 8d a0 89 43 00 	lea    0x4389a0(,%ecx,4),%ebp
418956:	8d 3c c0             	lea    (%eax,%eax,8),%edi
418959:	c1 e7 02             	shl    $0x2,%edi
41895c:	f6 44 17 04 80       	testb  $0x80,0x4(%edi,%edx,1)
418961:	0f 84 82 00 00 00    	je     0x4189e9
418967:	6a 02                	push   $0x2
418969:	6a 00                	push   $0x0
41896b:	6a 00                	push   $0x0
41896d:	53                   	push   %ebx
41896e:	e8 ed 09 00 00       	call   0x419360
418973:	8b 4c 24 24          	mov    0x24(%esp),%ecx
418977:	83 c4 10             	add    $0x10,%esp
41897a:	3b c1                	cmp    %ecx,%eax
41897c:	75 29                	jne    0x4189a7
41897e:	3b 54 24 18          	cmp    0x18(%esp),%edx
418982:	75 23                	jne    0x4189a7
418984:	8b 54 24 20          	mov    0x20(%esp),%edx
418988:	8b 42 08             	mov    0x8(%edx),%eax
41898b:	8d 0c 06             	lea    (%esi,%eax,1),%ecx
41898e:	3b c1                	cmp    %ecx,%eax
418990:	73 0b                	jae    0x41899d
418992:	80 38 0a             	cmpb   $0xa,(%eax)
418995:	75 01                	jne    0x418998
418997:	46                   	inc    %esi
418998:	40                   	inc    %eax
418999:	3b c1                	cmp    %ecx,%eax
41899b:	72 f5                	jb     0x418992
41899d:	8b 42 0c             	mov    0xc(%edx),%eax
4189a0:	f6 c4 20             	test   $0x20,%ah
4189a3:	74 44                	je     0x4189e9
4189a5:	eb 41                	jmp    0x4189e8
4189a7:	8b 44 24 18          	mov    0x18(%esp),%eax
4189ab:	6a 00                	push   $0x0
4189ad:	50                   	push   %eax
4189ae:	51                   	push   %ecx
4189af:	53                   	push   %ebx
4189b0:	e8 ab 09 00 00       	call   0x419360
4189b5:	83 c4 10             	add    $0x10,%esp
4189b8:	81 fe 00 02 00 00    	cmp    $0x200,%esi
4189be:	77 17                	ja     0x4189d7
4189c0:	8b 4c 24 20          	mov    0x20(%esp),%ecx
4189c4:	8b 41 0c             	mov    0xc(%ecx),%eax
4189c7:	a8 08                	test   $0x8,%al
4189c9:	74 0c                	je     0x4189d7
4189cb:	f6 c4 04             	test   $0x4,%ah
4189ce:	75 07                	jne    0x4189d7
4189d0:	be 00 02 00 00       	mov    $0x200,%esi
4189d5:	eb 07                	jmp    0x4189de
4189d7:	8b 54 24 20          	mov    0x20(%esp),%edx
4189db:	8b 72 18             	mov    0x18(%edx),%esi
4189de:	8b 45 00             	mov    0x0(%ebp),%eax
4189e1:	f6 44 07 04 04       	testb  $0x4,0x4(%edi,%eax,1)
4189e6:	74 01                	je     0x4189e9
4189e8:	46                   	inc    %esi
4189e9:	8b 4c 24 14          	mov    0x14(%esp),%ecx
4189ed:	8b 44 24 18          	mov    0x18(%esp),%eax
4189f1:	2b ce                	sub    %esi,%ecx
4189f3:	83 d8 00             	sbb    $0x0,%eax
4189f6:	89 4c 24 14          	mov    %ecx,0x14(%esp)
4189fa:	89 44 24 18          	mov    %eax,0x18(%esp)
4189fe:	8b 74 24 10          	mov    0x10(%esp),%esi
418a02:	8b 4c 24 18          	mov    0x18(%esp),%ecx
418a06:	8b c6                	mov    %esi,%eax
418a08:	8b 74 24 14          	mov    0x14(%esp),%esi
418a0c:	33 d2                	xor    %edx,%edx
418a0e:	03 c6                	add    %esi,%eax
418a10:	13 d1                	adc    %ecx,%edx
418a12:	5f                   	pop    %edi
418a13:	5e                   	pop    %esi
418a14:	5d                   	pop    %ebp
418a15:	5b                   	pop    %ebx
418a16:	83 c4 0c             	add    $0xc,%esp
418a19:	c3                   	ret
418a1a:	a8 80                	test   $0x80,%al
418a1c:	0f 85 e5 fe ff ff    	jne    0x418907
418a22:	e8 69 4c ff ff       	call   0x40d690
418a27:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
418a2d:	5f                   	pop    %edi
418a2e:	5e                   	pop    %esi
418a2f:	83 c8 ff             	or     $0xffffffff,%eax
418a32:	5d                   	pop    %ebp
418a33:	83 ca ff             	or     $0xffffffff,%edx
418a36:	5b                   	pop    %ebx
418a37:	83 c4 0c             	add    $0xc,%esp
418a3a:	c3                   	ret
418a3b:	90                   	nop
418a3c:	90                   	nop
418a3d:	90                   	nop
418a3e:	90                   	nop
418a3f:	90                   	nop
418a40:	83 ec 08             	sub    $0x8,%esp
418a43:	53                   	push   %ebx
418a44:	55                   	push   %ebp
418a45:	56                   	push   %esi
418a46:	8b 74 24 18          	mov    0x18(%esp),%esi
418a4a:	57                   	push   %edi
418a4b:	8b 46 04             	mov    0x4(%esi),%eax
418a4e:	8b 5e 10             	mov    0x10(%esi),%ebx
418a51:	85 c0                	test   %eax,%eax
418a53:	7d 07                	jge    0x418a5c
418a55:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
418a5c:	6a 01                	push   $0x1
418a5e:	6a 00                	push   $0x0
418a60:	53                   	push   %ebx
418a61:	e8 1a 93 ff ff       	call   0x411d80
418a66:	8b c8                	mov    %eax,%ecx
418a68:	83 c4 0c             	add    $0xc,%esp
418a6b:	85 c9                	test   %ecx,%ecx
418a6d:	89 4c 24 14          	mov    %ecx,0x14(%esp)
418a71:	7d 0b                	jge    0x418a7e
418a73:	83 c8 ff             	or     $0xffffffff,%eax
418a76:	5f                   	pop    %edi
418a77:	5e                   	pop    %esi
418a78:	5d                   	pop    %ebp
418a79:	5b                   	pop    %ebx
418a7a:	83 c4 08             	add    $0x8,%esp
418a7d:	c3                   	ret
418a7e:	8b 46 0c             	mov    0xc(%esi),%eax
418a81:	a9 08 01 00 00       	test   $0x108,%eax
418a86:	75 0f                	jne    0x418a97
418a88:	8b c1                	mov    %ecx,%eax
418a8a:	8b 4e 04             	mov    0x4(%esi),%ecx
418a8d:	2b c1                	sub    %ecx,%eax
418a8f:	5f                   	pop    %edi
418a90:	5e                   	pop    %esi
418a91:	5d                   	pop    %ebp
418a92:	5b                   	pop    %ebx
418a93:	83 c4 08             	add    $0x8,%esp
418a96:	c3                   	ret
418a97:	8b 0e                	mov    (%esi),%ecx
418a99:	8b 7e 08             	mov    0x8(%esi),%edi
418a9c:	8b d1                	mov    %ecx,%edx
418a9e:	2b d7                	sub    %edi,%edx
418aa0:	a8 03                	test   $0x3,%al
418aa2:	89 54 24 10          	mov    %edx,0x10(%esp)
418aa6:	0f 84 1a 01 00 00    	je     0x418bc6
418aac:	8b eb                	mov    %ebx,%ebp
418aae:	8b c3                	mov    %ebx,%eax
418ab0:	c1 fd 05             	sar    $0x5,%ebp
418ab3:	83 e0 1f             	and    $0x1f,%eax
418ab6:	8b 2c ad a0 89 43 00 	mov    0x4389a0(,%ebp,4),%ebp
418abd:	8d 04 c0             	lea    (%eax,%eax,8),%eax
418ac0:	f6 44 85 04 80       	testb  $0x80,0x4(%ebp,%eax,4)
418ac5:	74 15                	je     0x418adc
418ac7:	8b c7                	mov    %edi,%eax
418ac9:	3b c1                	cmp    %ecx,%eax
418acb:	73 0f                	jae    0x418adc
418acd:	80 38 0a             	cmpb   $0xa,(%eax)
418ad0:	75 01                	jne    0x418ad3
418ad2:	42                   	inc    %edx
418ad3:	40                   	inc    %eax
418ad4:	3b c1                	cmp    %ecx,%eax
418ad6:	72 f5                	jb     0x418acd
418ad8:	89 54 24 10          	mov    %edx,0x10(%esp)
418adc:	8b 44 24 14          	mov    0x14(%esp),%eax
418ae0:	85 c0                	test   %eax,%eax
418ae2:	75 0a                	jne    0x418aee
418ae4:	8b c2                	mov    %edx,%eax
418ae6:	5f                   	pop    %edi
418ae7:	5e                   	pop    %esi
418ae8:	5d                   	pop    %ebp
418ae9:	5b                   	pop    %ebx
418aea:	83 c4 08             	add    $0x8,%esp
418aed:	c3                   	ret
418aee:	f6 46 0c 01          	testb  $0x1,0xc(%esi)
418af2:	0f 84 bf 00 00 00    	je     0x418bb7
418af8:	8b 46 04             	mov    0x4(%esi),%eax
418afb:	85 c0                	test   %eax,%eax
418afd:	75 15                	jne    0x418b14
418aff:	8b 4c 24 14          	mov    0x14(%esp),%ecx
418b03:	8b d0                	mov    %eax,%edx
418b05:	89 44 24 10          	mov    %eax,0x10(%esp)
418b09:	8d 04 11             	lea    (%ecx,%edx,1),%eax
418b0c:	5f                   	pop    %edi
418b0d:	5e                   	pop    %esi
418b0e:	5d                   	pop    %ebp
418b0f:	5b                   	pop    %ebx
418b10:	83 c4 08             	add    $0x8,%esp
418b13:	c3                   	ret
418b14:	8d 34 01             	lea    (%ecx,%eax,1),%esi
418b17:	8b cb                	mov    %ebx,%ecx
418b19:	8b c3                	mov    %ebx,%eax
418b1b:	2b f7                	sub    %edi,%esi
418b1d:	c1 f9 05             	sar    $0x5,%ecx
418b20:	83 e0 1f             	and    $0x1f,%eax
418b23:	8d 2c 8d a0 89 43 00 	lea    0x4389a0(,%ecx,4),%ebp
418b2a:	8d 3c c0             	lea    (%eax,%eax,8),%edi
418b2d:	8b 45 00             	mov    0x0(%ebp),%eax
418b30:	c1 e7 02             	shl    $0x2,%edi
418b33:	f6 44 07 04 80       	testb  $0x80,0x4(%edi,%eax,1)
418b38:	74 79                	je     0x418bb3
418b3a:	6a 02                	push   $0x2
418b3c:	6a 00                	push   $0x0
418b3e:	53                   	push   %ebx
418b3f:	e8 3c 92 ff ff       	call   0x411d80
418b44:	8b 4c 24 20          	mov    0x20(%esp),%ecx
418b48:	83 c4 0c             	add    $0xc,%esp
418b4b:	3b c1                	cmp    %ecx,%eax
418b4d:	75 23                	jne    0x418b72
418b4f:	8b 54 24 1c          	mov    0x1c(%esp),%edx
418b53:	8b 42 08             	mov    0x8(%edx),%eax
418b56:	8d 0c 06             	lea    (%esi,%eax,1),%ecx
418b59:	3b c1                	cmp    %ecx,%eax
418b5b:	73 0b                	jae    0x418b68
418b5d:	80 38 0a             	cmpb   $0xa,(%eax)
418b60:	75 01                	jne    0x418b63
418b62:	46                   	inc    %esi
418b63:	40                   	inc    %eax
418b64:	3b c1                	cmp    %ecx,%eax
418b66:	72 f5                	jb     0x418b5d
418b68:	8b 42 0c             	mov    0xc(%edx),%eax
418b6b:	f6 c4 20             	test   $0x20,%ah
418b6e:	74 3f                	je     0x418baf