405b7d:	89 8d 6c fb ff ff    	mov    %ecx,-0x494(%ebp)
405b83:	8d 04 8d 14 00 00 00 	lea    0x14(,%ecx,4),%eax
405b8a:	3b f0                	cmp    %eax,%esi
405b8c:	74 1b                	je     0x405ba9
405b8e:	33 c9                	xor    %ecx,%ecx
405b90:	38 4d 08             	cmp    %cl,0x8(%ebp)
405b93:	0f 95 c1             	setne  %cl
405b96:	8d 0c 4d 09 00 00 00 	lea    0x9(,%ecx,2),%ecx
405b9d:	e8 bd ce ff ff       	call   0x402a5f
405ba2:	33 c0                	xor    %eax,%eax
405ba4:	e9 43 02 00 00       	jmp    0x405dec
405ba9:	85 c9                	test   %ecx,%ecx
405bab:	0f 84 3f 01 00 00    	je     0x405cf0
405bb1:	8b c1                	mov    %ecx,%eax
405bb3:	c1 e0 04             	shl    $0x4,%eax
405bb6:	05 e8 05 00 00       	add    $0x5e8,%eax
405bbb:	50                   	push   %eax
405bbc:	ff 15 a4 f0 40 00    	call   *0x40f0a4
405bc2:	8b f0                	mov    %eax,%esi
405bc4:	85 f6                	test   %esi,%esi
405bc6:	75 07                	jne    0x405bcf
405bc8:	6a 08                	push   $0x8
405bca:	e9 1c 02 00 00       	jmp    0x405deb
405bcf:	33 c0                	xor    %eax,%eax
405bd1:	66 89 06             	mov    %ax,(%esi)
405bd4:	66 89 86 00 02 00 00 	mov    %ax,0x200(%esi)
405bdb:	66 89 86 c0 03 00 00 	mov    %ax,0x3c0(%esi)
405be2:	8b 4f 54             	mov    0x54(%edi),%ecx
405be5:	e8 8c e0 ff ff       	call   0x403c76
405bea:	89 86 d8 05 00 00    	mov    %eax,0x5d8(%esi)
405bf0:	8b 4f 58             	mov    0x58(%edi),%ecx
405bf3:	e8 7e e0 ff ff       	call   0x403c76
405bf8:	8b 8d 6c fb ff ff    	mov    -0x494(%ebp),%ecx
405bfe:	89 86 dc 05 00 00    	mov    %eax,0x5dc(%esi)
405c04:	8d 86 e8 05 00 00    	lea    0x5e8(%esi),%eax
405c0a:	89 86 e4 05 00 00    	mov    %eax,0x5e4(%esi)
405c10:	33 c0                	xor    %eax,%eax
405c12:	89 8e e0 05 00 00    	mov    %ecx,0x5e0(%esi)
405c18:	89 85 74 fb ff ff    	mov    %eax,-0x48c(%ebp)
405c1e:	85 c9                	test   %ecx,%ecx
405c20:	0f 84 ce 00 00 00    	je     0x405cf4
405c26:	8b d0                	mov    %eax,%edx
405c28:	89 85 70 fb ff ff    	mov    %eax,-0x490(%ebp)
405c2e:	8b 86 e4 05 00 00    	mov    0x5e4(%esi),%eax
405c34:	8b 8d 88 fb ff ff    	mov    -0x478(%ebp),%ecx
405c3a:	83 c0 08             	add    $0x8,%eax
405c3d:	03 d0                	add    %eax,%edx
405c3f:	8b 0c 8f             	mov    (%edi,%ecx,4),%ecx
405c42:	e8 b9 e0 ff ff       	call   0x403d00
405c47:	84 c0                	test   %al,%al
405c49:	0f 84 97 00 00 00    	je     0x405ce6
405c4f:	8b 85 88 fb ff ff    	mov    -0x478(%ebp),%eax
405c55:	40                   	inc    %eax
405c56:	89 85 88 fb ff ff    	mov    %eax,-0x478(%ebp)
405c5c:	8b 0c 87             	mov    (%edi,%eax,4),%ecx
405c5f:	e8 12 e0 ff ff       	call   0x403c76
405c64:	3b 86 d8 05 00 00    	cmp    0x5d8(%esi),%eax
405c6a:	75 70                	jne    0x405cdc
405c6c:	8b 85 88 fb ff ff    	mov    -0x478(%ebp),%eax
405c72:	40                   	inc    %eax
405c73:	89 85 88 fb ff ff    	mov    %eax,-0x478(%ebp)
405c79:	8b 0c 87             	mov    (%edi,%eax,4),%ecx
405c7c:	e8 f5 df ff ff       	call   0x403c76
405c81:	3b 86 dc 05 00 00    	cmp    0x5dc(%esi),%eax
405c87:	75 49                	jne    0x405cd2
405c89:	8b 8d 88 fb ff ff    	mov    -0x478(%ebp),%ecx
405c8f:	8b 4c 8f 04          	mov    0x4(%edi,%ecx,4),%ecx
405c93:	e8 de df ff ff       	call   0x403c76
405c98:	8b 95 70 fb ff ff    	mov    -0x490(%ebp),%edx
405c9e:	8b 8e e4 05 00 00    	mov    0x5e4(%esi),%ecx
405ca4:	83 85 88 fb ff ff 02 	addl   $0x2,-0x478(%ebp)
405cab:	89 04 0a             	mov    %eax,(%edx,%ecx,1)
405cae:	83 c2 10             	add    $0x10,%edx
405cb1:	8b 85 74 fb ff ff    	mov    -0x48c(%ebp),%eax
405cb7:	40                   	inc    %eax
405cb8:	89 95 70 fb ff ff    	mov    %edx,-0x490(%ebp)
405cbe:	89 85 74 fb ff ff    	mov    %eax,-0x48c(%ebp)
405cc4:	3b 85 6c fb ff ff    	cmp    -0x494(%ebp),%eax
405cca:	0f 82 5e ff ff ff    	jb     0x405c2e
405cd0:	eb 22                	jmp    0x405cf4
405cd2:	68 63 04 00 00       	push   $0x463
405cd7:	e9 fb 00 00 00       	jmp    0x405dd7
405cdc:	68 62 04 00 00       	push   $0x462
405ce1:	e9 f1 00 00 00       	jmp    0x405dd7
405ce6:	68 61 04 00 00       	push   $0x461
405ceb:	e9 e7 00 00 00       	jmp    0x405dd7
405cf0:	33 c0                	xor    %eax,%eax
405cf2:	8b f0                	mov    %eax,%esi
405cf4:	8d 45 94             	lea    -0x6c(%ebp),%eax
405cf7:	50                   	push   %eax
405cf8:	8d 45 a4             	lea    -0x5c(%ebp),%eax
405cfb:	50                   	push   %eax
405cfc:	ff 75 08             	push   0x8(%ebp)
405cff:	8d 85 2c fb ff ff    	lea    -0x4d4(%ebp),%eax
405d05:	ff b5 7c fb ff ff    	push   -0x484(%ebp)
405d0b:	ff b5 84 fb ff ff    	push   -0x47c(%ebp)
405d11:	50                   	push   %eax
405d12:	56                   	push   %esi
405d13:	33 c0                	xor    %eax,%eax
405d15:	f7 db                	neg    %ebx
405d17:	50                   	push   %eax
405d18:	ff b5 64 fb ff ff    	push   -0x49c(%ebp)
405d1e:	1b db                	sbb    %ebx,%ebx
405d20:	8d 85 8c fb ff ff    	lea    -0x474(%ebp),%eax
405d26:	23 d8                	and    %eax,%ebx
405d28:	53                   	push   %ebx
405d29:	ff b5 80 fb ff ff    	push   -0x480(%ebp)
405d2f:	ff b5 68 fb ff ff    	push   -0x498(%ebp)
405d35:	ff b5 78 fb ff ff    	push   -0x488(%ebp)
405d3b:	ff b5 60 fb ff ff    	push   -0x4a0(%ebp)
405d41:	ff 15 38 f0 40 00    	call   *0x40f038
405d47:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
405d4b:	8b f8                	mov    %eax,%edi
405d4d:	75 74                	jne    0x405dc3
405d4f:	85 ff                	test   %edi,%edi
405d51:	75 70                	jne    0x405dc3
405d53:	6a 20                	push   $0x20
405d55:	8d 45 b4             	lea    -0x4c(%ebp),%eax
405d58:	33 db                	xor    %ebx,%ebx
405d5a:	50                   	push   %eax
405d5b:	68 64 04 00 00       	push   $0x464
405d60:	53                   	push   %ebx
405d61:	ff 15 20 f1 40 00    	call   *0x40f120
405d67:	85 c0                	test   %eax,%eax
405d69:	75 04                	jne    0x405d6f
405d6b:	66 89 45 b4          	mov    %ax,-0x4c(%ebp)
405d6f:	ff 75 b0             	push   -0x50(%ebp)
405d72:	8d 45 b4             	lea    -0x4c(%ebp),%eax
405d75:	ff 75 ac             	push   -0x54(%ebp)
405d78:	ff 75 a8             	push   -0x58(%ebp)
405d7b:	ff 75 a4             	push   -0x5c(%ebp)
405d7e:	50                   	push   %eax
405d7f:	68 b4 19 40 00       	push   $0x4019b4
405d84:	e8 31 cb ff ff       	call   0x4028ba
405d89:	83 c4 18             	add    $0x18,%esp
405d8c:	8d 45 b4             	lea    -0x4c(%ebp),%eax
405d8f:	6a 20                	push   $0x20
405d91:	50                   	push   %eax
405d92:	68 65 04 00 00       	push   $0x465
405d97:	53                   	push   %ebx
405d98:	ff 15 20 f1 40 00    	call   *0x40f120
405d9e:	85 c0                	test   %eax,%eax
405da0:	75 04                	jne    0x405da6
405da2:	66 89 45 b4          	mov    %ax,-0x4c(%ebp)
405da6:	ff 75 a0             	push   -0x60(%ebp)
405da9:	8d 45 b4             	lea    -0x4c(%ebp),%eax
405dac:	ff 75 9c             	push   -0x64(%ebp)
405daf:	ff 75 98             	push   -0x68(%ebp)
405db2:	ff 75 94             	push   -0x6c(%ebp)
405db5:	50                   	push   %eax
405db6:	68 b4 19 40 00       	push   $0x4019b4
405dbb:	e8 fa ca ff ff       	call   0x4028ba
405dc0:	83 c4 18             	add    $0x18,%esp
405dc3:	85 f6                	test   %esi,%esi
405dc5:	74 07                	je     0x405dce
405dc7:	56                   	push   %esi
405dc8:	ff 15 b0 f0 40 00    	call   *0x40f0b0
405dce:	8b c7                	mov    %edi,%eax
405dd0:	eb 1a                	jmp    0x405dec
405dd2:	68 60 04 00 00       	push   $0x460
405dd7:	e8 b3 cb ff ff       	call   0x40298f
405ddc:	c7 04 24 c4 13 40 00 	movl   $0x4013c4,(%esp)
405de3:	e8 d2 ca ff ff       	call   0x4028ba
405de8:	59                   	pop    %ecx
405de9:	6a 57                	push   $0x57
405deb:	58                   	pop    %eax
405dec:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405def:	5f                   	pop    %edi
405df0:	5e                   	pop    %esi
405df1:	33 cd                	xor    %ebp,%ecx
405df3:	5b                   	pop    %ebx
405df4:	e8 d7 2c 00 00       	call   0x408ad0
405df9:	c9                   	leave
405dfa:	c2 04 00             	ret    $0x4
405dfd:	8b ff                	mov    %edi,%edi
405dff:	55                   	push   %ebp
405e00:	8b ec                	mov    %esp,%ebp
405e02:	81 ec 10 04 00 00    	sub    $0x410,%esp
405e08:	a1 04 a0 40 00       	mov    0x40a004,%eax
405e0d:	33 c5                	xor    %ebp,%eax
405e0f:	89 45 fc             	mov    %eax,-0x4(%ebp)
405e12:	53                   	push   %ebx
405e13:	56                   	push   %esi
405e14:	8b f2                	mov    %edx,%esi
405e16:	57                   	push   %edi
405e17:	83 f9 07             	cmp    $0x7,%ecx
405e1a:	74 0f                	je     0x405e2b
405e1c:	6a 0d                	push   $0xd
405e1e:	59                   	pop    %ecx
405e1f:	e8 3b cc ff ff       	call   0x402a5f
405e24:	33 c0                	xor    %eax,%eax
405e26:	e9 9e 00 00 00       	jmp    0x405ec9
405e2b:	8b 5e 08             	mov    0x8(%esi),%ebx
405e2e:	33 ff                	xor    %edi,%edi
405e30:	6a 2a                	push   $0x2a
405e32:	58                   	pop    %eax
405e33:	66 39 03             	cmp    %ax,(%ebx)
405e36:	75 02                	jne    0x405e3a
405e38:	8b df                	mov    %edi,%ebx
405e3a:	8b 4e 10             	mov    0x10(%esi),%ecx
405e3d:	66 39 01             	cmp    %ax,(%ecx)
405e40:	75 09                	jne    0x405e4b
405e42:	83 8d f4 fb ff ff ff 	orl    $0xffffffff,-0x40c(%ebp)
405e49:	eb 0e                	jmp    0x405e59
405e4b:	e8 26 de ff ff       	call   0x403c76
405e50:	6a 2a                	push   $0x2a
405e52:	89 85 f4 fb ff ff    	mov    %eax,-0x40c(%ebp)
405e58:	58                   	pop    %eax
405e59:	8b 56 14             	mov    0x14(%esi),%edx
405e5c:	66 39 02             	cmp    %ax,(%edx)
405e5f:	74 57                	je     0x405eb8
405e61:	8b ca                	mov    %edx,%ecx
405e63:	8d 41 02             	lea    0x2(%ecx),%eax
405e66:	89 85 f0 fb ff ff    	mov    %eax,-0x410(%ebp)
405e6c:	66 8b 01             	mov    (%ecx),%ax
405e6f:	83 c1 02             	add    $0x2,%ecx
405e72:	66 3b c7             	cmp    %di,%ax
405e75:	75 f5                	jne    0x405e6c
405e77:	2b 8d f0 fb ff ff    	sub    -0x410(%ebp),%ecx
405e7d:	d1 f9                	sar    $1,%ecx
405e7f:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
405e85:	76 05                	jbe    0x405e8c
405e87:	6a 57                	push   $0x57
405e89:	58                   	pop    %eax
405e8a:	eb 3d                	jmp    0x405ec9
405e8c:	52                   	push   %edx
405e8d:	ba 00 01 00 00       	mov    $0x100,%edx
405e92:	8d 8d f8 fd ff ff    	lea    -0x208(%ebp),%ecx
405e98:	e8 c3 c8 ff ff       	call   0x402760
405e9d:	8b 4e 18             	mov    0x18(%esi),%ecx
405ea0:	e8 d1 dd ff ff       	call   0x403c76
405ea5:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
405ea9:	8d bd f8 fb ff ff    	lea    -0x408(%ebp),%edi
405eaf:	33 c0                	xor    %eax,%eax
405eb1:	66 89 85 f8 fb ff ff 	mov    %ax,-0x408(%ebp)
405eb8:	57                   	push   %edi
405eb9:	ff 76 0c             	push   0xc(%esi)
405ebc:	ff b5 f4 fb ff ff    	push   -0x40c(%ebp)
405ec2:	53                   	push   %ebx
405ec3:	ff 15 48 f0 40 00    	call   *0x40f048
405ec9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405ecc:	5f                   	pop    %edi
405ecd:	5e                   	pop    %esi
405ece:	33 cd                	xor    %ebp,%ecx
405ed0:	5b                   	pop    %ebx
405ed1:	e8 fa 2b 00 00       	call   0x408ad0
405ed6:	c9                   	leave
405ed7:	c3                   	ret
405ed8:	8b ff                	mov    %edi,%edi
405eda:	55                   	push   %ebp
405edb:	8b ec                	mov    %esp,%ebp
405edd:	81 ec a4 01 00 00    	sub    $0x1a4,%esp
405ee3:	a1 04 a0 40 00       	mov    0x40a004,%eax
405ee8:	33 c5                	xor    %ebp,%eax
405eea:	89 45 fc             	mov    %eax,-0x4(%ebp)
405eed:	53                   	push   %ebx
405eee:	56                   	push   %esi
405eef:	57                   	push   %edi
405ef0:	6a 40                	push   $0x40
405ef2:	5e                   	pop    %esi
405ef3:	56                   	push   %esi
405ef4:	33 db                	xor    %ebx,%ebx
405ef6:	8d 85 78 fe ff ff    	lea    -0x188(%ebp),%eax
405efc:	53                   	push   %ebx
405efd:	50                   	push   %eax
405efe:	e8 e1 31 00 00       	call   0x4090e4
405f03:	83 c4 0c             	add    $0xc,%esp
405f06:	8d 85 b8 fe ff ff    	lea    -0x148(%ebp),%eax
405f0c:	56                   	push   %esi
405f0d:	53                   	push   %ebx
405f0e:	50                   	push   %eax
405f0f:	e8 d0 31 00 00       	call   0x4090e4
405f14:	83 c4 0c             	add    $0xc,%esp
405f17:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
405f1d:	56                   	push   %esi
405f1e:	53                   	push   %ebx
405f1f:	50                   	push   %eax
405f20:	e8 bf 31 00 00       	call   0x4090e4
405f25:	83 c4 0c             	add    $0xc,%esp
405f28:	8d 45 b8             	lea    -0x48(%ebp),%eax
405f2b:	56                   	push   %esi
405f2c:	53                   	push   %ebx
405f2d:	50                   	push   %eax
405f2e:	e8 b1 31 00 00       	call   0x4090e4
405f33:	83 c4 0c             	add    $0xc,%esp
405f36:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
405f3c:	56                   	push   %esi
405f3d:	53                   	push   %ebx
405f3e:	50                   	push   %eax
405f3f:	e8 a0 31 00 00       	call   0x4090e4
405f44:	83 c4 0c             	add    $0xc,%esp
405f47:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
405f4d:	56                   	push   %esi
405f4e:	53                   	push   %ebx
405f4f:	50                   	push   %eax
405f50:	e8 8f 31 00 00       	call   0x4090e4
405f55:	83 c4 0c             	add    $0xc,%esp
405f58:	89 9d 74 fe ff ff    	mov    %ebx,-0x18c(%ebp)
405f5e:	8d 85 70 fe ff ff    	lea    -0x190(%ebp),%eax
405f64:	89 9d 70 fe ff ff    	mov    %ebx,-0x190(%ebp)
405f6a:	50                   	push   %eax
405f6b:	53                   	push   %ebx
405f6c:	8d 85 74 fe ff ff    	lea    -0x18c(%ebp),%eax
405f72:	50                   	push   %eax
405f73:	ff 15 20 f0 40 00    	call   *0x40f020
405f79:	8b d8                	mov    %eax,%ebx
405f7b:	83 fb 7a             	cmp    $0x7a,%ebx
405f7e:	0f 85 8a 02 00 00    	jne    0x40620e
405f84:	ff b5 74 fe ff ff    	push   -0x18c(%ebp)
405f8a:	68 66 04 00 00       	push   $0x466
405f8f:	e8 fb c9 ff ff       	call   0x40298f
405f94:	68 c4 13 40 00       	push   $0x4013c4
405f99:	e8 1c c9 ff ff       	call   0x4028ba
405f9e:	83 c4 0c             	add    $0xc,%esp
405fa1:	ff b5 70 fe ff ff    	push   -0x190(%ebp)
405fa7:	ff 15 a4 f0 40 00    	call   *0x40f0a4
405fad:	8b f8                	mov    %eax,%edi
405faf:	89 bd 60 fe ff ff    	mov    %edi,-0x1a0(%ebp)
405fb5:	85 ff                	test   %edi,%edi
405fb7:	0f 84 51 02 00 00    	je     0x40620e
405fbd:	8d 85 70 fe ff ff    	lea    -0x190(%ebp),%eax
405fc3:	50                   	push   %eax
405fc4:	57                   	push   %edi
405fc5:	8d 85 74 fe ff ff    	lea    -0x18c(%ebp),%eax
405fcb:	50                   	push   %eax
405fcc:	ff 15 20 f0 40 00    	call   *0x40f020
405fd2:	8b d8                	mov    %eax,%ebx
405fd4:	85 db                	test   %ebx,%ebx
405fd6:	0f 85 2b 02 00 00    	jne    0x406207
405fdc:	21 85 64 fe ff ff    	and    %eax,-0x19c(%ebp)
405fe2:	39 85 74 fe ff ff    	cmp    %eax,-0x18c(%ebp)
405fe8:	0f 86 19 02 00 00    	jbe    0x406207
405fee:	8d b7 c8 05 00 00    	lea    0x5c8(%edi),%esi
405ff4:	33 ff                	xor    %edi,%edi
405ff6:	80 be f8 fb ff ff 00 	cmpb   $0x0,-0x408(%esi)
405ffd:	6a 20                	push   $0x20
405fff:	74 1d                	je     0x40601e
406001:	8d 45 b8             	lea    -0x48(%ebp),%eax
406004:	50                   	push   %eax
406005:	68 69 04 00 00       	push   $0x469
40600a:	57                   	push   %edi
40600b:	ff 15 20 f1 40 00    	call   *0x40f120
406011:	85 c0                	test   %eax,%eax
406013:	75 04                	jne    0x406019
406015:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
406019:	8d 45 b8             	lea    -0x48(%ebp),%eax
40601c:	eb 24                	jmp    0x406042
40601e:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
406024:	50                   	push   %eax
406025:	68 6a 04 00 00       	push   $0x46a