40cdef:	e8 7c aa 00 00       	call   0x417870
40cdf4:	8b 45 d8             	mov    -0x28(%ebp),%eax
40cdf7:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40cdfa:	83 c4 0c             	add    $0xc,%esp
40cdfd:	c1 e0 04             	shl    $0x4,%eax
40ce00:	8d 44 08 f0          	lea    -0x10(%eax,%ecx,1),%eax
40ce04:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ce07:	66 c7 00 03 00       	movw   $0x3,(%eax)
40ce0c:	89 48 08             	mov    %ecx,0x8(%eax)
40ce0f:	8d 45 d0             	lea    -0x30(%ebp),%eax
40ce12:	eb 03                	jmp    0x40ce17
40ce14:	8b 47 08             	mov    0x8(%edi),%eax
40ce17:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40ce1a:	51                   	push   %ecx
40ce1b:	50                   	push   %eax
40ce1c:	8d 45 c0             	lea    -0x40(%ebp),%eax
40ce1f:	50                   	push   %eax
40ce20:	6a 01                	push   $0x1
40ce22:	56                   	push   %esi
40ce23:	8b cb                	mov    %ebx,%ecx
40ce25:	e8 ec f0 06 00       	call   0x47bf16
40ce2a:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
40ce2e:	89 45 ec             	mov    %eax,-0x14(%ebp)
40ce31:	0f bf 45 c8          	movswl -0x38(%ebp),%eax
40ce35:	89 45 10             	mov    %eax,0x10(%ebp)
40ce38:	74 36                	je     0x40ce70
40ce3a:	ff 75 d0             	push   -0x30(%ebp)
40ce3d:	e8 3e 32 03 00       	call   0x440080
40ce42:	59                   	pop    %ecx
40ce43:	eb 2b                	jmp    0x40ce70
40ce45:	8b 45 0c             	mov    0xc(%ebp),%eax
40ce48:	8b 40 0c             	mov    0xc(%eax),%eax
40ce4b:	85 c0                	test   %eax,%eax
40ce4d:	74 09                	je     0x40ce58
40ce4f:	ff 75 e0             	push   -0x20(%ebp)
40ce52:	50                   	push   %eax
40ce53:	e8 4b f5 06 00       	call   0x47c3a3
40ce58:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40ce5b:	e8 b9 30 03 00       	call   0x43ff19
40ce60:	c7 45 ec 09 00 02 80 	movl   $0x80020009,-0x14(%ebp)
40ce67:	b8 6d ce 40 00       	mov    $0x40ce6d,%eax
40ce6c:	c3                   	ret
40ce6d:	8b 7d 0c             	mov    0xc(%ebp),%edi
40ce70:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
40ce74:	7d 11                	jge    0x40ce87
40ce76:	8b 47 10             	mov    0x10(%edi),%eax
40ce79:	85 c0                	test   %eax,%eax
40ce7b:	74 0a                	je     0x40ce87
40ce7d:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40ce80:	83 f9 ff             	cmp    $0xffffffff,%ecx
40ce83:	74 02                	je     0x40ce87
40ce85:	89 08                	mov    %ecx,(%eax)
40ce87:	8b 45 ec             	mov    -0x14(%ebp),%eax
40ce8a:	89 47 18             	mov    %eax,0x18(%edi)
40ce8d:	8b 45 10             	mov    0x10(%ebp),%eax
40ce90:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ce93:	5f                   	pop    %edi
40ce94:	5e                   	pop    %esi
40ce95:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ce9c:	5b                   	pop    %ebx
40ce9d:	c9                   	leave
40ce9e:	c2 0c 00             	ret    $0xc
40cea1:	8b c1                	mov    %ecx,%eax
40cea3:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40cea7:	89 08                	mov    %ecx,(%eax)
40cea9:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40cead:	89 48 04             	mov    %ecx,0x4(%eax)
40ceb0:	c2 08 00             	ret    $0x8
40ceb3:	8b 51 0c             	mov    0xc(%ecx),%edx
40ceb6:	2b 51 04             	sub    0x4(%ecx),%edx
40ceb9:	8b 44 24 04          	mov    0x4(%esp),%eax
40cebd:	56                   	push   %esi
40cebe:	8b 71 08             	mov    0x8(%ecx),%esi
40cec1:	2b 31                	sub    (%ecx),%esi
40cec3:	89 50 04             	mov    %edx,0x4(%eax)
40cec6:	89 30                	mov    %esi,(%eax)
40cec8:	5e                   	pop    %esi
40cec9:	c2 04 00             	ret    $0x4
40cecc:	ff 74 24 08          	push   0x8(%esp)
40ced0:	ff 74 24 08          	push   0x8(%esp)
40ced4:	51                   	push   %ecx
40ced5:	ff 15 30 07 4b 00    	call   *0x4b0730
40cedb:	c2 08 00             	ret    $0x8
40cede:	b8 08 c3 48 00       	mov    $0x48c308,%eax
40cee3:	c3                   	ret
40cee4:	b8 d8 c2 48 00       	mov    $0x48c2d8,%eax
40cee9:	c3                   	ret
40ceea:	8b 49 04             	mov    0x4(%ecx),%ecx
40ceed:	85 c9                	test   %ecx,%ecx
40ceef:	74 07                	je     0x40cef8
40cef1:	8b 01                	mov    (%ecx),%eax
40cef3:	6a 01                	push   $0x1
40cef5:	ff 50 04             	call   *0x4(%eax)
40cef8:	c3                   	ret
40cef9:	e9 a8 f7 02 00       	jmp    0x43c6a6
40cefe:	56                   	push   %esi
40ceff:	8b f1                	mov    %ecx,%esi
40cf01:	e8 e4 ff ff ff       	call   0x40ceea
40cf06:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
40cf0b:	74 07                	je     0x40cf14
40cf0d:	56                   	push   %esi
40cf0e:	e8 6d 31 03 00       	call   0x440080
40cf13:	59                   	pop    %ecx
40cf14:	8b c6                	mov    %esi,%eax
40cf16:	5e                   	pop    %esi
40cf17:	c2 04 00             	ret    $0x4
40cf1a:	56                   	push   %esi
40cf1b:	8b f1                	mov    %ecx,%esi
40cf1d:	8b 46 64             	mov    0x64(%esi),%eax
40cf20:	85 c0                	test   %eax,%eax
40cf22:	57                   	push   %edi
40cf23:	8b 7c 24 0c          	mov    0xc(%esp),%edi
40cf27:	74 0d                	je     0x40cf36
40cf29:	3b c7                	cmp    %edi,%eax
40cf2b:	74 09                	je     0x40cf36
40cf2d:	8b 40 50             	mov    0x50(%eax),%eax
40cf30:	8b 08                	mov    (%eax),%ecx
40cf32:	50                   	push   %eax
40cf33:	ff 51 18             	call   *0x18(%ecx)
40cf36:	89 7e 64             	mov    %edi,0x64(%esi)
40cf39:	5f                   	pop    %edi
40cf3a:	5e                   	pop    %esi
40cf3b:	c2 04 00             	ret    $0x4
40cf3e:	8b 41 64             	mov    0x64(%ecx),%eax
40cf41:	3b 44 24 04          	cmp    0x4(%esp),%eax
40cf45:	75 04                	jne    0x40cf4b
40cf47:	83 61 64 00          	andl   $0x0,0x64(%ecx)
40cf4b:	c2 04 00             	ret    $0x4
40cf4e:	56                   	push   %esi
40cf4f:	8b 74 24 08          	mov    0x8(%esp),%esi
40cf53:	57                   	push   %edi
40cf54:	8b f9                	mov    %ecx,%edi
40cf56:	eb 13                	jmp    0x40cf6b
40cf58:	8b 07                	mov    (%edi),%eax
40cf5a:	33 c9                	xor    %ecx,%ecx
40cf5c:	3b 74 24 14          	cmp    0x14(%esp),%esi
40cf60:	0f 94 c1             	sete   %cl
40cf63:	51                   	push   %ecx
40cf64:	56                   	push   %esi
40cf65:	8b cf                	mov    %edi,%ecx
40cf67:	ff 50 68             	call   *0x68(%eax)
40cf6a:	46                   	inc    %esi
40cf6b:	3b 74 24 10          	cmp    0x10(%esp),%esi
40cf6f:	7e e7                	jle    0x40cf58
40cf71:	5f                   	pop    %edi
40cf72:	5e                   	pop    %esi
40cf73:	c2 0c 00             	ret    $0xc
40cf76:	55                   	push   %ebp
40cf77:	8b ec                	mov    %esp,%ebp
40cf79:	8b 01                	mov    (%ecx),%eax
40cf7b:	8d 55 08             	lea    0x8(%ebp),%edx
40cf7e:	52                   	push   %edx
40cf7f:	ff 75 08             	push   0x8(%ebp)
40cf82:	ff 50 70             	call   *0x70(%eax)
40cf85:	ff 75 08             	push   0x8(%ebp)
40cf88:	e8 15 7d 03 00       	call   0x444ca2
40cf8d:	5d                   	pop    %ebp
40cf8e:	c2 04 00             	ret    $0x4
40cf91:	55                   	push   %ebp
40cf92:	8b ec                	mov    %esp,%ebp
40cf94:	81 ec 04 01 00 00    	sub    $0x104,%esp
40cf9a:	a1 40 8b 4a 00       	mov    0x4a8b40,%eax
40cf9f:	68 00 01 00 00       	push   $0x100
40cfa4:	8d 95 fc fe ff ff    	lea    -0x104(%ebp),%edx
40cfaa:	52                   	push   %edx
40cfab:	ff 75 08             	push   0x8(%ebp)
40cfae:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cfb1:	8b 01                	mov    (%ecx),%eax
40cfb3:	ff 50 7c             	call   *0x7c(%eax)
40cfb6:	85 c0                	test   %eax,%eax
40cfb8:	75 0e                	jne    0x40cfc8
40cfba:	8b 45 0c             	mov    0xc(%ebp),%eax
40cfbd:	85 c0                	test   %eax,%eax
40cfbf:	74 03                	je     0x40cfc4
40cfc1:	83 20 00             	andl   $0x0,(%eax)
40cfc4:	33 c0                	xor    %eax,%eax
40cfc6:	eb 78                	jmp    0x40d040
40cfc8:	0f be 85 fc fe ff ff 	movsbl -0x104(%ebp),%eax
40cfcf:	56                   	push   %esi
40cfd0:	57                   	push   %edi
40cfd1:	50                   	push   %eax
40cfd2:	8d b5 fc fe ff ff    	lea    -0x104(%ebp),%esi
40cfd8:	e8 73 d8 00 00       	call   0x41a850
40cfdd:	8b 3d 24 06 4b 00    	mov    0x4b0624,%edi
40cfe3:	eb 0e                	jmp    0x40cff3
40cfe5:	56                   	push   %esi
40cfe6:	ff d7                	call   *%edi
40cfe8:	8b f0                	mov    %eax,%esi
40cfea:	0f be 06             	movsbl (%esi),%eax
40cfed:	50                   	push   %eax
40cfee:	e8 5d d8 00 00       	call   0x41a850
40cff3:	85 c0                	test   %eax,%eax
40cff5:	59                   	pop    %ecx
40cff6:	75 ed                	jne    0x40cfe5
40cff8:	8a 06                	mov    (%esi),%al
40cffa:	3c 2b                	cmp    $0x2b,%al
40cffc:	74 04                	je     0x40d002
40cffe:	3c 2d                	cmp    $0x2d,%al
40d000:	75 05                	jne    0x40d007
40d002:	56                   	push   %esi
40d003:	ff d7                	call   *%edi
40d005:	8b f0                	mov    %eax,%esi
40d007:	0f be 06             	movsbl (%esi),%eax
40d00a:	50                   	push   %eax
40d00b:	e8 bc d7 00 00       	call   0x41a7cc
40d010:	59                   	pop    %ecx
40d011:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d014:	85 c9                	test   %ecx,%ecx
40d016:	5f                   	pop    %edi
40d017:	5e                   	pop    %esi
40d018:	74 02                	je     0x40d01c
40d01a:	89 01                	mov    %eax,(%ecx)
40d01c:	85 c0                	test   %eax,%eax
40d01e:	74 a4                	je     0x40cfc4
40d020:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40d024:	6a 0a                	push   $0xa
40d026:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40d02c:	6a 00                	push   $0x0
40d02e:	50                   	push   %eax
40d02f:	74 07                	je     0x40d038
40d031:	e8 68 d7 00 00       	call   0x41a79e
40d036:	eb 05                	jmp    0x40d03d
40d038:	e8 78 d7 00 00       	call   0x41a7b5
40d03d:	83 c4 0c             	add    $0xc,%esp
40d040:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d043:	e8 96 ab 00 00       	call   0x417bde
40d048:	c9                   	leave
40d049:	c2 0c 00             	ret    $0xc
40d04c:	ff 74 24 04          	push   0x4(%esp)
40d050:	8b 01                	mov    (%ecx),%eax
40d052:	ff 50 74             	call   *0x74(%eax)
40d055:	85 c0                	test   %eax,%eax
40d057:	74 0f                	je     0x40d068
40d059:	ff 74 24 0c          	push   0xc(%esp)
40d05d:	8b c8                	mov    %eax,%ecx
40d05f:	ff 74 24 0c          	push   0xc(%esp)
40d063:	e8 62 43 03 00       	call   0x4413ca
40d068:	c2 0c 00             	ret    $0xc
40d06b:	55                   	push   %ebp
40d06c:	8b ec                	mov    %esp,%ebp
40d06e:	83 ec 28             	sub    $0x28,%esp
40d071:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40d075:	a1 40 8b 4a 00       	mov    0x4a8b40,%eax
40d07a:	56                   	push   %esi
40d07b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d07e:	6a 0a                	push   $0xa
40d080:	8d 45 d8             	lea    -0x28(%ebp),%eax
40d083:	50                   	push   %eax
40d084:	ff 75 0c             	push   0xc(%ebp)
40d087:	8b f1                	mov    %ecx,%esi
40d089:	74 07                	je     0x40d092
40d08b:	e8 ac d8 00 00       	call   0x41a93c
40d090:	eb 05                	jmp    0x40d097
40d092:	e8 cc d8 00 00       	call   0x41a963
40d097:	8b 06                	mov    (%esi),%eax
40d099:	83 c4 0c             	add    $0xc,%esp
40d09c:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40d09f:	51                   	push   %ecx
40d0a0:	ff 75 08             	push   0x8(%ebp)
40d0a3:	8b ce                	mov    %esi,%ecx
40d0a5:	ff 90 88 00 00 00    	call   *0x88(%eax)
40d0ab:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d0ae:	5e                   	pop    %esi
40d0af:	e8 2a ab 00 00       	call   0x417bde
40d0b4:	c9                   	leave
40d0b5:	c2 0c 00             	ret    $0xc
40d0b8:	ff 74 24 04          	push   0x4(%esp)
40d0bc:	8b 01                	mov    (%ecx),%eax
40d0be:	ff 50 74             	call   *0x74(%eax)
40d0c1:	85 c0                	test   %eax,%eax
40d0c3:	74 0b                	je     0x40d0d0
40d0c5:	ff 74 24 08          	push   0x8(%esp)
40d0c9:	8b c8                	mov    %eax,%ecx
40d0cb:	e8 fe 3b 03 00       	call   0x440cce
40d0d0:	c2 08 00             	ret    $0x8
40d0d3:	33 c0                	xor    %eax,%eax
40d0d5:	39 41 6c             	cmp    %eax,0x6c(%ecx)
40d0d8:	0f 95 c0             	setne  %al
40d0db:	c3                   	ret
40d0dc:	ff 74 24 0c          	push   0xc(%esp)
40d0e0:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40d0e4:	ff 74 24 0c          	push   0xc(%esp)
40d0e8:	83 c1 8c             	add    $0xffffff8c,%ecx
40d0eb:	e8 0c 70 06 00       	call   0x4740fc
40d0f0:	c2 0c 00             	ret    $0xc
40d0f3:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40d0f7:	83 c1 8c             	add    $0xffffff8c,%ecx
40d0fa:	e8 40 6e 06 00       	call   0x473f3f
40d0ff:	c2 04 00             	ret    $0x4
40d102:	8b 44 24 04          	mov    0x4(%esp),%eax
40d106:	8b 40 a8             	mov    -0x58(%eax),%eax
40d109:	8b 40 1c             	mov    0x1c(%eax),%eax
40d10c:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40d110:	89 01                	mov    %eax,(%ecx)
40d112:	33 c0                	xor    %eax,%eax
40d114:	c2 08 00             	ret    $0x8
40d117:	b8 01 40 00 80       	mov    $0x80004001,%eax
40d11c:	c2 08 00             	ret    $0x8
40d11f:	b8 01 40 00 80       	mov    $0x80004001,%eax
40d124:	c2 08 00             	ret    $0x8
40d127:	b8 01 40 00 80       	mov    $0x80004001,%eax
40d12c:	c2 08 00             	ret    $0x8
40d12f:	b8 01 40 00 80       	mov    $0x80004001,%eax
40d134:	c2 08 00             	ret    $0x8
40d137:	53                   	push   %ebx
40d138:	8b 5c 24 08          	mov    0x8(%esp),%ebx
40d13c:	8b 43 f0             	mov    -0x10(%ebx),%eax
40d13f:	85 c0                	test   %eax,%eax
40d141:	74 25                	je     0x40d168
40d143:	56                   	push   %esi
40d144:	8b 74 24 10          	mov    0x10(%esp),%esi
40d148:	85 f6                	test   %esi,%esi
40d14a:	57                   	push   %edi
40d14b:	8b 78 54             	mov    0x54(%eax),%edi
40d14e:	74 06                	je     0x40d156
40d150:	8b 06                	mov    (%esi),%eax
40d152:	56                   	push   %esi
40d153:	ff 50 04             	call   *0x4(%eax)
40d156:	85 ff                	test   %edi,%edi
40d158:	8b 43 f0             	mov    -0x10(%ebx),%eax
40d15b:	89 70 54             	mov    %esi,0x54(%eax)
40d15e:	74 06                	je     0x40d166
40d160:	8b 07                	mov    (%edi),%eax
40d162:	57                   	push   %edi
40d163:	ff 50 08             	call   *0x8(%eax)
40d166:	5f                   	pop    %edi
40d167:	5e                   	pop    %esi
40d168:	33 c0                	xor    %eax,%eax
40d16a:	5b                   	pop    %ebx
40d16b:	c2 0c 00             	ret    $0xc
40d16e:	b8 01 40 00 80       	mov    $0x80004001,%eax
40d173:	c2 0c 00             	ret    $0xc
40d176:	b8 01 40 00 80       	mov    $0x80004001,%eax
40d17b:	c2 10 00             	ret    $0x10
40d17e:	b8 01 40 00 80       	mov    $0x80004001,%eax
40d183:	c2 08 00             	ret    $0x8
40d186:	b8 01 40 00 80       	mov    $0x80004001,%eax
40d18b:	c2 08 00             	ret    $0x8
40d18e:	33 c0                	xor    %eax,%eax
40d190:	c2 08 00             	ret    $0x8
40d193:	b8 01 40 00 80       	mov    $0x80004001,%eax
40d198:	c2 0c 00             	ret    $0xc
40d19b:	56                   	push   %esi
40d19c:	6a 01                	push   $0x1
40d19e:	ff 74 24 10          	push   0x10(%esp)
40d1a2:	8b f1                	mov    %ecx,%esi
40d1a4:	ff 74 24 10          	push   0x10(%esp)
40d1a8:	6a 04                	push   $0x4
40d1aa:	e8 ec a4 06 00       	call   0x47769b
40d1af:	c7 06 2c c3 48 00    	movl   $0x48c32c,(%esi)