4087dc:	66 8b 02             	mov    (%edx),%ax
4087df:	83 c2 02             	add    $0x2,%edx
4087e2:	66 3b c7             	cmp    %di,%ax
4087e5:	75 f5                	jne    0x4087dc
4087e7:	2b d6                	sub    %esi,%edx
4087e9:	d1 fa                	sar    $1,%edx
4087eb:	52                   	push   %edx
4087ec:	ff 75 0c             	push   0xc(%ebp)
4087ef:	e8 df 09 00 00       	call   0x4091d3
4087f4:	89 7d fc             	mov    %edi,-0x4(%ebp)
4087f7:	8d 43 3c             	lea    0x3c(%ebx),%eax
4087fa:	89 7b 38             	mov    %edi,0x38(%ebx)
4087fd:	89 38                	mov    %edi,(%eax)
4087ff:	89 7b 40             	mov    %edi,0x40(%ebx)
408802:	89 7b 44             	mov    %edi,0x44(%ebx)
408805:	89 7b 48             	mov    %edi,0x48(%ebx)
408808:	89 7b 4c             	mov    %edi,0x4c(%ebx)
40880b:	50                   	push   %eax
40880c:	68 2c 1f 40 00       	push   $0x401f2c
408811:	68 01 04 00 00       	push   $0x401
408816:	57                   	push   %edi
408817:	ff 75 08             	push   0x8(%ebp)
40881a:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
40881e:	ff 15 20 e0 40 00    	call   *0x40e020
408824:	8b f0                	mov    %eax,%esi
408826:	85 f6                	test   %esi,%esi
408828:	78 40                	js     0x40886a
40882a:	51                   	push   %ecx
40882b:	51                   	push   %ecx
40882c:	53                   	push   %ebx
40882d:	51                   	push   %ecx
40882e:	8b cb                	mov    %ebx,%ecx
408830:	e8 ef 09 00 00       	call   0x409224
408835:	51                   	push   %ecx
408836:	51                   	push   %ecx
408837:	53                   	push   %ebx
408838:	51                   	push   %ecx
408839:	8b cb                	mov    %ebx,%ecx
40883b:	e8 49 0a 00 00       	call   0x409289
408840:	51                   	push   %ecx
408841:	51                   	push   %ecx
408842:	53                   	push   %ebx
408843:	51                   	push   %ecx
408844:	8b cb                	mov    %ebx,%ecx
408846:	e8 a3 0a 00 00       	call   0x4092ee
40884b:	51                   	push   %ecx
40884c:	51                   	push   %ecx
40884d:	53                   	push   %ebx
40884e:	51                   	push   %ecx
40884f:	8b cb                	mov    %ebx,%ecx
408851:	e8 fd 0a 00 00       	call   0x409353
408856:	8b cb                	mov    %ebx,%ecx
408858:	e8 cb 06 00 00       	call   0x408f28
40885d:	89 43 38             	mov    %eax,0x38(%ebx)
408860:	8b c3                	mov    %ebx,%eax
408862:	e8 53 23 00 00       	call   0x40abba
408867:	c2 0c 00             	ret    $0xc
40886a:	8b 0d 00 d0 40 00    	mov    0x40d000,%ecx
408870:	81 f9 00 d0 40 00    	cmp    $0x40d000,%ecx
408876:	74 18                	je     0x408890
408878:	80 79 19 02          	cmpb   $0x2,0x19(%ecx)
40887c:	72 12                	jb     0x408890
40887e:	56                   	push   %esi
40887f:	ff 75 08             	push   0x8(%ebp)
408882:	ff 71 14             	push   0x14(%ecx)
408885:	ff 71 10             	push   0x10(%ecx)
408888:	6a 0c                	push   $0xc
40888a:	59                   	pop    %ecx
40888b:	e8 e0 fe ff ff       	call   0x408770
408890:	56                   	push   %esi
408891:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
408894:	e8 d5 b5 ff ff       	call   0x403e6e
408899:	68 a4 c6 40 00       	push   $0x40c6a4
40889e:	8d 45 84             	lea    -0x7c(%ebp),%eax
4088a1:	50                   	push   %eax
4088a2:	e8 93 22 00 00       	call   0x40ab3a
4088a7:	cc                   	int3
4088a8:	8b ff                	mov    %edi,%edi
4088aa:	53                   	push   %ebx
4088ab:	8b dc                	mov    %esp,%ebx
4088ad:	51                   	push   %ecx
4088ae:	51                   	push   %ecx
4088af:	83 e4 f8             	and    $0xfffffff8,%esp
4088b2:	83 c4 04             	add    $0x4,%esp
4088b5:	55                   	push   %ebp
4088b6:	8b 6b 04             	mov    0x4(%ebx),%ebp
4088b9:	89 6c 24 04          	mov    %ebp,0x4(%esp)
4088bd:	8b ec                	mov    %esp,%ebp
4088bf:	83 ec 10             	sub    $0x10,%esp
4088c2:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
4088c9:	56                   	push   %esi
4088ca:	57                   	push   %edi
4088cb:	8b f9                	mov    %ecx,%edi
4088cd:	8b 47 0c             	mov    0xc(%edi),%eax
4088d0:	8b 37                	mov    (%edi),%esi
4088d2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4088d5:	8b 10                	mov    (%eax),%edx
4088d7:	8b 47 04             	mov    0x4(%edi),%eax
4088da:	89 45 f4             	mov    %eax,-0xc(%ebp)
4088dd:	8b 47 08             	mov    0x8(%edi),%eax
4088e0:	89 45 f8             	mov    %eax,-0x8(%ebp)
4088e3:	74 1f                	je     0x408904
4088e5:	8d 46 20             	lea    0x20(%esi),%eax
4088e8:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
4088ec:	72 02                	jb     0x4088f0
4088ee:	8b 00                	mov    (%eax),%eax
4088f0:	6a 00                	push   $0x0
4088f2:	52                   	push   %edx
4088f3:	6a 65                	push   $0x65
4088f5:	50                   	push   %eax
4088f6:	8d 46 10             	lea    0x10(%esi),%eax
4088f9:	50                   	push   %eax
4088fa:	e8 90 fd ff ff       	call   0x40868f
4088ff:	8b 45 fc             	mov    -0x4(%ebp),%eax
408902:	8b 10                	mov    (%eax),%edx
408904:	8b 4e 3c             	mov    0x3c(%esi),%ecx
408907:	52                   	push   %edx
408908:	8b 01                	mov    (%ecx),%eax
40890a:	8b 70 0c             	mov    0xc(%eax),%esi
40890d:	8b 45 f8             	mov    -0x8(%ebp),%eax
408910:	ff 30                	push   (%eax)
408912:	8b 45 f4             	mov    -0xc(%ebp),%eax
408915:	ff 30                	push   (%eax)
408917:	51                   	push   %ecx
408918:	8b ce                	mov    %esi,%ecx
40891a:	ff 15 f0 e1 40 00    	call   *0x40e1f0
408920:	ff d6                	call   *%esi
408922:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
408929:	8b f0                	mov    %eax,%esi
40892b:	74 0b                	je     0x408938
40892d:	56                   	push   %esi
40892e:	ba 60 1e 40 00       	mov    $0x401e60,%edx
408933:	e8 16 fd ff ff       	call   0x40864e
408938:	85 f6                	test   %esi,%esi
40893a:	79 23                	jns    0x40895f
40893c:	a1 00 d0 40 00       	mov    0x40d000,%eax
408941:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
408946:	74 17                	je     0x40895f
408948:	80 78 19 03          	cmpb   $0x3,0x19(%eax)
40894c:	72 11                	jb     0x40895f
40894e:	56                   	push   %esi
40894f:	ff 37                	push   (%edi)
408951:	ff 70 14             	push   0x14(%eax)
408954:	ff 70 10             	push   0x10(%eax)
408957:	6a 0d                	push   $0xd
408959:	59                   	pop    %ecx
40895a:	e8 11 fe ff ff       	call   0x408770
40895f:	5f                   	pop    %edi
408960:	5e                   	pop    %esi
408961:	8b e5                	mov    %ebp,%esp
408963:	5d                   	pop    %ebp
408964:	8b e3                	mov    %ebx,%esp
408966:	5b                   	pop    %ebx
408967:	c3                   	ret
408968:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
40896f:	56                   	push   %esi
408970:	57                   	push   %edi
408971:	8b f9                	mov    %ecx,%edi
408973:	8b 37                	mov    (%edi),%esi
408975:	74 1b                	je     0x408992
408977:	8d 46 20             	lea    0x20(%esi),%eax
40897a:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
40897e:	72 02                	jb     0x408982
408980:	8b 00                	mov    (%eax),%eax
408982:	6a 00                	push   $0x0
408984:	6a 00                	push   $0x0
408986:	6a 66                	push   $0x66
408988:	50                   	push   %eax
408989:	8d 46 10             	lea    0x10(%esi),%eax
40898c:	50                   	push   %eax
40898d:	e8 fd fc ff ff       	call   0x40868f
408992:	8b 46 3c             	mov    0x3c(%esi),%eax
408995:	50                   	push   %eax
408996:	8b 08                	mov    (%eax),%ecx
408998:	8b 71 10             	mov    0x10(%ecx),%esi
40899b:	8b ce                	mov    %esi,%ecx
40899d:	ff 15 f0 e1 40 00    	call   *0x40e1f0
4089a3:	ff d6                	call   *%esi
4089a5:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
4089ac:	8b f0                	mov    %eax,%esi
4089ae:	74 0b                	je     0x4089bb
4089b0:	56                   	push   %esi
4089b1:	ba 60 1e 40 00       	mov    $0x401e60,%edx
4089b6:	e8 93 fc ff ff       	call   0x40864e
4089bb:	85 f6                	test   %esi,%esi
4089bd:	79 23                	jns    0x4089e2
4089bf:	a1 00 d0 40 00       	mov    0x40d000,%eax
4089c4:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
4089c9:	74 17                	je     0x4089e2
4089cb:	80 78 19 03          	cmpb   $0x3,0x19(%eax)
4089cf:	72 11                	jb     0x4089e2
4089d1:	56                   	push   %esi
4089d2:	ff 37                	push   (%edi)
4089d4:	ff 70 14             	push   0x14(%eax)
4089d7:	ff 70 10             	push   0x10(%eax)
4089da:	6a 0e                	push   $0xe
4089dc:	59                   	pop    %ecx
4089dd:	e8 8e fd ff ff       	call   0x408770
4089e2:	5f                   	pop    %edi
4089e3:	5e                   	pop    %esi
4089e4:	c3                   	ret
4089e5:	8b ff                	mov    %edi,%edi
4089e7:	55                   	push   %ebp
4089e8:	8b ec                	mov    %esp,%ebp
4089ea:	83 e4 f8             	and    $0xfffffff8,%esp
4089ed:	8d 45 08             	lea    0x8(%ebp),%eax
4089f0:	50                   	push   %eax
4089f1:	51                   	push   %ecx
4089f2:	e8 cb 0a 00 00       	call   0x4094c2
4089f7:	8b e5                	mov    %ebp,%esp
4089f9:	5d                   	pop    %ebp
4089fa:	c2 04 00             	ret    $0x4
4089fd:	8b ff                	mov    %edi,%edi
4089ff:	53                   	push   %ebx
408a00:	8b dc                	mov    %esp,%ebx
408a02:	51                   	push   %ecx
408a03:	51                   	push   %ecx
408a04:	83 e4 f8             	and    $0xfffffff8,%esp
408a07:	83 c4 04             	add    $0x4,%esp
408a0a:	55                   	push   %ebp
408a0b:	8b 6b 04             	mov    0x4(%ebx),%ebp
408a0e:	89 6c 24 04          	mov    %ebp,0x4(%esp)
408a12:	8b ec                	mov    %esp,%ebp
408a14:	51                   	push   %ecx
408a15:	51                   	push   %ecx
408a16:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
408a1d:	56                   	push   %esi
408a1e:	57                   	push   %edi
408a1f:	8b f9                	mov    %ecx,%edi
408a21:	8b 47 04             	mov    0x4(%edi),%eax
408a24:	8b 37                	mov    (%edi),%esi
408a26:	89 45 fc             	mov    %eax,-0x4(%ebp)
408a29:	74 1b                	je     0x408a46
408a2b:	8d 46 20             	lea    0x20(%esi),%eax
408a2e:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
408a32:	72 02                	jb     0x408a36
408a34:	8b 00                	mov    (%eax),%eax
408a36:	6a 00                	push   $0x0
408a38:	6a 00                	push   $0x0
408a3a:	6a 67                	push   $0x67
408a3c:	50                   	push   %eax
408a3d:	8d 46 10             	lea    0x10(%esi),%eax
408a40:	50                   	push   %eax
408a41:	e8 49 fc ff ff       	call   0x40868f
408a46:	8b 4e 3c             	mov    0x3c(%esi),%ecx
408a49:	8b 01                	mov    (%ecx),%eax
408a4b:	8b 70 14             	mov    0x14(%eax),%esi
408a4e:	8b 45 fc             	mov    -0x4(%ebp),%eax
408a51:	ff 30                	push   (%eax)
408a53:	51                   	push   %ecx
408a54:	8b ce                	mov    %esi,%ecx
408a56:	ff 15 f0 e1 40 00    	call   *0x40e1f0
408a5c:	ff d6                	call   *%esi
408a5e:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
408a65:	8b f0                	mov    %eax,%esi
408a67:	74 0b                	je     0x408a74
408a69:	56                   	push   %esi
408a6a:	ba 60 1e 40 00       	mov    $0x401e60,%edx
408a6f:	e8 da fb ff ff       	call   0x40864e
408a74:	85 f6                	test   %esi,%esi
408a76:	79 23                	jns    0x408a9b
408a78:	a1 00 d0 40 00       	mov    0x40d000,%eax
408a7d:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
408a82:	74 17                	je     0x408a9b
408a84:	80 78 19 03          	cmpb   $0x3,0x19(%eax)
408a88:	72 11                	jb     0x408a9b
408a8a:	56                   	push   %esi
408a8b:	ff 37                	push   (%edi)
408a8d:	ff 70 14             	push   0x14(%eax)
408a90:	ff 70 10             	push   0x10(%eax)
408a93:	6a 0f                	push   $0xf
408a95:	59                   	pop    %ecx
408a96:	e8 d5 fc ff ff       	call   0x408770
408a9b:	5f                   	pop    %edi
408a9c:	5e                   	pop    %esi
408a9d:	8b e5                	mov    %ebp,%esp
408a9f:	5d                   	pop    %ebp
408aa0:	8b e3                	mov    %ebx,%esp
408aa2:	5b                   	pop    %ebx
408aa3:	c3                   	ret
408aa4:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
408aab:	56                   	push   %esi
408aac:	57                   	push   %edi
408aad:	8b f9                	mov    %ecx,%edi
408aaf:	8b 37                	mov    (%edi),%esi
408ab1:	74 1b                	je     0x408ace
408ab3:	8d 46 20             	lea    0x20(%esi),%eax
408ab6:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
408aba:	72 02                	jb     0x408abe
408abc:	8b 00                	mov    (%eax),%eax
408abe:	6a 00                	push   $0x0
408ac0:	6a 00                	push   $0x0
408ac2:	6a 68                	push   $0x68
408ac4:	50                   	push   %eax
408ac5:	8d 46 10             	lea    0x10(%esi),%eax
408ac8:	50                   	push   %eax
408ac9:	e8 c1 fb ff ff       	call   0x40868f
408ace:	8b 46 3c             	mov    0x3c(%esi),%eax
408ad1:	50                   	push   %eax
408ad2:	8b 08                	mov    (%eax),%ecx
408ad4:	8b 71 18             	mov    0x18(%ecx),%esi
408ad7:	8b ce                	mov    %esi,%ecx
408ad9:	ff 15 f0 e1 40 00    	call   *0x40e1f0
408adf:	ff d6                	call   *%esi
408ae1:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
408ae8:	8b f0                	mov    %eax,%esi
408aea:	74 0b                	je     0x408af7
408aec:	56                   	push   %esi
408aed:	ba 60 1e 40 00       	mov    $0x401e60,%edx
408af2:	e8 57 fb ff ff       	call   0x40864e
408af7:	85 f6                	test   %esi,%esi
408af9:	79 23                	jns    0x408b1e
408afb:	a1 00 d0 40 00       	mov    0x40d000,%eax
408b00:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
408b05:	74 17                	je     0x408b1e
408b07:	80 78 19 03          	cmpb   $0x3,0x19(%eax)
408b0b:	72 11                	jb     0x408b1e
408b0d:	56                   	push   %esi
408b0e:	ff 37                	push   (%edi)
408b10:	ff 70 14             	push   0x14(%eax)
408b13:	ff 70 10             	push   0x10(%eax)
408b16:	6a 10                	push   $0x10
408b18:	59                   	pop    %ecx
408b19:	e8 52 fc ff ff       	call   0x408770
408b1e:	5f                   	pop    %edi
408b1f:	5e                   	pop    %esi
408b20:	c3                   	ret
408b21:	8b ff                	mov    %edi,%edi
408b23:	55                   	push   %ebp
408b24:	8b ec                	mov    %esp,%ebp
408b26:	83 e4 f8             	and    $0xfffffff8,%esp
408b29:	83 ec 10             	sub    $0x10,%esp
408b2c:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
408b33:	56                   	push   %esi
408b34:	57                   	push   %edi
408b35:	8b f9                	mov    %ecx,%edi
408b37:	8b 47 04             	mov    0x4(%edi),%eax
408b3a:	8b 37                	mov    (%edi),%esi
408b3c:	89 44 24 08          	mov    %eax,0x8(%esp)
408b40:	8b 08                	mov    (%eax),%ecx
408b42:	74 1d                	je     0x408b61
408b44:	8d 46 20             	lea    0x20(%esi),%eax
408b47:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
408b4b:	72 02                	jb     0x408b4f
408b4d:	8b 00                	mov    (%eax),%eax
408b4f:	6a 00                	push   $0x0
408b51:	51                   	push   %ecx
408b52:	68 c9 00 00 00       	push   $0xc9
408b57:	50                   	push   %eax
408b58:	8d 46 10             	lea    0x10(%esi),%eax