435936:	d1 f8                	sar    $1,%eax
435938:	79 03                	jns    0x43593d
43593a:	83 d0 00             	adc    $0x0,%eax
43593d:	50                   	push   %eax
43593e:	6a 00                	push   $0x0
435940:	8d 44 24 08          	lea    0x8(%esp),%eax
435944:	50                   	push   %eax
435945:	e8 7e 15 fd ff       	call   0x406ec8
43594a:	8b d4                	mov    %esp,%edx
43594c:	8b cf                	mov    %edi,%ecx
43594e:	8b c3                	mov    %ebx,%eax
435950:	66 be c6 ff          	mov    $0xffc6,%si
435954:	e8 8f dc fc ff       	call   0x4035e8
435959:	83 c4 30             	add    $0x30,%esp
43595c:	5f                   	pop    %edi
43595d:	5e                   	pop    %esi
43595e:	5b                   	pop    %ebx
43595f:	c3                   	ret
435960:	53                   	push   %ebx
435961:	56                   	push   %esi
435962:	8b d8                	mov    %eax,%ebx
435964:	8b c3                	mov    %ebx,%eax
435966:	e8 3d 87 00 00       	call   0x43e0a8
43596b:	8b c3                	mov    %ebx,%eax
43596d:	66 be c7 ff          	mov    $0xffc7,%si
435971:	e8 72 dc fc ff       	call   0x4035e8
435976:	5e                   	pop    %esi
435977:	5b                   	pop    %ebx
435978:	c3                   	ret
435979:	8d 40 00             	lea    0x0(%eax),%eax
43597c:	53                   	push   %ebx
43597d:	56                   	push   %esi
43597e:	57                   	push   %edi
43597f:	83 c4 ec             	add    $0xffffffec,%esp
435982:	8b f8                	mov    %eax,%edi
435984:	f6 47 1c 02          	testb  $0x2,0x1c(%edi)
435988:	0f 85 b4 00 00 00    	jne    0x435a42
43598e:	80 bf 6d 01 00 00 00 	cmpb   $0x0,0x16d(%edi)
435995:	0f 84 a7 00 00 00    	je     0x435a42
43599b:	8d 54 24 01          	lea    0x1(%esp),%edx
43599f:	8b c7                	mov    %edi,%eax
4359a1:	8b 08                	mov    (%eax),%ecx
4359a3:	ff 51 44             	call   *0x44(%ecx)
4359a6:	6a 00                	push   $0x0
4359a8:	e8 1b 13 fd ff       	call   0x406cc8
4359ad:	8b d8                	mov    %eax,%ebx
4359af:	8b d3                	mov    %ebx,%edx
4359b1:	8b 87 60 01 00 00    	mov    0x160(%edi),%eax
4359b7:	e8 60 28 ff ff       	call   0x42821c
4359bc:	33 c0                	xor    %eax,%eax
4359be:	8a 87 6f 01 00 00    	mov    0x16f(%edi),%al
4359c4:	66 8b 0c 45 3c dc 48 	mov    0x48dc3c(,%eax,2),%cx
4359cb:	00
4359cc:	66 81 c9 40 04       	or     $0x440,%cx
4359d1:	0f b7 c9             	movzwl %cx,%ecx
4359d4:	8d 54 24 01          	lea    0x1(%esp),%edx
4359d8:	8b c7                	mov    %edi,%eax
4359da:	66 be c6 ff          	mov    $0xffc6,%si
4359de:	e8 05 dc fc ff       	call   0x4035e8
4359e3:	33 d2                	xor    %edx,%edx
4359e5:	8b 87 60 01 00 00    	mov    0x160(%edi),%eax
4359eb:	e8 2c 28 ff ff       	call   0x42821c
4359f0:	53                   	push   %ebx
4359f1:	6a 00                	push   $0x0
4359f3:	e8 20 15 fd ff       	call   0x406f18
4359f8:	8b 5f 40             	mov    0x40(%edi),%ebx
4359fb:	8a 87 6c 01 00 00    	mov    0x16c(%edi),%al
435a01:	88 04 24             	mov    %al,(%esp)
435a04:	8b c7                	mov    %edi,%eax
435a06:	66 be c8 ff          	mov    $0xffc8,%si
435a0a:	e8 d9 db fc ff       	call   0x4035e8
435a0f:	84 c0                	test   %al,%al
435a11:	74 07                	je     0x435a1a
435a13:	8b c4                	mov    %esp,%eax
435a15:	e8 7a 33 00 00       	call   0x438d94
435a1a:	80 3c 24 01          	cmpb   $0x1,(%esp)
435a1e:	75 09                	jne    0x435a29
435a20:	8b 47 48             	mov    0x48(%edi),%eax
435a23:	2b 44 24 09          	sub    0x9(%esp),%eax
435a27:	03 d8                	add    %eax,%ebx
435a29:	8b 44 24 09          	mov    0x9(%esp),%eax
435a2d:	50                   	push   %eax
435a2e:	8b 44 24 11          	mov    0x11(%esp),%eax
435a32:	50                   	push   %eax
435a33:	8b 4f 44             	mov    0x44(%edi),%ecx
435a36:	8b d3                	mov    %ebx,%edx
435a38:	8b c7                	mov    %edi,%eax
435a3a:	8b 18                	mov    (%eax),%ebx
435a3c:	ff 93 84 00 00 00    	call   *0x84(%ebx)
435a42:	83 c4 14             	add    $0x14,%esp
435a45:	5f                   	pop    %edi
435a46:	5e                   	pop    %esi
435a47:	5b                   	pop    %ebx
435a48:	c3                   	ret
435a49:	8d 40 00             	lea    0x0(%eax),%eax
435a4c:	56                   	push   %esi
435a4d:	8b f0                	mov    %eax,%esi
435a4f:	3a 96 6c 01 00 00    	cmp    0x16c(%esi),%dl
435a55:	74 0d                	je     0x435a64
435a57:	88 96 6c 01 00 00    	mov    %dl,0x16c(%esi)
435a5d:	8b c6                	mov    %esi,%eax
435a5f:	8b 10                	mov    (%eax),%edx
435a61:	ff 52 7c             	call   *0x7c(%edx)
435a64:	5e                   	pop    %esi
435a65:	c3                   	ret
435a66:	8b c0                	mov    %eax,%eax
435a68:	56                   	push   %esi
435a69:	3a 90 6d 01 00 00    	cmp    0x16d(%eax),%dl
435a6f:	74 0f                	je     0x435a80
435a71:	88 90 6d 01 00 00    	mov    %dl,0x16d(%eax)
435a77:	66 be c7 ff          	mov    $0xffc7,%si
435a7b:	e8 68 db fc ff       	call   0x4035e8
435a80:	5e                   	pop    %esi
435a81:	c3                   	ret
435a82:	8b c0                	mov    %eax,%eax
435a84:	f6 40 50 40          	testb  $0x40,0x50(%eax)
435a88:	0f 95 c0             	setne  %al
435a8b:	34 01                	xor    $0x1,%al
435a8d:	c3                   	ret
435a8e:	8b c0                	mov    %eax,%eax
435a90:	89 90 68 01 00 00    	mov    %edx,0x168(%eax)
435a96:	85 d2                	test   %edx,%edx
435a98:	74 06                	je     0x435aa0
435a9a:	92                   	xchg   %eax,%edx
435a9b:	e8 30 e9 fe ff       	call   0x4243d0
435aa0:	c3                   	ret
435aa1:	8d 40 00             	lea    0x0(%eax),%eax
435aa4:	56                   	push   %esi
435aa5:	8b f0                	mov    %eax,%esi
435aa7:	3a 96 70 01 00 00    	cmp    0x170(%esi),%dl
435aad:	74 0d                	je     0x435abc
435aaf:	88 96 70 01 00 00    	mov    %dl,0x170(%esi)
435ab5:	8b c6                	mov    %esi,%eax
435ab7:	8b 10                	mov    (%eax),%edx
435ab9:	ff 52 7c             	call   *0x7c(%edx)
435abc:	5e                   	pop    %esi
435abd:	c3                   	ret
435abe:	8b c0                	mov    %eax,%eax
435ac0:	53                   	push   %ebx
435ac1:	56                   	push   %esi
435ac2:	8b da                	mov    %edx,%ebx
435ac4:	8b f0                	mov    %eax,%esi
435ac6:	8b c6                	mov    %esi,%eax
435ac8:	e8 b7 ff ff ff       	call   0x435a84
435acd:	3a d8                	cmp    %al,%bl
435acf:	74 25                	je     0x435af6
435ad1:	84 db                	test   %bl,%bl
435ad3:	74 0f                	je     0x435ae4
435ad5:	a1 00 5b 43 00       	mov    0x435b00,%eax
435ada:	f7 d0                	not    %eax
435adc:	23 46 50             	and    0x50(%esi),%eax
435adf:	89 46 50             	mov    %eax,0x50(%esi)
435ae2:	eb 0b                	jmp    0x435aef
435ae4:	a1 00 5b 43 00       	mov    0x435b00,%eax
435ae9:	0b 46 50             	or     0x50(%esi),%eax
435aec:	89 46 50             	mov    %eax,0x50(%esi)
435aef:	8b c6                	mov    %esi,%eax
435af1:	8b 10                	mov    (%eax),%edx
435af3:	ff 52 7c             	call   *0x7c(%edx)
435af6:	c6 86 88 01 00 00 01 	movb   $0x1,0x188(%esi)
435afd:	5e                   	pop    %esi
435afe:	5b                   	pop    %ebx
435aff:	c3                   	ret
435b00:	40                   	inc    %eax
435b01:	00 00                	add    %al,(%eax)
435b03:	00 56 8b             	add    %dl,-0x75(%esi)
435b06:	f0 3a 96 6e 01 00 00 	lock cmp 0x16e(%esi),%dl
435b0d:	74 0d                	je     0x435b1c
435b0f:	88 96 6e 01 00 00    	mov    %dl,0x16e(%esi)
435b15:	8b c6                	mov    %esi,%eax
435b17:	8b 10                	mov    (%eax),%edx
435b19:	ff 52 7c             	call   *0x7c(%edx)
435b1c:	5e                   	pop    %esi
435b1d:	c3                   	ret
435b1e:	8b c0                	mov    %eax,%eax
435b20:	56                   	push   %esi
435b21:	57                   	push   %edi
435b22:	8b f8                	mov    %eax,%edi
435b24:	3a 97 6f 01 00 00    	cmp    0x16f(%edi),%dl
435b2a:	74 18                	je     0x435b44
435b2c:	88 97 6f 01 00 00    	mov    %dl,0x16f(%edi)
435b32:	8b c7                	mov    %edi,%eax
435b34:	66 be c7 ff          	mov    $0xffc7,%si
435b38:	e8 ab da fc ff       	call   0x4035e8
435b3d:	8b c7                	mov    %edi,%eax
435b3f:	8b 10                	mov    (%eax),%edx
435b41:	ff 52 7c             	call   *0x7c(%edx)
435b44:	5f                   	pop    %edi
435b45:	5e                   	pop    %esi
435b46:	c3                   	ret
435b47:	90                   	nop
435b48:	53                   	push   %ebx
435b49:	56                   	push   %esi
435b4a:	57                   	push   %edi
435b4b:	8b d9                	mov    %ecx,%ebx
435b4d:	8b f2                	mov    %edx,%esi
435b4f:	8b f8                	mov    %eax,%edi
435b51:	8b cb                	mov    %ebx,%ecx
435b53:	8b d6                	mov    %esi,%edx
435b55:	8b c7                	mov    %edi,%eax
435b57:	e8 7c 59 00 00       	call   0x43b4d8
435b5c:	80 fb 01             	cmp    $0x1,%bl
435b5f:	75 10                	jne    0x435b71
435b61:	3b b7 68 01 00 00    	cmp    0x168(%edi),%esi
435b67:	75 08                	jne    0x435b71
435b69:	33 c0                	xor    %eax,%eax
435b6b:	89 87 68 01 00 00    	mov    %eax,0x168(%edi)
435b71:	5f                   	pop    %edi
435b72:	5e                   	pop    %esi
435b73:	5b                   	pop    %ebx
435b74:	c3                   	ret
435b75:	8d 40 00             	lea    0x0(%eax),%eax
435b78:	53                   	push   %ebx
435b79:	56                   	push   %esi
435b7a:	8b d8                	mov    %eax,%ebx
435b7c:	8b c3                	mov    %ebx,%eax
435b7e:	8b 10                	mov    (%eax),%edx
435b80:	ff 52 7c             	call   *0x7c(%edx)
435b83:	8b c3                	mov    %ebx,%eax
435b85:	66 be c7 ff          	mov    $0xffc7,%si
435b89:	e8 5a da fc ff       	call   0x4035e8
435b8e:	5e                   	pop    %esi
435b8f:	5b                   	pop    %ebx
435b90:	c3                   	ret
435b91:	8d 40 00             	lea    0x0(%eax),%eax
435b94:	56                   	push   %esi
435b95:	8b f0                	mov    %eax,%esi
435b97:	8b c6                	mov    %esi,%eax
435b99:	e8 16 80 00 00       	call   0x43dbb4
435b9e:	8b c6                	mov    %esi,%eax
435ba0:	66 be c7 ff          	mov    $0xffc7,%si
435ba4:	e8 3f da fc ff       	call   0x4035e8
435ba9:	5e                   	pop    %esi
435baa:	c3                   	ret
435bab:	90                   	nop
435bac:	55                   	push   %ebp
435bad:	8b ec                	mov    %esp,%ebp
435baf:	6a 00                	push   $0x0
435bb1:	53                   	push   %ebx
435bb2:	56                   	push   %esi
435bb3:	57                   	push   %edi
435bb4:	8b fa                	mov    %edx,%edi
435bb6:	8b d8                	mov    %eax,%ebx
435bb8:	33 c0                	xor    %eax,%eax
435bba:	55                   	push   %ebp
435bbb:	68 39 5c 43 00       	push   $0x435c39
435bc0:	64 ff 30             	push   %fs:(%eax)
435bc3:	64 89 20             	mov    %esp,%fs:(%eax)
435bc6:	83 bb 68 01 00 00 00 	cmpl   $0x0,0x168(%ebx)
435bcd:	74 54                	je     0x435c23
435bcf:	8b c3                	mov    %ebx,%eax
435bd1:	8b 10                	mov    (%eax),%edx
435bd3:	ff 52 50             	call   *0x50(%edx)
435bd6:	84 c0                	test   %al,%al
435bd8:	74 49                	je     0x435c23
435bda:	80 bb 70 01 00 00 00 	cmpb   $0x0,0x170(%ebx)
435be1:	74 40                	je     0x435c23
435be3:	8d 55 fc             	lea    -0x4(%ebp),%edx
435be6:	8b c3                	mov    %ebx,%eax
435be8:	e8 0b 64 00 00       	call   0x43bff8
435bed:	8b 55 fc             	mov    -0x4(%ebp),%edx
435bf0:	66 8b 47 04          	mov    0x4(%edi),%ax
435bf4:	e8 e3 d0 01 00       	call   0x452cdc
435bf9:	84 c0                	test   %al,%al
435bfb:	74 26                	je     0x435c23
435bfd:	8b 9b 68 01 00 00    	mov    0x168(%ebx),%ebx
435c03:	8b c3                	mov    %ebx,%eax
435c05:	66 be b8 ff          	mov    $0xffb8,%si
435c09:	e8 da d9 fc ff       	call   0x4035e8
435c0e:	84 c0                	test   %al,%al
435c10:	74 11                	je     0x435c23
435c12:	8b c3                	mov    %ebx,%eax
435c14:	8b 10                	mov    (%eax),%edx
435c16:	ff 92 c4 00 00 00    	call   *0xc4(%edx)
435c1c:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
435c23:	33 c0                	xor    %eax,%eax
435c25:	5a                   	pop    %edx
435c26:	59                   	pop    %ecx
435c27:	59                   	pop    %ecx
435c28:	64 89 10             	mov    %edx,%fs:(%eax)
435c2b:	68 40 5c 43 00       	push   $0x435c40
435c30:	8d 45 fc             	lea    -0x4(%ebp),%eax
435c33:	e8 2c e5 fc ff       	call   0x404164
435c38:	c3                   	ret
435c39:	e9 2a df fc ff       	jmp    0x403b68
435c3e:	eb f0                	jmp    0x435c30
435c40:	5f                   	pop    %edi
435c41:	5e                   	pop    %esi
435c42:	5b                   	pop    %ebx
435c43:	59                   	pop    %ecx
435c44:	5d                   	pop    %ebp
435c45:	c3                   	ret
435c46:	8b c0                	mov    %eax,%eax
435c48:	53                   	push   %ebx
435c49:	8b d8                	mov    %eax,%ebx
435c4b:	8b c3                	mov    %ebx,%eax
435c4d:	e8 c6 80 00 00       	call   0x43dd18
435c52:	66 83 bb 82 01 00 00 	cmpw   $0x0,0x182(%ebx)
435c59:	00
435c5a:	74 0e                	je     0x435c6a
435c5c:	8b d3                	mov    %ebx,%edx
435c5e:	8b 83 84 01 00 00    	mov    0x184(%ebx),%eax
435c64:	ff 93 80 01 00 00    	call   *0x180(%ebx)
435c6a:	5b                   	pop    %ebx
435c6b:	c3                   	ret
435c6c:	53                   	push   %ebx
435c6d:	8b d8                	mov    %eax,%ebx
435c6f:	8b c3                	mov    %ebx,%eax
435c71:	e8 ba 80 00 00       	call   0x43dd30
435c76:	66 83 bb 7a 01 00 00 	cmpw   $0x0,0x17a(%ebx)
435c7d:	00
435c7e:	74 0e                	je     0x435c8e
435c80:	8b d3                	mov    %ebx,%edx
435c82:	8b 83 7c 01 00 00    	mov    0x17c(%ebx),%eax
435c88:	ff 93 78 01 00 00    	call   *0x178(%ebx)
435c8e:	5b                   	pop    %ebx
435c8f:	c3                   	ret
435c90:	55                   	push   %ebp
435c91:	8b ec                	mov    %esp,%ebp
435c93:	33 c0                	xor    %eax,%eax
435c95:	55                   	push   %ebp
435c96:	68 b5 5c 43 00       	push   $0x435cb5
435c9b:	64 ff 30             	push   %fs:(%eax)
435c9e:	64 89 20             	mov    %esp,%fs:(%eax)
435ca1:	ff 05 f8 ca 49 00    	incl   0x49caf8
435ca7:	33 c0                	xor    %eax,%eax
435ca9:	5a                   	pop    %edx
435caa:	59                   	pop    %ecx
435cab:	59                   	pop    %ecx
435cac:	64 89 10             	mov    %edx,%fs:(%eax)
435caf:	68 bc 5c 43 00       	push   $0x435cbc
435cb4:	c3                   	ret
435cb5:	e9 ae de fc ff       	jmp    0x403b68
435cba:	eb f8                	jmp    0x435cb4
435cbc:	5d                   	pop    %ebp
435cbd:	c3                   	ret
435cbe:	8b c0                	mov    %eax,%eax
435cc0:	83 2d f8 ca 49 00 01 	subl   $0x1,0x49caf8
435cc7:	c3                   	ret
435cc8:	14 5d                	adc    $0x5d,%al
435cca:	43                   	inc    %ebx
435cd7:	00 78 5d             	add    %bh,0x5d(%eax)
435cda:	43                   	inc    %ebx
435ce7:	00 68 5d             	add    %ch,0x5d(%eax)
435cea:	43                   	inc    %ebx
435ceb:	00 a0 00 00 00 c8    	add    %ah,-0x38000000(%eax)
435cf1:	79 44                	jns    0x435d37
435cf3:	00 70 4a             	add    %dh,0x4a(%eax)
435cf6:	42                   	inc    %edx
435cf7:	00 28                	add    %ch,(%eax)