403e9c:	33 75 f8             	xor    -0x8(%ebp),%esi
403e9f:	ff 15 48 10 40 00    	call   *0x401048
403ea5:	33 f0                	xor    %eax,%esi
403ea7:	ff 15 c4 10 40 00    	call   *0x4010c4
403ead:	33 f0                	xor    %eax,%esi
403eaf:	ff 15 4c 10 40 00    	call   *0x40104c
403eb5:	33 f0                	xor    %eax,%esi
403eb7:	8d 45 f0             	lea    -0x10(%ebp),%eax
403eba:	50                   	push   %eax
403ebb:	ff 15 dc 10 40 00    	call   *0x4010dc
403ec1:	8b 45 f4             	mov    -0xc(%ebp),%eax
403ec4:	33 45 f0             	xor    -0x10(%ebp),%eax
403ec7:	33 f0                	xor    %eax,%esi
403ec9:	3b f7                	cmp    %edi,%esi
403ecb:	75 07                	jne    0x403ed4
403ecd:	be 4f e6 40 bb       	mov    $0xbb40e64f,%esi
403ed2:	eb 0b                	jmp    0x403edf
403ed4:	85 f3                	test   %esi,%ebx
403ed6:	75 07                	jne    0x403edf
403ed8:	8b c6                	mov    %esi,%eax
403eda:	c1 e0 10             	shl    $0x10,%eax
403edd:	0b f0                	or     %eax,%esi
403edf:	89 35 04 b0 40 00    	mov    %esi,0x40b004
403ee5:	f7 d6                	not    %esi
403ee7:	89 35 08 b0 40 00    	mov    %esi,0x40b008
403eed:	5e                   	pop    %esi
403eee:	5f                   	pop    %edi
403eef:	5b                   	pop    %ebx
403ef0:	c9                   	leave
403ef1:	c3                   	ret
403ef2:	83 25 dc 0a 89 00 00 	andl   $0x0,0x890adc
403ef9:	c3                   	ret
403efa:	2d a4 03 00 00       	sub    $0x3a4,%eax
403eff:	74 22                	je     0x403f23
403f01:	83 e8 04             	sub    $0x4,%eax
403f04:	74 17                	je     0x403f1d
403f06:	83 e8 0d             	sub    $0xd,%eax
403f09:	74 0c                	je     0x403f17
403f0b:	48                   	dec    %eax
403f0c:	74 03                	je     0x403f11
403f0e:	33 c0                	xor    %eax,%eax
403f10:	c3                   	ret
403f11:	b8 04 04 00 00       	mov    $0x404,%eax
403f16:	c3                   	ret
403f17:	b8 12 04 00 00       	mov    $0x412,%eax
403f1c:	c3                   	ret
403f1d:	b8 04 08 00 00       	mov    $0x804,%eax
403f22:	c3                   	ret
403f23:	b8 11 04 00 00       	mov    $0x411,%eax
403f28:	c3                   	ret
403f29:	8b ff                	mov    %edi,%edi
403f2b:	56                   	push   %esi
403f2c:	57                   	push   %edi
403f2d:	8b f0                	mov    %eax,%esi
403f2f:	68 01 01 00 00       	push   $0x101
403f34:	33 ff                	xor    %edi,%edi
403f36:	8d 46 1c             	lea    0x1c(%esi),%eax
403f39:	57                   	push   %edi
403f3a:	50                   	push   %eax
403f3b:	e8 e0 29 00 00       	call   0x406920
403f40:	33 c0                	xor    %eax,%eax
403f42:	0f b7 c8             	movzwl %ax,%ecx
403f45:	8b c1                	mov    %ecx,%eax
403f47:	89 7e 04             	mov    %edi,0x4(%esi)
403f4a:	89 7e 08             	mov    %edi,0x8(%esi)
403f4d:	89 7e 0c             	mov    %edi,0xc(%esi)
403f50:	c1 e1 10             	shl    $0x10,%ecx
403f53:	0b c1                	or     %ecx,%eax
403f55:	8d 7e 10             	lea    0x10(%esi),%edi
403f58:	ab                   	stos   %eax,%es:(%edi)
403f59:	ab                   	stos   %eax,%es:(%edi)
403f5a:	ab                   	stos   %eax,%es:(%edi)
403f5b:	b9 28 b1 40 00       	mov    $0x40b128,%ecx
403f60:	83 c4 0c             	add    $0xc,%esp
403f63:	8d 46 1c             	lea    0x1c(%esi),%eax
403f66:	2b ce                	sub    %esi,%ecx
403f68:	bf 01 01 00 00       	mov    $0x101,%edi
403f6d:	8a 14 01             	mov    (%ecx,%eax,1),%dl
403f70:	88 10                	mov    %dl,(%eax)
403f72:	40                   	inc    %eax
403f73:	4f                   	dec    %edi
403f74:	75 f7                	jne    0x403f6d
403f76:	8d 86 1d 01 00 00    	lea    0x11d(%esi),%eax
403f7c:	be 00 01 00 00       	mov    $0x100,%esi
403f81:	8a 14 08             	mov    (%eax,%ecx,1),%dl
403f84:	88 10                	mov    %dl,(%eax)
403f86:	40                   	inc    %eax
403f87:	4e                   	dec    %esi
403f88:	75 f7                	jne    0x403f81
403f8a:	5f                   	pop    %edi
403f8b:	5e                   	pop    %esi
403f8c:	c3                   	ret
403f8d:	8b ff                	mov    %edi,%edi
403f8f:	55                   	push   %ebp
403f90:	8b ec                	mov    %esp,%ebp
403f92:	81 ec 1c 05 00 00    	sub    $0x51c,%esp
403f98:	a1 04 b0 40 00       	mov    0x40b004,%eax
403f9d:	33 c5                	xor    %ebp,%eax
403f9f:	89 45 fc             	mov    %eax,-0x4(%ebp)
403fa2:	53                   	push   %ebx
403fa3:	57                   	push   %edi
403fa4:	8d 85 e8 fa ff ff    	lea    -0x518(%ebp),%eax
403faa:	50                   	push   %eax
403fab:	ff 76 04             	push   0x4(%esi)
403fae:	ff 15 e4 10 40 00    	call   *0x4010e4
403fb4:	bf 00 01 00 00       	mov    $0x100,%edi
403fb9:	85 c0                	test   %eax,%eax
403fbb:	0f 84 fb 00 00 00    	je     0x4040bc
403fc1:	33 c0                	xor    %eax,%eax
403fc3:	88 84 05 fc fe ff ff 	mov    %al,-0x104(%ebp,%eax,1)
403fca:	40                   	inc    %eax
403fcb:	3b c7                	cmp    %edi,%eax
403fcd:	72 f4                	jb     0x403fc3
403fcf:	8a 85 ee fa ff ff    	mov    -0x512(%ebp),%al
403fd5:	c6 85 fc fe ff ff 20 	movb   $0x20,-0x104(%ebp)
403fdc:	84 c0                	test   %al,%al
403fde:	74 2e                	je     0x40400e
403fe0:	8d 9d ef fa ff ff    	lea    -0x511(%ebp),%ebx
403fe6:	0f b6 c8             	movzbl %al,%ecx
403fe9:	0f b6 03             	movzbl (%ebx),%eax
403fec:	3b c8                	cmp    %eax,%ecx
403fee:	77 16                	ja     0x404006
403ff0:	2b c1                	sub    %ecx,%eax
403ff2:	40                   	inc    %eax
403ff3:	50                   	push   %eax
403ff4:	8d 94 0d fc fe ff ff 	lea    -0x104(%ebp,%ecx,1),%edx
403ffb:	6a 20                	push   $0x20
403ffd:	52                   	push   %edx
403ffe:	e8 1d 29 00 00       	call   0x406920
404003:	83 c4 0c             	add    $0xc,%esp
404006:	43                   	inc    %ebx
404007:	8a 03                	mov    (%ebx),%al
404009:	43                   	inc    %ebx
40400a:	84 c0                	test   %al,%al
40400c:	75 d8                	jne    0x403fe6
40400e:	6a 00                	push   $0x0
404010:	ff 76 0c             	push   0xc(%esi)
404013:	8d 85 fc fa ff ff    	lea    -0x504(%ebp),%eax
404019:	ff 76 04             	push   0x4(%esi)
40401c:	50                   	push   %eax
40401d:	57                   	push   %edi
40401e:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
404024:	50                   	push   %eax
404025:	6a 01                	push   $0x1
404027:	6a 00                	push   $0x0
404029:	e8 30 2f 00 00       	call   0x406f5e
40402e:	33 db                	xor    %ebx,%ebx
404030:	53                   	push   %ebx
404031:	ff 76 04             	push   0x4(%esi)
404034:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40403a:	57                   	push   %edi
40403b:	50                   	push   %eax
40403c:	57                   	push   %edi
40403d:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
404043:	50                   	push   %eax
404044:	57                   	push   %edi
404045:	ff 76 0c             	push   0xc(%esi)
404048:	53                   	push   %ebx
404049:	e8 11 2d 00 00       	call   0x406d5f
40404e:	83 c4 44             	add    $0x44,%esp
404051:	53                   	push   %ebx
404052:	ff 76 04             	push   0x4(%esi)
404055:	8d 85 fc fc ff ff    	lea    -0x304(%ebp),%eax
40405b:	57                   	push   %edi
40405c:	50                   	push   %eax
40405d:	57                   	push   %edi
40405e:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
404064:	50                   	push   %eax
404065:	68 00 02 00 00       	push   $0x200
40406a:	ff 76 0c             	push   0xc(%esi)
40406d:	53                   	push   %ebx
40406e:	e8 ec 2c 00 00       	call   0x406d5f
404073:	83 c4 24             	add    $0x24,%esp
404076:	33 c0                	xor    %eax,%eax
404078:	0f b7 8c 45 fc fa ff 	movzwl -0x504(%ebp,%eax,2),%ecx
40407f:	ff
404080:	f6 c1 01             	test   $0x1,%cl
404083:	74 0e                	je     0x404093
404085:	80 4c 06 1d 10       	orb    $0x10,0x1d(%esi,%eax,1)
40408a:	8a 8c 05 fc fd ff ff 	mov    -0x204(%ebp,%eax,1),%cl
404091:	eb 11                	jmp    0x4040a4
404093:	f6 c1 02             	test   $0x2,%cl
404096:	74 15                	je     0x4040ad
404098:	80 4c 06 1d 20       	orb    $0x20,0x1d(%esi,%eax,1)
40409d:	8a 8c 05 fc fc ff ff 	mov    -0x304(%ebp,%eax,1),%cl
4040a4:	88 8c 06 1d 01 00 00 	mov    %cl,0x11d(%esi,%eax,1)
4040ab:	eb 08                	jmp    0x4040b5
4040ad:	c6 84 06 1d 01 00 00 	movb   $0x0,0x11d(%esi,%eax,1)
4040b4:	00
4040b5:	40                   	inc    %eax
4040b6:	3b c7                	cmp    %edi,%eax
4040b8:	72 be                	jb     0x404078
4040ba:	eb 56                	jmp    0x404112
4040bc:	8d 86 1d 01 00 00    	lea    0x11d(%esi),%eax
4040c2:	c7 85 e4 fa ff ff 9f 	movl   $0xffffff9f,-0x51c(%ebp)
4040c9:	ff ff ff
4040cc:	33 c9                	xor    %ecx,%ecx
4040ce:	29 85 e4 fa ff ff    	sub    %eax,-0x51c(%ebp)
4040d4:	8b 95 e4 fa ff ff    	mov    -0x51c(%ebp),%edx
4040da:	8d 84 0e 1d 01 00 00 	lea    0x11d(%esi,%ecx,1),%eax
4040e1:	03 d0                	add    %eax,%edx
4040e3:	8d 5a 20             	lea    0x20(%edx),%ebx
4040e6:	83 fb 19             	cmp    $0x19,%ebx
4040e9:	77 0c                	ja     0x4040f7
4040eb:	80 4c 0e 1d 10       	orb    $0x10,0x1d(%esi,%ecx,1)
4040f0:	8a d1                	mov    %cl,%dl
4040f2:	80 c2 20             	add    $0x20,%dl
4040f5:	eb 0f                	jmp    0x404106
4040f7:	83 fa 19             	cmp    $0x19,%edx
4040fa:	77 0e                	ja     0x40410a
4040fc:	80 4c 0e 1d 20       	orb    $0x20,0x1d(%esi,%ecx,1)
404101:	8a d1                	mov    %cl,%dl
404103:	80 ea 20             	sub    $0x20,%dl
404106:	88 10                	mov    %dl,(%eax)
404108:	eb 03                	jmp    0x40410d
40410a:	c6 00 00             	movb   $0x0,(%eax)
40410d:	41                   	inc    %ecx
40410e:	3b cf                	cmp    %edi,%ecx
404110:	72 c2                	jb     0x4040d4
404112:	8b 4d fc             	mov    -0x4(%ebp),%ecx
404115:	5f                   	pop    %edi
404116:	33 cd                	xor    %ebp,%ecx
404118:	5b                   	pop    %ebx
404119:	e8 d2 e2 ff ff       	call   0x4023f0
40411e:	c9                   	leave
40411f:	c3                   	ret
404120:	6a 0c                	push   $0xc
404122:	68 58 a5 40 00       	push   $0x40a558
404127:	e8 48 fb ff ff       	call   0x403c74
40412c:	e8 3a f8 ff ff       	call   0x40396b
404131:	8b f8                	mov    %eax,%edi
404133:	a1 4c b6 40 00       	mov    0x40b64c,%eax
404138:	85 47 70             	test   %eax,0x70(%edi)
40413b:	74 1d                	je     0x40415a
40413d:	83 7f 6c 00          	cmpl   $0x0,0x6c(%edi)
404141:	74 17                	je     0x40415a
404143:	8b 77 68             	mov    0x68(%edi),%esi
404146:	85 f6                	test   %esi,%esi
404148:	75 08                	jne    0x404152
40414a:	6a 20                	push   $0x20
40414c:	e8 e6 e8 ff ff       	call   0x402a37
404151:	59                   	pop    %ecx
404152:	8b c6                	mov    %esi,%eax
404154:	e8 60 fb ff ff       	call   0x403cb9
404159:	c3                   	ret
40415a:	6a 0d                	push   $0xd
40415c:	e8 aa 0c 00 00       	call   0x404e0b
404161:	59                   	pop    %ecx
404162:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404166:	8b 77 68             	mov    0x68(%edi),%esi
404169:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40416c:	3b 35 50 b5 40 00    	cmp    0x40b550,%esi
404172:	74 36                	je     0x4041aa
404174:	85 f6                	test   %esi,%esi
404176:	74 1a                	je     0x404192
404178:	56                   	push   %esi
404179:	ff 15 cc 10 40 00    	call   *0x4010cc
40417f:	85 c0                	test   %eax,%eax
404181:	75 0f                	jne    0x404192
404183:	81 fe 28 b1 40 00    	cmp    $0x40b128,%esi
404189:	74 07                	je     0x404192
40418b:	56                   	push   %esi
40418c:	e8 0d 16 00 00       	call   0x40579e
404191:	59                   	pop    %ecx
404192:	a1 50 b5 40 00       	mov    0x40b550,%eax
404197:	89 47 68             	mov    %eax,0x68(%edi)
40419a:	8b 35 50 b5 40 00    	mov    0x40b550,%esi
4041a0:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4041a3:	56                   	push   %esi
4041a4:	ff 15 5c 10 40 00    	call   *0x40105c
4041aa:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4041b1:	e8 05 00 00 00       	call   0x4041bb
4041b6:	eb 8e                	jmp    0x404146
4041b8:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4041bb:	6a 0d                	push   $0xd
4041bd:	e8 6f 0b 00 00       	call   0x404d31
4041c2:	59                   	pop    %ecx
4041c3:	c3                   	ret
4041c4:	8b ff                	mov    %edi,%edi
4041c6:	55                   	push   %ebp
4041c7:	8b ec                	mov    %esp,%ebp
4041c9:	83 ec 10             	sub    $0x10,%esp
4041cc:	53                   	push   %ebx
4041cd:	33 db                	xor    %ebx,%ebx
4041cf:	53                   	push   %ebx
4041d0:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4041d3:	e8 fe e4 ff ff       	call   0x4026d6
4041d8:	89 1d e0 cd 45 00    	mov    %ebx,0x45cde0
4041de:	83 fe fe             	cmp    $0xfffffffe,%esi
4041e1:	75 1e                	jne    0x404201
4041e3:	c7 05 e0 cd 45 00 01 	movl   $0x1,0x45cde0
4041ea:	00 00 00
4041ed:	ff 15 ec 10 40 00    	call   *0x4010ec
4041f3:	38 5d fc             	cmp    %bl,-0x4(%ebp)
4041f6:	74 45                	je     0x40423d
4041f8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4041fb:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
4041ff:	eb 3c                	jmp    0x40423d
404201:	83 fe fd             	cmp    $0xfffffffd,%esi
404204:	75 12                	jne    0x404218
404206:	c7 05 e0 cd 45 00 01 	movl   $0x1,0x45cde0
40420d:	00 00 00
404210:	ff 15 e8 10 40 00    	call   *0x4010e8
404216:	eb db                	jmp    0x4041f3
404218:	83 fe fc             	cmp    $0xfffffffc,%esi
40421b:	75 12                	jne    0x40422f
40421d:	8b 45 f0             	mov    -0x10(%ebp),%eax
404220:	8b 40 04             	mov    0x4(%eax),%eax
404223:	c7 05 e0 cd 45 00 01 	movl   $0x1,0x45cde0
40422a:	00 00 00
40422d:	eb c4                	jmp    0x4041f3
40422f:	38 5d fc             	cmp    %bl,-0x4(%ebp)
404232:	74 07                	je     0x40423b
404234:	8b 45 f8             	mov    -0x8(%ebp),%eax
404237:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40423b:	8b c6                	mov    %esi,%eax
40423d:	5b                   	pop    %ebx
40423e:	c9                   	leave
40423f:	c3                   	ret
404240:	8b ff                	mov    %edi,%edi
404242:	55                   	push   %ebp
404243:	8b ec                	mov    %esp,%ebp
404245:	83 ec 20             	sub    $0x20,%esp
404248:	a1 04 b0 40 00       	mov    0x40b004,%eax
40424d:	33 c5                	xor    %ebp,%eax
40424f:	89 45 fc             	mov    %eax,-0x4(%ebp)
404252:	53                   	push   %ebx
404253:	8b 5d 0c             	mov    0xc(%ebp),%ebx
404256:	56                   	push   %esi
404257:	8b 75 08             	mov    0x8(%ebp),%esi
40425a:	57                   	push   %edi
40425b:	e8 64 ff ff ff       	call   0x4041c4
404260:	8b f8                	mov    %eax,%edi
404262:	33 f6                	xor    %esi,%esi
404264:	89 7d 08             	mov    %edi,0x8(%ebp)
404267:	3b fe                	cmp    %esi,%edi
404269:	75 0e                	jne    0x404279
40426b:	8b c3                	mov    %ebx,%eax
40426d:	e8 b7 fc ff ff       	call   0x403f29
404272:	33 c0                	xor    %eax,%eax
404274:	e9 9d 01 00 00       	jmp    0x404416
404279:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40427c:	33 c0                	xor    %eax,%eax
40427e:	39 b8 58 b5 40 00    	cmp    %edi,0x40b558(%eax)
404284:	0f 84 91 00 00 00    	je     0x40431b
40428a:	ff 45 e4             	incl   -0x1c(%ebp)
40428d:	83 c0 30             	add    $0x30,%eax
404290:	3d f0 00 00 00       	cmp    $0xf0,%eax
404295:	72 e7                	jb     0x40427e
404297:	81 ff e8 fd 00 00    	cmp    $0xfde8,%edi