403f2a:	68 c7 ee 00 00       	push   $0xeec7
403f2f:	6a 01                	push   $0x1
403f31:	e8 43 2f 00 00       	call   0x406e79
403f36:	59                   	pop    %ecx
403f37:	50                   	push   %eax
403f38:	e8 a0 da ff ff       	call   0x4019dd
403f3d:	83 c4 0c             	add    $0xc,%esp
403f40:	eb 2a                	jmp    0x403f6c
403f42:	68 ca ee 00 00       	push   $0xeeca
403f47:	6a 01                	push   $0x1
403f49:	e8 2b 2f 00 00       	call   0x406e79
403f4e:	59                   	pop    %ecx
403f4f:	50                   	push   %eax
403f50:	e8 88 da ff ff       	call   0x4019dd
403f55:	59                   	pop    %ecx
403f56:	59                   	pop    %ecx
403f57:	68 c8 ee 00 00       	push   $0xeec8
403f5c:	6a 01                	push   $0x1
403f5e:	e8 16 2f 00 00       	call   0x406e79
403f63:	59                   	pop    %ecx
403f64:	50                   	push   %eax
403f65:	e8 73 da ff ff       	call   0x4019dd
403f6a:	59                   	pop    %ecx
403f6b:	59                   	pop    %ecx
403f6c:	53                   	push   %ebx
403f6d:	ff 15 34 81 40 00    	call   *0x408134
403f73:	85 ff                	test   %edi,%edi
403f75:	74 07                	je     0x403f7e
403f77:	57                   	push   %edi
403f78:	ff 15 50 80 40 00    	call   *0x408050
403f7e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
403f81:	33 c0                	xor    %eax,%eax
403f83:	85 f6                	test   %esi,%esi
403f85:	5f                   	pop    %edi
403f86:	0f 94 c0             	sete   %al
403f89:	33 cd                	xor    %ebp,%ecx
403f8b:	5e                   	pop    %esi
403f8c:	5b                   	pop    %ebx
403f8d:	e8 4e 29 00 00       	call   0x4068e0
403f92:	c9                   	leave
403f93:	c3                   	ret
403f94:	cc                   	int3
403f95:	cc                   	int3
403f96:	cc                   	int3
403f97:	cc                   	int3
403f98:	cc                   	int3
403f99:	cc                   	int3
403f9a:	8b ff                	mov    %edi,%edi
403f9c:	56                   	push   %esi
403f9d:	57                   	push   %edi
403f9e:	8b f9                	mov    %ecx,%edi
403fa0:	be 04 01 00 00       	mov    $0x104,%esi
403fa5:	8b ce                	mov    %esi,%ecx
403fa7:	8b c7                	mov    %edi,%eax
403fa9:	66 83 38 00          	cmpw   $0x0,(%eax)
403fad:	74 08                	je     0x403fb7
403faf:	83 c0 02             	add    $0x2,%eax
403fb2:	83 e9 01             	sub    $0x1,%ecx
403fb5:	75 f2                	jne    0x403fa9
403fb7:	8b c1                	mov    %ecx,%eax
403fb9:	f7 d8                	neg    %eax
403fbb:	1b c0                	sbb    %eax,%eax
403fbd:	25 a9 ff f8 7f       	and    $0x7ff8ffa9,%eax
403fc2:	05 57 00 07 80       	add    $0x80070057,%eax
403fc7:	85 c9                	test   %ecx,%ecx
403fc9:	74 24                	je     0x403fef
403fcb:	8b d1                	mov    %ecx,%edx
403fcd:	8d 81 fc fe ff ff    	lea    -0x104(%ecx),%eax
403fd3:	83 ec 0c             	sub    $0xc,%esp
403fd6:	f7 da                	neg    %edx
403fd8:	1b d2                	sbb    %edx,%edx
403fda:	23 d0                	and    %eax,%edx
403fdc:	03 d6                	add    %esi,%edx
403fde:	2b f1                	sub    %ecx,%esi
403fe0:	03 f6                	add    %esi,%esi
403fe2:	f7 d9                	neg    %ecx
403fe4:	1b c9                	sbb    %ecx,%ecx
403fe6:	23 ce                	and    %esi,%ecx
403fe8:	03 cf                	add    %edi,%ecx
403fea:	e8 0b 00 00 00       	call   0x403ffa
403fef:	5f                   	pop    %edi
403ff0:	5e                   	pop    %esi
403ff1:	c2 04 00             	ret    $0x4
403ff4:	cc                   	int3
403ff5:	cc                   	int3
403ff6:	cc                   	int3
403ff7:	cc                   	int3
403ff8:	cc                   	int3
403ff9:	cc                   	int3
403ffa:	8b ff                	mov    %edi,%edi
403ffc:	56                   	push   %esi
403ffd:	57                   	push   %edi
403ffe:	85 d2                	test   %edx,%edx
404000:	74 29                	je     0x40402b
404002:	b8 48 14 40 00       	mov    $0x401448,%eax
404007:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
40400c:	2b c1                	sub    %ecx,%eax
40400e:	85 f6                	test   %esi,%esi
404010:	74 1c                	je     0x40402e
404012:	0f b7 3c 08          	movzwl (%eax,%ecx,1),%edi
404016:	66 85 ff             	test   %di,%di
404019:	74 0c                	je     0x404027
40401b:	66 89 39             	mov    %di,(%ecx)
40401e:	83 c1 02             	add    $0x2,%ecx
404021:	4e                   	dec    %esi
404022:	83 ea 01             	sub    $0x1,%edx
404025:	75 e7                	jne    0x40400e
404027:	85 d2                	test   %edx,%edx
404029:	75 03                	jne    0x40402e
40402b:	83 e9 02             	sub    $0x2,%ecx
40402e:	f7 da                	neg    %edx
404030:	5f                   	pop    %edi
404031:	1b d2                	sbb    %edx,%edx
404033:	33 c0                	xor    %eax,%eax
404035:	81 e2 86 ff f8 7f    	and    $0x7ff8ff86,%edx
40403b:	66 89 01             	mov    %ax,(%ecx)
40403e:	5e                   	pop    %esi
40403f:	8d 82 7a 00 07 80    	lea    -0x7ff8ff86(%edx),%eax
404045:	c2 0c 00             	ret    $0xc
404048:	cc                   	int3
404049:	cc                   	int3
40404a:	cc                   	int3
40404b:	cc                   	int3
40404c:	cc                   	int3
40404d:	cc                   	int3
40404e:	cc                   	int3
40404f:	cc                   	int3
404050:	8b ff                	mov    %edi,%edi
404052:	55                   	push   %ebp
404053:	8b ec                	mov    %esp,%ebp
404055:	53                   	push   %ebx
404056:	56                   	push   %esi
404057:	57                   	push   %edi
404058:	33 c0                	xor    %eax,%eax
40405a:	33 ff                	xor    %edi,%edi
40405c:	33 db                	xor    %ebx,%ebx
40405e:	39 45 14             	cmp    %eax,0x14(%ebp)
404061:	74 64                	je     0x4040c7
404063:	a1 00 70 40 00       	mov    0x407000,%eax
404068:	33 f6                	xor    %esi,%esi
40406a:	eb 1e                	jmp    0x40408a
40406c:	50                   	push   %eax
40406d:	8b 45 18             	mov    0x18(%ebp),%eax
404070:	ff 30                	push   (%eax)
404072:	ff 15 dc 81 40 00    	call   *0x4081dc
404078:	59                   	pop    %ecx
404079:	59                   	pop    %ecx
40407a:	85 c0                	test   %eax,%eax
40407c:	74 12                	je     0x404090
40407e:	46                   	inc    %esi
40407f:	8b c6                	mov    %esi,%eax
404081:	c1 e0 04             	shl    $0x4,%eax
404084:	8b 80 00 70 40 00    	mov    0x407000(%eax),%eax
40408a:	85 c0                	test   %eax,%eax
40408c:	75 de                	jne    0x40406c
40408e:	eb 13                	jmp    0x4040a3
404090:	c1 e6 04             	shl    $0x4,%esi
404093:	8b 86 00 70 40 00    	mov    0x407000(%esi),%eax
404099:	8b be 0c 70 40 00    	mov    0x40700c(%esi),%edi
40409f:	85 c0                	test   %eax,%eax
4040a1:	75 08                	jne    0x4040ab
4040a3:	8b 45 18             	mov    0x18(%ebp),%eax
4040a6:	33 db                	xor    %ebx,%ebx
4040a8:	43                   	inc    %ebx
4040a9:	8b 00                	mov    (%eax),%eax
4040ab:	85 ff                	test   %edi,%edi
4040ad:	74 18                	je     0x4040c7
4040af:	50                   	push   %eax
4040b0:	ff 75 08             	push   0x8(%ebp)
4040b3:	57                   	push   %edi
4040b4:	6a 01                	push   $0x1
4040b6:	e8 be 2d 00 00       	call   0x406e79
4040bb:	59                   	pop    %ecx
4040bc:	50                   	push   %eax
4040bd:	e8 1b d9 ff ff       	call   0x4019dd
4040c2:	83 c4 10             	add    $0x10,%esp
4040c5:	eb 70                	jmp    0x404137
4040c7:	50                   	push   %eax
4040c8:	ff 75 08             	push   0x8(%ebp)
4040cb:	8d 04 5d c4 ea 00 00 	lea    0xeac4(,%ebx,2),%eax
4040d2:	50                   	push   %eax
4040d3:	6a 01                	push   $0x1
4040d5:	e8 9f 2d 00 00       	call   0x406e79
4040da:	59                   	pop    %ecx
4040db:	50                   	push   %eax
4040dc:	e8 fc d8 ff ff       	call   0x4019dd
4040e1:	33 ff                	xor    %edi,%edi
4040e3:	83 c4 10             	add    $0x10,%esp
4040e6:	39 3d 00 70 40 00    	cmp    %edi,0x407000
4040ec:	74 49                	je     0x404137
4040ee:	33 c0                	xor    %eax,%eax
4040f0:	b9 00 70 40 00       	mov    $0x407000,%ecx
4040f5:	8b 98 08 70 40 00    	mov    0x407008(%eax),%ebx
4040fb:	85 db                	test   %ebx,%ebx
4040fd:	74 27                	je     0x404126
4040ff:	8b 31                	mov    (%ecx),%esi
404101:	6a 01                	push   $0x1
404103:	e8 71 2d 00 00       	call   0x406e79
404108:	56                   	push   %esi
404109:	53                   	push   %ebx
40410a:	50                   	push   %eax
40410b:	e8 cd d8 ff ff       	call   0x4019dd
404110:	6a 01                	push   $0x1
404112:	e8 62 2d 00 00       	call   0x406e79
404117:	50                   	push   %eax
404118:	68 84 13 40 00       	push   $0x401384
40411d:	ff 15 cc 81 40 00    	call   *0x4081cc
404123:	83 c4 1c             	add    $0x1c,%esp
404126:	47                   	inc    %edi
404127:	8b c7                	mov    %edi,%eax
404129:	c1 e0 04             	shl    $0x4,%eax
40412c:	8d 88 00 70 40 00    	lea    0x407000(%eax),%ecx
404132:	83 39 00             	cmpl   $0x0,(%ecx)
404135:	75 be                	jne    0x4040f5
404137:	5f                   	pop    %edi
404138:	5e                   	pop    %esi
404139:	33 c0                	xor    %eax,%eax
40413b:	5b                   	pop    %ebx
40413c:	5d                   	pop    %ebp
40413d:	c2 14 00             	ret    $0x14
404140:	cc                   	int3
404141:	cc                   	int3
404142:	cc                   	int3
404143:	cc                   	int3
404144:	cc                   	int3
404145:	cc                   	int3
404146:	cc                   	int3
404147:	cc                   	int3
404148:	cc                   	int3
404149:	cc                   	int3
40414a:	cc                   	int3
40414b:	cc                   	int3
40414c:	cc                   	int3
40414d:	cc                   	int3
40414e:	cc                   	int3
40414f:	cc                   	int3
404150:	8b ff                	mov    %edi,%edi
404152:	55                   	push   %ebp
404153:	8b ec                	mov    %esp,%ebp
404155:	81 ec 58 02 00 00    	sub    $0x258,%esp
40415b:	a1 b4 71 40 00       	mov    0x4071b4,%eax
404160:	33 c5                	xor    %ebp,%eax
404162:	89 45 fc             	mov    %eax,-0x4(%ebp)
404165:	53                   	push   %ebx
404166:	56                   	push   %esi
404167:	8b 75 0c             	mov    0xc(%ebp),%esi
40416a:	57                   	push   %edi
40416b:	6a 02                	push   $0x2
40416d:	5b                   	pop    %ebx
40416e:	68 00 08 00 00       	push   $0x800
404173:	89 b5 b4 fd ff ff    	mov    %esi,-0x24c(%ebp)
404179:	e8 40 24 00 00       	call   0x4065be
40417e:	8b f8                	mov    %eax,%edi
404180:	59                   	pop    %ecx
404181:	85 ff                	test   %edi,%edi
404183:	0f 84 d4 01 00 00    	je     0x40435d
404189:	6a 00                	push   $0x0
40418b:	56                   	push   %esi
40418c:	8d 85 b8 fd ff ff    	lea    -0x248(%ebp),%eax
404192:	50                   	push   %eax
404193:	68 80 00 00 00       	push   $0x80
404198:	eb 51                	jmp    0x4041eb
40419a:	ff 15 38 80 40 00    	call   *0x408038
4041a0:	83 f8 7a             	cmp    $0x7a,%eax
4041a3:	0f 85 ad 01 00 00    	jne    0x404356
4041a9:	57                   	push   %edi
4041aa:	e8 3e 24 00 00       	call   0x4065ed
4041af:	8b 85 b8 fd ff ff    	mov    -0x248(%ebp),%eax
4041b5:	33 c9                	xor    %ecx,%ecx
4041b7:	6a 10                	push   $0x10
4041b9:	5a                   	pop    %edx
4041ba:	89 85 b0 fd ff ff    	mov    %eax,-0x250(%ebp)
4041c0:	f7 e2                	mul    %edx
4041c2:	0f 90 c1             	seto   %cl
4041c5:	f7 d9                	neg    %ecx
4041c7:	0b c8                	or     %eax,%ecx
4041c9:	51                   	push   %ecx
4041ca:	e8 ef 23 00 00       	call   0x4065be
4041cf:	8b f8                	mov    %eax,%edi
4041d1:	59                   	pop    %ecx
4041d2:	59                   	pop    %ecx
4041d3:	85 ff                	test   %edi,%edi
4041d5:	0f 84 82 01 00 00    	je     0x40435d
4041db:	6a 00                	push   $0x0
4041dd:	56                   	push   %esi
4041de:	8d 85 b8 fd ff ff    	lea    -0x248(%ebp),%eax
4041e4:	50                   	push   %eax
4041e5:	ff b5 b0 fd ff ff    	push   -0x250(%ebp)
4041eb:	57                   	push   %edi
4041ec:	6a 00                	push   $0x0
4041ee:	ff 15 c4 80 40 00    	call   *0x4080c4
4041f4:	85 c0                	test   %eax,%eax
4041f6:	74 a2                	je     0x40419a
4041f8:	8b b5 b8 fd ff ff    	mov    -0x248(%ebp),%esi
4041fe:	6a 01                	push   $0x1
404200:	e8 74 2c 00 00       	call   0x406e79
404205:	ff b5 b4 fd ff ff    	push   -0x24c(%ebp)
40420b:	8b c8                	mov    %eax,%ecx
40420d:	56                   	push   %esi
40420e:	8b b5 b4 fd ff ff    	mov    -0x24c(%ebp),%esi
404214:	8b c6                	mov    %esi,%eax
404216:	f7 d8                	neg    %eax
404218:	1b c0                	sbb    %eax,%eax
40421a:	05 2b eb 00 00       	add    $0xeb2b,%eax
40421f:	50                   	push   %eax
404220:	51                   	push   %ecx
404221:	e8 b7 d7 ff ff       	call   0x4019dd
404226:	83 a5 b0 fd ff ff 00 	andl   $0x0,-0x250(%ebp)
40422d:	83 c4 14             	add    $0x14,%esp
404230:	83 bd b8 fd ff ff 00 	cmpl   $0x0,-0x248(%ebp)
404237:	0f 86 17 01 00 00    	jbe    0x404354
40423d:	8b c7                	mov    %edi,%eax
40423f:	89 bd ac fd ff ff    	mov    %edi,-0x254(%ebp)
404245:	6a 00                	push   $0x0
404247:	56                   	push   %esi
404248:	6a 00                	push   $0x0
40424a:	6a 20                	push   $0x20
40424c:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40424f:	51                   	push   %ecx
404250:	50                   	push   %eax
404251:	ff 15 9c 80 40 00    	call   *0x40809c
404257:	85 c0                	test   %eax,%eax
404259:	75 4b                	jne    0x4042a6
40425b:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40425e:	b8 b8 11 40 00       	mov    $0x4011b8,%eax
404263:	8b f1                	mov    %ecx,%esi
404265:	2b c6                	sub    %esi,%eax
404267:	8b b5 b4 fd ff ff    	mov    -0x24c(%ebp),%esi
40426d:	6a 20                	push   $0x20
40426f:	5a                   	pop    %edx
404270:	89 85 a8 fd ff ff    	mov    %eax,-0x258(%ebp)
404276:	8d 82 de ff ff 7f    	lea    0x7fffffde(%edx),%eax
40427c:	85 c0                	test   %eax,%eax
40427e:	74 21                	je     0x4042a1
404280:	8b 85 a8 fd ff ff    	mov    -0x258(%ebp),%eax
404286:	0f b7 04 08          	movzwl (%eax,%ecx,1),%eax
40428a:	66 85 c0             	test   %ax,%ax
40428d:	74 0a                	je     0x404299
40428f:	66 89 01             	mov    %ax,(%ecx)
404292:	03 cb                	add    %ebx,%ecx
404294:	83 ea 01             	sub    $0x1,%edx
404297:	75 dd                	jne    0x404276
404299:	85 d2                	test   %edx,%edx
40429b:	0f 84 b5 00 00 00    	je     0x404356
4042a1:	33 c0                	xor    %eax,%eax
4042a3:	66 89 01             	mov    %ax,(%ecx)
4042a6:	6a 00                	push   $0x0
4042a8:	56                   	push   %esi
4042a9:	6a 00                	push   $0x0
4042ab:	68 00 01 00 00       	push   $0x100