403dba:	0f 84 95 fe ff ff    	je     0x403c55
403dc0:	83 7e 04 05          	cmpl   $0x5,0x4(%esi)
403dc4:	75 1d                	jne    0x403de3
403dc6:	39 2d 2c 3f 42 00    	cmp    %ebp,0x423f2c
403dcc:	0f 85 13 01 00 00    	jne    0x403ee5
403dd2:	39 2d 20 3f 42 00    	cmp    %ebp,0x423f20
403dd8:	0f 85 77 fe ff ff    	jne    0x403c55
403dde:	e9 02 01 00 00       	jmp    0x403ee5
403de3:	ff 35 78 36 42 00    	push   0x423678
403de9:	ff 15 e8 71 40 00    	call   *0x4071e8
403def:	89 35 70 fc 41 00    	mov    %esi,0x41fc70
403df5:	39 2e                	cmp    %ebp,(%esi)
403df7:	0f 8e c5 00 00 00    	jle    0x403ec2
403dfd:	8b 46 04             	mov    0x4(%esi),%eax
403e00:	56                   	push   %esi
403e01:	ff 34 85 c8 91 40 00 	push   0x4091c8(,%eax,4)
403e08:	66 8b 06             	mov    (%esi),%ax
403e0b:	66 03 05 80 36 42 00 	add    0x423680,%ax
403e12:	57                   	push   %edi
403e13:	0f b7 c0             	movzwl %ax,%eax
403e16:	50                   	push   %eax
403e17:	ff 35 a0 3e 42 00    	push   0x423ea0
403e1d:	ff 15 ec 71 40 00    	call   *0x4071ec
403e23:	3b c5                	cmp    %ebp,%eax
403e25:	a3 78 36 42 00       	mov    %eax,0x423678
403e2a:	0f 84 92 00 00 00    	je     0x403ec2
403e30:	ff 76 2c             	push   0x2c(%esi)
403e33:	6a 06                	push   $0x6
403e35:	50                   	push   %eax
403e36:	e8 dd 00 00 00       	call   0x403f18
403e3b:	8d 44 24 10          	lea    0x10(%esp),%eax
403e3f:	50                   	push   %eax
403e40:	68 fa 03 00 00       	push   $0x3fa
403e45:	57                   	push   %edi
403e46:	ff 15 2c 72 40 00    	call   *0x40722c
403e4c:	50                   	push   %eax
403e4d:	ff 15 74 71 40 00    	call   *0x407174
403e53:	8d 44 24 10          	lea    0x10(%esp),%eax
403e57:	50                   	push   %eax
403e58:	57                   	push   %edi
403e59:	ff 15 70 71 40 00    	call   *0x407170
403e5f:	6a 15                	push   $0x15
403e61:	55                   	push   %ebp
403e62:	55                   	push   %ebp
403e63:	ff 74 24 20          	push   0x20(%esp)
403e67:	ff 74 24 20          	push   0x20(%esp)
403e6b:	55                   	push   %ebp
403e6c:	ff 35 78 36 42 00    	push   0x423678
403e72:	ff 15 88 71 40 00    	call   *0x407188
403e78:	55                   	push   %ebp
403e79:	ff 76 0c             	push   0xc(%esi)
403e7c:	e8 08 d5 ff ff       	call   0x401389
403e81:	39 2d 6c 36 42 00    	cmp    %ebp,0x42366c
403e87:	75 5c                	jne    0x403ee5
403e89:	6a 08                	push   $0x8
403e8b:	ff 35 78 36 42 00    	push   0x423678
403e91:	ff 15 60 72 40 00    	call   *0x407260
403e97:	68 05 04 00 00       	push   $0x405
403e9c:	e8 c3 00 00 00       	call   0x403f64
403ea1:	eb 1f                	jmp    0x403ec2
403ea3:	ff 35 78 36 42 00    	push   0x423678
403ea9:	ff 15 e8 71 40 00    	call   *0x4071e8
403eaf:	ff 35 68 f8 41 00    	push   0x41f868
403eb5:	89 2d a8 3e 42 00    	mov    %ebp,0x423ea8
403ebb:	57                   	push   %edi
403ebc:	ff 15 6c 71 40 00    	call   *0x40716c
403ec2:	39 2d a0 14 42 00    	cmp    %ebp,0x4214a0
403ec8:	75 1b                	jne    0x403ee5
403eca:	39 2d 78 36 42 00    	cmp    %ebp,0x423678
403ed0:	74 13                	je     0x403ee5
403ed2:	6a 0a                	push   $0xa
403ed4:	57                   	push   %edi
403ed5:	ff 15 60 72 40 00    	call   *0x407260
403edb:	c7 05 a0 14 42 00 01 	movl   $0x1,0x4214a0
403ee2:	00 00 00
403ee5:	33 c0                	xor    %eax,%eax
403ee7:	5f                   	pop    %edi
403ee8:	5e                   	pop    %esi
403ee9:	5d                   	pop    %ebp
403eea:	5b                   	pop    %ebx
403eeb:	83 c4 10             	add    $0x10,%esp
403eee:	c2 10 00             	ret    $0x10
403ef1:	83 7c 24 04 78       	cmpl   $0x78,0x4(%esp)
403ef6:	75 06                	jne    0x403efe
403ef8:	ff 05 6c 36 42 00    	incl   0x42366c
403efe:	6a 00                	push   $0x0
403f00:	ff 74 24 08          	push   0x8(%esp)
403f04:	68 08 04 00 00       	push   $0x408
403f09:	ff 35 a8 3e 42 00    	push   0x423ea8
403f0f:	ff 15 44 72 40 00    	call   *0x407244
403f15:	c2 04 00             	ret    $0x4
403f18:	ff 74 24 0c          	push   0xc(%esp)
403f1c:	6a 00                	push   $0x0
403f1e:	e8 65 1c 00 00       	call   0x405b88
403f23:	50                   	push   %eax
403f24:	8b 44 24 0c          	mov    0xc(%esp),%eax
403f28:	05 e8 03 00 00       	add    $0x3e8,%eax
403f2d:	50                   	push   %eax
403f2e:	ff 74 24 0c          	push   0xc(%esp)
403f32:	e8 ce 14 00 00       	call   0x405405
403f37:	c2 0c 00             	ret    $0xc
403f3a:	ff 74 24 04          	push   0x4(%esp)
403f3e:	ff 35 98 04 42 00    	push   0x420498
403f44:	ff 15 3c 72 40 00    	call   *0x40723c
403f4a:	c2 04 00             	ret    $0x4
403f4d:	6a 01                	push   $0x1
403f4f:	ff 74 24 08          	push   0x8(%esp)
403f53:	6a 28                	push   $0x28
403f55:	ff 35 a8 3e 42 00    	push   0x423ea8
403f5b:	ff 15 44 72 40 00    	call   *0x407244
403f61:	c2 04 00             	ret    $0x4
403f64:	a1 78 36 42 00       	mov    0x423678,%eax
403f69:	85 c0                	test   %eax,%eax
403f6b:	74 0f                	je     0x403f7c
403f6d:	6a 00                	push   $0x0
403f6f:	6a 00                	push   $0x0
403f71:	ff 74 24 0c          	push   0xc(%esp)
403f75:	50                   	push   %eax
403f76:	ff 15 44 72 40 00    	call   *0x407244
403f7c:	c2 04 00             	ret    $0x4
403f7f:	55                   	push   %ebp
403f80:	8b ec                	mov    %esp,%ebp
403f82:	83 ec 0c             	sub    $0xc,%esp
403f85:	8b 45 08             	mov    0x8(%ebp),%eax
403f88:	56                   	push   %esi
403f89:	05 cd fe ff ff       	add    $0xfffffecd,%eax
403f8e:	83 f8 05             	cmp    $0x5,%eax
403f91:	0f 87 8e 00 00 00    	ja     0x404025
403f97:	6a eb                	push   $0xffffffeb
403f99:	ff 75 10             	push   0x10(%ebp)
403f9c:	ff 15 90 71 40 00    	call   *0x407190
403fa2:	8b f0                	mov    %eax,%esi
403fa4:	85 f6                	test   %esi,%esi
403fa6:	74 7d                	je     0x404025
403fa8:	f6 46 14 02          	testb  $0x2,0x14(%esi)
403fac:	8b 06                	mov    (%esi),%eax
403fae:	57                   	push   %edi
403faf:	8b 3d 8c 71 40 00    	mov    0x40718c,%edi
403fb5:	74 03                	je     0x403fba
403fb7:	50                   	push   %eax
403fb8:	ff d7                	call   *%edi
403fba:	f6 46 14 01          	testb  $0x1,0x14(%esi)
403fbe:	74 0a                	je     0x403fca
403fc0:	50                   	push   %eax
403fc1:	ff 75 0c             	push   0xc(%ebp)
403fc4:	ff 15 54 70 40 00    	call   *0x407054
403fca:	ff 76 10             	push   0x10(%esi)
403fcd:	ff 75 0c             	push   0xc(%ebp)
403fd0:	ff 15 50 70 40 00    	call   *0x407050
403fd6:	8b 46 04             	mov    0x4(%esi),%eax
403fd9:	f6 46 14 08          	testb  $0x8,0x14(%esi)
403fdd:	89 45 f8             	mov    %eax,-0x8(%ebp)
403fe0:	74 06                	je     0x403fe8
403fe2:	50                   	push   %eax
403fe3:	ff d7                	call   *%edi
403fe5:	89 45 f8             	mov    %eax,-0x8(%ebp)
403fe8:	f6 46 14 04          	testb  $0x4,0x14(%esi)
403fec:	5f                   	pop    %edi
403fed:	74 0a                	je     0x403ff9
403fef:	50                   	push   %eax
403ff0:	ff 75 0c             	push   0xc(%ebp)
403ff3:	ff 15 3c 70 40 00    	call   *0x40703c
403ff9:	f6 46 14 10          	testb  $0x10,0x14(%esi)
403ffd:	74 21                	je     0x404020
403fff:	8b 46 08             	mov    0x8(%esi),%eax
404002:	89 45 f4             	mov    %eax,-0xc(%ebp)
404005:	8b 46 0c             	mov    0xc(%esi),%eax
404008:	85 c0                	test   %eax,%eax
40400a:	74 07                	je     0x404013
40400c:	50                   	push   %eax
40400d:	ff 15 44 70 40 00    	call   *0x407044
404013:	8d 45 f4             	lea    -0xc(%ebp),%eax
404016:	50                   	push   %eax
404017:	ff 15 48 70 40 00    	call   *0x407048
40401d:	89 46 0c             	mov    %eax,0xc(%esi)
404020:	8b 46 0c             	mov    0xc(%esi),%eax
404023:	eb 02                	jmp    0x404027
404025:	33 c0                	xor    %eax,%eax
404027:	5e                   	pop    %esi
404028:	c9                   	leave
404029:	c2 0c 00             	ret    $0xc
40402c:	55                   	push   %ebp
40402d:	8b ec                	mov    %esp,%ebp
40402f:	8b 45 08             	mov    0x8(%ebp),%eax
404032:	8b 0d 64 f4 41 00    	mov    0x41f464,%ecx
404038:	ff 75 10             	push   0x10(%ebp)
40403b:	03 c8                	add    %eax,%ecx
40403d:	51                   	push   %ecx
40403e:	ff 75 0c             	push   0xc(%ebp)
404041:	ff 15 bc 70 40 00    	call   *0x4070bc
404047:	ff 75 0c             	push   0xc(%ebp)
40404a:	e8 2d 1b 00 00       	call   0x405b7c
40404f:	8b 4d 14             	mov    0x14(%ebp),%ecx
404052:	89 01                	mov    %eax,(%ecx)
404054:	01 05 64 f4 41 00    	add    %eax,0x41f464
40405a:	33 c0                	xor    %eax,%eax
40405c:	5d                   	pop    %ebp
40405d:	c2 10 00             	ret    $0x10
404060:	55                   	push   %ebp
404061:	8b ec                	mov    %esp,%ebp
404063:	83 ec 0c             	sub    $0xc,%esp
404066:	81 7d 0c 10 01 00 00 	cmpl   $0x110,0xc(%ebp)
40406d:	53                   	push   %ebx
40406e:	56                   	push   %esi
40406f:	57                   	push   %edi
404070:	0f 85 0d 01 00 00    	jne    0x404183
404076:	8b 5d 14             	mov    0x14(%ebp),%ebx
404079:	8b 7b 30             	mov    0x30(%ebx),%edi
40407c:	85 ff                	test   %edi,%edi
40407e:	7d 11                	jge    0x404091
404080:	8b 0d 7c 36 42 00    	mov    0x42367c,%ecx
404086:	8d 04 bd 04 00 00 00 	lea    0x4(,%edi,4),%eax
40408d:	2b c8                	sub    %eax,%ecx
40408f:	8b 39                	mov    (%ecx),%edi
404091:	a1 d8 3e 42 00       	mov    0x423ed8,%eax
404096:	ff 73 34             	push   0x34(%ebx)
404099:	03 f8                	add    %eax,%edi
40409b:	6a 22                	push   $0x22
40409d:	0f be 07             	movsbl (%edi),%eax
4040a0:	89 45 14             	mov    %eax,0x14(%ebp)
4040a3:	8b 43 14             	mov    0x14(%ebx),%eax
4040a6:	ff 75 08             	push   0x8(%ebp)
4040a9:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4040ad:	8b f0                	mov    %eax,%esi
4040af:	47                   	inc    %edi
4040b0:	f7 d6                	not    %esi
4040b2:	c1 ee 05             	shr    $0x5,%esi
4040b5:	83 e6 01             	and    $0x1,%esi
4040b8:	83 e0 01             	and    $0x1,%eax
4040bb:	89 7d f4             	mov    %edi,-0xc(%ebp)
4040be:	c7 45 fc 2c 40 40 00 	movl   $0x40402c,-0x4(%ebp)
4040c5:	0b f0                	or     %eax,%esi
4040c7:	e8 4c fe ff ff       	call   0x403f18
4040cc:	ff 73 38             	push   0x38(%ebx)
4040cf:	6a 23                	push   $0x23
4040d1:	ff 75 08             	push   0x8(%ebp)
4040d4:	e8 3f fe ff ff       	call   0x403f18
4040d9:	33 c0                	xor    %eax,%eax
4040db:	6a 01                	push   $0x1
4040dd:	85 f6                	test   %esi,%esi
4040df:	0f 94 c0             	sete   %al
4040e2:	05 0a 04 00 00       	add    $0x40a,%eax
4040e7:	50                   	push   %eax
4040e8:	ff 75 08             	push   0x8(%ebp)
4040eb:	ff 15 9c 71 40 00    	call   *0x40719c
4040f1:	56                   	push   %esi
4040f2:	e8 43 fe ff ff       	call   0x403f3a
4040f7:	68 e8 03 00 00       	push   $0x3e8
4040fc:	ff 75 08             	push   0x8(%ebp)
4040ff:	ff 15 2c 72 40 00    	call   *0x40722c
404105:	8b d8                	mov    %eax,%ebx
404107:	53                   	push   %ebx
404108:	e8 40 fe ff ff       	call   0x403f4d
40410d:	8b 35 44 72 40 00    	mov    0x407244,%esi
404113:	6a 00                	push   $0x0
404115:	6a 01                	push   $0x1
404117:	68 5b 04 00 00       	push   $0x45b
40411c:	53                   	push   %ebx
40411d:	ff d6                	call   *%esi
40411f:	a1 b0 3e 42 00       	mov    0x423eb0,%eax
404124:	8b 40 68             	mov    0x68(%eax),%eax
404127:	85 c0                	test   %eax,%eax
404129:	7d 09                	jge    0x404134
40412b:	f7 d8                	neg    %eax
40412d:	50                   	push   %eax
40412e:	ff 15 8c 71 40 00    	call   *0x40718c
404134:	50                   	push   %eax
404135:	6a 00                	push   $0x0
404137:	68 43 04 00 00       	push   $0x443
40413c:	53                   	push   %ebx
40413d:	ff d6                	call   *%esi
40413f:	68 00 00 01 04       	push   $0x4010000
404144:	6a 00                	push   $0x0
404146:	68 45 04 00 00       	push   $0x445
40414b:	53                   	push   %ebx
40414c:	ff d6                	call   *%esi
40414e:	83 25 64 f4 41 00 00 	andl   $0x0,0x41f464
404155:	57                   	push   %edi
404156:	e8 21 1a 00 00       	call   0x405b7c
40415b:	50                   	push   %eax
40415c:	6a 00                	push   $0x0
40415e:	68 35 04 00 00       	push   $0x435
404163:	53                   	push   %ebx
404164:	ff d6                	call   *%esi
404166:	8d 45 f4             	lea    -0xc(%ebp),%eax
404169:	50                   	push   %eax
40416a:	ff 75 14             	push   0x14(%ebp)
40416d:	68 49 04 00 00       	push   $0x449
404172:	53                   	push   %ebx
404173:	ff d6                	call   *%esi
404175:	83 25 80 04 42 00 00 	andl   $0x0,0x420480
40417c:	33 c0                	xor    %eax,%eax
40417e:	e9 61 01 00 00       	jmp    0x4042e4
404183:	81 7d 0c 11 01 00 00 	cmpl   $0x111,0xc(%ebp)
40418a:	8b 1d 2c 72 40 00    	mov    0x40722c,%ebx
404190:	8b 35 44 72 40 00    	mov    0x407244,%esi
404196:	75 5a                	jne    0x4041f2
404198:	8b 45 10             	mov    0x10(%ebp),%eax
40419b:	c1 e8 10             	shr    $0x10,%eax
40419e:	66 85 c0             	test   %ax,%ax
4041a1:	0f 85 2e 01 00 00    	jne    0x4042d5
4041a7:	33 c0                	xor    %eax,%eax
4041a9:	39 05 80 04 42 00    	cmp    %eax,0x420480
4041af:	0f 85 20 01 00 00    	jne    0x4042d5
4041b5:	8b 0d 70 fc 41 00    	mov    0x41fc70,%ecx
4041bb:	8d 79 14             	lea    0x14(%ecx),%edi
4041be:	f6 07 20             	testb  $0x20,(%edi)
4041c1:	0f 84 0e 01 00 00    	je     0x4042d5
4041c7:	50                   	push   %eax
4041c8:	50                   	push   %eax
4041c9:	68 f0 00 00 00       	push   $0xf0
4041ce:	68 0a 04 00 00       	push   $0x40a
4041d3:	ff 75 08             	push   0x8(%ebp)
4041d6:	ff d3                	call   *%ebx
4041d8:	50                   	push   %eax
4041d9:	ff d6                	call   *%esi
4041db:	8b 0f                	mov    (%edi),%ecx
4041dd:	83 e0 01             	and    $0x1,%eax
4041e0:	83 e1 fe             	and    $0xfffffffe,%ecx
4041e3:	50                   	push   %eax
4041e4:	0b c8                	or     %eax,%ecx
4041e6:	89 0f                	mov    %ecx,(%edi)
4041e8:	e8 4d fd ff ff       	call   0x403f3a
4041ed:	e8 f9 00 00 00       	call   0x4042eb
4041f2:	83 7d 0c 4e          	cmpl   $0x4e,0xc(%ebp)
4041f6:	0f 85 ca 00 00 00    	jne    0x4042c6
4041fc:	68 e8 03 00 00       	push   $0x3e8
404201:	ff 75 08             	push   0x8(%ebp)
404204:	ff d3                	call   *%ebx
404206:	8b 7d 14             	mov    0x14(%ebp),%edi
404209:	81 7f 08 0b 07 00 00 	cmpl   $0x70b,0x8(%edi)
404210:	75 72                	jne    0x404284
404212:	81 7f 0c 01 02 00 00 	cmpl   $0x201,0xc(%edi)
404219:	75 69                	jne    0x404284
40421b:	8b 4f 1c             	mov    0x1c(%edi),%ecx
40421e:	8b 57 18             	mov    0x18(%edi),%edx
404221:	89 4d f8             	mov    %ecx,-0x8(%ebp)
404224:	2b ca                	sub    %edx,%ecx
404226:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
40422c:	89 55 f4             	mov    %edx,-0xc(%ebp)
40422f:	c7 45 fc 40 2e 42 00 	movl   $0x422e40,-0x4(%ebp)
404236:	73 4c                	jae    0x404284
404238:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40423b:	51                   	push   %ecx
40423c:	6a 00                	push   $0x0
40423e:	68 4b 04 00 00       	push   $0x44b
404243:	50                   	push   %eax
404244:	ff d6                	call   *%esi
404246:	8b 3d 98 71 40 00    	mov    0x407198,%edi
40424c:	68 02 7f 00 00       	push   $0x7f02