408ee2:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
408ee9:	8b f0                	mov    %eax,%esi
408eeb:	74 0b                	je     0x408ef8
408eed:	56                   	push   %esi
408eee:	ba 60 1e 40 00       	mov    $0x401e60,%edx
408ef3:	e8 56 f7 ff ff       	call   0x40864e
408ef8:	85 f6                	test   %esi,%esi
408efa:	79 23                	jns    0x408f1f
408efc:	a1 00 d0 40 00       	mov    0x40d000,%eax
408f01:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
408f06:	74 17                	je     0x408f1f
408f08:	80 78 19 03          	cmpb   $0x3,0x19(%eax)
408f0c:	72 11                	jb     0x408f1f
408f0e:	56                   	push   %esi
408f0f:	ff 37                	push   (%edi)
408f11:	ff 70 14             	push   0x14(%eax)
408f14:	ff 70 10             	push   0x10(%eax)
408f17:	6a 1d                	push   $0x1d
408f19:	59                   	pop    %ecx
408f1a:	e8 51 f8 ff ff       	call   0x408770
408f1f:	5f                   	pop    %edi
408f20:	5e                   	pop    %esi
408f21:	8b e5                	mov    %ebp,%esp
408f23:	5d                   	pop    %ebp
408f24:	8b e3                	mov    %ebx,%esp
408f26:	5b                   	pop    %ebx
408f27:	c3                   	ret
408f28:	8b ff                	mov    %edi,%edi
408f2a:	55                   	push   %ebp
408f2b:	8b ec                	mov    %esp,%ebp
408f2d:	51                   	push   %ecx
408f2e:	51                   	push   %ecx
408f2f:	a1 50 d1 40 00       	mov    0x40d150,%eax
408f34:	33 c5                	xor    %ebp,%eax
408f36:	89 45 fc             	mov    %eax,-0x4(%ebp)
408f39:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
408f3d:	83 79 4c 00          	cmpl   $0x0,0x4c(%ecx)
408f41:	74 13                	je     0x408f56
408f43:	8d 45 f8             	lea    -0x8(%ebp),%eax
408f46:	50                   	push   %eax
408f47:	51                   	push   %ecx
408f48:	e8 81 09 00 00       	call   0x4098ce
408f4d:	85 c0                	test   %eax,%eax
408f4f:	78 05                	js     0x408f56
408f51:	8b 45 f8             	mov    -0x8(%ebp),%eax
408f54:	eb 02                	jmp    0x408f58
408f56:	33 c0                	xor    %eax,%eax
408f58:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408f5b:	33 cd                	xor    %ebp,%ecx
408f5d:	e8 fe 0e 00 00       	call   0x409e60
408f62:	c9                   	leave
408f63:	c3                   	ret
408f64:	8b ff                	mov    %edi,%edi
408f66:	55                   	push   %ebp
408f67:	8b ec                	mov    %esp,%ebp
408f69:	83 ec 18             	sub    $0x18,%esp
408f6c:	a1 50 d1 40 00       	mov    0x40d150,%eax
408f71:	33 c5                	xor    %ebp,%eax
408f73:	89 45 fc             	mov    %eax,-0x4(%ebp)
408f76:	83 79 4c 00          	cmpl   $0x0,0x4c(%ecx)
408f7a:	56                   	push   %esi
408f7b:	57                   	push   %edi
408f7c:	74 3e                	je     0x408fbc
408f7e:	8b 41 38             	mov    0x38(%ecx),%eax
408f81:	a9 00 01 00 00       	test   $0x100,%eax
408f86:	74 34                	je     0x408fbc
408f88:	85 45 08             	test   %eax,0x8(%ebp)
408f8b:	74 2f                	je     0x408fbc
408f8d:	8d 45 08             	lea    0x8(%ebp),%eax
408f90:	89 4d e8             	mov    %ecx,-0x18(%ebp)
408f93:	89 45 ec             	mov    %eax,-0x14(%ebp)
408f96:	8d 75 e8             	lea    -0x18(%ebp),%esi
408f99:	83 ec 10             	sub    $0x10,%esp
408f9c:	c6 45 fb 01          	movb   $0x1,-0x5(%ebp)
408fa0:	8d 45 0c             	lea    0xc(%ebp),%eax
408fa3:	8b fc                	mov    %esp,%edi
408fa5:	89 45 f0             	mov    %eax,-0x10(%ebp)
408fa8:	8d 45 fb             	lea    -0x5(%ebp),%eax
408fab:	89 45 f4             	mov    %eax,-0xc(%ebp)
408fae:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408faf:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408fb0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408fb1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408fb2:	e8 94 09 00 00       	call   0x40994b
408fb7:	8a 45 fb             	mov    -0x5(%ebp),%al
408fba:	eb 02                	jmp    0x408fbe
408fbc:	b0 01                	mov    $0x1,%al
408fbe:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408fc1:	5f                   	pop    %edi
408fc2:	33 cd                	xor    %ebp,%ecx
408fc4:	5e                   	pop    %esi
408fc5:	e8 96 0e 00 00       	call   0x409e60
408fca:	c9                   	leave
408fcb:	c2 08 00             	ret    $0x8
408fce:	8b ff                	mov    %edi,%edi
408fd0:	55                   	push   %ebp
408fd1:	8b ec                	mov    %esp,%ebp
408fd3:	51                   	push   %ecx
408fd4:	51                   	push   %ecx
408fd5:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
408fdc:	56                   	push   %esi
408fdd:	57                   	push   %edi
408fde:	8b f9                	mov    %ecx,%edi
408fe0:	8b 47 04             	mov    0x4(%edi),%eax
408fe3:	8b 37                	mov    (%edi),%esi
408fe5:	89 45 fc             	mov    %eax,-0x4(%ebp)
408fe8:	8b 10                	mov    (%eax),%edx
408fea:	8b 47 08             	mov    0x8(%edi),%eax
408fed:	89 45 f8             	mov    %eax,-0x8(%ebp)
408ff0:	74 22                	je     0x409014
408ff2:	8d 46 20             	lea    0x20(%esi),%eax
408ff5:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
408ff9:	72 02                	jb     0x408ffd
408ffb:	8b 00                	mov    (%eax),%eax
408ffd:	6a 00                	push   $0x0
408fff:	52                   	push   %edx
409000:	68 f6 01 00 00       	push   $0x1f6
409005:	50                   	push   %eax
409006:	8d 46 10             	lea    0x10(%esi),%eax
409009:	50                   	push   %eax
40900a:	e8 80 f6 ff ff       	call   0x40868f
40900f:	8b 45 fc             	mov    -0x4(%ebp),%eax
409012:	8b 10                	mov    (%eax),%edx
409014:	8b 4e 4c             	mov    0x4c(%esi),%ecx
409017:	8b 01                	mov    (%ecx),%eax
409019:	8b 70 10             	mov    0x10(%eax),%esi
40901c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40901f:	ff 30                	push   (%eax)
409021:	52                   	push   %edx
409022:	51                   	push   %ecx
409023:	8b ce                	mov    %esi,%ecx
409025:	ff 15 f0 e1 40 00    	call   *0x40e1f0
40902b:	ff d6                	call   *%esi
40902d:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
409034:	8b f0                	mov    %eax,%esi
409036:	74 0b                	je     0x409043
409038:	56                   	push   %esi
409039:	ba 60 1e 40 00       	mov    $0x401e60,%edx
40903e:	e8 0b f6 ff ff       	call   0x40864e
409043:	85 f6                	test   %esi,%esi
409045:	79 23                	jns    0x40906a
409047:	a1 00 d0 40 00       	mov    0x40d000,%eax
40904c:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
409051:	74 17                	je     0x40906a
409053:	80 78 19 03          	cmpb   $0x3,0x19(%eax)
409057:	72 11                	jb     0x40906a
409059:	56                   	push   %esi
40905a:	ff 37                	push   (%edi)
40905c:	ff 70 14             	push   0x14(%eax)
40905f:	ff 70 10             	push   0x10(%eax)
409062:	6a 1e                	push   $0x1e
409064:	59                   	pop    %ecx
409065:	e8 06 f7 ff ff       	call   0x408770
40906a:	81 fe 22 a0 04 00    	cmp    $0x4a022,%esi
409070:	75 06                	jne    0x409078
409072:	8b 47 0c             	mov    0xc(%edi),%eax
409075:	c6 00 00             	movb   $0x0,(%eax)
409078:	5f                   	pop    %edi
409079:	5e                   	pop    %esi
40907a:	c9                   	leave
40907b:	c3                   	ret
40907c:	8b ff                	mov    %edi,%edi
40907e:	53                   	push   %ebx
40907f:	8b dc                	mov    %esp,%ebx
409081:	51                   	push   %ecx
409082:	51                   	push   %ecx
409083:	83 e4 f8             	and    $0xfffffff8,%esp
409086:	83 c4 04             	add    $0x4,%esp
409089:	55                   	push   %ebp
40908a:	8b 6b 04             	mov    0x4(%ebx),%ebp
40908d:	89 6c 24 04          	mov    %ebp,0x4(%esp)
409091:	8b ec                	mov    %esp,%ebp
409093:	51                   	push   %ecx
409094:	51                   	push   %ecx
409095:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
40909c:	56                   	push   %esi
40909d:	57                   	push   %edi
40909e:	8b f9                	mov    %ecx,%edi
4090a0:	8b 47 04             	mov    0x4(%edi),%eax
4090a3:	8b 37                	mov    (%edi),%esi
4090a5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4090a8:	8b 10                	mov    (%eax),%edx
4090aa:	8b 47 08             	mov    0x8(%edi),%eax
4090ad:	89 45 f8             	mov    %eax,-0x8(%ebp)
4090b0:	74 22                	je     0x4090d4
4090b2:	8d 46 20             	lea    0x20(%esi),%eax
4090b5:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
4090b9:	72 02                	jb     0x4090bd
4090bb:	8b 00                	mov    (%eax),%eax
4090bd:	6a 00                	push   $0x0
4090bf:	52                   	push   %edx
4090c0:	68 f7 01 00 00       	push   $0x1f7
4090c5:	50                   	push   %eax
4090c6:	8d 46 10             	lea    0x10(%esi),%eax
4090c9:	50                   	push   %eax
4090ca:	e8 c0 f5 ff ff       	call   0x40868f
4090cf:	8b 45 fc             	mov    -0x4(%ebp),%eax
4090d2:	8b 10                	mov    (%eax),%edx
4090d4:	8b 4e 4c             	mov    0x4c(%esi),%ecx
4090d7:	8b 01                	mov    (%ecx),%eax
4090d9:	8b 70 14             	mov    0x14(%eax),%esi
4090dc:	8b 45 f8             	mov    -0x8(%ebp),%eax
4090df:	ff 30                	push   (%eax)
4090e1:	52                   	push   %edx
4090e2:	51                   	push   %ecx
4090e3:	8b ce                	mov    %esi,%ecx
4090e5:	ff 15 f0 e1 40 00    	call   *0x40e1f0
4090eb:	ff d6                	call   *%esi
4090ed:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
4090f4:	8b f0                	mov    %eax,%esi
4090f6:	74 0b                	je     0x409103
4090f8:	56                   	push   %esi
4090f9:	ba 60 1e 40 00       	mov    $0x401e60,%edx
4090fe:	e8 4b f5 ff ff       	call   0x40864e
409103:	85 f6                	test   %esi,%esi
409105:	79 23                	jns    0x40912a
409107:	a1 00 d0 40 00       	mov    0x40d000,%eax
40910c:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
409111:	74 17                	je     0x40912a
409113:	80 78 19 03          	cmpb   $0x3,0x19(%eax)
409117:	72 11                	jb     0x40912a
409119:	56                   	push   %esi
40911a:	ff 37                	push   (%edi)
40911c:	ff 70 14             	push   0x14(%eax)
40911f:	ff 70 10             	push   0x10(%eax)
409122:	6a 1f                	push   $0x1f
409124:	59                   	pop    %ecx
409125:	e8 46 f6 ff ff       	call   0x408770
40912a:	5f                   	pop    %edi
40912b:	5e                   	pop    %esi
40912c:	8b e5                	mov    %ebp,%esp
40912e:	5d                   	pop    %ebp
40912f:	8b e3                	mov    %ebx,%esp
409131:	5b                   	pop    %ebx
409132:	c3                   	ret
409133:	8b ff                	mov    %edi,%edi
409135:	55                   	push   %ebp
409136:	8b ec                	mov    %esp,%ebp
409138:	51                   	push   %ecx
409139:	51                   	push   %ecx
40913a:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
409141:	56                   	push   %esi
409142:	57                   	push   %edi
409143:	8b f9                	mov    %ecx,%edi
409145:	8b 47 04             	mov    0x4(%edi),%eax
409148:	8b 37                	mov    (%edi),%esi
40914a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40914d:	8b 10                	mov    (%eax),%edx
40914f:	8b 47 08             	mov    0x8(%edi),%eax
409152:	89 45 f8             	mov    %eax,-0x8(%ebp)
409155:	74 22                	je     0x409179
409157:	8d 46 20             	lea    0x20(%esi),%eax
40915a:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
40915e:	72 02                	jb     0x409162
409160:	8b 00                	mov    (%eax),%eax
409162:	6a 00                	push   $0x0
409164:	52                   	push   %edx
409165:	68 f8 01 00 00       	push   $0x1f8
40916a:	50                   	push   %eax
40916b:	8d 46 10             	lea    0x10(%esi),%eax
40916e:	50                   	push   %eax
40916f:	e8 1b f5 ff ff       	call   0x40868f
409174:	8b 45 fc             	mov    -0x4(%ebp),%eax
409177:	8b 10                	mov    (%eax),%edx
409179:	8b 4e 4c             	mov    0x4c(%esi),%ecx
40917c:	8b 01                	mov    (%ecx),%eax
40917e:	8b 70 18             	mov    0x18(%eax),%esi
409181:	8b 45 f8             	mov    -0x8(%ebp),%eax
409184:	ff 30                	push   (%eax)
409186:	52                   	push   %edx
409187:	51                   	push   %ecx
409188:	8b ce                	mov    %esi,%ecx
40918a:	ff 15 f0 e1 40 00    	call   *0x40e1f0
409190:	ff d6                	call   *%esi
409192:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
409199:	8b f0                	mov    %eax,%esi
40919b:	74 0b                	je     0x4091a8
40919d:	56                   	push   %esi
40919e:	ba 60 1e 40 00       	mov    $0x401e60,%edx
4091a3:	e8 a6 f4 ff ff       	call   0x40864e
4091a8:	85 f6                	test   %esi,%esi
4091aa:	79 23                	jns    0x4091cf
4091ac:	a1 00 d0 40 00       	mov    0x40d000,%eax
4091b1:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
4091b6:	74 17                	je     0x4091cf
4091b8:	80 78 19 03          	cmpb   $0x3,0x19(%eax)
4091bc:	72 11                	jb     0x4091cf
4091be:	56                   	push   %esi
4091bf:	ff 37                	push   (%edi)
4091c1:	ff 70 14             	push   0x14(%eax)
4091c4:	ff 70 10             	push   0x10(%eax)
4091c7:	6a 20                	push   $0x20
4091c9:	59                   	pop    %ecx
4091ca:	e8 a1 f5 ff ff       	call   0x408770
4091cf:	5f                   	pop    %edi
4091d0:	5e                   	pop    %esi
4091d1:	c9                   	leave
4091d2:	c3                   	ret
4091d3:	8b ff                	mov    %edi,%edi
4091d5:	55                   	push   %ebp
4091d6:	8b ec                	mov    %esp,%ebp
4091d8:	51                   	push   %ecx
4091d9:	8b 45 0c             	mov    0xc(%ebp),%eax
4091dc:	57                   	push   %edi
4091dd:	8b f9                	mov    %ecx,%edi
4091df:	3b 47 14             	cmp    0x14(%edi),%eax
4091e2:	77 2b                	ja     0x40920f
4091e4:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
4091e8:	53                   	push   %ebx
4091e9:	56                   	push   %esi
4091ea:	8b df                	mov    %edi,%ebx
4091ec:	72 02                	jb     0x4091f0
4091ee:	8b 1f                	mov    (%edi),%ebx
4091f0:	8d 34 00             	lea    (%eax,%eax,1),%esi
4091f3:	89 47 10             	mov    %eax,0x10(%edi)
4091f6:	56                   	push   %esi
4091f7:	ff 75 08             	push   0x8(%ebp)
4091fa:	53                   	push   %ebx
4091fb:	e8 c3 1a 00 00       	call   0x40acc3
409200:	83 c4 0c             	add    $0xc,%esp
409203:	33 c0                	xor    %eax,%eax
409205:	66 89 04 1e          	mov    %ax,(%esi,%ebx,1)
409209:	8b c7                	mov    %edi,%eax
40920b:	5e                   	pop    %esi
40920c:	5b                   	pop    %ebx
40920d:	eb 10                	jmp    0x40921f
40920f:	ff 75 08             	push   0x8(%ebp)
409212:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
409216:	ff 75 fc             	push   -0x4(%ebp)
409219:	50                   	push   %eax
40921a:	e8 bb 08 00 00       	call   0x409ada
40921f:	5f                   	pop    %edi
409220:	c9                   	leave
409221:	c2 08 00             	ret    $0x8
409224:	8b ff                	mov    %edi,%edi
409226:	55                   	push   %ebp
409227:	8b ec                	mov    %esp,%ebp
409229:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
409230:	74 1b                	je     0x40924d
409232:	8d 41 20             	lea    0x20(%ecx),%eax
409235:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
409239:	72 02                	jb     0x40923d
40923b:	8b 00                	mov    (%eax),%eax
40923d:	6a 00                	push   $0x0
40923f:	6a 00                	push   $0x0
409241:	6a 32                	push   $0x32
409243:	50                   	push   %eax
409244:	8d 41 10             	lea    0x10(%ecx),%eax
409247:	50                   	push   %eax
409248:	e8 42 f4 ff ff       	call   0x40868f