401c07:	5d                   	pop    %ebp
401c08:	c2 04 00             	ret    $0x4
401c0b:	8b ff                	mov    %edi,%edi
401c0d:	56                   	push   %esi
401c0e:	83 ce ff             	or     $0xffffffff,%esi
401c11:	f0 0f c1 35 0c 30 40 	lock xadd %esi,0x40300c
401c18:	00
401c19:	4e                   	dec    %esi
401c1a:	75 3f                	jne    0x401c5b
401c1c:	6a 04                	push   $0x4
401c1e:	6a 08                	push   $0x8
401c20:	ff 15 1c 40 40 00    	call   *0x40401c
401c26:	50                   	push   %eax
401c27:	ff 15 20 40 40 00    	call   *0x404020
401c2d:	85 c0                	test   %eax,%eax
401c2f:	74 2e                	je     0x401c5f
401c31:	33 c9                	xor    %ecx,%ecx
401c33:	c7 00 e0 93 04 00    	movl   $0x493e0,(%eax)
401c39:	51                   	push   %ecx
401c3a:	51                   	push   %ecx
401c3b:	50                   	push   %eax
401c3c:	68 e0 1b 40 00       	push   $0x401be0
401c41:	51                   	push   %ecx
401c42:	51                   	push   %ecx
401c43:	ff 15 00 40 40 00    	call   *0x404000
401c49:	85 c0                	test   %eax,%eax
401c4b:	74 09                	je     0x401c56
401c4d:	50                   	push   %eax
401c4e:	ff 15 28 40 40 00    	call   *0x404028
401c54:	eb 05                	jmp    0x401c5b
401c56:	e8 c9 fb ff ff       	call   0x401824
401c5b:	8b c6                	mov    %esi,%eax
401c5d:	5e                   	pop    %esi
401c5e:	c3                   	ret
401c5f:	e8 2c 08 00 00       	call   0x402490
401c64:	cc                   	int3
401c65:	33 c0                	xor    %eax,%eax
401c67:	40                   	inc    %eax
401c68:	f0 0f c1 05 0c 30 40 	lock xadd %eax,0x40300c
401c6f:	00
401c70:	75 0c                	jne    0x401c7e
401c72:	f0 ff 05 0c 30 40 00 	lock incl 0x40300c
401c79:	e8 63 fb ff ff       	call   0x4017e1
401c7e:	a1 0c 30 40 00       	mov    0x40300c,%eax
401c83:	c3                   	ret
401c84:	8b ff                	mov    %edi,%edi
401c86:	55                   	push   %ebp
401c87:	8b ec                	mov    %esp,%ebp
401c89:	83 ec 34             	sub    $0x34,%esp
401c8c:	a1 04 30 40 00       	mov    0x403004,%eax
401c91:	33 c5                	xor    %ebp,%eax
401c93:	89 45 fc             	mov    %eax,-0x4(%ebp)
401c96:	53                   	push   %ebx
401c97:	56                   	push   %esi
401c98:	57                   	push   %edi
401c99:	8b 45 08             	mov    0x8(%ebp),%eax
401c9c:	8d 7d f0             	lea    -0x10(%ebp),%edi
401c9f:	be 80 11 40 00       	mov    $0x401180,%esi
401ca4:	89 45 cc             	mov    %eax,-0x34(%ebp)
401ca7:	8b 45 10             	mov    0x10(%ebp),%eax
401caa:	33 c9                	xor    %ecx,%ecx
401cac:	51                   	push   %ecx
401cad:	51                   	push   %ecx
401cae:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401caf:	bb 57 00 07 80       	mov    $0x80070057,%ebx
401cb4:	6a 04                	push   $0x4
401cb6:	89 45 d4             	mov    %eax,-0x2c(%ebp)
401cb9:	8d 45 d8             	lea    -0x28(%ebp),%eax
401cbc:	50                   	push   %eax
401cbd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401cbe:	6a 01                	push   $0x1
401cc0:	51                   	push   %ecx
401cc1:	ff 35 1c 10 40 00    	push   0x40101c
401cc7:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
401cc9:	be 50 11 40 00       	mov    $0x401150,%esi
401cce:	89 4d d0             	mov    %ecx,-0x30(%ebp)
401cd1:	bf 8c 33 40 00       	mov    $0x40338c,%edi
401cd6:	89 4d ec             	mov    %ecx,-0x14(%ebp)
401cd9:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
401cdc:	89 4d e8             	mov    %ecx,-0x18(%ebp)
401cdf:	89 4d e0             	mov    %ecx,-0x20(%ebp)
401ce2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401ce3:	89 4d dc             	mov    %ecx,-0x24(%ebp)
401ce6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401ce7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401ce8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401ce9:	ff 15 c8 40 40 00    	call   *0x4040c8
401cef:	85 c0                	test   %eax,%eax
401cf1:	78 06                	js     0x401cf9
401cf3:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
401cf7:	75 08                	jne    0x401d01
401cf9:	6a 01                	push   $0x1
401cfb:	ff 15 44 40 40 00    	call   *0x404044
401d01:	33 c0                	xor    %eax,%eax
401d03:	50                   	push   %eax
401d04:	50                   	push   %eax
401d05:	6a 01                	push   $0x1
401d07:	50                   	push   %eax
401d08:	ff 15 04 40 40 00    	call   *0x404004
401d0e:	8d 45 ec             	lea    -0x14(%ebp),%eax
401d11:	50                   	push   %eax
401d12:	8d 45 f0             	lea    -0x10(%ebp),%eax
401d15:	50                   	push   %eax
401d16:	ff 75 d4             	push   -0x2c(%ebp)
401d19:	ff 15 18 41 40 00    	call   *0x404118
401d1f:	8b f0                	mov    %eax,%esi
401d21:	83 c4 0c             	add    $0xc,%esp
401d24:	85 f6                	test   %esi,%esi
401d26:	0f 84 1d 02 00 00    	je     0x401f49
401d2c:	8b 7d d0             	mov    -0x30(%ebp),%edi
401d2f:	6a 0b                	push   $0xb
401d31:	68 8c 11 40 00       	push   $0x40118c
401d36:	56                   	push   %esi
401d37:	ff 15 14 41 40 00    	call   *0x404114
401d3d:	83 c4 0c             	add    $0xc,%esp
401d40:	85 c0                	test   %eax,%eax
401d42:	75 0c                	jne    0x401d50
401d44:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
401d4b:	e9 c6 00 00 00       	jmp    0x401e16
401d50:	6a 0b                	push   $0xb
401d52:	68 a4 11 40 00       	push   $0x4011a4
401d57:	56                   	push   %esi
401d58:	ff 15 14 41 40 00    	call   *0x404114
401d5e:	83 c4 0c             	add    $0xc,%esp
401d61:	85 c0                	test   %eax,%eax
401d63:	0f 84 a6 00 00 00    	je     0x401e0f
401d69:	6a 0b                	push   $0xb
401d6b:	68 bc 11 40 00       	push   $0x4011bc
401d70:	56                   	push   %esi
401d71:	ff 15 14 41 40 00    	call   *0x404114
401d77:	83 c4 0c             	add    $0xc,%esp
401d7a:	85 c0                	test   %eax,%eax
401d7c:	0f 84 8d 00 00 00    	je     0x401e0f
401d82:	6a 0d                	push   $0xd
401d84:	68 d4 11 40 00       	push   $0x4011d4
401d89:	56                   	push   %esi
401d8a:	ff 15 14 41 40 00    	call   *0x404114
401d90:	83 c4 0c             	add    $0xc,%esp
401d93:	85 c0                	test   %eax,%eax
401d95:	74 6f                	je     0x401e06
401d97:	6a 0d                	push   $0xd
401d99:	68 f0 11 40 00       	push   $0x4011f0
401d9e:	56                   	push   %esi
401d9f:	ff 15 14 41 40 00    	call   *0x404114
401da5:	83 c4 0c             	add    $0xc,%esp
401da8:	85 c0                	test   %eax,%eax
401daa:	74 5a                	je     0x401e06
401dac:	6a 07                	push   $0x7
401dae:	68 0c 12 40 00       	push   $0x40120c
401db3:	56                   	push   %esi
401db4:	ff 15 14 41 40 00    	call   *0x404114
401dba:	83 c4 0c             	add    $0xc,%esp
401dbd:	85 c0                	test   %eax,%eax
401dbf:	75 11                	jne    0x401dd2
401dc1:	68 8c 33 40 00       	push   $0x40338c
401dc6:	8d 46 0e             	lea    0xe(%esi),%eax
401dc9:	50                   	push   %eax
401dca:	ff 15 28 41 40 00    	call   *0x404128
401dd0:	eb 44                	jmp    0x401e16
401dd2:	6a 05                	push   $0x5
401dd4:	68 1c 12 40 00       	push   $0x40121c
401dd9:	56                   	push   %esi
401dda:	ff 15 14 41 40 00    	call   *0x404114
401de0:	83 c4 0c             	add    $0xc,%esp
401de3:	85 c0                	test   %eax,%eax
401de5:	75 2f                	jne    0x401e16
401de7:	8d 46 0a             	lea    0xa(%esi),%eax
401dea:	50                   	push   %eax
401deb:	ff 15 20 41 40 00    	call   *0x404120
401df1:	a3 6c 33 40 00       	mov    %eax,0x40336c
401df6:	48                   	dec    %eax
401df7:	59                   	pop    %ecx
401df8:	83 f8 7d             	cmp    $0x7d,%eax
401dfb:	77 19                	ja     0x401e16
401dfd:	c7 45 dc 01 00 00 00 	movl   $0x1,-0x24(%ebp)
401e04:	eb 10                	jmp    0x401e16
401e06:	c7 45 e8 01 00 00 00 	movl   $0x1,-0x18(%ebp)
401e0d:	eb 07                	jmp    0x401e16
401e0f:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
401e16:	8d 45 ec             	lea    -0x14(%ebp),%eax
401e19:	47                   	inc    %edi
401e1a:	50                   	push   %eax
401e1b:	8d 45 f0             	lea    -0x10(%ebp),%eax
401e1e:	50                   	push   %eax
401e1f:	6a 00                	push   $0x0
401e21:	ff 15 18 41 40 00    	call   *0x404118
401e27:	8b f0                	mov    %eax,%esi
401e29:	83 c4 0c             	add    $0xc,%esp
401e2c:	85 f6                	test   %esi,%esi
401e2e:	0f 85 fb fe ff ff    	jne    0x401d2f
401e34:	83 ff 01             	cmp    $0x1,%edi
401e37:	74 28                	je     0x401e61
401e39:	83 ff 02             	cmp    $0x2,%edi
401e3c:	0f 85 07 01 00 00    	jne    0x401f49
401e42:	8b ce                	mov    %esi,%ecx
401e44:	ba 50 11 40 00       	mov    $0x401150,%edx
401e49:	b8 8c 33 40 00       	mov    $0x40338c,%eax
401e4e:	8b 04 88             	mov    (%eax,%ecx,4),%eax
401e51:	3b 04 8a             	cmp    (%edx,%ecx,4),%eax
401e54:	75 0d                	jne    0x401e63
401e56:	41                   	inc    %ecx
401e57:	83 f9 04             	cmp    $0x4,%ecx
401e5a:	75 ed                	jne    0x401e49
401e5c:	e9 e8 00 00 00       	jmp    0x401f49
401e61:	33 f6                	xor    %esi,%esi
401e63:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
401e67:	75 06                	jne    0x401e6f
401e69:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
401e6d:	74 0a                	je     0x401e79
401e6f:	bb 01 40 00 80       	mov    $0x80004001,%ebx
401e74:	e9 d0 00 00 00       	jmp    0x401f49
401e79:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
401e7d:	0f 84 bb 00 00 00    	je     0x401f3e
401e83:	56                   	push   %esi
401e84:	56                   	push   %esi
401e85:	6a 01                	push   $0x1
401e87:	56                   	push   %esi
401e88:	ff 15 08 40 40 00    	call   *0x404008
401e8e:	a3 78 33 40 00       	mov    %eax,0x403378
401e93:	85 c0                	test   %eax,%eax
401e95:	0f 84 8c 00 00 00    	je     0x401f27
401e9b:	56                   	push   %esi
401e9c:	56                   	push   %esi
401e9d:	ff 15 40 41 40 00    	call   *0x404140
401ea3:	8b d8                	mov    %eax,%ebx
401ea5:	85 db                	test   %ebx,%ebx
401ea7:	78 70                	js     0x401f19
401ea9:	8b 4d cc             	mov    -0x34(%ebp),%ecx
401eac:	33 d2                	xor    %edx,%edx
401eae:	42                   	inc    %edx
401eaf:	e8 01 01 00 00       	call   0x401fb5
401eb4:	85 c0                	test   %eax,%eax
401eb6:	74 5b                	je     0x401f13
401eb8:	56                   	push   %esi
401eb9:	56                   	push   %esi
401eba:	56                   	push   %esi
401ebb:	6a 03                	push   $0x3
401ebd:	6a 02                	push   $0x2
401ebf:	56                   	push   %esi
401ec0:	56                   	push   %esi
401ec1:	83 cf ff             	or     $0xffffffff,%edi
401ec4:	57                   	push   %edi
401ec5:	56                   	push   %esi
401ec6:	ff 15 2c 41 40 00    	call   *0x40412c
401ecc:	8b d8                	mov    %eax,%ebx
401ece:	85 db                	test   %ebx,%ebx
401ed0:	78 1c                	js     0x401eee
401ed2:	e8 0a f9 ff ff       	call   0x4017e1
401ed7:	8b d8                	mov    %eax,%ebx
401ed9:	85 db                	test   %ebx,%ebx
401edb:	78 11                	js     0x401eee
401edd:	e8 4a 02 00 00       	call   0x40212c
401ee2:	8b de                	mov    %esi,%ebx
401ee4:	e8 c6 f7 ff ff       	call   0x4016af
401ee9:	e8 36 f9 ff ff       	call   0x401824
401eee:	a1 10 30 40 00       	mov    0x403010,%eax
401ef3:	3b c7                	cmp    %edi,%eax
401ef5:	74 0d                	je     0x401f04
401ef7:	50                   	push   %eax
401ef8:	ff 15 5c 40 40 00    	call   *0x40405c
401efe:	89 3d 10 30 40 00    	mov    %edi,0x403010
401f04:	83 3d 9c 33 40 00 00 	cmpl   $0x0,0x40339c
401f0b:	74 06                	je     0x401f13
401f0d:	89 3d 9c 33 40 00    	mov    %edi,0x40339c
401f13:	ff 15 30 41 40 00    	call   *0x404130
401f19:	ff 35 78 33 40 00    	push   0x403378
401f1f:	ff 15 28 40 40 00    	call   *0x404028
401f25:	eb 22                	jmp    0x401f49
401f27:	ff 15 3c 40 40 00    	call   *0x40403c
401f2d:	8b d8                	mov    %eax,%ebx
401f2f:	85 db                	test   %ebx,%ebx
401f31:	7e 16                	jle    0x401f49
401f33:	0f b7 db             	movzwl %bx,%ebx
401f36:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
401f3c:	eb 0b                	jmp    0x401f49
401f3e:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
401f42:	74 05                	je     0x401f49
401f44:	e8 f7 fb ff ff       	call   0x401b40
401f49:	8b 4d fc             	mov    -0x4(%ebp),%ecx
401f4c:	8b c3                	mov    %ebx,%eax
401f4e:	5f                   	pop    %edi
401f4f:	5e                   	pop    %esi
401f50:	33 cd                	xor    %ebp,%ecx
401f52:	5b                   	pop    %ebx
401f53:	e8 58 09 00 00       	call   0x4028b0
401f58:	c9                   	leave
401f59:	c2 10 00             	ret    $0x10
401f5c:	8b ff                	mov    %edi,%edi
401f5e:	56                   	push   %esi
401f5f:	8b f1                	mov    %ecx,%esi
401f61:	83 26 00             	andl   $0x0,(%esi)
401f64:	a1 10 30 40 00       	mov    0x403010,%eax
401f69:	83 f8 ff             	cmp    $0xffffffff,%eax
401f6c:	75 2c                	jne    0x401f9a
401f6e:	8b 0d 9c 33 40 00    	mov    0x40339c,%ecx
401f74:	85 c9                	test   %ecx,%ecx
401f76:	74 1d                	je     0x401f95
401f78:	3b c8                	cmp    %eax,%ecx
401f7a:	75 04                	jne    0x401f80
401f7c:	33 c0                	xor    %eax,%eax
401f7e:	5e                   	pop    %esi
401f7f:	c3                   	ret
401f80:	8b 15 a0 33 40 00    	mov    0x4033a0,%edx
401f86:	e8 2a 00 00 00       	call   0x401fb5
401f8b:	a1 10 30 40 00       	mov    0x403010,%eax
401f90:	83 f8 ff             	cmp    $0xffffffff,%eax
401f93:	75 05                	jne    0x401f9a
401f95:	33 c0                	xor    %eax,%eax
401f97:	40                   	inc    %eax
401f98:	5e                   	pop    %esi
401f99:	c3                   	ret
401f9a:	83 26 00             	andl   $0x0,(%esi)
401f9d:	56                   	push   %esi
401f9e:	50                   	push   %eax
401f9f:	ff 15 58 40 40 00    	call   *0x404058
401fa5:	5e                   	pop    %esi
401fa6:	c3                   	ret
401fa7:	85 c9                	test   %ecx,%ecx
401fa9:	74 09                	je     0x401fb4
401fab:	51                   	push   %ecx
401fac:	6a 00                	push   $0x0
401fae:	ff 15 54 40 40 00    	call   *0x404054
401fb4:	c3                   	ret
401fb5:	8b ff                	mov    %edi,%edi
401fb7:	55                   	push   %ebp
401fb8:	8b ec                	mov    %esp,%ebp
401fba:	81 ec 2c 02 00 00    	sub    $0x22c,%esp
401fc0:	a1 04 30 40 00       	mov    0x403004,%eax
401fc5:	33 c5                	xor    %ebp,%eax
401fc7:	89 45 fc             	mov    %eax,-0x4(%ebp)
401fca:	53                   	push   %ebx
401fcb:	56                   	push   %esi
401fcc:	83 cb ff             	or     $0xffffffff,%ebx
401fcf:	8b f1                	mov    %ecx,%esi
401fd1:	57                   	push   %edi
401fd2:	8b fa                	mov    %edx,%edi
401fd4:	39 1d 10 30 40 00    	cmp    %ebx,0x403010
401fda:	0f 85 93 00 00 00    	jne    0x402073
401fe0:	33 c0                	xor    %eax,%eax
401fe2:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
401fe8:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
401fee:	89 85 ec fd ff ff    	mov    %eax,-0x214(%ebp)
401ff4:	85 f6                	test   %esi,%esi
401ff6:	75 09                	jne    0x402001
401ff8:	50                   	push   %eax
401ff9:	ff 15 0c 40 40 00    	call   *0x40400c
401fff:	8b f0                	mov    %eax,%esi
402001:	68 04 01 00 00       	push   $0x104
402006:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40200c:	50                   	push   %eax