402e69:	68 17 04 00 00       	push   $0x417
402e6e:	e8 1c fb ff ff       	call   0x40298f
402e73:	59                   	pop    %ecx
402e74:	85 f6                	test   %esi,%esi
402e76:	74 05                	je     0x402e7d
402e78:	83 fe 01             	cmp    $0x1,%esi
402e7b:	75 0b                	jne    0x402e88
402e7d:	68 18 04 00 00       	push   $0x418
402e82:	e8 08 fb ff ff       	call   0x40298f
402e87:	59                   	pop    %ecx
402e88:	85 f6                	test   %esi,%esi
402e8a:	74 31                	je     0x402ebd
402e8c:	83 fe 01             	cmp    $0x1,%esi
402e8f:	74 2c                	je     0x402ebd
402e91:	83 fe 03             	cmp    $0x3,%esi
402e94:	74 27                	je     0x402ebd
402e96:	83 fe 09             	cmp    $0x9,%esi
402e99:	74 22                	je     0x402ebd
402e9b:	3b f3                	cmp    %ebx,%esi
402e9d:	74 1e                	je     0x402ebd
402e9f:	83 fe 0e             	cmp    $0xe,%esi
402ea2:	74 19                	je     0x402ebd
402ea4:	83 fe 1b             	cmp    $0x1b,%esi
402ea7:	74 14                	je     0x402ebd
402ea9:	83 fe 1e             	cmp    $0x1e,%esi
402eac:	74 0f                	je     0x402ebd
402eae:	83 fe 21             	cmp    $0x21,%esi
402eb1:	74 0a                	je     0x402ebd
402eb3:	83 fe 23             	cmp    $0x23,%esi
402eb6:	74 05                	je     0x402ebd
402eb8:	83 fe 24             	cmp    $0x24,%esi
402ebb:	75 0b                	jne    0x402ec8
402ebd:	68 19 04 00 00       	push   $0x419
402ec2:	e8 c8 fa ff ff       	call   0x40298f
402ec7:	59                   	pop    %ecx
402ec8:	68 1a 04 00 00       	push   $0x41a
402ecd:	e8 bd fa ff ff       	call   0x40298f
402ed2:	59                   	pop    %ecx
402ed3:	85 f6                	test   %esi,%esi
402ed5:	5e                   	pop    %esi
402ed6:	5b                   	pop    %ebx
402ed7:	75 0b                	jne    0x402ee4
402ed9:	68 1b 04 00 00       	push   $0x41b
402ede:	e8 ac fa ff ff       	call   0x40298f
402ee3:	59                   	pop    %ecx
402ee4:	c3                   	ret
402ee5:	8b ff                	mov    %edi,%edi
402ee7:	55                   	push   %ebp
402ee8:	8b ec                	mov    %esp,%ebp
402eea:	81 ec 04 04 00 00    	sub    $0x404,%esp
402ef0:	a1 04 a0 40 00       	mov    0x40a004,%eax
402ef5:	33 c5                	xor    %ebp,%eax
402ef7:	89 45 fc             	mov    %eax,-0x4(%ebp)
402efa:	56                   	push   %esi
402efb:	57                   	push   %edi
402efc:	6a 00                	push   $0x0
402efe:	68 ff 00 00 00       	push   $0xff
402f03:	8b f1                	mov    %ecx,%esi
402f05:	8b fa                	mov    %edx,%edi
402f07:	56                   	push   %esi
402f08:	6a 00                	push   $0x0
402f0a:	ff 75 08             	push   0x8(%ebp)
402f0d:	68 e4 11 40 00       	push   $0x4011e4
402f12:	ff 15 24 f1 40 00    	call   *0x40f124
402f18:	50                   	push   %eax
402f19:	68 ff 18 00 00       	push   $0x18ff
402f1e:	ff 15 2c f1 40 00    	call   *0x40f12c
402f24:	85 c0                	test   %eax,%eax
402f26:	75 36                	jne    0x402f5e
402f28:	68 00 02 00 00       	push   $0x200
402f2d:	8d 85 fc fb ff ff    	lea    -0x404(%ebp),%eax
402f33:	50                   	push   %eax
402f34:	68 1c 04 00 00       	push   $0x41c
402f39:	6a 00                	push   $0x0
402f3b:	ff 15 20 f1 40 00    	call   *0x40f120
402f41:	85 c0                	test   %eax,%eax
402f43:	74 19                	je     0x402f5e
402f45:	ff 75 08             	push   0x8(%ebp)
402f48:	8d 85 fc fb ff ff    	lea    -0x404(%ebp),%eax
402f4e:	50                   	push   %eax
402f4f:	68 00 12 40 00       	push   $0x401200
402f54:	57                   	push   %edi
402f55:	56                   	push   %esi
402f56:	e8 a8 f8 ff ff       	call   0x402803
402f5b:	83 c4 14             	add    $0x14,%esp
402f5e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
402f61:	8b c6                	mov    %esi,%eax
402f63:	5f                   	pop    %edi
402f64:	33 cd                	xor    %ebp,%ecx
402f66:	5e                   	pop    %esi
402f67:	e8 64 5b 00 00       	call   0x408ad0
402f6c:	c9                   	leave
402f6d:	c2 04 00             	ret    $0x4
402f70:	6a 08                	push   $0x8
402f72:	68 f0 90 40 00       	push   $0x4090f0
402f77:	e8 8c 60 00 00       	call   0x409008
402f7c:	8b fa                	mov    %edx,%edi
402f7e:	33 f6                	xor    %esi,%esi
402f80:	89 75 fc             	mov    %esi,-0x4(%ebp)
402f83:	56                   	push   %esi
402f84:	56                   	push   %esi
402f85:	56                   	push   %esi
402f86:	56                   	push   %esi
402f87:	6a ff                	push   $0xffffffff
402f89:	51                   	push   %ecx
402f8a:	68 00 04 00 00       	push   $0x400
402f8f:	56                   	push   %esi
402f90:	ff 15 60 f1 40 00    	call   *0x40f160
402f96:	89 07                	mov    %eax,(%edi)
402f98:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
402f9f:	85 c0                	test   %eax,%eax
402fa1:	75 08                	jne    0x402fab
402fa3:	ff 15 e0 f0 40 00    	call   *0x40f0e0
402fa9:	8b f0                	mov    %eax,%esi
402fab:	8b c6                	mov    %esi,%eax
402fad:	eb 13                	jmp    0x402fc2
402faf:	33 c0                	xor    %eax,%eax
402fb1:	40                   	inc    %eax
402fb2:	c3                   	ret
402fb3:	8b 65 e8             	mov    -0x18(%ebp),%esp
402fb6:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
402fbd:	b8 e6 03 00 00       	mov    $0x3e6,%eax
402fc2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
402fc5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402fcc:	59                   	pop    %ecx
402fcd:	5f                   	pop    %edi
402fce:	5e                   	pop    %esi
402fcf:	5b                   	pop    %ebx
402fd0:	c9                   	leave
402fd1:	c3                   	ret
402fd2:	8b ff                	mov    %edi,%edi
402fd4:	55                   	push   %ebp
402fd5:	8b ec                	mov    %esp,%ebp
402fd7:	83 ec 0c             	sub    $0xc,%esp
402fda:	8b c1                	mov    %ecx,%eax
402fdc:	33 c9                	xor    %ecx,%ecx
402fde:	89 45 f4             	mov    %eax,-0xc(%ebp)
402fe1:	53                   	push   %ebx
402fe2:	8b d9                	mov    %ecx,%ebx
402fe4:	89 5d f8             	mov    %ebx,-0x8(%ebp)
402fe7:	57                   	push   %edi
402fe8:	8b fa                	mov    %edx,%edi
402fea:	85 c0                	test   %eax,%eax
402fec:	75 07                	jne    0x402ff5
402fee:	89 0f                	mov    %ecx,(%edi)
402ff0:	e9 90 00 00 00       	jmp    0x403085
402ff5:	56                   	push   %esi
402ff6:	39 0f                	cmp    %ecx,(%edi)
402ff8:	75 33                	jne    0x40302d
402ffa:	8d 55 f8             	lea    -0x8(%ebp),%edx
402ffd:	8b c8                	mov    %eax,%ecx
402fff:	e8 6c ff ff ff       	call   0x402f70
403004:	8b 5d f8             	mov    -0x8(%ebp),%ebx
403007:	8b f0                	mov    %eax,%esi
403009:	85 f6                	test   %esi,%esi
40300b:	75 16                	jne    0x403023
40300d:	53                   	push   %ebx
40300e:	ff 15 a4 f0 40 00    	call   *0x40f0a4
403014:	89 07                	mov    %eax,(%edi)
403016:	85 c0                	test   %eax,%eax
403018:	75 03                	jne    0x40301d
40301a:	6a 08                	push   $0x8
40301c:	5e                   	pop    %esi
40301d:	0f 95 45 ff          	setne  -0x1(%ebp)
403021:	eb 05                	jmp    0x403028
403023:	33 c0                	xor    %eax,%eax
403025:	88 45 ff             	mov    %al,-0x1(%ebp)
403028:	8b 45 f4             	mov    -0xc(%ebp),%eax
40302b:	eb 05                	jmp    0x403032
40302d:	88 4d ff             	mov    %cl,-0x1(%ebp)
403030:	8b f1                	mov    %ecx,%esi
403032:	85 f6                	test   %esi,%esi
403034:	75 4c                	jne    0x403082
403036:	8b c8                	mov    %eax,%ecx
403038:	8d 51 02             	lea    0x2(%ecx),%edx
40303b:	66 8b 01             	mov    (%ecx),%ax
40303e:	83 c1 02             	add    $0x2,%ecx
403041:	66 3b c6             	cmp    %si,%ax
403044:	75 f5                	jne    0x40303b
403046:	2b ca                	sub    %edx,%ecx
403048:	33 d2                	xor    %edx,%edx
40304a:	52                   	push   %edx
40304b:	52                   	push   %edx
40304c:	53                   	push   %ebx
40304d:	ff 37                	push   (%edi)
40304f:	d1 f9                	sar    $1,%ecx
403051:	8d 41 01             	lea    0x1(%ecx),%eax
403054:	50                   	push   %eax
403055:	ff 75 f4             	push   -0xc(%ebp)
403058:	68 00 04 00 00       	push   $0x400
40305d:	52                   	push   %edx
40305e:	ff 15 60 f1 40 00    	call   *0x40f160
403064:	85 c0                	test   %eax,%eax
403066:	75 18                	jne    0x403080
403068:	ff 15 e0 f0 40 00    	call   *0x40f0e0
40306e:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
403072:	8b f0                	mov    %eax,%esi
403074:	74 0c                	je     0x403082
403076:	ff 37                	push   (%edi)
403078:	ff 15 b0 f0 40 00    	call   *0x40f0b0
40307e:	eb 02                	jmp    0x403082
403080:	33 c0                	xor    %eax,%eax
403082:	8b c6                	mov    %esi,%eax
403084:	5e                   	pop    %esi
403085:	5f                   	pop    %edi
403086:	5b                   	pop    %ebx
403087:	c9                   	leave
403088:	c2 04 00             	ret    $0x4
40308b:	8b ff                	mov    %edi,%edi
40308d:	55                   	push   %ebp
40308e:	8b ec                	mov    %esp,%ebp
403090:	81 ec 0c 04 00 00    	sub    $0x40c,%esp
403096:	a1 04 a0 40 00       	mov    0x40a004,%eax
40309b:	33 c5                	xor    %ebp,%eax
40309d:	89 45 fc             	mov    %eax,-0x4(%ebp)
4030a0:	53                   	push   %ebx
4030a1:	56                   	push   %esi
4030a2:	57                   	push   %edi
4030a3:	68 00 04 00 00       	push   $0x400
4030a8:	33 ff                	xor    %edi,%edi
4030aa:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
4030b0:	57                   	push   %edi
4030b1:	50                   	push   %eax
4030b2:	e8 2d 60 00 00       	call   0x4090e4
4030b7:	83 c4 0c             	add    $0xc,%esp
4030ba:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
4030c0:	bb 00 02 00 00       	mov    $0x200,%ebx
4030c5:	53                   	push   %ebx
4030c6:	50                   	push   %eax
4030c7:	68 1d 04 00 00       	push   $0x41d
4030cc:	57                   	push   %edi
4030cd:	ff 15 20 f1 40 00    	call   *0x40f120
4030d3:	85 c0                	test   %eax,%eax
4030d5:	75 07                	jne    0x4030de
4030d7:	66 89 85 f8 fb ff ff 	mov    %ax,-0x408(%ebp)
4030de:	ff 75 0c             	push   0xc(%ebp)
4030e1:	8b 75 08             	mov    0x8(%ebp),%esi
4030e4:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
4030ea:	56                   	push   %esi
4030eb:	50                   	push   %eax
4030ec:	68 04 14 40 00       	push   $0x401404
4030f1:	68 14 12 40 00       	push   $0x401214
4030f6:	e8 bf f7 ff ff       	call   0x4028ba
4030fb:	8b c6                	mov    %esi,%eax
4030fd:	83 c4 14             	add    $0x14,%esp
403100:	83 e0 40             	and    $0x40,%eax
403103:	0b c7                	or     %edi,%eax
403105:	74 38                	je     0x40313f
403107:	53                   	push   %ebx
403108:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
40310e:	50                   	push   %eax
40310f:	68 1e 04 00 00       	push   $0x41e
403114:	57                   	push   %edi
403115:	ff 15 20 f1 40 00    	call   *0x40f120
40311b:	85 c0                	test   %eax,%eax
40311d:	75 07                	jne    0x403126
40311f:	66 89 85 f8 fb ff ff 	mov    %ax,-0x408(%ebp)
403126:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
40312c:	50                   	push   %eax
40312d:	68 04 14 40 00       	push   $0x401404
403132:	68 48 12 40 00       	push   $0x401248
403137:	e8 7e f7 ff ff       	call   0x4028ba
40313c:	83 c4 0c             	add    $0xc,%esp
40313f:	8b c6                	mov    %esi,%eax
403141:	83 e0 20             	and    $0x20,%eax
403144:	0b c7                	or     %edi,%eax
403146:	74 38                	je     0x403180
403148:	53                   	push   %ebx
403149:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
40314f:	50                   	push   %eax
403150:	68 1f 04 00 00       	push   $0x41f
403155:	57                   	push   %edi
403156:	ff 15 20 f1 40 00    	call   *0x40f120
40315c:	85 c0                	test   %eax,%eax
40315e:	75 07                	jne    0x403167
403160:	66 89 85 f8 fb ff ff 	mov    %ax,-0x408(%ebp)
403167:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
40316d:	50                   	push   %eax
40316e:	68 04 14 40 00       	push   $0x401404
403173:	68 48 12 40 00       	push   $0x401248
403178:	e8 3d f7 ff ff       	call   0x4028ba
40317d:	83 c4 0c             	add    $0xc,%esp
403180:	8b c6                	mov    %esi,%eax
403182:	83 e0 10             	and    $0x10,%eax
403185:	0b c7                	or     %edi,%eax
403187:	74 38                	je     0x4031c1
403189:	53                   	push   %ebx
40318a:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
403190:	50                   	push   %eax
403191:	68 20 04 00 00       	push   $0x420
403196:	57                   	push   %edi
403197:	ff 15 20 f1 40 00    	call   *0x40f120
40319d:	85 c0                	test   %eax,%eax
40319f:	75 07                	jne    0x4031a8
4031a1:	66 89 85 f8 fb ff ff 	mov    %ax,-0x408(%ebp)
4031a8:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
4031ae:	50                   	push   %eax
4031af:	68 04 14 40 00       	push   $0x401404
4031b4:	68 48 12 40 00       	push   $0x401248
4031b9:	e8 fc f6 ff ff       	call   0x4028ba
4031be:	83 c4 0c             	add    $0xc,%esp
4031c1:	8b c6                	mov    %esi,%eax
4031c3:	83 e0 08             	and    $0x8,%eax
4031c6:	0b c7                	or     %edi,%eax
4031c8:	74 35                	je     0x4031ff
4031ca:	53                   	push   %ebx
4031cb:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
4031d1:	50                   	push   %eax
4031d2:	6a 08                	push   $0x8
4031d4:	57                   	push   %edi
4031d5:	ff 15 20 f1 40 00    	call   *0x40f120
4031db:	85 c0                	test   %eax,%eax
4031dd:	75 07                	jne    0x4031e6
4031df:	66 89 85 f8 fb ff ff 	mov    %ax,-0x408(%ebp)
4031e6:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
4031ec:	50                   	push   %eax
4031ed:	68 04 14 40 00       	push   $0x401404
4031f2:	68 48 12 40 00       	push   $0x401248
4031f7:	e8 be f6 ff ff       	call   0x4028ba
4031fc:	83 c4 0c             	add    $0xc,%esp
4031ff:	8b c6                	mov    %esi,%eax
403201:	83 e0 02             	and    $0x2,%eax
403204:	0b c7                	or     %edi,%eax
403206:	74 38                	je     0x403240
403208:	53                   	push   %ebx
403209:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
40320f:	50                   	push   %eax
403210:	68 22 04 00 00       	push   $0x422
403215:	57                   	push   %edi
403216:	ff 15 20 f1 40 00    	call   *0x40f120
40321c:	85 c0                	test   %eax,%eax
40321e:	75 07                	jne    0x403227
403220:	66 89 85 f8 fb ff ff 	mov    %ax,-0x408(%ebp)
403227:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
40322d:	50                   	push   %eax
40322e:	68 04 14 40 00       	push   $0x401404
403233:	68 48 12 40 00       	push   $0x401248
403238:	e8 7d f6 ff ff       	call   0x4028ba
40323d:	83 c4 0c             	add    $0xc,%esp
403240:	83 e6 01             	and    $0x1,%esi
403243:	0b f7                	or     %edi,%esi
403245:	74 38                	je     0x40327f
403247:	53                   	push   %ebx
403248:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
40324e:	50                   	push   %eax
40324f:	68 23 04 00 00       	push   $0x423
403254:	57                   	push   %edi
403255:	ff 15 20 f1 40 00    	call   *0x40f120
40325b:	85 c0                	test   %eax,%eax
40325d:	75 07                	jne    0x403266