40cd99:	53                   	push   %ebx
40cd9a:	33 db                	xor    %ebx,%ebx
40cd9c:	39 5e 10             	cmp    %ebx,0x10(%esi)
40cd9f:	0f 85 bb 00 00 00    	jne    0x40ce60
40cda5:	e8 c1 7c 00 00       	call   0x414a6b
40cdaa:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40cdb0:	e8 2d ef ff ff       	call   0x40bce2
40cdb5:	83 c8 ff             	or     $0xffffffff,%eax
40cdb8:	e9 b9 00 00 00       	jmp    0x40ce76
40cdbd:	89 5e 38             	mov    %ebx,0x38(%esi)
40cdc0:	89 5e 1c             	mov    %ebx,0x1c(%esi)
40cdc3:	e9 85 00 00 00       	jmp    0x40ce4d
40cdc8:	ff 46 10             	incl   0x10(%esi)
40cdcb:	39 5e 18             	cmp    %ebx,0x18(%esi)
40cdce:	0f 8c 8c 00 00 00    	jl     0x40ce60
40cdd4:	ff 76 1c             	push   0x1c(%esi)
40cdd7:	0f b6 46 31          	movzbl 0x31(%esi),%eax
40cddb:	8b ce                	mov    %esi,%ecx
40cddd:	50                   	push   %eax
40cdde:	e8 a9 fc ff ff       	call   0x40ca8c
40cde3:	89 46 1c             	mov    %eax,0x1c(%esi)
40cde6:	83 f8 08             	cmp    $0x8,%eax
40cde9:	74 ba                	je     0x40cda5
40cdeb:	83 f8 07             	cmp    $0x7,%eax
40cdee:	77 c5                	ja     0x40cdb5
40cdf0:	ff 24 85 7c ce 40 00 	jmp    *0x40ce7c(,%eax,4)
40cdf7:	8b ce                	mov    %esi,%ecx
40cdf9:	e8 94 02 00 00       	call   0x40d092
40cdfe:	eb 45                	jmp    0x40ce45
40ce00:	83 4e 28 ff          	orl    $0xffffffff,0x28(%esi)
40ce04:	89 5e 24             	mov    %ebx,0x24(%esi)
40ce07:	88 5e 30             	mov    %bl,0x30(%esi)
40ce0a:	89 5e 20             	mov    %ebx,0x20(%esi)
40ce0d:	89 5e 2c             	mov    %ebx,0x2c(%esi)
40ce10:	88 5e 3c             	mov    %bl,0x3c(%esi)
40ce13:	eb 38                	jmp    0x40ce4d
40ce15:	8b ce                	mov    %esi,%ecx
40ce17:	e8 dd 01 00 00       	call   0x40cff9
40ce1c:	eb 27                	jmp    0x40ce45
40ce1e:	8b ce                	mov    %esi,%ecx
40ce20:	e8 89 0f 00 00       	call   0x40ddae
40ce25:	eb 1e                	jmp    0x40ce45
40ce27:	89 5e 28             	mov    %ebx,0x28(%esi)
40ce2a:	eb 21                	jmp    0x40ce4d
40ce2c:	8b ce                	mov    %esi,%ecx
40ce2e:	e8 f6 03 00 00       	call   0x40d229
40ce33:	eb 10                	jmp    0x40ce45
40ce35:	8b ce                	mov    %esi,%ecx
40ce37:	e8 a7 05 00 00       	call   0x40d3e3
40ce3c:	eb 07                	jmp    0x40ce45
40ce3e:	8b ce                	mov    %esi,%ecx
40ce40:	e8 b2 0a 00 00       	call   0x40d8f7
40ce45:	84 c0                	test   %al,%al
40ce47:	0f 84 68 ff ff ff    	je     0x40cdb5
40ce4d:	8b 46 10             	mov    0x10(%esi),%eax
40ce50:	8a 00                	mov    (%eax),%al
40ce52:	88 46 31             	mov    %al,0x31(%esi)
40ce55:	84 c0                	test   %al,%al
40ce57:	0f 85 6b ff ff ff    	jne    0x40cdc8
40ce5d:	ff 46 10             	incl   0x10(%esi)
40ce60:	ff 86 50 04 00 00    	incl   0x450(%esi)
40ce66:	83 be 50 04 00 00 02 	cmpl   $0x2,0x450(%esi)
40ce6d:	0f 85 4a ff ff ff    	jne    0x40cdbd
40ce73:	8b 46 18             	mov    0x18(%esi),%eax
40ce76:	5b                   	pop    %ebx
40ce77:	5e                   	pop    %esi
40ce78:	c3                   	ret
40ce79:	8d 49 00             	lea    0x0(%ecx),%ecx
40ce7c:	f7 cd 40 00 00 ce    	test   $0xce000040,%ebp
40ce82:	40                   	inc    %eax
40ce83:	00 15 ce 40 00 1e    	add    %dl,0x1e0040ce
40ce89:	ce                   	into
40ce8a:	40                   	inc    %eax
40ce8b:	00 27                	add    %ah,(%edi)
40ce8d:	ce                   	into
40ce8e:	40                   	inc    %eax
40ce8f:	00 2c ce             	add    %ch,(%esi,%ecx,8)
40ce92:	40                   	inc    %eax
40ce93:	00 35 ce 40 00 3e    	add    %dh,0x3e0040ce
40ce99:	ce                   	into
40ce9a:	40                   	inc    %eax
40ce9b:	00 8b ff 56 8b f1    	add    %cl,-0xe74a901(%ebx)
40cea1:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40cea7:	e8 56 1e 00 00       	call   0x40ed02
40ceac:	84 c0                	test   %al,%al
40ceae:	75 05                	jne    0x40ceb5
40ceb0:	83 c8 ff             	or     $0xffffffff,%eax
40ceb3:	5e                   	pop    %esi
40ceb4:	c3                   	ret
40ceb5:	53                   	push   %ebx
40ceb6:	33 db                	xor    %ebx,%ebx
40ceb8:	39 5e 10             	cmp    %ebx,0x10(%esi)
40cebb:	0f 85 c0 00 00 00    	jne    0x40cf81
40cec1:	e8 a5 7b 00 00       	call   0x414a6b
40cec6:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40cecc:	e8 11 ee ff ff       	call   0x40bce2
40ced1:	83 c8 ff             	or     $0xffffffff,%eax
40ced4:	e9 be 00 00 00       	jmp    0x40cf97
40ced9:	89 5e 38             	mov    %ebx,0x38(%esi)
40cedc:	89 5e 1c             	mov    %ebx,0x1c(%esi)
40cedf:	e9 86 00 00 00       	jmp    0x40cf6a
40cee4:	83 46 10 02          	addl   $0x2,0x10(%esi)
40cee8:	39 5e 18             	cmp    %ebx,0x18(%esi)
40ceeb:	0f 8c 90 00 00 00    	jl     0x40cf81
40cef1:	ff 76 1c             	push   0x1c(%esi)
40cef4:	0f b7 46 32          	movzwl 0x32(%esi),%eax
40cef8:	8b ce                	mov    %esi,%ecx
40cefa:	50                   	push   %eax
40cefb:	e8 be fb ff ff       	call   0x40cabe
40cf00:	89 46 1c             	mov    %eax,0x1c(%esi)
40cf03:	83 f8 08             	cmp    $0x8,%eax
40cf06:	74 b9                	je     0x40cec1
40cf08:	83 f8 07             	cmp    $0x7,%eax
40cf0b:	77 c4                	ja     0x40ced1
40cf0d:	ff 24 85 9c cf 40 00 	jmp    *0x40cf9c(,%eax,4)
40cf14:	8b ce                	mov    %esi,%ecx
40cf16:	e8 96 01 00 00       	call   0x40d0b1
40cf1b:	eb 45                	jmp    0x40cf62
40cf1d:	83 4e 28 ff          	orl    $0xffffffff,0x28(%esi)
40cf21:	89 5e 24             	mov    %ebx,0x24(%esi)
40cf24:	88 5e 30             	mov    %bl,0x30(%esi)
40cf27:	89 5e 20             	mov    %ebx,0x20(%esi)
40cf2a:	89 5e 2c             	mov    %ebx,0x2c(%esi)
40cf2d:	88 5e 3c             	mov    %bl,0x3c(%esi)
40cf30:	eb 38                	jmp    0x40cf6a
40cf32:	8b ce                	mov    %esi,%ecx
40cf34:	e8 fd 00 00 00       	call   0x40d036
40cf39:	eb 27                	jmp    0x40cf62
40cf3b:	8b ce                	mov    %esi,%ecx
40cf3d:	e8 97 0e 00 00       	call   0x40ddd9
40cf42:	eb 1e                	jmp    0x40cf62
40cf44:	89 5e 28             	mov    %ebx,0x28(%esi)
40cf47:	eb 21                	jmp    0x40cf6a
40cf49:	8b ce                	mov    %esi,%ecx
40cf4b:	e8 01 03 00 00       	call   0x40d251
40cf50:	eb 10                	jmp    0x40cf62
40cf52:	8b ce                	mov    %esi,%ecx
40cf54:	e8 f3 05 00 00       	call   0x40d54c
40cf59:	eb 07                	jmp    0x40cf62
40cf5b:	8b ce                	mov    %esi,%ecx
40cf5d:	e8 c4 0b 00 00       	call   0x40db26
40cf62:	84 c0                	test   %al,%al
40cf64:	0f 84 67 ff ff ff    	je     0x40ced1
40cf6a:	8b 46 10             	mov    0x10(%esi),%eax
40cf6d:	0f b7 00             	movzwl (%eax),%eax
40cf70:	66 89 46 32          	mov    %ax,0x32(%esi)
40cf74:	66 85 c0             	test   %ax,%ax
40cf77:	0f 85 67 ff ff ff    	jne    0x40cee4
40cf7d:	83 46 10 02          	addl   $0x2,0x10(%esi)
40cf81:	ff 86 50 04 00 00    	incl   0x450(%esi)
40cf87:	83 be 50 04 00 00 02 	cmpl   $0x2,0x450(%esi)
40cf8e:	0f 85 45 ff ff ff    	jne    0x40ced9
40cf94:	8b 46 18             	mov    0x18(%esi),%eax
40cf97:	5b                   	pop    %ebx
40cf98:	5e                   	pop    %esi
40cf99:	c3                   	ret
40cf9a:	8b ff                	mov    %edi,%edi
40cf9c:	14 cf                	adc    $0xcf,%al
40cf9e:	40                   	inc    %eax
40cf9f:	00 1d cf 40 00 32    	add    %bl,0x320040cf
40cfa5:	cf                   	iret
40cfa6:	40                   	inc    %eax
40cfa7:	00 3b                	add    %bh,(%ebx)
40cfa9:	cf                   	iret
40cfaa:	40                   	inc    %eax
40cfab:	00 44 cf 40          	add    %al,0x40(%edi,%ecx,8)
40cfaf:	00 49 cf             	add    %cl,-0x31(%ecx)
40cfb2:	40                   	inc    %eax
40cfb3:	00 52 cf             	add    %dl,-0x31(%edx)
40cfb6:	40                   	inc    %eax
40cfb7:	00 5b cf             	add    %bl,-0x31(%ebx)
40cfba:	40                   	inc    %eax
40cfbb:	00 0f                	add    %cl,(%edi)
40cfbd:	be 41 31 83 e8       	mov    $0xe8833141,%esi
40cfc2:	20 74 2d 83          	and    %dh,-0x7d(%ebp,%ebp,1)
40cfc6:	e8 03 74 22 83       	call   0x836343ce
40cfcb:	e8 08 74 17 48       	call   0x485843d8
40cfd0:	83 e8 01             	sub    $0x1,%eax
40cfd3:	74 0b                	je     0x40cfe0
40cfd5:	83 e8 03             	sub    $0x3,%eax
40cfd8:	75 1c                	jne    0x40cff6
40cfda:	83 49 20 08          	orl    $0x8,0x20(%ecx)
40cfde:	eb 16                	jmp    0x40cff6
40cfe0:	83 49 20 04          	orl    $0x4,0x20(%ecx)
40cfe4:	eb 10                	jmp    0x40cff6
40cfe6:	83 49 20 01          	orl    $0x1,0x20(%ecx)
40cfea:	eb 0a                	jmp    0x40cff6
40cfec:	83 49 20 20          	orl    $0x20,0x20(%ecx)
40cff0:	eb 04                	jmp    0x40cff6
40cff2:	83 49 20 02          	orl    $0x2,0x20(%ecx)
40cff6:	b0 01                	mov    $0x1,%al
40cff8:	c3                   	ret
40cff9:	0f be 41 31          	movsbl 0x31(%ecx),%eax
40cffd:	83 e8 20             	sub    $0x20,%eax
40d000:	74 2d                	je     0x40d02f
40d002:	83 e8 03             	sub    $0x3,%eax
40d005:	74 22                	je     0x40d029
40d007:	83 e8 08             	sub    $0x8,%eax
40d00a:	74 17                	je     0x40d023
40d00c:	48                   	dec    %eax
40d00d:	83 e8 01             	sub    $0x1,%eax
40d010:	74 0b                	je     0x40d01d
40d012:	83 e8 03             	sub    $0x3,%eax
40d015:	75 1c                	jne    0x40d033
40d017:	83 49 20 08          	orl    $0x8,0x20(%ecx)
40d01b:	eb 16                	jmp    0x40d033
40d01d:	83 49 20 04          	orl    $0x4,0x20(%ecx)
40d021:	eb 10                	jmp    0x40d033
40d023:	83 49 20 01          	orl    $0x1,0x20(%ecx)
40d027:	eb 0a                	jmp    0x40d033
40d029:	83 49 20 20          	orl    $0x20,0x20(%ecx)
40d02d:	eb 04                	jmp    0x40d033
40d02f:	83 49 20 02          	orl    $0x2,0x20(%ecx)
40d033:	b0 01                	mov    $0x1,%al
40d035:	c3                   	ret
40d036:	0f b7 41 32          	movzwl 0x32(%ecx),%eax
40d03a:	83 e8 20             	sub    $0x20,%eax
40d03d:	74 2d                	je     0x40d06c
40d03f:	83 e8 03             	sub    $0x3,%eax
40d042:	74 22                	je     0x40d066
40d044:	83 e8 08             	sub    $0x8,%eax
40d047:	74 17                	je     0x40d060
40d049:	48                   	dec    %eax
40d04a:	83 e8 01             	sub    $0x1,%eax
40d04d:	74 0b                	je     0x40d05a
40d04f:	83 e8 03             	sub    $0x3,%eax
40d052:	75 1c                	jne    0x40d070
40d054:	83 49 20 08          	orl    $0x8,0x20(%ecx)
40d058:	eb 16                	jmp    0x40d070
40d05a:	83 49 20 04          	orl    $0x4,0x20(%ecx)
40d05e:	eb 10                	jmp    0x40d070
40d060:	83 49 20 01          	orl    $0x1,0x20(%ecx)
40d064:	eb 0a                	jmp    0x40d070
40d066:	83 49 20 20          	orl    $0x20,0x20(%ecx)
40d06a:	eb 04                	jmp    0x40d070
40d06c:	83 49 20 02          	orl    $0x2,0x20(%ecx)
40d070:	b0 01                	mov    $0x1,%al
40d072:	c3                   	ret
40d073:	e8 58 00 00 00       	call   0x40d0d0
40d078:	84 c0                	test   %al,%al
40d07a:	75 13                	jne    0x40d08f
40d07c:	e8 ea 79 00 00       	call   0x414a6b
40d081:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40d087:	e8 56 ec ff ff       	call   0x40bce2
40d08c:	32 c0                	xor    %al,%al
40d08e:	c3                   	ret
40d08f:	b0 01                	mov    $0x1,%al
40d091:	c3                   	ret
40d092:	e8 63 00 00 00       	call   0x40d0fa
40d097:	84 c0                	test   %al,%al
40d099:	75 13                	jne    0x40d0ae
40d09b:	e8 cb 79 00 00       	call   0x414a6b
40d0a0:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40d0a6:	e8 37 ec ff ff       	call   0x40bce2
40d0ab:	32 c0                	xor    %al,%al
40d0ad:	c3                   	ret
40d0ae:	b0 01                	mov    $0x1,%al
40d0b0:	c3                   	ret
40d0b1:	e8 6e 00 00 00       	call   0x40d124
40d0b6:	84 c0                	test   %al,%al
40d0b8:	75 13                	jne    0x40d0cd
40d0ba:	e8 ac 79 00 00       	call   0x414a6b
40d0bf:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40d0c5:	e8 18 ec ff ff       	call   0x40bce2
40d0ca:	32 c0                	xor    %al,%al
40d0cc:	c3                   	ret
40d0cd:	b0 01                	mov    $0x1,%al
40d0cf:	c3                   	ret
40d0d0:	8b ff                	mov    %edi,%edi
40d0d2:	56                   	push   %esi
40d0d3:	6a 00                	push   $0x0
40d0d5:	8b f1                	mov    %ecx,%esi
40d0d7:	e8 63 00 00 00       	call   0x40d13f
40d0dc:	84 c0                	test   %al,%al
40d0de:	75 02                	jne    0x40d0e2
40d0e0:	5e                   	pop    %esi
40d0e1:	c3                   	ret
40d0e2:	8d 46 18             	lea    0x18(%esi),%eax
40d0e5:	50                   	push   %eax
40d0e6:	0f b6 46 31          	movzbl 0x31(%esi),%eax
40d0ea:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40d0f0:	50                   	push   %eax
40d0f1:	e8 c4 1c 00 00       	call   0x40edba
40d0f6:	b0 01                	mov    $0x1,%al
40d0f8:	5e                   	pop    %esi
40d0f9:	c3                   	ret
40d0fa:	8b ff                	mov    %edi,%edi
40d0fc:	56                   	push   %esi
40d0fd:	6a 00                	push   $0x0
40d0ff:	8b f1                	mov    %ecx,%esi
40d101:	e8 9a 00 00 00       	call   0x40d1a0
40d106:	84 c0                	test   %al,%al
40d108:	75 02                	jne    0x40d10c
40d10a:	5e                   	pop    %esi
40d10b:	c3                   	ret
40d10c:	8d 46 18             	lea    0x18(%esi),%eax
40d10f:	50                   	push   %eax
40d110:	0f b6 46 31          	movzbl 0x31(%esi),%eax
40d114:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40d11a:	50                   	push   %eax
40d11b:	e8 17 1d 00 00       	call   0x40ee37
40d120:	b0 01                	mov    $0x1,%al
40d122:	5e                   	pop    %esi
40d123:	c3                   	ret
40d124:	8d 51 18             	lea    0x18(%ecx),%edx
40d127:	c6 41 3c 01          	movb   $0x1,0x3c(%ecx)
40d12b:	52                   	push   %edx
40d12c:	0f b7 51 32          	movzwl 0x32(%ecx),%edx
40d130:	81 c1 48 04 00 00    	add    $0x448,%ecx
40d136:	52                   	push   %edx
40d137:	e8 bb 1c 00 00       	call   0x40edf7
40d13c:	b0 01                	mov    $0x1,%al
40d13e:	c3                   	ret
40d13f:	8b ff                	mov    %edi,%edi
40d141:	56                   	push   %esi
40d142:	8b f1                	mov    %ecx,%esi
40d144:	57                   	push   %edi
40d145:	bf 00 80 00 00       	mov    $0x8000,%edi
40d14a:	8b 46 08             	mov    0x8(%esi),%eax
40d14d:	8a 4e 31             	mov    0x31(%esi),%cl
40d150:	c6 46 3c 00          	movb   $0x0,0x3c(%esi)
40d154:	0f b6 d1             	movzbl %cl,%edx
40d157:	8b 00                	mov    (%eax),%eax
40d159:	8b 00                	mov    (%eax),%eax
40d15b:	66 85 3c 50          	test   %di,(%eax,%edx,2)
40d15f:	74 38                	je     0x40d199
40d161:	8d 46 18             	lea    0x18(%esi),%eax
40d164:	50                   	push   %eax
40d165:	51                   	push   %ecx
40d166:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40d16c:	e8 49 1c 00 00       	call   0x40edba
40d171:	8b 4e 10             	mov    0x10(%esi),%ecx
40d174:	8a 01                	mov    (%ecx),%al
40d176:	88 46 31             	mov    %al,0x31(%esi)
40d179:	8d 41 01             	lea    0x1(%ecx),%eax
40d17c:	80 7e 31 00          	cmpb   $0x0,0x31(%esi)
40d180:	89 46 10             	mov    %eax,0x10(%esi)
40d183:	75 14                	jne    0x40d199
40d185:	e8 e1 78 00 00       	call   0x414a6b
40d18a:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40d190:	e8 4d eb ff ff       	call   0x40bce2
40d195:	32 c0                	xor    %al,%al
40d197:	eb 02                	jmp    0x40d19b
40d199:	b0 01                	mov    $0x1,%al
40d19b:	5f                   	pop    %edi
40d19c:	5e                   	pop    %esi
40d19d:	c2 04 00             	ret    $0x4
40d1a0:	8b ff                	mov    %edi,%edi
40d1a2:	56                   	push   %esi
40d1a3:	8b f1                	mov    %ecx,%esi