409ac3:	c9                   	leave
409ac4:	c3                   	ret
409ac5:	8b ff                	mov    %edi,%edi
409ac7:	55                   	push   %ebp
409ac8:	8b ec                	mov    %esp,%ebp
409aca:	83 e4 f8             	and    $0xfffffff8,%esp
409acd:	51                   	push   %ecx
409ace:	56                   	push   %esi
409acf:	68 48 56 41 00       	push   $0x415648
409ad4:	33 f6                	xor    %esi,%esi
409ad6:	56                   	push   %esi
409ad7:	56                   	push   %esi
409ad8:	68 38 2c 40 00       	push   $0x402c38
409add:	ff 15 a0 60 41 00    	call   *0x4160a0
409ae3:	68 58 2c 40 00       	push   $0x402c58
409ae8:	e8 ba 74 00 00       	call   0x410fa7
409aed:	56                   	push   %esi
409aee:	56                   	push   %esi
409aef:	6a 01                	push   $0x1
409af1:	56                   	push   %esi
409af2:	ff 15 04 61 41 00    	call   *0x416104
409af8:	e8 55 ff ff ff       	call   0x409a52
409afd:	8b 45 10             	mov    0x10(%ebp),%eax
409b00:	85 c0                	test   %eax,%eax
409b02:	74 30                	je     0x409b34
409b04:	0f b7 08             	movzwl (%eax),%ecx
409b07:	83 f9 2d             	cmp    $0x2d,%ecx
409b0a:	74 05                	je     0x409b11
409b0c:	83 f9 2f             	cmp    $0x2f,%ecx
409b0f:	75 23                	jne    0x409b34
409b11:	6a ff                	push   $0xffffffff
409b13:	68 38 2f 40 00       	push   $0x402f38
409b18:	6a ff                	push   $0xffffffff
409b1a:	83 c0 02             	add    $0x2,%eax
409b1d:	50                   	push   %eax
409b1e:	6a 01                	push   $0x1
409b20:	6a 7f                	push   $0x7f
409b22:	ff 15 08 61 41 00    	call   *0x416108
409b28:	83 f8 02             	cmp    $0x2,%eax
409b2b:	75 07                	jne    0x409b34
409b2d:	e8 2e 1f 00 00       	call   0x40ba60
409b32:	eb 35                	jmp    0x409b69
409b34:	80 3d 50 56 41 00 00 	cmpb   $0x0,0x415650
409b3b:	74 05                	je     0x409b42
409b3d:	83 ce ff             	or     $0xffffffff,%esi
409b40:	eb 27                	jmp    0x409b69
409b42:	89 74 24 04          	mov    %esi,0x4(%esp)
409b46:	ff 15 0c 61 41 00    	call   *0x41610c
409b4c:	8d 4c 24 04          	lea    0x4(%esp),%ecx
409b50:	51                   	push   %ecx
409b51:	50                   	push   %eax
409b52:	e8 08 02 00 00       	call   0x409d5f
409b57:	3c 01                	cmp    $0x1,%al
409b59:	75 0a                	jne    0x409b65
409b5b:	51                   	push   %ecx
409b5c:	e8 88 01 00 00       	call   0x409ce9
409b61:	8b f0                	mov    %eax,%esi
409b63:	eb 04                	jmp    0x409b69
409b65:	8b 74 24 04          	mov    0x4(%esp),%esi
409b69:	68 58 2b 40 00       	push   $0x402b58
409b6e:	e8 34 74 00 00       	call   0x410fa7
409b73:	8b c6                	mov    %esi,%eax
409b75:	5e                   	pop    %esi
409b76:	8b e5                	mov    %ebp,%esp
409b78:	5d                   	pop    %ebp
409b79:	c2 10 00             	ret    $0x10
409b7c:	cc                   	int3
409b7d:	cc                   	int3
409b7e:	cc                   	int3
409b7f:	cc                   	int3
409b80:	8b ff                	mov    %edi,%edi
409b82:	55                   	push   %ebp
409b83:	8b ec                	mov    %esp,%ebp
409b85:	8b 45 08             	mov    0x8(%ebp),%eax
409b88:	56                   	push   %esi
409b89:	68 e8 2e 40 00       	push   $0x402ee8
409b8e:	68 38 30 40 00       	push   $0x403038
409b93:	8b 08                	mov    (%eax),%ecx
409b95:	50                   	push   %eax
409b96:	8b 71 0c             	mov    0xc(%ecx),%esi
409b99:	8b ce                	mov    %esi,%ecx
409b9b:	ff 15 28 63 41 00    	call   *0x416328
409ba1:	ff d6                	call   *%esi
409ba3:	5e                   	pop    %esi
409ba4:	5d                   	pop    %ebp
409ba5:	c2 04 00             	ret    $0x4
409ba8:	cc                   	int3
409ba9:	cc                   	int3
409baa:	cc                   	int3
409bab:	cc                   	int3
409bac:	cc                   	int3
409bad:	cc                   	int3
409bae:	cc                   	int3
409baf:	cc                   	int3
409bb0:	8b ff                	mov    %edi,%edi
409bb2:	56                   	push   %esi
409bb3:	83 ce ff             	or     $0xffffffff,%esi
409bb6:	f0 0f c1 71 08       	lock xadd %esi,0x8(%ecx)
409bbb:	4e                   	dec    %esi
409bbc:	75 24                	jne    0x409be2
409bbe:	80 79 3c 00          	cmpb   $0x0,0x3c(%ecx)
409bc2:	74 0f                	je     0x409bd3
409bc4:	ff 71 30             	push   0x30(%ecx)
409bc7:	c6 41 3d 01          	movb   $0x1,0x3d(%ecx)
409bcb:	ff 15 10 61 41 00    	call   *0x416110
409bd1:	eb 0f                	jmp    0x409be2
409bd3:	6a 00                	push   $0x0
409bd5:	6a 00                	push   $0x0
409bd7:	6a 12                	push   $0x12
409bd9:	ff 71 2c             	push   0x2c(%ecx)
409bdc:	ff 15 dc 61 41 00    	call   *0x4161dc
409be2:	8b c6                	mov    %esi,%eax
409be4:	5e                   	pop    %esi
409be5:	c3                   	ret
409be6:	8b ff                	mov    %edi,%edi
409be8:	56                   	push   %esi
409be9:	6a 00                	push   $0x0
409beb:	8b f1                	mov    %ecx,%esi
409bed:	e8 58 0e 00 00       	call   0x40aa4a
409bf2:	8b ce                	mov    %esi,%ecx
409bf4:	e8 09 0e 00 00       	call   0x40aa02
409bf9:	e8 61 0d 00 00       	call   0x40a95f
409bfe:	80 7e 3e 00          	cmpb   $0x0,0x3e(%esi)
409c02:	74 06                	je     0x409c0a
409c04:	ff 15 2c 62 41 00    	call   *0x41622c
409c0a:	8b ce                	mov    %esi,%ecx
409c0c:	5e                   	pop    %esi
409c0d:	e9 f0 0d 00 00       	jmp    0x40aa02
409c12:	8b ff                	mov    %edi,%edi
409c14:	53                   	push   %ebx
409c15:	56                   	push   %esi
409c16:	57                   	push   %edi
409c17:	ba d8 55 41 00       	mov    $0x4155d8,%edx
409c1c:	c7 05 a4 55 41 00 c8 	movl   $0x4155c8,0x4155a4
409c23:	55 41 00
409c26:	6a 06                	push   $0x6
409c28:	59                   	pop    %ecx
409c29:	33 c0                	xor    %eax,%eax
409c2b:	8b fa                	mov    %edx,%edi
409c2d:	f3 ab                	rep stos %eax,%es:(%edi)
409c2f:	33 db                	xor    %ebx,%ebx
409c31:	8b ca                	mov    %edx,%ecx
409c33:	89 1d cc 55 41 00    	mov    %ebx,0x4155cc
409c39:	89 1d d4 55 41 00    	mov    %ebx,0x4155d4
409c3f:	89 1d d0 55 41 00    	mov    %ebx,0x4155d0
409c45:	89 1d f0 55 41 00    	mov    %ebx,0x4155f0
409c4b:	e8 ef af ff ff       	call   0x404c3f
409c50:	85 c0                	test   %eax,%eax
409c52:	79 09                	jns    0x409c5d
409c54:	c6 05 50 56 41 00 01 	movb   $0x1,0x415650
409c5b:	eb 0a                	jmp    0x409c67
409c5d:	c7 05 cc 55 41 00 24 	movl   $0x24,0x4155cc
409c64:	00 00 00
409c67:	be 88 2c 40 00       	mov    $0x402c88,%esi
409c6c:	bf a8 55 41 00       	mov    $0x4155a8,%edi
409c71:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409c72:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409c73:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409c74:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409c75:	ff 15 14 61 41 00    	call   *0x416114
409c7b:	53                   	push   %ebx
409c7c:	53                   	push   %ebx
409c7d:	a3 f4 55 41 00       	mov    %eax,0x4155f4
409c82:	89 1d f8 55 41 00    	mov    %ebx,0x4155f8
409c88:	c7 05 fc 55 41 00 88 	movl   $0x1388,0x4155fc
409c8f:	13 00 00
409c92:	c7 05 00 56 41 00 e8 	movl   $0x3e8,0x415600
409c99:	03 00 00
409c9c:	c6 05 04 56 41 00 01 	movb   $0x1,0x415604
409ca3:	88 1d 06 56 41 00    	mov    %bl,0x415606
409ca9:	ff 15 28 62 41 00    	call   *0x416228
409caf:	5f                   	pop    %edi
409cb0:	5e                   	pop    %esi
409cb1:	5b                   	pop    %ebx
409cb2:	85 c0                	test   %eax,%eax
409cb4:	79 1f                	jns    0x409cd5
409cb6:	3d 06 01 01 80       	cmp    $0x80010106,%eax
409cbb:	75 0f                	jne    0x409ccc
409cbd:	68 54 2f 40 00       	push   $0x402f54
409cc2:	ff 15 cc 60 41 00    	call   *0x4160cc
409cc8:	85 c0                	test   %eax,%eax
409cca:	75 10                	jne    0x409cdc
409ccc:	c6 05 50 56 41 00 01 	movb   $0x1,0x415650
409cd3:	eb 0e                	jmp    0x409ce3
409cd5:	c6 05 06 56 41 00 01 	movb   $0x1,0x415606
409cdc:	6a 01                	push   $0x1
409cde:	e8 67 0d 00 00       	call   0x40aa4a
409ce3:	b8 c8 55 41 00       	mov    $0x4155c8,%eax
409ce8:	c3                   	ret
409ce9:	8b ff                	mov    %edi,%edi
409ceb:	55                   	push   %ebp
409cec:	8b ec                	mov    %esp,%ebp
409cee:	83 ec 1c             	sub    $0x1c,%esp
409cf1:	56                   	push   %esi
409cf2:	57                   	push   %edi
409cf3:	51                   	push   %ecx
409cf4:	e8 ac 01 00 00       	call   0x409ea5
409cf9:	8b f0                	mov    %eax,%esi
409cfb:	85 f6                	test   %esi,%esi
409cfd:	75 3a                	jne    0x409d39
409cff:	33 ff                	xor    %edi,%edi
409d01:	8d 45 e4             	lea    -0x1c(%ebp),%eax
409d04:	57                   	push   %edi
409d05:	57                   	push   %edi
409d06:	57                   	push   %edi
409d07:	50                   	push   %eax
409d08:	ff 15 f4 61 41 00    	call   *0x4161f4
409d0e:	85 c0                	test   %eax,%eax
409d10:	7e 29                	jle    0x409d3b
409d12:	8d 45 e4             	lea    -0x1c(%ebp),%eax
409d15:	50                   	push   %eax
409d16:	ff 15 e4 61 41 00    	call   *0x4161e4
409d1c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
409d1f:	50                   	push   %eax
409d20:	ff 15 ec 61 41 00    	call   *0x4161ec
409d26:	57                   	push   %edi
409d27:	57                   	push   %edi
409d28:	57                   	push   %edi
409d29:	8d 45 e4             	lea    -0x1c(%ebp),%eax
409d2c:	50                   	push   %eax
409d2d:	ff 15 f4 61 41 00    	call   *0x4161f4
409d33:	85 c0                	test   %eax,%eax
409d35:	7f db                	jg     0x409d12
409d37:	85 f6                	test   %esi,%esi
409d39:	78 1c                	js     0x409d57
409d3b:	e8 e8 01 00 00       	call   0x409f28
409d40:	80 3d 04 56 41 00 00 	cmpb   $0x0,0x415604
409d47:	8b f0                	mov    %eax,%esi
409d49:	74 0c                	je     0x409d57
409d4b:	ff 35 00 56 41 00    	push   0x415600
409d51:	ff 15 18 61 41 00    	call   *0x416118
409d57:	5f                   	pop    %edi
409d58:	8b c6                	mov    %esi,%eax
409d5a:	5e                   	pop    %esi
409d5b:	c9                   	leave
409d5c:	c2 04 00             	ret    $0x4
409d5f:	8b ff                	mov    %edi,%edi
409d61:	55                   	push   %ebp
409d62:	8b ec                	mov    %esp,%ebp
409d64:	83 ec 10             	sub    $0x10,%esp
409d67:	a1 f4 51 41 00       	mov    0x4151f4,%eax
409d6c:	33 c5                	xor    %ebp,%eax
409d6e:	89 45 fc             	mov    %eax,-0x4(%ebp)
409d71:	8b 4d 08             	mov    0x8(%ebp),%ecx
409d74:	56                   	push   %esi
409d75:	8b 75 0c             	mov    0xc(%ebp),%esi
409d78:	57                   	push   %edi
409d79:	83 26 00             	andl   $0x0,(%esi)
409d7c:	a1 6c 2f 40 00       	mov    0x402f6c,%eax
409d81:	89 45 f4             	mov    %eax,-0xc(%ebp)
409d84:	66 a1 70 2f 40 00    	mov    0x402f70,%ax
409d8a:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
409d8e:	eb 22                	jmp    0x409db2
409d90:	ba 74 2f 40 00       	mov    $0x402f74,%edx
409d95:	8b cf                	mov    %edi,%ecx
409d97:	e8 d7 0a 00 00       	call   0x40a873
409d9c:	85 c0                	test   %eax,%eax
409d9e:	74 49                	je     0x409de9
409da0:	ba 8c 2f 40 00       	mov    $0x402f8c,%edx
409da5:	8b cf                	mov    %edi,%ecx
409da7:	e8 c7 0a 00 00       	call   0x40a873
409dac:	85 c0                	test   %eax,%eax
409dae:	74 22                	je     0x409dd2
409db0:	8b cf                	mov    %edi,%ecx
409db2:	8d 55 f4             	lea    -0xc(%ebp),%edx
409db5:	e8 5c 0b 00 00       	call   0x40a916
409dba:	8b f8                	mov    %eax,%edi
409dbc:	85 ff                	test   %edi,%edi
409dbe:	75 d0                	jne    0x409d90
409dc0:	b0 01                	mov    $0x1,%al
409dc2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409dc5:	5f                   	pop    %edi
409dc6:	33 cd                	xor    %ebp,%ecx
409dc8:	5e                   	pop    %esi
409dc9:	e8 22 82 00 00       	call   0x411ff0
409dce:	c9                   	leave
409dcf:	c2 08 00             	ret    $0x8
409dd2:	33 c9                	xor    %ecx,%ecx
409dd4:	41                   	inc    %ecx
409dd5:	e8 1b fc ff ff       	call   0x4099f5
409dda:	89 06                	mov    %eax,(%esi)
409ddc:	85 c0                	test   %eax,%eax
409dde:	78 37                	js     0x409e17
409de0:	51                   	push   %ecx
409de1:	51                   	push   %ecx
409de2:	e8 34 00 00 00       	call   0x409e1b
409de7:	eb 2c                	jmp    0x409e15
409de9:	8b 3d bc 55 41 00    	mov    0x4155bc,%edi
409def:	85 ff                	test   %edi,%edi
409df1:	74 0e                	je     0x409e01
409df3:	8b cf                	mov    %edi,%ecx
409df5:	ff 15 28 63 41 00    	call   *0x416328
409dfb:	ff d7                	call   *%edi
409dfd:	85 c0                	test   %eax,%eax
409dff:	78 07                	js     0x409e08
409e01:	51                   	push   %ecx
409e02:	51                   	push   %ecx
409e03:	e8 ff 09 00 00       	call   0x40a807
409e08:	89 06                	mov    %eax,(%esi)
409e0a:	85 c0                	test   %eax,%eax
409e0c:	78 09                	js     0x409e17
409e0e:	33 c9                	xor    %ecx,%ecx
409e10:	e8 e0 fb ff ff       	call   0x4099f5
409e15:	89 06                	mov    %eax,(%esi)
409e17:	32 c0                	xor    %al,%al
409e19:	eb a7                	jmp    0x409dc2
409e1b:	8b 0d 20 51 41 00    	mov    0x415120,%ecx
409e21:	33 c0                	xor    %eax,%eax
409e23:	53                   	push   %ebx
409e24:	56                   	push   %esi
409e25:	57                   	push   %edi
409e26:	8b 3d 1c 51 41 00    	mov    0x41511c,%edi
409e2c:	3b f9                	cmp    %ecx,%edi
409e2e:	73 46                	jae    0x409e76
409e30:	8b 1f                	mov    (%edi),%ebx
409e32:	85 db                	test   %ebx,%ebx
409e34:	74 35                	je     0x409e6b
409e36:	8b 73 04             	mov    0x4(%ebx),%esi
409e39:	8b ce                	mov    %esi,%ecx
409e3b:	6a 01                	push   $0x1
409e3d:	ff 15 28 63 41 00    	call   *0x416328
409e43:	ff d6                	call   *%esi
409e45:	85 c0                	test   %eax,%eax
409e47:	78 56                	js     0x409e9f
409e49:	8b 73 1c             	mov    0x1c(%ebx),%esi
409e4c:	8b ce                	mov    %esi,%ecx
409e4e:	6a 01                	push   $0x1
409e50:	ff 15 28 63 41 00    	call   *0x416328
409e56:	ff d6                	call   *%esi
409e58:	8b 0b                	mov    (%ebx),%ecx
409e5a:	8b d0                	mov    %eax,%edx
409e5c:	e8 21 04 00 00       	call   0x40a282
409e61:	85 c0                	test   %eax,%eax
409e63:	78 3a                	js     0x409e9f
409e65:	8b 0d 20 51 41 00    	mov    0x415120,%ecx
409e6b:	83 c7 04             	add    $0x4,%edi
409e6e:	3b f9                	cmp    %ecx,%edi
409e70:	72 be                	jb     0x409e30
409e72:	85 c0                	test   %eax,%eax
409e74:	78 29                	js     0x409e9f
409e76:	8b 0d 18 51 41 00    	mov    0x415118,%ecx
409e7c:	e8 92 02 00 00       	call   0x40a113
409e81:	85 c0                	test   %eax,%eax
409e83:	78 1a                	js     0x409e9f
409e85:	8b 35 b8 55 41 00    	mov    0x4155b8,%esi
409e8b:	85 f6                	test   %esi,%esi
409e8d:	74 10                	je     0x409e9f
409e8f:	ff 35 0c 56 41 00    	push   0x41560c
409e95:	8b ce                	mov    %esi,%ecx
409e97:	ff 15 28 63 41 00    	call   *0x416328