40bd79:	31 db                	xor    %ebx,%ebx
40bd7b:	43                   	inc    %ebx
40bd7c:	96                   	xchg   %eax,%esi
40bd7d:	8b 8e f2 00 00 00    	mov    0xf2(%esi),%ecx
40bd83:	e3 17                	jecxz  0x40bd9c
40bd85:	e3 16                	jecxz  0x40bd9d
40bd87:	91                   	xchg   %eax,%ecx
40bd88:	50                   	push   %eax
40bd89:	e8 e6 95 ff ff       	call   0x405374
40bd8e:	84 c0                	test   %al,%al
40bd90:	58                   	pop    %eax
40bd91:	74 0a                	je     0x40bd9d
40bd93:	ff 70 1c             	push   0x1c(%eax)
40bd96:	e8 7d 8d ff ff       	call   0x404b18
40bd9b:	43                   	inc    %ebx
40bd9c:	4b                   	dec    %ebx
40bd9d:	8b 0d 98 98 42 00    	mov    0x429898,%ecx
40bda3:	e3 0a                	jecxz  0x40bdaf
40bda5:	39 f1                	cmp    %esi,%ecx
40bda7:	74 06                	je     0x40bdaf
40bda9:	89 b1 f2 00 00 00    	mov    %esi,0xf2(%ecx)
40bdaf:	93                   	xchg   %eax,%ebx
40bdb0:	5e                   	pop    %esi
40bdb1:	5b                   	pop    %ebx
40bdb2:	c3                   	ret
40bdb3:	31 c0                	xor    %eax,%eax
40bdb5:	c3                   	ret
40bdb6:	8b c0                	mov    %eax,%eax
40bdb8:	53                   	push   %ebx
40bdb9:	93                   	xchg   %eax,%ebx
40bdba:	83 ec 10             	sub    $0x10,%esp
40bdbd:	92                   	xchg   %eax,%edx
40bdbe:	89 e2                	mov    %esp,%edx
40bdc0:	51                   	push   %ecx
40bdc1:	50                   	push   %eax
40bdc2:	89 d8                	mov    %ebx,%eax
40bdc4:	e8 33 fb ff ff       	call   0x40b8fc
40bdc9:	59                   	pop    %ecx
40bdca:	e3 08                	jecxz  0x40bdd4
40bdcc:	03 4c 24 04          	add    0x4(%esp),%ecx
40bdd0:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
40bdd4:	59                   	pop    %ecx
40bdd5:	e3 08                	jecxz  0x40bddf
40bdd7:	03 4c 24 04          	add    0x4(%esp),%ecx
40bddb:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
40bddf:	89 d8                	mov    %ebx,%eax
40bde1:	89 e2                	mov    %esp,%edx
40bde3:	e8 7c fb ff ff       	call   0x40b964
40bde8:	83 c4 10             	add    $0x10,%esp
40bdeb:	93                   	xchg   %eax,%ebx
40bdec:	5b                   	pop    %ebx
40bded:	c3                   	ret
40bdee:	8b c0                	mov    %eax,%eax
40bdf0:	53                   	push   %ebx
40bdf1:	93                   	xchg   %eax,%ebx
40bdf2:	56                   	push   %esi
40bdf3:	57                   	push   %edi
40bdf4:	89 d7                	mov    %edx,%edi
40bdf6:	8b 57 04             	mov    0x4(%edi),%edx
40bdf9:	66 81 ea 32 bd       	sub    $0xbd32,%dx
40bdfe:	66 83 fa 06          	cmp    $0x6,%dx
40be02:	77 61                	ja     0x40be65
40be04:	51                   	push   %ecx
40be05:	8b 83 a0 00 00 00    	mov    0xa0(%ebx),%eax
40be0b:	e8 54 e6 ff ff       	call   0x40a464
40be10:	96                   	xchg   %eax,%esi
40be11:	56                   	push   %esi
40be12:	ff 77 08             	push   0x8(%edi)
40be15:	e8 86 8b ff ff       	call   0x4049a0
40be1a:	f6 43 35 01          	testb  $0x1,0x35(%ebx)
40be1e:	74 13                	je     0x40be33
40be20:	6a 01                	push   $0x1
40be22:	ff 77 08             	push   0x8(%edi)
40be25:	e8 3e 8b ff ff       	call   0x404968
40be2a:	6a 05                	push   $0x5
40be2c:	e8 f7 8a ff ff       	call   0x404928
40be31:	eb 27                	jmp    0x40be5a
40be33:	8b 83 a4 00 00 00    	mov    0xa4(%ebx),%eax
40be39:	e8 26 e6 ff ff       	call   0x40a464
40be3e:	96                   	xchg   %eax,%esi
40be3f:	6a 02                	push   $0x2
40be41:	ff 77 08             	push   0x8(%edi)
40be44:	e8 1f 8b ff ff       	call   0x404968
40be49:	56                   	push   %esi
40be4a:	ff 77 08             	push   0x8(%edi)
40be4d:	e8 0e 8b ff ff       	call   0x404960
40be52:	89 d8                	mov    %ebx,%eax
40be54:	ff 15 44 61 42 00    	call   *0x426144
40be5a:	91                   	xchg   %eax,%ecx
40be5b:	58                   	pop    %eax
40be5c:	89 08                	mov    %ecx,(%eax)
40be5e:	b0 01                	mov    $0x1,%al
40be60:	e9 c0 00 00 00       	jmp    0x40bf25
40be65:	66 81 7f 04 05 b0    	cmpw   $0xb005,0x4(%edi)
40be6b:	75 73                	jne    0x40bee0
40be6d:	51                   	push   %ecx
40be6e:	0f b7 4f 0a          	movzwl 0xa(%edi),%ecx
40be72:	8b 73 4c             	mov    0x4c(%ebx),%esi
40be75:	66 3b 4e 20          	cmp    0x20(%esi),%cx
40be79:	75 1b                	jne    0x40be96
40be7b:	80 bb 2a 01 00 00 00 	cmpb   $0x0,0x12a(%ebx)
40be82:	7f 4e                	jg     0x40bed2
40be84:	89 d8                	mov    %ebx,%eax
40be86:	b2 01                	mov    $0x1,%dl
40be88:	e8 0b 15 00 00       	call   0x40d398
40be8d:	89 d8                	mov    %ebx,%eax
40be8f:	e8 98 00 00 00       	call   0x40bf2c
40be94:	eb 3c                	jmp    0x40bed2
40be96:	8b 43 4c             	mov    0x4c(%ebx),%eax
40be99:	66 3b 48 22          	cmp    0x22(%eax),%cx
40be9d:	8b 43 50             	mov    0x50(%ebx),%eax
40bea0:	8d 80 98 00 00 00    	lea    0x98(%eax),%eax
40bea6:	74 12                	je     0x40beba
40bea8:	83 c0 08             	add    $0x8,%eax
40beab:	66 3b 4e 24          	cmp    0x24(%esi),%cx
40beaf:	74 09                	je     0x40beba
40beb1:	83 e8 10             	sub    $0x10,%eax
40beb4:	66 3b 4e 26          	cmp    0x26(%esi),%cx
40beb8:	75 0b                	jne    0x40bec5
40beba:	8b 08                	mov    (%eax),%ecx
40bebc:	8b 40 04             	mov    0x4(%eax),%eax
40bebf:	89 da                	mov    %ebx,%edx
40bec1:	ff d1                	call   *%ecx
40bec3:	eb 0d                	jmp    0x40bed2
40bec5:	66 3b 4e 28          	cmp    0x28(%esi),%cx
40bec9:	75 14                	jne    0x40bedf
40becb:	89 d8                	mov    %ebx,%eax
40becd:	e8 9e db ff ff       	call   0x409a70
40bed2:	93                   	xchg   %eax,%ebx
40bed3:	89 fa                	mov    %edi,%edx
40bed5:	e8 fa fb ff ff       	call   0x40bad4
40beda:	e9 7b ff ff ff       	jmp    0x40be5a
40bedf:	59                   	pop    %ecx
40bee0:	31 c0                	xor    %eax,%eax
40bee2:	66 83 7f 04 07       	cmpw   $0x7,0x4(%edi)
40bee7:	75 3c                	jne    0x40bf25
40bee9:	89 01                	mov    %eax,(%ecx)
40beeb:	89 d8                	mov    %ebx,%eax
40beed:	e8 4e 00 00 00       	call   0x40bf40
40bef2:	85 c0                	test   %eax,%eax
40bef4:	0f 84 64 ff ff ff    	je     0x40be5e
40befa:	50                   	push   %eax
40befb:	8b 88 f2 00 00 00    	mov    0xf2(%eax),%ecx
40bf01:	e3 17                	jecxz  0x40bf1a
40bf03:	39 d9                	cmp    %ebx,%ecx
40bf05:	74 13                	je     0x40bf1a
40bf07:	91                   	xchg   %eax,%ecx
40bf08:	8b 40 50             	mov    0x50(%eax),%eax
40bf0b:	8b 88 a8 00 00 00    	mov    0xa8(%eax),%ecx
40bf11:	92                   	xchg   %eax,%edx
40bf12:	8b 82 ac 00 00 00    	mov    0xac(%edx),%eax
40bf18:	ff d1                	call   *%ecx
40bf1a:	58                   	pop    %eax
40bf1b:	89 98 f2 00 00 00    	mov    %ebx,0xf2(%eax)
40bf21:	31 c0                	xor    %eax,%eax
40bf23:	52                   	push   %edx
40bf24:	5a                   	pop    %edx
40bf25:	5f                   	pop    %edi
40bf26:	5e                   	pop    %esi
40bf27:	5b                   	pop    %ebx
40bf28:	c3                   	ret
40bf29:	8d 40 00             	lea    0x0(%eax),%eax
40bf2c:	50                   	push   %eax
40bf2d:	ff 50 68             	call   *0x68(%eax)
40bf30:	5a                   	pop    %edx
40bf31:	8b 42 50             	mov    0x50(%edx),%eax
40bf34:	8b 48 10             	mov    0x10(%eax),%ecx
40bf37:	8b 40 14             	mov    0x14(%eax),%eax
40bf3a:	ff d1                	call   *%ecx
40bf3c:	c3                   	ret
40bf3d:	8d 40 00             	lea    0x0(%eax),%eax
40bf40:	f6 40 36 08          	testb  $0x8,0x36(%eax)
40bf44:	74 07                	je     0x40bf4d
40bf46:	8b 40 30             	mov    0x30(%eax),%eax
40bf49:	85 c0                	test   %eax,%eax
40bf4b:	75 f3                	jne    0x40bf40
40bf4d:	c3                   	ret
40bf4e:	8b c0                	mov    %eax,%eax
40bf50:	8b 88 a8 00 00 00    	mov    0xa8(%eax),%ecx
40bf56:	41                   	inc    %ecx
40bf57:	e2 2b                	loop   0x40bf84
40bf59:	50                   	push   %eax
40bf5a:	e8 c5 e4 ff ff       	call   0x40a424
40bf5f:	5a                   	pop    %edx
40bf60:	52                   	push   %edx
40bf61:	50                   	push   %eax
40bf62:	92                   	xchg   %eax,%edx
40bf63:	e8 c8 e2 ff ff       	call   0x40a230
40bf68:	58                   	pop    %eax
40bf69:	5a                   	pop    %edx
40bf6a:	89 82 a8 00 00 00    	mov    %eax,0xa8(%edx)
40bf70:	8b 8a a0 00 00 00    	mov    0xa0(%edx),%ecx
40bf76:	89 48 2d             	mov    %ecx,0x2d(%eax)
40bf79:	c7 40 25 bc bf 40 00 	movl   $0x40bfbc,0x25(%eax)
40bf80:	89 50 29             	mov    %edx,0x29(%eax)
40bf83:	c3                   	ret
40bf84:	91                   	xchg   %eax,%ecx
40bf85:	c3                   	ret
40bf86:	8b c0                	mov    %eax,%eax
40bf88:	8b 88 ac 00 00 00    	mov    0xac(%eax),%ecx
40bf8e:	41                   	inc    %ecx
40bf8f:	e2 28                	loop   0x40bfb9
40bf91:	50                   	push   %eax
40bf92:	e8 61 e4 ff ff       	call   0x40a3f8
40bf97:	5a                   	pop    %edx
40bf98:	89 82 ac 00 00 00    	mov    %eax,0xac(%edx)
40bf9e:	8b 8a a4 00 00 00    	mov    0xa4(%edx),%ecx
40bfa4:	89 48 2d             	mov    %ecx,0x2d(%eax)
40bfa7:	c7 40 25 d4 bf 40 00 	movl   $0x40bfd4,0x25(%eax)
40bfae:	89 50 29             	mov    %edx,0x29(%eax)
40bfb1:	50                   	push   %eax
40bfb2:	92                   	xchg   %eax,%edx
40bfb3:	e8 78 e2 ff ff       	call   0x40a230
40bfb8:	59                   	pop    %ecx
40bfb9:	91                   	xchg   %eax,%ecx
40bfba:	c3                   	ret
40bfbb:	90                   	nop
40bfbc:	8b 4a 2d             	mov    0x2d(%edx),%ecx
40bfbf:	89 88 a0 00 00 00    	mov    %ecx,0xa0(%eax)
40bfc5:	50                   	push   %eax
40bfc6:	ff 15 60 62 42 00    	call   *0x426260
40bfcc:	58                   	pop    %eax
40bfcd:	e8 9a fa ff ff       	call   0x40ba6c
40bfd2:	c3                   	ret
40bfd3:	90                   	nop
40bfd4:	8b 4a 2d             	mov    0x2d(%edx),%ecx
40bfd7:	89 88 a4 00 00 00    	mov    %ecx,0xa4(%eax)
40bfdd:	31 c9                	xor    %ecx,%ecx
40bfdf:	87 48 48             	xchg   %ecx,0x48(%eax)
40bfe2:	e3 08                	jecxz  0x40bfec
40bfe4:	50                   	push   %eax
40bfe5:	51                   	push   %ecx
40bfe6:	e8 15 89 ff ff       	call   0x404900
40bfeb:	58                   	pop    %eax
40bfec:	e8 7b fa ff ff       	call   0x40ba6c
40bff1:	c3                   	ret
40bff2:	8b c0                	mov    %eax,%eax
40bff4:	53                   	push   %ebx
40bff5:	93                   	xchg   %eax,%ebx
40bff6:	8b 8b a8 00 00 00    	mov    0xa8(%ebx),%ecx
40bffc:	e3 38                	jecxz  0x40c036
40bffe:	91                   	xchg   %eax,%ecx
40bfff:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
40c002:	e3 1c                	jecxz  0x40c020
40c004:	8b 50 2d             	mov    0x2d(%eax),%edx
40c007:	89 93 a0 00 00 00    	mov    %edx,0xa0(%ebx)
40c00d:	68 ff ff 00 00       	push   $0xffff
40c012:	e8 b9 e5 ff ff       	call   0x40a5d0
40c017:	50                   	push   %eax
40c018:	6a 30                	push   $0x30
40c01a:	53                   	push   %ebx
40c01b:	e8 1c 05 00 00       	call   0x40c53c
40c020:	31 c9                	xor    %ecx,%ecx
40c022:	87 8b ca 00 00 00    	xchg   %ecx,0xca(%ebx)
40c028:	e3 06                	jecxz  0x40c030
40c02a:	91                   	xchg   %eax,%ecx
40c02b:	e8 e0 e1 ff ff       	call   0x40a210
40c030:	93                   	xchg   %eax,%ebx
40c031:	e8 32 f8 ff ff       	call   0x40b868
40c036:	5b                   	pop    %ebx
40c037:	c3                   	ret
40c038:	83 c4 f0             	add    $0xfffffff0,%esp
40c03b:	89 e2                	mov    %esp,%edx
40c03d:	e8 de f9 ff ff       	call   0x40ba20
40c042:	5a                   	pop    %edx
40c043:	59                   	pop    %ecx
40c044:	5a                   	pop    %edx
40c045:	58                   	pop    %eax
40c046:	29 c8                	sub    %ecx,%eax
40c048:	c3                   	ret
40c049:	8d 40 00             	lea    0x0(%eax),%eax
40c04c:	83 c4 f0             	add    $0xfffffff0,%esp
40c04f:	89 e2                	mov    %esp,%edx
40c051:	e8 ca f9 ff ff       	call   0x40ba20
40c056:	59                   	pop    %ecx
40c057:	5a                   	pop    %edx
40c058:	58                   	pop    %eax
40c059:	29 c8                	sub    %ecx,%eax
40c05b:	5a                   	pop    %edx
40c05c:	c3                   	ret
40c05d:	8d 40 00             	lea    0x0(%eax),%eax
40c060:	53                   	push   %ebx
40c061:	52                   	push   %edx
40c062:	89 c3                	mov    %eax,%ebx
40c064:	e8 cf ff ff ff       	call   0x40c038
40c069:	50                   	push   %eax
40c06a:	89 d8                	mov    %ebx,%eax
40c06c:	e8 f3 fb ff ff       	call   0x40bc64
40c071:	5a                   	pop    %edx
40c072:	29 d0                	sub    %edx,%eax
40c074:	5a                   	pop    %edx
40c075:	01 c2                	add    %eax,%edx
40c077:	93                   	xchg   %eax,%ebx
40c078:	e8 f3 fb ff ff       	call   0x40bc70
40c07d:	5b                   	pop    %ebx
40c07e:	c3                   	ret
40c07f:	90                   	nop
40c080:	53                   	push   %ebx
40c081:	52                   	push   %edx
40c082:	89 c3                	mov    %eax,%ebx
40c084:	e8 c3 ff ff ff       	call   0x40c04c
40c089:	50                   	push   %eax
40c08a:	89 d8                	mov    %ebx,%eax
40c08c:	e8 ab fb ff ff       	call   0x40bc3c
40c091:	5a                   	pop    %edx
40c092:	29 d0                	sub    %edx,%eax
40c094:	5a                   	pop    %edx
40c095:	01 c2                	add    %eax,%edx
40c097:	93                   	xchg   %eax,%ebx
40c098:	e8 ab fb ff ff       	call   0x40bc48
40c09d:	5b                   	pop    %ebx
40c09e:	c3                   	ret
40c09f:	90                   	nop
40c0a0:	60                   	pusha
40c0a1:	96                   	xchg   %eax,%esi
40c0a2:	8b 4e 30             	mov    0x30(%esi),%ecx
40c0a5:	e3 06                	jecxz  0x40c0ad
40c0a7:	f6 46 36 08          	testb  $0x8,0x36(%esi)
40c0ab:	75 16                	jne    0x40c0c3
40c0ad:	6a 01                	push   $0x1
40c0af:	e8 cc 89 ff ff       	call   0x404a80
40c0b4:	50                   	push   %eax
40c0b5:	6a 00                	push   $0x0
40c0b7:	e8 c4 89 ff ff       	call   0x404a80
40c0bc:	50                   	push   %eax
40c0bd:	6a 00                	push   $0x0
40c0bf:	6a 00                	push   $0x0
40c0c1:	eb 0b                	jmp    0x40c0ce
40c0c3:	83 c4 f0             	add    $0xfffffff0,%esp
40c0c6:	89 e2                	mov    %esp,%edx
40c0c8:	91                   	xchg   %eax,%ecx
40c0c9:	e8 52 f9 ff ff       	call   0x40ba20
40c0ce:	89 f0                	mov    %esi,%eax
40c0d0:	e8 6f 1b 00 00       	call   0x40dc44
40c0d5:	89 f0                	mov    %esi,%eax
40c0d7:	e8 60 fb ff ff       	call   0x40bc3c
40c0dc:	5a                   	pop    %edx
40c0dd:	01 d0                	add    %edx,%eax
40c0df:	5f                   	pop    %edi
40c0e0:	5a                   	pop    %edx
40c0e1:	29 c2                	sub    %eax,%edx
40c0e3:	d1 fa                	sar    $1,%edx
40c0e5:	89 f0                	mov    %esi,%eax
40c0e7:	e8 fc fa ff ff       	call   0x40bbe8
40c0ec:	89 f0                	mov    %esi,%eax
40c0ee:	e8 71 fb ff ff       	call   0x40bc64
40c0f3:	01 f8                	add    %edi,%eax
40c0f5:	5a                   	pop    %edx
40c0f6:	29 c2                	sub    %eax,%edx
40c0f8:	d1 fa                	sar    $1,%edx