408796:	8b f1                	mov    %ecx,%esi
408798:	eb 13                	jmp    0x4087ad
40879a:	8b 84 24 44 0e 00 00 	mov    0xe44(%esp),%eax
4087a1:	ba 00 00 00 00       	mov    $0x0,%edx
4087a6:	a8 03                	test   $0x3,%al
4087a8:	0f 95 c2             	setne  %dl
4087ab:	8b f2                	mov    %edx,%esi
4087ad:	8b c8                	mov    %eax,%ecx
4087af:	c1 e9 0c             	shr    $0xc,%ecx
4087b2:	83 e1 01             	and    $0x1,%ecx
4087b5:	0b f1                	or     %ecx,%esi
4087b7:	a8 01                	test   $0x1,%al
4087b9:	75 08                	jne    0x4087c3
4087bb:	a8 02                	test   $0x2,%al
4087bd:	74 04                	je     0x4087c3
4087bf:	33 ed                	xor    %ebp,%ebp
4087c1:	eb 05                	jmp    0x4087c8
4087c3:	bd 01 00 00 00       	mov    $0x1,%ebp
4087c8:	8b c3                	mov    %ebx,%eax
4087ca:	8d 50 02             	lea    0x2(%eax),%edx
4087cd:	8d 49 00             	lea    0x0(%ecx),%ecx
4087d0:	66 8b 08             	mov    (%eax),%cx
4087d3:	83 c0 02             	add    $0x2,%eax
4087d6:	66 85 c9             	test   %cx,%cx
4087d9:	75 f5                	jne    0x4087d0
4087db:	2b c2                	sub    %edx,%eax
4087dd:	d1 f8                	sar    $1,%eax
4087df:	0f 84 dc 00 00 00    	je     0x4088c1
4087e5:	85 f6                	test   %esi,%esi
4087e7:	74 10                	je     0x4087f9
4087e9:	6a 2c                	push   $0x2c
4087eb:	8d 54 24 28          	lea    0x28(%esp),%edx
4087ef:	52                   	push   %edx
4087f0:	53                   	push   %ebx
4087f1:	e8 aa e9 ff ff       	call   0x4071a0
4087f6:	83 c4 0c             	add    $0xc,%esp
4087f9:	6a 2c                	push   $0x2c
4087fb:	8d 44 24 28          	lea    0x28(%esp),%eax
4087ff:	50                   	push   %eax
408800:	53                   	push   %ebx
408801:	e8 4a e8 ff ff       	call   0x407050
408806:	83 c4 0c             	add    $0xc,%esp
408809:	85 c0                	test   %eax,%eax
40880b:	0f 85 cb 00 00 00    	jne    0x4088dc
408811:	8b c3                	mov    %ebx,%eax
408813:	8d 50 02             	lea    0x2(%eax),%edx
408816:	66 8b 08             	mov    (%eax),%cx
408819:	83 c0 02             	add    $0x2,%eax
40881c:	66 85 c9             	test   %cx,%cx
40881f:	75 f5                	jne    0x408816
408821:	2b c2                	sub    %edx,%eax
408823:	d1 f8                	sar    $1,%eax
408825:	8b d0                	mov    %eax,%edx
408827:	8d 44 24 24          	lea    0x24(%esp),%eax
40882b:	8d 70 02             	lea    0x2(%eax),%esi
40882e:	8b ff                	mov    %edi,%edi
408830:	66 8b 08             	mov    (%eax),%cx
408833:	83 c0 02             	add    $0x2,%eax
408836:	66 85 c9             	test   %cx,%cx
408839:	75 f5                	jne    0x408830
40883b:	2b c6                	sub    %esi,%eax
40883d:	d1 f8                	sar    $1,%eax
40883f:	8d 74 10 02          	lea    0x2(%eax,%edx,1),%esi
408843:	8d 0c 36             	lea    (%esi,%esi,1),%ecx
408846:	51                   	push   %ecx
408847:	e8 ca 81 02 00       	call   0x430a16
40884c:	8b f8                	mov    %eax,%edi
40884e:	8b c3                	mov    %ebx,%eax
408850:	83 c4 04             	add    $0x4,%esp
408853:	8d 50 02             	lea    0x2(%eax),%edx
408856:	66 8b 08             	mov    (%eax),%cx
408859:	83 c0 02             	add    $0x2,%eax
40885c:	66 85 c9             	test   %cx,%cx
40885f:	75 f5                	jne    0x408856
408861:	2b c2                	sub    %edx,%eax
408863:	d1 f8                	sar    $1,%eax
408865:	75 22                	jne    0x408889
408867:	56                   	push   %esi
408868:	8d 54 24 28          	lea    0x28(%esp),%edx
40886c:	52                   	push   %edx
40886d:	57                   	push   %edi
40886e:	e8 37 82 02 00       	call   0x430aaa
408873:	83 c4 0c             	add    $0xc,%esp
408876:	53                   	push   %ebx
408877:	e8 21 81 02 00       	call   0x43099d
40887c:	89 7c 24 14          	mov    %edi,0x14(%esp)
408880:	8b 7c 24 18          	mov    0x18(%esp),%edi
408884:	83 c4 04             	add    $0x4,%esp
408887:	eb 53                	jmp    0x4088dc
408889:	85 ed                	test   %ebp,%ebp
40888b:	74 08                	je     0x408895
40888d:	8b cb                	mov    %ebx,%ecx
40888f:	8d 44 24 24          	lea    0x24(%esp),%eax
408893:	eb 06                	jmp    0x40889b
408895:	8d 4c 24 24          	lea    0x24(%esp),%ecx
408899:	8b c3                	mov    %ebx,%eax
40889b:	51                   	push   %ecx
40889c:	6a 2c                	push   $0x2c
40889e:	50                   	push   %eax
40889f:	68 64 ce 45 00       	push   $0x45ce64
4088a4:	56                   	push   %esi
4088a5:	57                   	push   %edi
4088a6:	e8 b4 7d 02 00       	call   0x43065f
4088ab:	83 c4 18             	add    $0x18,%esp
4088ae:	53                   	push   %ebx
4088af:	e8 e9 80 02 00       	call   0x43099d
4088b4:	89 7c 24 14          	mov    %edi,0x14(%esp)
4088b8:	8b 7c 24 18          	mov    0x18(%esp),%edi
4088bc:	83 c4 04             	add    $0x4,%esp
4088bf:	eb 1b                	jmp    0x4088dc
4088c1:	8d 44 24 24          	lea    0x24(%esp),%eax
4088c5:	50                   	push   %eax
4088c6:	e8 cd f9 03 00       	call   0x448298
4088cb:	83 c4 04             	add    $0x4,%esp
4088ce:	89 44 24 10          	mov    %eax,0x10(%esp)
4088d2:	eb 08                	jmp    0x4088dc
4088d4:	e8 c7 e8 ff ff       	call   0x4071a0
4088d9:	83 c4 0c             	add    $0xc,%esp
4088dc:	8b 9c 24 44 0e 00 00 	mov    0xe44(%esp),%ebx
4088e3:	8b 6c 24 10          	mov    0x10(%esp),%ebp
4088e7:	f6 c3 08             	test   $0x8,%bl
4088ea:	74 24                	je     0x408910
4088ec:	8b 84 24 4c 0e 00 00 	mov    0xe4c(%esp),%eax
4088f3:	85 c0                	test   %eax,%eax
4088f5:	74 42                	je     0x408939
4088f7:	8b d3                	mov    %ebx,%edx
4088f9:	6a 2c                	push   $0x2c
4088fb:	c1 ea 04             	shr    $0x4,%edx
4088fe:	83 e2 01             	and    $0x1,%edx
408901:	52                   	push   %edx
408902:	6a 01                	push   $0x1
408904:	50                   	push   %eax
408905:	55                   	push   %ebp
408906:	e8 15 e9 ff ff       	call   0x407220
40890b:	83 c4 14             	add    $0x14,%esp
40890e:	eb 32                	jmp    0x408942
408910:	f6 c3 04             	test   $0x4,%bl
408913:	74 29                	je     0x40893e
408915:	8b 84 24 48 0e 00 00 	mov    0xe48(%esp),%eax
40891c:	85 c0                	test   %eax,%eax
40891e:	74 19                	je     0x408939
408920:	8b cb                	mov    %ebx,%ecx
408922:	6a 2c                	push   $0x2c
408924:	c1 e9 04             	shr    $0x4,%ecx
408927:	83 e1 01             	and    $0x1,%ecx
40892a:	51                   	push   %ecx
40892b:	6a 00                	push   $0x0
40892d:	50                   	push   %eax
40892e:	55                   	push   %ebp
40892f:	e8 ec e8 ff ff       	call   0x407220
408934:	83 c4 14             	add    $0x14,%esp
408937:	eb 09                	jmp    0x408942
408939:	bf 57 00 00 00       	mov    $0x57,%edi
40893e:	8b 44 24 18          	mov    0x18(%esp),%eax
408942:	8b b4 24 50 0e 00 00 	mov    0xe50(%esp),%esi
408949:	85 f6                	test   %esi,%esi
40894b:	74 0a                	je     0x408957
40894d:	85 c0                	test   %eax,%eax
40894f:	75 06                	jne    0x408957
408951:	c7 06 fa ff ff ff    	movl   $0xfffffffa,(%esi)
408957:	83 ff 57             	cmp    $0x57,%edi
40895a:	75 10                	jne    0x40896c
40895c:	5f                   	pop    %edi
40895d:	5e                   	pop    %esi
40895e:	5d                   	pop    %ebp
40895f:	b8 57 00 00 00       	mov    $0x57,%eax
408964:	5b                   	pop    %ebx
408965:	81 c4 2c 0e 00 00    	add    $0xe2c,%esp
40896b:	c3                   	ret
40896c:	85 c0                	test   %eax,%eax
40896e:	75 15                	jne    0x408985
408970:	f6 c3 40             	test   $0x40,%bl
408973:	74 10                	je     0x408985
408975:	6a 2c                	push   $0x2c
408977:	8d 54 24 28          	lea    0x28(%esp),%edx
40897b:	52                   	push   %edx
40897c:	55                   	push   %ebp
40897d:	e8 1e e8 ff ff       	call   0x4071a0
408982:	83 c4 0c             	add    $0xc,%esp
408985:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
40898a:	74 5a                	je     0x4089e6
40898c:	f7 c3 00 01 00 00    	test   $0x100,%ebx
408992:	75 c8                	jne    0x40895c
408994:	8b c5                	mov    %ebp,%eax
408996:	8d 50 02             	lea    0x2(%eax),%edx
408999:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
4089a0:	66 8b 08             	mov    (%eax),%cx
4089a3:	83 c0 02             	add    $0x2,%eax
4089a6:	66 85 c9             	test   %cx,%cx
4089a9:	75 f5                	jne    0x4089a0
4089ab:	2b c2                	sub    %edx,%eax
4089ad:	d1 f8                	sar    $1,%eax
4089af:	83 f8 1f             	cmp    $0x1f,%eax
4089b2:	76 32                	jbe    0x4089e6
4089b4:	85 f6                	test   %esi,%esi
4089b6:	74 06                	je     0x4089be
4089b8:	c7 06 f9 ff ff ff    	movl   $0xfffffff9,(%esi)
4089be:	f7 c3 00 02 00 00    	test   $0x200,%ebx
4089c4:	74 12                	je     0x4089d8
4089c6:	6a 2c                	push   $0x2c
4089c8:	8d 44 24 28          	lea    0x28(%esp),%eax
4089cc:	50                   	push   %eax
4089cd:	55                   	push   %ebp
4089ce:	e8 cd e7 ff ff       	call   0x4071a0
4089d3:	83 c4 0c             	add    $0xc,%esp
4089d6:	eb 0e                	jmp    0x4089e6
4089d8:	f7 c3 00 08 00 00    	test   $0x800,%ebx
4089de:	74 06                	je     0x4089e6
4089e0:	33 c9                	xor    %ecx,%ecx
4089e2:	66 89 4d 3e          	mov    %cx,0x3e(%ebp)
4089e6:	8d 8c 24 3c 06 00 00 	lea    0x63c(%esp),%ecx
4089ed:	8b c5                	mov    %ebp,%eax
4089ef:	90                   	nop
4089f0:	66 8b 10             	mov    (%eax),%dx
4089f3:	66 3b 11             	cmp    (%ecx),%dx
4089f6:	75 1e                	jne    0x408a16
4089f8:	66 85 d2             	test   %dx,%dx
4089fb:	74 15                	je     0x408a12
4089fd:	66 8b 50 02          	mov    0x2(%eax),%dx
408a01:	66 3b 51 02          	cmp    0x2(%ecx),%dx
408a05:	75 0f                	jne    0x408a16
408a07:	83 c0 04             	add    $0x4,%eax
408a0a:	83 c1 04             	add    $0x4,%ecx
408a0d:	66 85 d2             	test   %dx,%dx
408a10:	75 de                	jne    0x4089f0
408a12:	33 c0                	xor    %eax,%eax
408a14:	eb 05                	jmp    0x408a1b
408a16:	1b c0                	sbb    %eax,%eax
408a18:	83 d8 ff             	sbb    $0xffffffff,%eax
408a1b:	85 c0                	test   %eax,%eax
408a1d:	74 19                	je     0x408a38
408a1f:	55                   	push   %ebp
408a20:	68 98 ce 45 00       	push   $0x45ce98
408a25:	6a 01                	push   $0x1
408a27:	68 38 ca 45 00       	push   $0x45ca38
408a2c:	e8 7f f7 ff ff       	call   0x4081b0
408a31:	83 c4 10             	add    $0x10,%esp
408a34:	85 c0                	test   %eax,%eax
408a36:	75 0b                	jne    0x408a43
408a38:	55                   	push   %ebp
408a39:	e8 5f 7f 02 00       	call   0x43099d
408a3e:	83 c4 04             	add    $0x4,%esp
408a41:	33 c0                	xor    %eax,%eax
408a43:	5f                   	pop    %edi
408a44:	5e                   	pop    %esi
408a45:	5d                   	pop    %ebp
408a46:	5b                   	pop    %ebx
408a47:	81 c4 2c 0e 00 00    	add    $0xe2c,%esp
408a4d:	c3                   	ret
408a4e:	cc                   	int3
408a4f:	cc                   	int3
408a50:	8b 44 24 04          	mov    0x4(%esp),%eax
408a54:	8b 4c 24 08          	mov    0x8(%esp),%ecx
408a58:	6a 00                	push   $0x0
408a5a:	6a 00                	push   $0x0
408a5c:	50                   	push   %eax
408a5d:	6a 00                	push   $0x0
408a5f:	6a 00                	push   $0x0
408a61:	6a 00                	push   $0x0
408a63:	51                   	push   %ecx
408a64:	6a 01                	push   $0x1
408a66:	e8 45 fa ff ff       	call   0x4084b0
408a6b:	83 c4 20             	add    $0x20,%esp
408a6e:	c3                   	ret
408a6f:	cc                   	int3
408a70:	6a 00                	push   $0x0
408a72:	6a 00                	push   $0x0
408a74:	6a 00                	push   $0x0
408a76:	6a 00                	push   $0x0
408a78:	6a 00                	push   $0x0
408a7a:	6a 00                	push   $0x0
408a7c:	6a 00                	push   $0x0
408a7e:	6a 01                	push   $0x1
408a80:	e8 2b fa ff ff       	call   0x4084b0
408a85:	83 c4 20             	add    $0x20,%esp
408a88:	c3                   	ret
408a89:	cc                   	int3
408a8a:	cc                   	int3
408a8b:	cc                   	int3
408a8c:	cc                   	int3
408a8d:	cc                   	int3
408a8e:	cc                   	int3
408a8f:	cc                   	int3
408a90:	8b 44 24 04          	mov    0x4(%esp),%eax
408a94:	8b 4c 24 08          	mov    0x8(%esp),%ecx
408a98:	6a 00                	push   $0x0
408a9a:	6a 00                	push   $0x0
408a9c:	50                   	push   %eax
408a9d:	6a 00                	push   $0x0
408a9f:	6a 00                	push   $0x0
408aa1:	6a 00                	push   $0x0
408aa3:	51                   	push   %ecx
408aa4:	6a 00                	push   $0x0
408aa6:	e8 05 fa ff ff       	call   0x4084b0
408aab:	83 c4 20             	add    $0x20,%esp
408aae:	c3                   	ret
408aaf:	cc                   	int3
408ab0:	6a 00                	push   $0x0
408ab2:	6a 00                	push   $0x0
408ab4:	6a 00                	push   $0x0
408ab6:	6a 00                	push   $0x0
408ab8:	6a 00                	push   $0x0
408aba:	6a 00                	push   $0x0
408abc:	6a 00                	push   $0x0
408abe:	6a 00                	push   $0x0
408ac0:	e8 eb f9 ff ff       	call   0x4084b0
408ac5:	83 c4 20             	add    $0x20,%esp
408ac8:	c3                   	ret
408ac9:	cc                   	int3
408aca:	cc                   	int3
408acb:	cc                   	int3
408acc:	cc                   	int3
408acd:	cc                   	int3
408ace:	cc                   	int3
408acf:	cc                   	int3
408ad0:	81 ec 08 0a 00 00    	sub    $0xa08,%esp
408ad6:	68 00 04 00 00       	push   $0x400
408adb:	8d 84 24 0c 02 00 00 	lea    0x20c(%esp),%eax
408ae2:	50                   	push   %eax
408ae3:	68 98 ce 45 00       	push   $0x45ce98
408ae8:	6a 01                	push   $0x1
408aea:	68 38 ca 45 00       	push   $0x45ca38
408aef:	e8 bc f7 ff ff       	call   0x4082b0
408af4:	83 c4 14             	add    $0x14,%esp
408af7:	85 c0                	test   %eax,%eax
408af9:	74 09                	je     0x408b04
408afb:	33 c0                	xor    %eax,%eax
408afd:	81 c4 08 0a 00 00    	add    $0xa08,%esp
408b03:	c3                   	ret
408b04:	8d 0c 24             	lea    (%esp),%ecx
408b07:	68 04 01 00 00       	push   $0x104
408b0c:	51                   	push   %ecx
408b0d:	e8 ee c1 ff ff       	call   0x404d00
408b12:	83 c4 08             	add    $0x8,%esp
408b15:	85 c0                	test   %eax,%eax
408b17:	75 e2                	jne    0x408afb
408b19:	6a 2c                	push   $0x2c
408b1b:	8d 54 24 04          	lea    0x4(%esp),%edx
408b1f:	52                   	push   %edx
408b20:	8d 84 24 10 02 00 00 	lea    0x210(%esp),%eax
408b27:	50                   	push   %eax
408b28:	e8 23 e5 ff ff       	call   0x407050
408b2d:	83 c4 0c             	add    $0xc,%esp
408b30:	f7 d8                	neg    %eax
408b32:	1b c0                	sbb    %eax,%eax
408b34:	f7 d8                	neg    %eax
408b36:	81 c4 08 0a 00 00    	add    $0xa08,%esp
408b3c:	c3                   	ret
408b3d:	cc                   	int3
408b3e:	cc                   	int3