4287a0:	8b 41 04             	mov    0x4(%ecx),%eax
4287a3:	85 c0                	test   %eax,%eax
4287a5:	74 05                	je     0x4287ac
4287a7:	8b 40 08             	mov    0x8(%eax),%eax
4287aa:	eb 02                	jmp    0x4287ae
4287ac:	33 c0                	xor    %eax,%eax
4287ae:	c2 04 00             	ret    $0x4
4287b1:	6a 0c                	push   $0xc
4287b3:	b8 b9 21 49 00       	mov    $0x4921b9,%eax
4287b8:	e8 16 7d 06 00       	call   0x4904d3
4287bd:	8b da                	mov    %edx,%ebx
4287bf:	85 db                	test   %ebx,%ebx
4287c1:	75 0a                	jne    0x4287cd
4287c3:	b8 03 40 00 80       	mov    $0x80004003,%eax
4287c8:	e9 bb 00 00 00       	jmp    0x428888
4287cd:	83 23 00             	andl   $0x0,(%ebx)
4287d0:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4287d3:	85 c9                	test   %ecx,%ecx
4287d5:	74 13                	je     0x4287ea
4287d7:	8b 01                	mov    (%ecx),%eax
4287d9:	51                   	push   %ecx
4287da:	8b 70 04             	mov    0x4(%eax),%esi
4287dd:	8b ce                	mov    %esi,%ecx
4287df:	ff 15 2c 81 4a 00    	call   *0x4a812c
4287e5:	ff d6                	call   *%esi
4287e7:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4287ea:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4287ee:	85 c9                	test   %ecx,%ecx
4287f0:	75 14                	jne    0x428806
4287f2:	83 ec 0c             	sub    $0xc,%esp
4287f5:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4287f8:	e8 a6 0a 00 00       	call   0x4292a3
4287fd:	8b f8                	mov    %eax,%edi
4287ff:	85 ff                	test   %edi,%edi
428801:	78 65                	js     0x428868
428803:	8b 4d f0             	mov    -0x10(%ebp),%ecx
428806:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
42880a:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
42880e:	8d 45 ec             	lea    -0x14(%ebp),%eax
428811:	8b 31                	mov    (%ecx),%esi
428813:	50                   	push   %eax
428814:	6a 00                	push   $0x0
428816:	51                   	push   %ecx
428817:	8b 4e 0c             	mov    0xc(%esi),%ecx
42881a:	ff 15 2c 81 4a 00    	call   *0x4a812c
428820:	ff 56 0c             	call   *0xc(%esi)
428823:	8b f8                	mov    %eax,%edi
428825:	85 ff                	test   %edi,%edi
428827:	78 24                	js     0x42884d
428829:	8b 45 ec             	mov    -0x14(%ebp),%eax
42882c:	8d 55 e8             	lea    -0x18(%ebp),%edx
42882f:	52                   	push   %edx
428830:	50                   	push   %eax
428831:	8b 08                	mov    (%eax),%ecx
428833:	8b 71 1c             	mov    0x1c(%ecx),%esi
428836:	8b ce                	mov    %esi,%ecx
428838:	ff 15 2c 81 4a 00    	call   *0x4a812c
42883e:	ff d6                	call   *%esi
428840:	8b f8                	mov    %eax,%edi
428842:	85 ff                	test   %edi,%edi
428844:	78 07                	js     0x42884d
428846:	8b 45 e8             	mov    -0x18(%ebp),%eax
428849:	33 ff                	xor    %edi,%edi
42884b:	89 03                	mov    %eax,(%ebx)
42884d:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
428851:	8b 45 ec             	mov    -0x14(%ebp),%eax
428854:	85 c0                	test   %eax,%eax
428856:	74 10                	je     0x428868
428858:	8b 08                	mov    (%eax),%ecx
42885a:	50                   	push   %eax
42885b:	8b 71 08             	mov    0x8(%ecx),%esi
42885e:	8b ce                	mov    %esi,%ecx
428860:	ff 15 2c 81 4a 00    	call   *0x4a812c
428866:	ff d6                	call   *%esi
428868:	c7 45 fc 08 00 00 00 	movl   $0x8,-0x4(%ebp)
42886f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
428872:	85 c9                	test   %ecx,%ecx
428874:	74 10                	je     0x428886
428876:	8b 11                	mov    (%ecx),%edx
428878:	51                   	push   %ecx
428879:	8b 72 08             	mov    0x8(%edx),%esi
42887c:	8b ce                	mov    %esi,%ecx
42887e:	ff 15 2c 81 4a 00    	call   *0x4a812c
428884:	ff d6                	call   *%esi
428886:	8b c7                	mov    %edi,%eax
428888:	e8 14 7c 06 00       	call   0x4904a1
42888d:	c3                   	ret
42888e:	6a 04                	push   $0x4
428890:	b8 dc 21 49 00       	mov    $0x4921dc,%eax
428895:	e8 39 7c 06 00       	call   0x4904d3
42889a:	8b d9                	mov    %ecx,%ebx
42889c:	33 ff                	xor    %edi,%edi
42889e:	89 7d f0             	mov    %edi,-0x10(%ebp)
4288a1:	83 ec 0c             	sub    $0xc,%esp
4288a4:	89 7d fc             	mov    %edi,-0x4(%ebp)
4288a7:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4288aa:	e8 f4 09 00 00       	call   0x4292a3
4288af:	85 c0                	test   %eax,%eax
4288b1:	78 51                	js     0x428904
4288b3:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4288b6:	8d 53 08             	lea    0x8(%ebx),%edx
4288b9:	e8 f3 fe ff ff       	call   0x4287b1
4288be:	85 c0                	test   %eax,%eax
4288c0:	78 42                	js     0x428904
4288c2:	ff 75 08             	push   0x8(%ebp)
4288c5:	8b 45 f0             	mov    -0x10(%ebp),%eax
4288c8:	53                   	push   %ebx
4288c9:	68 9c f1 40 00       	push   $0x40f19c
4288ce:	57                   	push   %edi
4288cf:	8b 30                	mov    (%eax),%esi
4288d1:	57                   	push   %edi
4288d2:	50                   	push   %eax
4288d3:	8b 4e 24             	mov    0x24(%esi),%ecx
4288d6:	ff 15 2c 81 4a 00    	call   *0x4a812c
4288dc:	ff 56 24             	call   *0x24(%esi)
4288df:	85 c0                	test   %eax,%eax
4288e1:	78 21                	js     0x428904
4288e3:	ff 75 0c             	push   0xc(%ebp)
4288e6:	8b 45 f0             	mov    -0x10(%ebp),%eax
4288e9:	53                   	push   %ebx
4288ea:	68 8c f1 40 00       	push   $0x40f18c
4288ef:	57                   	push   %edi
4288f0:	8b 30                	mov    (%eax),%esi
4288f2:	57                   	push   %edi
4288f3:	50                   	push   %eax
4288f4:	8b 4e 24             	mov    0x24(%esi),%ecx
4288f7:	ff 15 2c 81 4a 00    	call   *0x4a812c
4288fd:	ff 56 24             	call   *0x24(%esi)
428900:	85 c0                	test   %eax,%eax
428902:	79 02                	jns    0x428906
428904:	8b f8                	mov    %eax,%edi
428906:	c7 45 fc 05 00 00 00 	movl   $0x5,-0x4(%ebp)
42890d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
428910:	85 c9                	test   %ecx,%ecx
428912:	74 10                	je     0x428924
428914:	8b 11                	mov    (%ecx),%edx
428916:	51                   	push   %ecx
428917:	8b 72 08             	mov    0x8(%edx),%esi
42891a:	8b ce                	mov    %esi,%ecx
42891c:	ff 15 2c 81 4a 00    	call   *0x4a812c
428922:	ff d6                	call   *%esi
428924:	8b c7                	mov    %edi,%eax
428926:	e8 76 7b 06 00       	call   0x4904a1
42892b:	c2 08 00             	ret    $0x8
42892e:	cc                   	int3
42892f:	cc                   	int3
428930:	8b ff                	mov    %edi,%edi
428932:	55                   	push   %ebp
428933:	8b ec                	mov    %esp,%ebp
428935:	53                   	push   %ebx
428936:	8b 5d 10             	mov    0x10(%ebp),%ebx
428939:	57                   	push   %edi
42893a:	85 db                	test   %ebx,%ebx
42893c:	75 07                	jne    0x428945
42893e:	b8 03 40 00 80       	mov    $0x80004003,%eax
428943:	eb 52                	jmp    0x428997
428945:	8b 55 0c             	mov    0xc(%ebp),%edx
428948:	33 c9                	xor    %ecx,%ecx
42894a:	56                   	push   %esi
42894b:	be ec f0 40 00       	mov    $0x40f0ec,%esi
428950:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
428953:	3b 04 8e             	cmp    (%esi,%ecx,4),%eax
428956:	75 08                	jne    0x428960
428958:	41                   	inc    %ecx
428959:	83 f9 04             	cmp    $0x4,%ecx
42895c:	75 f2                	jne    0x428950
42895e:	eb 15                	jmp    0x428975
428960:	be 4c f1 40 00       	mov    $0x40f14c,%esi
428965:	33 c9                	xor    %ecx,%ecx
428967:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
42896a:	3b 04 8e             	cmp    (%esi,%ecx,4),%eax
42896d:	75 1f                	jne    0x42898e
42896f:	41                   	inc    %ecx
428970:	83 f9 04             	cmp    $0x4,%ecx
428973:	75 f2                	jne    0x428967
428975:	8b 7d 08             	mov    0x8(%ebp),%edi
428978:	57                   	push   %edi
428979:	8b 07                	mov    (%edi),%eax
42897b:	8b 70 04             	mov    0x4(%eax),%esi
42897e:	8b ce                	mov    %esi,%ecx
428980:	ff 15 2c 81 4a 00    	call   *0x4a812c
428986:	ff d6                	call   *%esi
428988:	89 3b                	mov    %edi,(%ebx)
42898a:	33 c0                	xor    %eax,%eax
42898c:	eb 08                	jmp    0x428996
42898e:	83 23 00             	andl   $0x0,(%ebx)
428991:	b8 02 40 00 80       	mov    $0x80004002,%eax
428996:	5e                   	pop    %esi
428997:	5f                   	pop    %edi
428998:	5b                   	pop    %ebx
428999:	5d                   	pop    %ebp
42899a:	c2 0c 00             	ret    $0xc
42899d:	cc                   	int3
42899e:	cc                   	int3
42899f:	cc                   	int3
4289a0:	8b ff                	mov    %edi,%edi
4289a2:	55                   	push   %ebp
4289a3:	8b ec                	mov    %esp,%ebp
4289a5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4289a8:	56                   	push   %esi
4289a9:	83 ce ff             	or     $0xffffffff,%esi
4289ac:	f0 0f c1 71 04       	lock xadd %esi,0x4(%ecx)
4289b1:	4e                   	dec    %esi
4289b2:	75 12                	jne    0x4289c6
4289b4:	85 c9                	test   %ecx,%ecx
4289b6:	74 0e                	je     0x4289c6
4289b8:	51                   	push   %ecx
4289b9:	c7 01 80 1a 40 00    	movl   $0x401a80,(%ecx)
4289bf:	ff 15 10 74 4a 00    	call   *0x4a7410
4289c5:	59                   	pop    %ecx
4289c6:	8b c6                	mov    %esi,%eax
4289c8:	5e                   	pop    %esi
4289c9:	5d                   	pop    %ebp
4289ca:	c2 04 00             	ret    $0x4
4289cd:	cc                   	int3
4289ce:	cc                   	int3
4289cf:	cc                   	int3
4289d0:	8b ff                	mov    %edi,%edi
4289d2:	55                   	push   %ebp
4289d3:	8b ec                	mov    %esp,%ebp
4289d5:	8b 55 08             	mov    0x8(%ebp),%edx
4289d8:	33 c9                	xor    %ecx,%ecx
4289da:	8d 52 08             	lea    0x8(%edx),%edx
4289dd:	e8 cf fd ff ff       	call   0x4287b1
4289e2:	5d                   	pop    %ebp
4289e3:	c2 24 00             	ret    $0x24
4289e6:	8b ff                	mov    %edi,%edi
4289e8:	55                   	push   %ebp
4289e9:	8b ec                	mov    %esp,%ebp
4289eb:	56                   	push   %esi
4289ec:	8b f1                	mov    %ecx,%esi
4289ee:	c7 06 64 fd 40 00    	movl   $0x40fd64,(%esi)
4289f4:	c7 46 20 6c 1a 40 00 	movl   $0x401a6c,0x20(%esi)
4289fb:	8b 06                	mov    (%esi),%eax
4289fd:	8b 40 08             	mov    0x8(%eax),%eax
428a00:	c7 04 06 5c 1a 40 00 	movl   $0x401a5c,(%esi,%eax,1)
428a07:	8b 06                	mov    (%esi),%eax
428a09:	8b 50 04             	mov    0x4(%eax),%edx
428a0c:	8d 42 e0             	lea    -0x20(%edx),%eax
428a0f:	89 44 32 fc          	mov    %eax,-0x4(%edx,%esi,1)
428a13:	8b 06                	mov    (%esi),%eax
428a15:	8b 48 08             	mov    0x8(%eax),%ecx
428a18:	8d 41 d8             	lea    -0x28(%ecx),%eax
428a1b:	89 44 31 fc          	mov    %eax,-0x4(%ecx,%esi,1)
428a1f:	33 c0                	xor    %eax,%eax
428a21:	89 46 04             	mov    %eax,0x4(%esi)
428a24:	89 46 08             	mov    %eax,0x8(%esi)
428a27:	89 46 0c             	mov    %eax,0xc(%esi)
428a2a:	89 46 10             	mov    %eax,0x10(%esi)
428a2d:	8b 45 08             	mov    0x8(%ebp),%eax
428a30:	89 46 14             	mov    %eax,0x14(%esi)
428a33:	8b 45 0c             	mov    0xc(%ebp),%eax
428a36:	89 46 18             	mov    %eax,0x18(%esi)
428a39:	8b c6                	mov    %esi,%eax
428a3b:	5e                   	pop    %esi
428a3c:	5d                   	pop    %ebp
428a3d:	c2 0c 00             	ret    $0xc
428a40:	8b ff                	mov    %edi,%edi
428a42:	55                   	push   %ebp
428a43:	8b ec                	mov    %esp,%ebp
428a45:	53                   	push   %ebx
428a46:	8b 5d 10             	mov    0x10(%ebp),%ebx
428a49:	85 db                	test   %ebx,%ebx
428a4b:	75 0a                	jne    0x428a57
428a4d:	b8 03 40 00 80       	mov    $0x80004003,%eax
428a52:	e9 a1 00 00 00       	jmp    0x428af8
428a57:	8b 55 0c             	mov    0xc(%ebp),%edx
428a5a:	56                   	push   %esi
428a5b:	57                   	push   %edi
428a5c:	33 ff                	xor    %edi,%edi
428a5e:	be ec f0 40 00       	mov    $0x40f0ec,%esi
428a63:	8b cf                	mov    %edi,%ecx
428a65:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
428a68:	3b 04 8e             	cmp    (%esi,%ecx,4),%eax
428a6b:	75 3d                	jne    0x428aaa
428a6d:	41                   	inc    %ecx
428a6e:	83 f9 04             	cmp    $0x4,%ecx
428a71:	75 f2                	jne    0x428a65
428a73:	8b 4d 08             	mov    0x8(%ebp),%ecx
428a76:	8b 41 e0             	mov    -0x20(%ecx),%eax
428a79:	83 c1 e0             	add    $0xffffffe0,%ecx
428a7c:	8b 40 08             	mov    0x8(%eax),%eax
428a7f:	03 c1                	add    %ecx,%eax
428a81:	50                   	push   %eax
428a82:	8b 08                	mov    (%eax),%ecx
428a84:	8b 71 04             	mov    0x4(%ecx),%esi
428a87:	8b ce                	mov    %esi,%ecx
428a89:	ff 15 2c 81 4a 00    	call   *0x4a812c
428a8f:	ff d6                	call   *%esi
428a91:	8b 4d 08             	mov    0x8(%ebp),%ecx
428a94:	8d 41 e0             	lea    -0x20(%ecx),%eax
428a97:	85 c0                	test   %eax,%eax
428a99:	74 0b                	je     0x428aa6
428a9b:	8b 41 e0             	mov    -0x20(%ecx),%eax
428a9e:	8b 40 08             	mov    0x8(%eax),%eax
428aa1:	8d 79 e0             	lea    -0x20(%ecx),%edi
428aa4:	03 f8                	add    %eax,%edi
428aa6:	33 c0                	xor    %eax,%eax
428aa8:	eb 4a                	jmp    0x428af4
428aaa:	be 5c f1 40 00       	mov    $0x40f15c,%esi
428aaf:	8b cf                	mov    %edi,%ecx
428ab1:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
428ab4:	3b 04 8e             	cmp    (%esi,%ecx,4),%eax
428ab7:	75 36                	jne    0x428aef
428ab9:	41                   	inc    %ecx
428aba:	83 f9 04             	cmp    $0x4,%ecx
428abd:	75 f2                	jne    0x428ab1
428abf:	8b 4d 08             	mov    0x8(%ebp),%ecx
428ac2:	8b 41 e0             	mov    -0x20(%ecx),%eax
428ac5:	83 c1 e0             	add    $0xffffffe0,%ecx
428ac8:	8b 40 08             	mov    0x8(%eax),%eax
428acb:	03 c1                	add    %ecx,%eax
428acd:	50                   	push   %eax
428ace:	8b 08                	mov    (%eax),%ecx
428ad0:	8b 71 04             	mov    0x4(%ecx),%esi
428ad3:	8b ce                	mov    %esi,%ecx
428ad5:	ff 15 2c 81 4a 00    	call   *0x4a812c
428adb:	ff d6                	call   *%esi
428add:	8b 4d 08             	mov    0x8(%ebp),%ecx
428ae0:	8d 41 e0             	lea    -0x20(%ecx),%eax
428ae3:	85 c0                	test   %eax,%eax
428ae5:	74 bf                	je     0x428aa6
428ae7:	8b 41 e0             	mov    -0x20(%ecx),%eax
428aea:	8b 40 04             	mov    0x4(%eax),%eax
428aed:	eb b2                	jmp    0x428aa1
428aef:	b8 02 40 00 80       	mov    $0x80004002,%eax
428af4:	89 3b                	mov    %edi,(%ebx)
428af6:	5f                   	pop    %edi
428af7:	5e                   	pop    %esi
428af8:	5b                   	pop    %ebx
428af9:	5d                   	pop    %ebp
428afa:	c2 0c 00             	ret    $0xc
428afd:	cc                   	int3
428afe:	cc                   	int3
428aff:	cc                   	int3
428b00:	8b ff                	mov    %edi,%edi
428b02:	55                   	push   %ebp
428b03:	8b ec                	mov    %esp,%ebp
428b05:	8b 4d 08             	mov    0x8(%ebp),%ecx
428b08:	33 c0                	xor    %eax,%eax
428b0a:	40                   	inc    %eax
428b0b:	f0 0f c1 41 e4       	lock xadd %eax,-0x1c(%ecx)
428b10:	40                   	inc    %eax
428b11:	5d                   	pop    %ebp
428b12:	c2 04 00             	ret    $0x4
428b15:	8b ff                	mov    %edi,%edi
428b17:	55                   	push   %ebp
428b18:	8b ec                	mov    %esp,%ebp
428b1a:	8b 45 08             	mov    0x8(%ebp),%eax
428b1d:	56                   	push   %esi