401a48:	55                   	push   %ebp
401a49:	8b ec                	mov    %esp,%ebp
401a4b:	51                   	push   %ecx
401a4c:	56                   	push   %esi
401a4d:	8b f1                	mov    %ecx,%esi
401a4f:	6a 00                	push   $0x0
401a51:	ff b6 50 b0 00 00    	push   0xb050(%esi)
401a57:	8b 86 4c b0 00 00    	mov    0xb04c(%esi),%eax
401a5d:	0f b6 8e 54 b0 00 00 	movzbl 0xb054(%esi),%ecx
401a64:	89 45 fc             	mov    %eax,-0x4(%ebp)
401a67:	f7 d9                	neg    %ecx
401a69:	8d 45 fc             	lea    -0x4(%ebp),%eax
401a6c:	50                   	push   %eax
401a6d:	8d 86 4c 60 00 00    	lea    0x604c(%esi),%eax
401a73:	1b c9                	sbb    %ecx,%ecx
401a75:	50                   	push   %eax
401a76:	8d 86 4c 10 00 00    	lea    0x104c(%esi),%eax
401a7c:	f7 d1                	not    %ecx
401a7e:	23 c8                	and    %eax,%ecx
401a80:	8d 46 04             	lea    0x4(%esi),%eax
401a83:	51                   	push   %ecx
401a84:	50                   	push   %eax
401a85:	ff 15 c0 40 40 00    	call   *0x4040c0
401a8b:	85 c0                	test   %eax,%eax
401a8d:	74 1c                	je     0x401aab
401a8f:	8b 45 fc             	mov    -0x4(%ebp),%eax
401a92:	3b 86 4c b0 00 00    	cmp    0xb04c(%esi),%eax
401a98:	76 07                	jbe    0x401aa1
401a9a:	b8 7a 00 07 80       	mov    $0x8007007a,%eax
401a9f:	eb 1c                	jmp    0x401abd
401aa1:	89 86 4c b0 00 00    	mov    %eax,0xb04c(%esi)
401aa7:	33 c0                	xor    %eax,%eax
401aa9:	eb 12                	jmp    0x401abd
401aab:	ff 15 3c 40 40 00    	call   *0x40403c
401ab1:	85 c0                	test   %eax,%eax
401ab3:	7e 08                	jle    0x401abd
401ab5:	0f b7 c0             	movzwl %ax,%eax
401ab8:	0d 00 00 07 80       	or     $0x80070000,%eax
401abd:	6a 00                	push   $0x0
401abf:	89 86 58 b0 00 00    	mov    %eax,0xb058(%esi)
401ac5:	ff 15 94 40 40 00    	call   *0x404094
401acb:	5e                   	pop    %esi
401acc:	c9                   	leave
401acd:	c3                   	ret
401ace:	8b ff                	mov    %edi,%edi
401ad0:	55                   	push   %ebp
401ad1:	8b ec                	mov    %esp,%ebp
401ad3:	51                   	push   %ecx
401ad4:	51                   	push   %ecx
401ad5:	53                   	push   %ebx
401ad6:	56                   	push   %esi
401ad7:	57                   	push   %edi
401ad8:	8d 45 f8             	lea    -0x8(%ebp),%eax
401adb:	33 db                	xor    %ebx,%ebx
401add:	50                   	push   %eax
401ade:	8d 45 fc             	lea    -0x4(%ebp),%eax
401ae1:	89 5d f8             	mov    %ebx,-0x8(%ebp)
401ae4:	50                   	push   %eax
401ae5:	51                   	push   %ecx
401ae6:	53                   	push   %ebx
401ae7:	53                   	push   %ebx
401ae8:	53                   	push   %ebx
401ae9:	89 5d fc             	mov    %ebx,-0x4(%ebp)
401aec:	e8 01 08 00 00       	call   0x4022f2
401af1:	8b 75 f8             	mov    -0x8(%ebp),%esi
401af4:	8b f8                	mov    %eax,%edi
401af6:	85 ff                	test   %edi,%edi
401af8:	78 21                	js     0x401b1b
401afa:	85 f6                	test   %esi,%esi
401afc:	74 1d                	je     0x401b1b
401afe:	8b 0e                	mov    (%esi),%ecx
401b00:	2b cb                	sub    %ebx,%ecx
401b02:	74 0e                	je     0x401b12
401b04:	83 e9 01             	sub    $0x1,%ecx
401b07:	75 12                	jne    0x401b1b
401b09:	8b ce                	mov    %esi,%ecx
401b0b:	e8 36 ff ff ff       	call   0x401a46
401b10:	eb 0e                	jmp    0x401b20
401b12:	8b ce                	mov    %esi,%ecx
401b14:	e8 cf fe ff ff       	call   0x4019e8
401b19:	eb 05                	jmp    0x401b20
401b1b:	bf 57 00 07 80       	mov    $0x80070057,%edi
401b20:	85 f6                	test   %esi,%esi
401b22:	74 07                	je     0x401b2b
401b24:	56                   	push   %esi
401b25:	ff 15 8c 40 40 00    	call   *0x40408c
401b2b:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
401b2e:	74 09                	je     0x401b39
401b30:	ff 75 fc             	push   -0x4(%ebp)
401b33:	ff 15 28 40 40 00    	call   *0x404028
401b39:	8b c7                	mov    %edi,%eax
401b3b:	5f                   	pop    %edi
401b3c:	5e                   	pop    %esi
401b3d:	5b                   	pop    %ebx
401b3e:	c9                   	leave
401b3f:	c3                   	ret
401b40:	8b ff                	mov    %edi,%edi
401b42:	55                   	push   %ebp
401b43:	8b ec                	mov    %esp,%ebp
401b45:	83 ec 0c             	sub    $0xc,%esp
401b48:	33 c0                	xor    %eax,%eax
401b4a:	50                   	push   %eax
401b4b:	50                   	push   %eax
401b4c:	89 45 f4             	mov    %eax,-0xc(%ebp)
401b4f:	89 45 fc             	mov    %eax,-0x4(%ebp)
401b52:	89 45 f8             	mov    %eax,-0x8(%ebp)
401b55:	8d 45 f8             	lea    -0x8(%ebp),%eax
401b58:	51                   	push   %ecx
401b59:	50                   	push   %eax
401b5a:	8d 45 fc             	lea    -0x4(%ebp),%eax
401b5d:	50                   	push   %eax
401b5e:	8d 45 f4             	lea    -0xc(%ebp),%eax
401b61:	50                   	push   %eax
401b62:	e8 8b 07 00 00       	call   0x4022f2
401b67:	85 c0                	test   %eax,%eax
401b69:	78 6c                	js     0x401bd7
401b6b:	56                   	push   %esi
401b6c:	8b 75 f4             	mov    -0xc(%ebp),%esi
401b6f:	eb 28                	jmp    0x401b99
401b71:	68 60 ea 00 00       	push   $0xea60
401b76:	ff 75 fc             	push   -0x4(%ebp)
401b79:	ff 15 90 40 40 00    	call   *0x404090
401b7f:	85 c0                	test   %eax,%eax
401b81:	75 23                	jne    0x401ba6
401b83:	e8 46 ff ff ff       	call   0x401ace
401b88:	85 c0                	test   %eax,%eax
401b8a:	78 21                	js     0x401bad
401b8c:	ff 75 f8             	push   -0x8(%ebp)
401b8f:	ff 15 9c 40 40 00    	call   *0x40409c
401b95:	85 c0                	test   %eax,%eax
401b97:	74 14                	je     0x401bad
401b99:	56                   	push   %esi
401b9a:	ff 15 9c 40 40 00    	call   *0x40409c
401ba0:	85 c0                	test   %eax,%eax
401ba2:	75 cd                	jne    0x401b71
401ba4:	eb 30                	jmp    0x401bd6
401ba6:	56                   	push   %esi
401ba7:	ff 15 24 40 40 00    	call   *0x404024
401bad:	85 f6                	test   %esi,%esi
401baf:	74 07                	je     0x401bb8
401bb1:	56                   	push   %esi
401bb2:	ff 15 28 40 40 00    	call   *0x404028
401bb8:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
401bbc:	74 09                	je     0x401bc7
401bbe:	ff 75 fc             	push   -0x4(%ebp)
401bc1:	ff 15 28 40 40 00    	call   *0x404028
401bc7:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
401bcb:	74 09                	je     0x401bd6
401bcd:	ff 75 f8             	push   -0x8(%ebp)
401bd0:	ff 15 28 40 40 00    	call   *0x404028
401bd6:	5e                   	pop    %esi
401bd7:	c9                   	leave
401bd8:	c3                   	ret
401bd9:	cc                   	int3
401bda:	cc                   	int3
401bdb:	cc                   	int3
401bdc:	cc                   	int3
401bdd:	cc                   	int3
401bde:	cc                   	int3
401bdf:	cc                   	int3
401be0:	8b ff                	mov    %edi,%edi
401be2:	55                   	push   %ebp
401be3:	8b ec                	mov    %esp,%ebp
401be5:	8b 45 08             	mov    0x8(%ebp),%eax
401be8:	56                   	push   %esi
401be9:	50                   	push   %eax
401bea:	8b 30                	mov    (%eax),%esi
401bec:	e8 9f fa ff ff       	call   0x401690
401bf1:	59                   	pop    %ecx
401bf2:	56                   	push   %esi
401bf3:	ff 35 78 33 40 00    	push   0x403378
401bf9:	ff 15 90 40 40 00    	call   *0x404090
401bff:	e8 20 fc ff ff       	call   0x401824
401c04:	33 c0                	xor    %eax,%eax
401c06:	5e                   	pop    %esi
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)