4059dd:	8b cb                	mov    %ebx,%ecx
4059df:	e8 4f fb ff ff       	call   0x405533
4059e4:	c7 03 8c 15 40 00    	movl   $0x40158c,(%ebx)
4059ea:	eb 02                	jmp    0x4059ee
4059ec:	8b de                	mov    %esi,%ebx
4059ee:	8b c3                	mov    %ebx,%eax
4059f0:	e9 88 00 00 00       	jmp    0x405a7d
4059f5:	6a 58                	push   $0x58
4059f7:	e8 cc 84 00 00       	call   0x40dec8
4059fc:	8b f8                	mov    %eax,%edi
4059fe:	89 7d f0             	mov    %edi,-0x10(%ebp)
405a01:	59                   	pop    %ecx
405a02:	85 ff                	test   %edi,%edi
405a04:	74 73                	je     0x405a79
405a06:	6a 58                	push   $0x58
405a08:	56                   	push   %esi
405a09:	57                   	push   %edi
405a0a:	e8 40 92 00 00       	call   0x40ec4f
405a0f:	83 c4 0c             	add    $0xc,%esp
405a12:	8b cf                	mov    %edi,%ecx
405a14:	e8 96 fb ff ff       	call   0x4055af
405a19:	c7 07 9c 15 40 00    	movl   $0x40159c,(%edi)
405a1f:	eb 5a                	jmp    0x405a7b
405a21:	6a 58                	push   $0x58
405a23:	e8 a0 84 00 00       	call   0x40dec8
405a28:	89 45 f0             	mov    %eax,-0x10(%ebp)
405a2b:	59                   	pop    %ecx
405a2c:	85 c0                	test   %eax,%eax
405a2e:	74 09                	je     0x405a39
405a30:	8b c8                	mov    %eax,%ecx
405a32:	e8 78 fb ff ff       	call   0x4055af
405a37:	8b f0                	mov    %eax,%esi
405a39:	8b c6                	mov    %esi,%eax
405a3b:	eb 40                	jmp    0x405a7d
405a3d:	6a 34                	push   $0x34
405a3f:	e8 84 84 00 00       	call   0x40dec8
405a44:	8b f8                	mov    %eax,%edi
405a46:	89 7d f0             	mov    %edi,-0x10(%ebp)
405a49:	59                   	pop    %ecx
405a4a:	85 ff                	test   %edi,%edi
405a4c:	74 2b                	je     0x405a79
405a4e:	6a 34                	push   $0x34
405a50:	56                   	push   %esi
405a51:	57                   	push   %edi
405a52:	e8 f8 91 00 00       	call   0x40ec4f
405a57:	83 c4 0c             	add    $0xc,%esp
405a5a:	8b cf                	mov    %edi,%ecx
405a5c:	e8 d2 fa ff ff       	call   0x405533
405a61:	c7 07 ac 15 40 00    	movl   $0x4015ac,(%edi)
405a67:	c7 47 2c 07 00 00 00 	movl   $0x7,0x2c(%edi)
405a6e:	33 c0                	xor    %eax,%eax
405a70:	89 77 28             	mov    %esi,0x28(%edi)
405a73:	66 89 47 18          	mov    %ax,0x18(%edi)
405a77:	eb 02                	jmp    0x405a7b
405a79:	8b fe                	mov    %esi,%edi
405a7b:	8b c7                	mov    %edi,%eax
405a7d:	e8 9a 8b 00 00       	call   0x40e61c
405a82:	c3                   	ret
405a83:	57                   	push   %edi
405a84:	6a 16                	push   $0x16
405a86:	6a 57                	push   $0x57
405a88:	e8 88 1b 00 00       	call   0x407615
405a8d:	cc                   	int3
405a8e:	cc                   	int3
405a8f:	cc                   	int3
405a90:	8b ff                	mov    %edi,%edi
405a92:	55                   	push   %ebp
405a93:	8b ec                	mov    %esp,%ebp
405a95:	56                   	push   %esi
405a96:	8b f1                	mov    %ecx,%esi
405a98:	6a 00                	push   $0x0
405a9a:	6a 01                	push   $0x1
405a9c:	8d 4e 18             	lea    0x18(%esi),%ecx
405a9f:	e8 4c 0a 00 00       	call   0x4064f0
405aa4:	8b ce                	mov    %esi,%ecx
405aa6:	e8 e7 fa ff ff       	call   0x405592
405aab:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
405aaf:	74 08                	je     0x405ab9
405ab1:	56                   	push   %esi
405ab2:	ff 15 e4 21 41 00    	call   *0x4121e4
405ab8:	59                   	pop    %ecx
405ab9:	8b c6                	mov    %esi,%eax
405abb:	5e                   	pop    %esi
405abc:	5d                   	pop    %ebp
405abd:	c2 04 00             	ret    $0x4
405ac0:	8b ff                	mov    %edi,%edi
405ac2:	55                   	push   %ebp
405ac3:	8b ec                	mov    %esp,%ebp
405ac5:	56                   	push   %esi
405ac6:	8b f1                	mov    %ecx,%esi
405ac8:	6a 00                	push   $0x0
405aca:	6a 01                	push   $0x1
405acc:	8d 4e 30             	lea    0x30(%esi),%ecx
405acf:	e8 1c 0a 00 00       	call   0x4064f0
405ad4:	6a 00                	push   $0x0
405ad6:	6a 01                	push   $0x1
405ad8:	8d 4e 18             	lea    0x18(%esi),%ecx
405adb:	e8 10 0a 00 00       	call   0x4064f0
405ae0:	8b ce                	mov    %esi,%ecx
405ae2:	e8 ab fa ff ff       	call   0x405592
405ae7:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
405aeb:	74 08                	je     0x405af5
405aed:	56                   	push   %esi
405aee:	ff 15 e4 21 41 00    	call   *0x4121e4
405af4:	59                   	pop    %ecx
405af5:	8b c6                	mov    %esi,%eax
405af7:	5e                   	pop    %esi
405af8:	5d                   	pop    %ebp
405af9:	c2 04 00             	ret    $0x4
405afc:	6a 14                	push   $0x14
405afe:	b8 d9 ec 40 00       	mov    $0x40ecd9,%eax
405b03:	e8 46 8b 00 00       	call   0x40e64e
405b08:	8b f2                	mov    %edx,%esi
405b0a:	89 75 f0             	mov    %esi,-0x10(%ebp)
405b0d:	89 4d ec             	mov    %ecx,-0x14(%ebp)
405b10:	6a 1c                	push   $0x1c
405b12:	e8 b1 83 00 00       	call   0x40dec8
405b17:	8b d8                	mov    %eax,%ebx
405b19:	59                   	pop    %ecx
405b1a:	89 5d e8             	mov    %ebx,-0x18(%ebp)
405b1d:	33 ff                	xor    %edi,%edi
405b1f:	89 7d fc             	mov    %edi,-0x4(%ebp)
405b22:	85 db                	test   %ebx,%ebx
405b24:	74 33                	je     0x405b59
405b26:	c7 03 e0 15 40 00    	movl   $0x4015e0,(%ebx)
405b2c:	89 7b 04             	mov    %edi,0x4(%ebx)
405b2f:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
405b33:	8d 73 08             	lea    0x8(%ebx),%esi
405b36:	c7 03 dc 15 40 00    	movl   $0x4015dc,(%ebx)
405b3c:	89 75 e4             	mov    %esi,-0x1c(%ebp)
405b3f:	89 3e                	mov    %edi,(%esi)
405b41:	89 7e 04             	mov    %edi,0x4(%esi)
405b44:	e8 76 05 00 00       	call   0x4060bf
405b49:	89 06                	mov    %eax,(%esi)
405b4b:	8b 75 f0             	mov    -0x10(%ebp),%esi
405b4e:	89 7b 10             	mov    %edi,0x10(%ebx)
405b51:	89 7b 14             	mov    %edi,0x14(%ebx)
405b54:	89 7b 18             	mov    %edi,0x18(%ebx)
405b57:	eb 02                	jmp    0x405b5b
405b59:	8b df                	mov    %edi,%ebx
405b5b:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
405b5e:	85 db                	test   %ebx,%ebx
405b60:	74 04                	je     0x405b66
405b62:	f0 ff 43 04          	lock incl 0x4(%ebx)
405b66:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
405b6d:	85 db                	test   %ebx,%ebx
405b6f:	0f 84 9b 00 00 00    	je     0x405c10
405b75:	56                   	push   %esi
405b76:	ff 75 ec             	push   -0x14(%ebp)
405b79:	8b cb                	mov    %ebx,%ecx
405b7b:	e8 8c 0b 00 00       	call   0x40670c
405b80:	8b 43 14             	mov    0x14(%ebx),%eax
405b83:	2b 43 10             	sub    0x10(%ebx),%eax
405b86:	6a 18                	push   $0x18
405b88:	59                   	pop    %ecx
405b89:	99                   	cltd
405b8a:	f7 f9                	idiv   %ecx
405b8c:	8b cb                	mov    %ebx,%ecx
405b8e:	85 c0                	test   %eax,%eax
405b90:	7f 28                	jg     0x405bba
405b92:	e8 35 f9 ff ff       	call   0x4054cc
405b97:	84 c0                	test   %al,%al
405b99:	74 09                	je     0x405ba4
405b9b:	33 c9                	xor    %ecx,%ecx
405b9d:	e8 f2 fa ff ff       	call   0x405694
405ba2:	eb 0b                	jmp    0x405baf
405ba4:	6a 22                	push   $0x22
405ba6:	59                   	pop    %ecx
405ba7:	e8 e8 fa ff ff       	call   0x405694
405bac:	6a 57                	push   $0x57
405bae:	5f                   	pop    %edi
405baf:	8b cb                	mov    %ebx,%ecx
405bb1:	e8 7d 05 00 00       	call   0x406133
405bb6:	8b c7                	mov    %edi,%eax
405bb8:	eb 50                	jmp    0x405c0a
405bba:	e8 5f fb ff ff       	call   0x40571e
405bbf:	8b f0                	mov    %eax,%esi
405bc1:	89 75 e0             	mov    %esi,-0x20(%ebp)
405bc4:	85 f6                	test   %esi,%esi
405bc6:	74 04                	je     0x405bcc
405bc8:	f0 ff 46 04          	lock incl 0x4(%esi)
405bcc:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
405bd0:	85 f6                	test   %esi,%esi
405bd2:	74 3c                	je     0x405c10
405bd4:	8b cb                	mov    %ebx,%ecx
405bd6:	e8 f1 f8 ff ff       	call   0x4054cc
405bdb:	84 c0                	test   %al,%al
405bdd:	74 13                	je     0x405bf2
405bdf:	8b 06                	mov    (%esi),%eax
405be1:	8b 78 0c             	mov    0xc(%eax),%edi
405be4:	8b cf                	mov    %edi,%ecx
405be6:	ff 15 10 22 41 00    	call   *0x412210
405bec:	8b ce                	mov    %esi,%ecx
405bee:	ff d7                	call   *%edi
405bf0:	eb 08                	jmp    0x405bfa
405bf2:	53                   	push   %ebx
405bf3:	8b ce                	mov    %esi,%ecx
405bf5:	e8 dd 09 00 00       	call   0x4065d7
405bfa:	8b ce                	mov    %esi,%ecx
405bfc:	e8 32 05 00 00       	call   0x406133
405c01:	8b cb                	mov    %ebx,%ecx
405c03:	e8 2b 05 00 00       	call   0x406133
405c08:	33 c0                	xor    %eax,%eax
405c0a:	e8 0d 8a 00 00       	call   0x40e61c
405c0f:	c3                   	ret
405c10:	33 d2                	xor    %edx,%edx
405c12:	6a 0e                	push   $0xe
405c14:	42                   	inc    %edx
405c15:	59                   	pop    %ecx
405c16:	e8 c8 19 00 00       	call   0x4075e3
405c1b:	cc                   	int3
405c1c:	6a 20                	push   $0x20
405c1e:	b8 fc ec 40 00       	mov    $0x40ecfc,%eax
405c23:	e8 8f 8a 00 00       	call   0x40e6b7
405c28:	8b f2                	mov    %edx,%esi
405c2a:	8b f9                	mov    %ecx,%edi
405c2c:	89 7d e4             	mov    %edi,-0x1c(%ebp)
405c2f:	6a f4                	push   $0xfffffff4
405c31:	ff 15 cc 20 41 00    	call   *0x4120cc
405c37:	8b d8                	mov    %eax,%ebx
405c39:	33 c0                	xor    %eax,%eax
405c3b:	89 45 e8             	mov    %eax,-0x18(%ebp)
405c3e:	89 45 ec             	mov    %eax,-0x14(%ebp)
405c41:	89 45 fc             	mov    %eax,-0x4(%ebp)
405c44:	85 f6                	test   %esi,%esi
405c46:	74 3b                	je     0x405c83
405c48:	66 39 06             	cmp    %ax,(%esi)
405c4b:	74 36                	je     0x405c83
405c4d:	8b ce                	mov    %esi,%ecx
405c4f:	8d 51 02             	lea    0x2(%ecx),%edx
405c52:	66 8b 01             	mov    (%ecx),%ax
405c55:	83 c1 02             	add    $0x2,%ecx
405c58:	66 3b 45 e8          	cmp    -0x18(%ebp),%ax
405c5c:	75 f4                	jne    0x405c52
405c5e:	2b ca                	sub    %edx,%ecx
405c60:	d1 f9                	sar    $1,%ecx
405c62:	57                   	push   %edi
405c63:	56                   	push   %esi
405c64:	66 83 7c 4e fe 0a    	cmpw   $0xa,-0x2(%esi,%ecx,2)
405c6a:	75 07                	jne    0x405c73
405c6c:	68 40 23 40 00       	push   $0x402340
405c71:	eb 05                	jmp    0x405c78
405c73:	68 60 23 40 00       	push   $0x402360
405c78:	53                   	push   %ebx
405c79:	e8 b3 17 00 00       	call   0x407431
405c7e:	83 c4 10             	add    $0x10,%esp
405c81:	eb 0f                	jmp    0x405c92
405c83:	57                   	push   %edi
405c84:	68 84 23 40 00       	push   $0x402384
405c89:	53                   	push   %ebx
405c8a:	e8 a2 17 00 00       	call   0x407431
405c8f:	83 c4 0c             	add    $0xc,%esp
405c92:	8d 55 ec             	lea    -0x14(%ebp),%edx
405c95:	8b cf                	mov    %edi,%ecx
405c97:	e8 aa 1b 00 00       	call   0x407846
405c9c:	85 c0                	test   %eax,%eax
405c9e:	74 32                	je     0x405cd2
405ca0:	8b 75 ec             	mov    -0x14(%ebp),%esi
405ca3:	33 c0                	xor    %eax,%eax
405ca5:	88 45 d4             	mov    %al,-0x2c(%ebp)
405ca8:	a1 a8 20 41 00       	mov    0x4120a8,%eax
405cad:	89 45 d8             	mov    %eax,-0x28(%ebp)
405cb0:	89 75 dc             	mov    %esi,-0x24(%ebp)
405cb3:	56                   	push   %esi
405cb4:	68 a0 23 40 00       	push   $0x4023a0
405cb9:	53                   	push   %ebx
405cba:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
405cbe:	e8 6e 17 00 00       	call   0x407431
405cc3:	83 c4 0c             	add    $0xc,%esp
405cc6:	33 c0                	xor    %eax,%eax
405cc8:	88 45 fc             	mov    %al,-0x4(%ebp)
405ccb:	56                   	push   %esi
405ccc:	ff 15 a8 20 41 00    	call   *0x4120a8
405cd2:	e8 45 89 00 00       	call   0x40e61c
405cd7:	c3                   	ret
405cd8:	8b 7d e0             	mov    -0x20(%ebp),%edi
405cdb:	ff 75 e4             	push   -0x1c(%ebp)
405cde:	8b 07                	mov    (%edi),%eax
405ce0:	8b 30                	mov    (%eax),%esi
405ce2:	8b ce                	mov    %esi,%ecx
405ce4:	ff 15 10 22 41 00    	call   *0x412210
405cea:	8b cf                	mov    %edi,%ecx
405cec:	ff d6                	call   *%esi
405cee:	50                   	push   %eax
405cef:	68 b0 23 40 00       	push   $0x4023b0
405cf4:	6a 02                	push   $0x2
405cf6:	e8 22 8e 00 00       	call   0x40eb1d
405cfb:	59                   	pop    %ecx
405cfc:	50                   	push   %eax
405cfd:	ff 15 d0 21 41 00    	call   *0x4121d0
405d03:	83 c4 10             	add    $0x10,%esp
405d06:	b8 d2 5c 40 00       	mov    $0x405cd2,%eax
405d0b:	c3                   	ret
405d0c:	68 1c 01 00 00       	push   $0x11c
405d11:	b8 17 ed 40 00       	mov    $0x40ed17,%eax
405d16:	e8 d2 89 00 00       	call   0x40e6ed
405d1b:	8b 5d 0c             	mov    0xc(%ebp),%ebx
405d1e:	33 d2                	xor    %edx,%edx
405d20:	c7 05 f0 16 41 00 01 	movl   $0x1,0x4116f0
405d27:	00 00 00
405d2a:	be d8 16 41 00       	mov    $0x4116d8,%esi
405d2f:	89 15 e8 16 41 00    	mov    %edx,0x4116e8
405d35:	89 15 d8 16 41 00    	mov    %edx,0x4116d8
405d3b:	bf 00 17 41 00       	mov    $0x411700,%edi
405d40:	89 15 f4 16 41 00    	mov    %edx,0x4116f4
405d46:	c7 05 00 17 41 00 3c 	movl   $0x40243c,0x411700
405d4d:	24 40 00
405d50:	89 35 00 10 41 00    	mov    %esi,0x411000
405d56:	8b 0f                	mov    (%edi),%ecx
405d58:	8d 46 08             	lea    0x8(%esi),%eax
405d5b:	50                   	push   %eax
405d5c:	52                   	push   %edx
405d5d:	52                   	push   %edx
405d5e:	8d 85 e4 fe ff ff    	lea    -0x11c(%ebp),%eax
405d64:	89 8d e4 fe ff ff    	mov    %ecx,-0x11c(%ebp)
405d6a:	50                   	push   %eax
405d6b:	6a 01                	push   $0x1
405d6d:	51                   	push   %ecx
405d6e:	56                   	push   %esi
405d6f:	89 95 e8 fe ff ff    	mov    %edx,-0x118(%ebp)
405d75:	8d 7f 04             	lea    0x4(%edi),%edi
405d78:	68 20 56 40 00       	push   $0x405620
405d7d:	89 4e 20             	mov    %ecx,0x20(%esi)
405d80:	ff 15 f8 21 41 00    	call   *0x4121f8
405d86:	8b 36                	mov    (%esi),%esi
405d88:	6a 00                	push   $0x0
405d8a:	5a                   	pop    %edx
405d8b:	85 f6                	test   %esi,%esi
405d8d:	75 c7                	jne    0x405d56
405d8f:	33 f6                	xor    %esi,%esi
405d91:	56                   	push   %esi
405d92:	56                   	push   %esi
405d93:	6a 01                	push   $0x1
405d95:	56                   	push   %esi
405d96:	ff 15 a0 20 41 00    	call   *0x4120a0
405d9c:	ff 15 50 20 41 00    	call   *0x412050
405da2:	50                   	push   %eax
405da3:	68 38 24 40 00       	push   $0x402438
405da8:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
405dae:	68 00 01 00 00       	push   $0x100
405db3:	50                   	push   %eax
405db4:	ff 15 bc 21 41 00    	call   *0x4121bc
405dba:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
405dc0:	50                   	push   %eax
405dc1:	56                   	push   %esi
405dc2:	ff 15 b8 21 41 00    	call   *0x4121b8
405dc8:	83 c4 18             	add    $0x18,%esp
405dcb:	56                   	push   %esi
405dcc:	ff 15 c0 20 41 00    	call   *0x4120c0
405dd2:	8b 4d 08             	mov    0x8(%ebp),%ecx